diff --git a/docs/properties.rst b/docs/properties.rst index 6ce5833..a1c297a 100644 --- a/docs/properties.rst +++ b/docs/properties.rst @@ -234,7 +234,7 @@ Other properties Edition of the movie. - - ``Special Edition``, ``Collector Edition``, ``Director's cut``, ``Criterion Edition``, ``Deluxe Edition`` + - ``Special Edition``, ``Collector Edition``, ``Director's cut``, ``Criterion Edition``, ``Deluxe Edition``, ``Theatrical Edition``, ``Limited Edition`` - **film** @@ -256,5 +256,7 @@ Other properties - ``Fansub``, ``HR``, ``HQ``, ``Screener``, ``Unrated``, ``HD``, ``UltraHD``, ``3D``, ``SyncFix``, ``Bonus``, ``WideScreen``, ``Fastsub``, ``R5``, ``AudioFix``, ``DDC``, ``Trailer``, ``Complete``, ``Limited``, ``Classic``, ``Proper``, ``DualAudio``, ``LiNE``, ``LD``, ``MD``, ``XXX``, ``Remastered``, ``Extended``, ``Extended Cut``, - ``Uncut``, ``Retail``, ``ReEncoded``, ``Mux``, ``Hardcoded Subtitles`` + ``Alternative Cut``, ``Uncut``, ``Retail``, ``ReEncoded``, ``Mux``, ``Hardcoded Subtitles``, ``Converted``, + ``Colorized``, ``Documentary``, ``Festival``, ``FINAL``, ``Internal``, ``Open Matte``, ``Read NFO``, ``Uncensored``, + ``Straight to Video``, ``Original Aspect Ratio``, ``West Coast Feed``, ``East Coast Feed`` diff --git a/guessit/rules/properties/edition.py b/guessit/rules/properties/edition.py index 429ba8d..a470f88 100644 --- a/guessit/rules/properties/edition.py +++ b/guessit/rules/properties/edition.py @@ -24,8 +24,12 @@ def edition(): conflict_solver=lambda match, other: other if other.name == 'episode_details' and other.value == 'Special' else '__default__') + rebulk.string('SE', value='Special Edition', tags='has-neighbor') rebulk.regex('criterion-edition', 'edition-criterion', value='Criterion Edition') rebulk.regex('deluxe', 'deluxe-edition', 'edition-deluxe', value='Deluxe Edition') - rebulk.regex('director\'?s?-cut', 'director\'?s?-cut-edition', 'edition-director\'?s?-cut', value='Director\'s cut') + rebulk.regex('limited', 'limited-edition', value='Limited Edition') + rebulk.regex(r'theatrical-cut', r'theatrical-edition', r'theatrical', value='Theatrical Edition') + rebulk.regex(r"director'?s?-cut", r"director'?s?-cut-edition", r"edition-director'?s?-cut", 'DC', + value="Director's cut") return rebulk diff --git a/guessit/rules/properties/episodes.py b/guessit/rules/properties/episodes.py index 1fb87f3..9cd257d 100644 --- a/guessit/rules/properties/episodes.py +++ b/guessit/rules/properties/episodes.py @@ -77,7 +77,7 @@ def episodes(): season_episode_seps.extend(seps) season_episode_seps.extend(['x', 'X', 'e', 'E']) - season_words = ['season', 'saison', 'serie', 'seasons', 'saisons', 'series', + season_words = ['season', 'saison', 'seizoen', 'serie', 'seasons', 'saisons', 'series', 'tem', 'temp', 'temporada', 'temporadas', 'stagione'] episode_words = ['episode', 'episodes', 'eps', 'ep', 'episodio', 'episodios', 'capitulo', 'capitulos'] diff --git a/guessit/rules/properties/other.py b/guessit/rules/properties/other.py index fd85204..792f4bb 100644 --- a/guessit/rules/properties/other.py +++ b/guessit/rules/properties/other.py @@ -31,7 +31,10 @@ def other(): rebulk.regex('Re-?Enc(?:oded)?', value='ReEncoded') rebulk.string('Real', 'Fix', 'Fixed', value='Proper', tags=['has-neighbor-before', 'has-neighbor-after']) - rebulk.string('Proper', 'Repack', 'Rerip', value='Proper') + rebulk.string('Proper', 'Repack', 'Rerip', 'Dirfix', 'Nfofix', 'Prooffix', value='Proper', + tags=['streaming_service.prefix', 'streaming_service.suffix']) + rebulk.regex('(?:Proof-?)?Sample-?Fix', value='Proper', + tags=['streaming_service.prefix', 'streaming_service.suffix']) rebulk.string('Fansub', value='Fansub', tags='has-neighbor') rebulk.string('Fastsub', value='Fastsub', tags='has-neighbor') @@ -74,10 +77,22 @@ def other(): tags=['streaming_service.prefix', 'streaming_service.suffix']) for value in ('Limited', 'Complete', 'Classic', 'Unrated', 'LiNE', 'Bonus', 'Trailer', 'FINAL', 'Retail', 'Uncut', - 'Extended', 'Extended Cut'): + 'Extended', 'Extended Cut', 'Colorized', 'Internal', 'Uncensored'): rebulk.string(value, value=value, tags=['has-neighbor', 'release-group-prefix']) + rebulk.regex('Extended-?version', value='Extended', tags=['has-neighbor', 'release-group-prefix']) + rebulk.regex('Alternat(e|ive)(?:-?Cut)?', value='Alternative Cut', tags=['has-neighbor', 'release-group-prefix']) + rebulk.regex('Read-?NFO', value='Read NFO') + rebulk.string('CONVERT', value='Converted', tags='has-neighbor') + rebulk.string('DOCU', value='Documentary', tags='has-neighbor') + rebulk.string('OM', value='Open Matte', tags='has-neighbor') + rebulk.string('STV', value='Straight to Video', tags='has-neighbor') + rebulk.string('OAR', value='Original Aspect Ratio', tags='has-neighbor') + rebulk.string('Festival', value='Festival', tags=['has-neighbor-before', 'has-neighbor-after']) rebulk.string('Complet', value='Complete', tags=['has-neighbor', 'release-group-prefix']) + for coast in ('East', 'West'): + rebulk.regex(r'(?:Live-)?(?:Episode-)?' + coast + '-?(?:Coast-)?Feed', value=coast + ' Coast Feed') + rebulk.string('VO', 'OV', value='OV', tags='has-neighbor') rebulk.regex('Scr(?:eener)?', value='Screener', validator=None, diff --git a/guessit/test/episodes.yml b/guessit/test/episodes.yml index 479c481..7eaf1bc 100644 --- a/guessit/test/episodes.yml +++ b/guessit/test/episodes.yml @@ -1775,7 +1775,8 @@ : episode: 11 episode_title: Our Man in Damascus format: HDTV - release_group: iNTERNAL-BaCKToRG + other: Internal + release_group: BaCKToRG screen_size: 720p season: 5 subtitle_language: de @@ -3649,3 +3650,188 @@ season: 1 episode: 50 type: episode + +? Vikings.Seizoen.4.1080p.Web.NLsubs +: title: Vikings + season: 4 + screen_size: 1080p + format: WEB-DL + subtitle_language: nl + type: episode + +? Star.Wars.Rebels.S01E01.Spark.of.Rebellion.ALTERNATE.CUT.HDTV.x264-W4F.mp4 +: title: Star Wars Rebels + season: 1 + episode: 1 + episode_title: Spark of Rebellion + other: Alternative Cut + format: HDTV + video_codec: h264 + release_group: W4F + container: mp4 + type: episode + +? DCs.Legends.of.Tomorrow.S02E12.HDTV.XviD-FUM +: title: DCs Legends of Tomorrow + season: 2 + episode: 12 + format: HDTV + video_codec: XviD + release_group: FUM + type: episode + +? DC's Legends of Tomorrow 2016 - S02E02 +: title: DC's Legends of Tomorrow + year: 2016 + season: 2 + episode: 2 + type: episode + +? Broadchurch.S01.DIRFIX.720p.BluRay.x264-SHORTBREHD +: title: Broadchurch + season: 1 + other: Proper + screen_size: 720p + format: BluRay + video_codec: h264 + release_group: SHORTBREHD + proper_count: 1 + type: episode + +? Simply Red - 2016-07-08 Montreux Jazz Festival 720p +: title: Simply Red + date: 2016-07-08 + episode_title: Montreux Jazz Festival + screen_size: 720p + type: episode + +? Ridiculousness.S07E14.iNTERNAL.HDTV.x264-YesTV +: title: Ridiculousness + season: 7 + episode: 14 + other: Internal + format: HDTV + video_codec: h264 + release_group: YesTV + type: episode + +? Stephen.Colbert.2016.05.25.James.McAvoy.iNTERNAL.XviD-AFG +: title: Stephen Colbert + date: 2016-05-25 + episode_title: James McAvoy + other: Internal + video_codec: XviD + release_group: AFG + type: episode + +? The.100.S01E13.iNTERNAL.READNFO.720p.HDTV.x264-2HD +: title: The 100 + season: 1 + episode: 13 + other: [Internal, Read NFO] + screen_size: 720p + format: HDTV + video_codec: h264 + release_group: 2HD + type: episode + +? The.100.S01E13.READ.NFO.720p.HDTV.x264-2HD +: title: The 100 + season: 1 + episode: 13 + other: Read NFO + screen_size: 720p + format: HDTV + video_codec: h264 + release_group: 2HD + type: episode + +? Dr.Ken.S01E21.SAMPLEFIX.720p.HDTV.x264-SVA +: title: Dr Ken + season: 1 + episode: 21 + other: Proper + screen_size: 720p + format: HDTV + video_codec: h264 + release_group: SVA + type: episode + +? Rick and Morty Season 1 [UNCENSORED] [BDRip] [1080p] [HEVC] +: title: Rick and Morty + season: 1 + other: Uncensored + format: BluRay + screen_size: 1080p + video_codec: h265 + type: episode + +? 12.Monkeys.S01E01.LiMiTED.FRENCH.1080p.WEB-DL.H264-AUTHORiTY +: title: 12 Monkeys + season: 1 + episode: 1 + edition: Limited Edition + language: french + screen_size: 1080p + format: WEB-DL + video_codec: h264 + release_group: AUTHORiTY + type: episode + +? Undateable.2014.S03E05.West.Feed.HDTV.x264-2HD +: title: Undateable + year: 2014 + season: 3 + episode: 5 + other: West Coast Feed + format: HDTV + video_codec: h264 + release_group: 2HD + type: episode + +? Undateable.2014.S02E07-E08.Live.Episode.West.Coast.Feed.HDTV.x264-2HD +: title: Undateable + year: 2014 + season: 2 + episode: [7, 8] + other: West Coast Feed + format: HDTV + video_codec: h264 + release_group: 2HD + type: episode + +? Undateable.S03E01-E02.LIVE.EAST.FEED.720p.HDTV.x264-KILLERS +: title: Undateable + season: 3 + episode: [1, 2] + other: East Coast Feed + screen_size: 720p + format: HDTV + video_codec: h264 + release_group: KILLERS + type: episode + +? Undateable.2014.S02E07.Live.Episode.East.Coast.Feed.HDTV.x264-2HD +: title: Undateable + year: 2014 + season: 2 + episode: 7 + other: East Coast Feed + format: HDTV + video_codec: h264 + release_group: 2HD + type: episode + +? Undateable.2014.S02E07.East.Coast.Feed.720p.WEB-DL.DD5.1.H.264-NTb +: title: Undateable + year: 2014 + season: 2 + episode: 7 + other: East Coast Feed + screen_size: 720p + format: WEB-DL + audio_codec: DolbyDigital + audio_channels: '5.1' + video_codec: h264 + release_group: NTb + type: episode diff --git a/guessit/test/movies.yml b/guessit/test/movies.yml index 19854fc..316a106 100644 --- a/guessit/test/movies.yml +++ b/guessit/test/movies.yml @@ -458,28 +458,28 @@ - French - English format: DVD - other: NTSC + other: [Straight to Video, Read NFO, NTSC] ? Immersion.French.2011.STV.READNFO.QC.FRENCH.NTSC.DVDR.nfo : title: Immersion French year: 2011 language: French format: DVD - other: NTSC + other: [Straight to Video, Read NFO, NTSC] ? Immersion.French.2011.STV.READNFO.QC.NTSC.DVDR.nfo : title: Immersion language: French year: 2011 format: DVD - other: NTSC + other: [Straight to Video, Read NFO, NTSC] ? French.Immersion.2011.STV.READNFO.QC.ENGLISH.NTSC.DVDR.nfo : title: French Immersion year: 2011 language: ENGLISH format: DVD - other: NTSC + other: [Straight to Video, Read NFO, NTSC] ? Howl's_Moving_Castle_(2004)_[720p,HDTV,x264,DTS]-FlexGet.avi : video_codec: h264 @@ -902,3 +902,183 @@ audio_channels: '7.1' release_group: DDR type: movie + +? Queen - A Kind of Magic (Alternative Extended Version) 2CD 2014 +: title: Queen + alternative_title: A Kind of Magic + other: [Alternative Cut, Extended] + cd_count: 2 + year: 2014 + type: movie + +? Jour.de.Fete.1949.ALTERNATiVE.CUT.1080p.BluRay.x264-SADPANDA[rarbg] +: title: Jour de Fete + year: 1949 + other: Alternative Cut + screen_size: 1080p + format: BluRay + video_codec: h264 + release_group: SADPANDA[rarbg] + +? The.Movie.CONVERT.720p.HDTV.x264-C4TV +: title: The Movie + other: Converted + screen_size: 720p + format: HDTV + video_codec: h264 + release_group: C4TV + type: movie + +? Its.A.Wonderful.Life.1946.Colorized.720p.BRRip.999MB.MkvCage.com +: title: Its A Wonderful Life + year: 1946 + other: Colorized + screen_size: 720p + format: BluRay + size: 999MB + website: MkvCage.com + type: movie + +? Alien DC (1979) [1080p] +: title: Alien + edition: Director's cut + year: 1979 + screen_size: 1080p + type: movie + +? Requiem.For.A.Dream.2000.DC.1080p.BluRay.x264.anoXmous +: title: Requiem For A Dream + year: 2000 + edition: Director's cut + screen_size: 1080p + format: BluRay + video_codec: h264 + release_group: anoXmous + type: movie + +? Before.the.Flood.2016.DOCU.1080p.WEBRip.x264.DD5.1-FGT +: title: Before the Flood + year: 2016 + other: Documentary + screen_size: 1080p + format: WEBRip + video_codec: h264 + audio_codec: DolbyDigital + audio_channels: '5.1' + release_group: FGT + type: movie + +? Zootopia.2016.HDRip.1.46Gb.Dub.MegaPeer +: title: Zootopia + year: 2016 + format: HDTV + size: 1.46GB + language: und + release_group: MegaPeer + type: movie + +? Suntan.2016.FESTiVAL.DVDRip.x264-IcHoR +: title: Suntan + year: 2016 + other: Festival + format: DVD + video_codec: h264 + release_group: IcHoR + type: movie + +? Hardwired.STV.NFOFiX.FRENCH.DVDRiP.XviD-SURViVAL +: title: Hardwired + other: [Straight to Video, Proper] + language: french + format: DVD + video_codec: XviD + release_group: SURViVAL + proper_count: 1 + type: movie + +? Maze.Runner.The.Scorch.Trials.OM.2015.WEB-DLRip.by.Seven +: title: Maze Runner The Scorch Trials + other: Open Matte + year: 2015 + format: WEBRip + release_group: Seven + type: movie + +? Kampen Om Tungtvannet aka The Heavy Water War COMPLETE 720p x265 HEVC-Lund +: title: Kampen Om Tungtvannet aka The Heavy Water War + other: Complete + screen_size: 720p + video_codec: h265 + release_group: Lund + type: movie + +? All.Fall.Down.x264.PROOFFIX-OUTLAWS +: title: All Fall Down + video_codec: h264 + other: Proper + release_group: OUTLAWS + proper_count: 1 + type: movie + +? The.Last.Survivors.2014.PROOF.SAMPLE.FiX.BDRip.x264-TOPCAT +: title: The Last Survivors + year: 2014 + other: Proper + format: BluRay + video_codec: h264 + release_group: TOPCAT + type: movie + +? Bad Santa 2 2016 THEATRiCAL FRENCH BDRip XviD-EXTREME +: title: Bad Santa 2 + year: 2016 + edition: Theatrical Edition + language: french + format: BluRay + video_codec: XviD + release_group: EXTREME + type: movie + +? The Lord of the Rings The Fellowship of the Ring THEATRICAL EDITION (2001) [1080p] +: title: The Lord of the Rings The Fellowship of the Ring + edition: Theatrical Edition + year: 2001 + screen_size: 1080p + type: movie + +? World War Z (2013) Theatrical Cut 720p BluRay x264 +: title: World War Z + year: 2013 + edition: Theatrical Edition + screen_size: 720p + format: BluRay + video_codec: h264 + type: movie + +? The Heartbreak Kid (1993) UNCUT 720p WEBRip x264 +: title: The Heartbreak Kid + year: 1993 + other: Uncut + screen_size: 720p + format: WEBRip + video_codec: h264 + type: movie + +? Mrs.Doubtfire.1993.720p.OAR.Bluray.DTS.x264-CtrlHD +: title: Mrs Doubtfire + year: 1993 + screen_size: 720p + other: Original Aspect Ratio + format: BluRay + audio_codec: DTS + video_codec: h264 + release_group: CtrlHD + type: movie + +? Aliens.SE.1986.BDRip.1080p +: title: Aliens + edition: Special Edition + year: 1986 + format: BluRay + screen_size: 1080p + type: movie diff --git a/guessit/test/rules/other.yml b/guessit/test/rules/other.yml index 9ee902b..1d90f62 100644 --- a/guessit/test/rules/other.yml +++ b/guessit/test/rules/other.yml @@ -144,3 +144,12 @@ ? re-encoded ? reencoded : other: ReEncoded + +? Super Movie Alternate XViD +? Super Movie Alternative XViD +? Super Movie Alternate Cut XViD +? Super Movie Alternative Cut XViD +: other: Alternative Cut + +? CONVERT XViD +: other: Converted \ No newline at end of file