diff --git a/definitions/v10/yggcookie.yml b/definitions/v10/yggcookie.yml deleted file mode 100644 index e59418df7..000000000 --- a/definitions/v10/yggcookie.yml +++ /dev/null @@ -1,381 +0,0 @@ ---- -id: yggcookie -name: YGG cookie -description: "YggTorrent (YGG) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL. This indexer uses cookie login." -language: fr-FR -type: private -encoding: UTF-8 -followredirect: true -requestDelay: 2 -links: - - https://www.ygg.re/ -legacylinks: - - http://www2.yggtorrent.si/ - - https://www2.yggtorrent.si/ - - https://www.yggtorrent.li/ - - https://www4.yggtorrent.li/ - - https://www3.yggtorrent.nz/ - - https://www3.yggtorrent.re/ - - https://www3.yggtorrent.la/ - - https://www5.yggtorrent.la/ - - https://www5.yggtorrent.fi/ - - https://yggtorrent.lol/ - - https://www6.yggtorrent.lol/ - - https://www3.yggtorrent.do/ - - https://www3.yggtorrent.wtf/ - - https://www3.yggtorrent.qa/ - - https://www3.yggtorrent.cool/ - -caps: - categorymappings: - - {id: 2145, cat: TV, desc: "Film/Vidéo"} - - {id: 2178, cat: Movies/Other, desc: "Film/Vidéo : Animation"} # changed to movies, see #3553 - - {id: 2179, cat: TV/Anime, desc: "Film/Vidéo : Animation Série"} - - {id: 2180, cat: Audio/Video, desc: "Film/Vidéo : Concert"} - - {id: 2181, cat: TV/Documentary, desc: "Film/Vidéo : Documentaire"} - - {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"} - - {id: 2183, cat: Movies, desc: "Film/Vidéo : Film"} - - {id: 2184, cat: TV, desc: "Film/Vidéo : Série TV"} - - {id: 2185, cat: TV, desc: "Film/Vidéo : Spectacle"} - - {id: 2186, cat: TV/Sport, desc: "Film/Vidéo : Sport"} - - {id: 2187, cat: TV/Other, desc: "Film/Vidéo : Vidéo-clips"} - - {id: 2139, cat: Audio, desc: "Audio"} - - {id: 2147, cat: Audio, desc: "Audio : Karaoké"} - - {id: 2148, cat: Audio, desc: "Audio : Musique"} - - {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"} - - {id: 2149, cat: Audio/Other, desc: "Audio : Samples"} - - {id: 2144, cat: PC, desc: "Application"} - - {id: 2177, cat: PC/0day, desc: "Application : Autre"} - - {id: 2176, cat: PC, desc: "Application : Formation"} - - {id: 2171, cat: PC/ISO, desc: "Application : Linux"} - - {id: 2172, cat: PC/Mac, desc: "Application : MacOS"} - - {id: 2174, cat: PC/Mobile-Android, desc: "Application : Smartphone"} - - {id: 2175, cat: PC/Mobile-Android, desc: "Application : Tablette"} - - {id: 2173, cat: PC/0day, desc: "Application : Windows"} - - {id: 2142, cat: PC/Games, desc: "Jeu vidéo"} - - {id: 2167, cat: Console/Other, desc: "Jeu vidéo : Autre"} - - {id: 2159, cat: PC/Games, desc: "Jeu vidéo : Linux"} - - {id: 2160, cat: PC/Games, desc: "Jeu vidéo : MacOS"} - - {id: 2162, cat: Console/XBox One, desc: "Jeu vidéo : Microsoft"} - - {id: 2163, cat: Console/Wii, desc: "Jeu vidéo : Nintendo"} - - {id: 2165, cat: PC/Mobile-Android, desc: "Jeu vidéo : Smartphone"} - - {id: 2164, cat: Console/PS4, desc: "Jeu vidéo : Sony"} - - {id: 2166, cat: PC/Mobile-Android, desc: "Jeu vidéo : Tablette"} - - {id: 2161, cat: PC/Games, desc: "Jeu vidéo : Windows"} - - {id: 2140, cat: Books, desc: "eBook"} - - {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"} - - {id: 2152, cat: Books/EBook, desc: "eBook : Bds"} - - {id: 2153, cat: Books/Comics, desc: "eBook : Comics"} - - {id: 2154, cat: Books/EBook, desc: "eBook : Livres"} - - {id: 2155, cat: Books/Comics, desc: "eBook : Mangas"} - - {id: 2156, cat: Books/Mags, desc: "eBook : Presse"} - - {id: 2300, cat: Other, desc: "Nulled"} - - {id: 2301, cat: Other, desc: "Nulled : Wordpress"} - - {id: 2302, cat: Other, desc: "Nulled : Scripts PHP & CMS"} - - {id: 2303, cat: Other, desc: "Nulled : Mobile"} - - {id: 2304, cat: Other, desc: "Nulled : Divers"} - - {id: 2200, cat: Other, desc: "Imprimante 3D"} - - {id: 2201, cat: Other, desc: "Imprimante 3D : Objets"} - - {id: 2202, cat: Other, desc: "Imprimante 3D : Personnages"} - - {id: 2141, cat: Other, desc: "Emulation"} - - {id: 2157, cat: Other, desc: "Emulation : Emulateurs"} - - {id: 2158, cat: Other, desc: "Emulation : Roms"} - - {id: 2143, cat: Other, desc: "GPS"} - - {id: 2168, cat: Other, desc: "GPS : Applications"} - - {id: 2169, cat: Other, desc: "GPS : Cartes"} - - {id: 2170, cat: Other, desc: "GPS : Divers"} - - {id: 2188, cat: XXX, desc: "XXX"} - - {id: 2401, cat: XXX/Other, desc: "XXX : Ebooks"} - - {id: 2189, cat: XXX, desc: "XXX : Films"} - - {id: 2190, cat: XXX, desc: "XXX : Hentai"} - - {id: 2191, cat: XXX/ImageSet, desc: "XXX : Images"} - - {id: 2402, cat: XXX/Other, desc: "XXX : Jeux"} - - modes: - search: [q] - tv-search: [q, season, ep] - movie-search: [q] - music-search: [q] - book-search: [q] - allowrawsearch: true - -settings: - - name: cookie - type: text - label: Cookie - - name: info_cookie - type: info_cookie - - name: useragent - type: text - label: User-Agent - - name: info_useragent - type: info_useragent - - name: category - type: select - label: Category - default: all - options: - all: "Tous" - 2145: "Film/Vidéo" - 2139: "Audio" - 2144: "Application" - 2142: "Jeu vidéo" - 2140: "eBook" - 2300: "Nulled" - 2200: "Imprimante 3D" - 2141: "Emulation" - 2143: "GPS" - 2188: "XXX" - - name: subcategory - type: select - label: Sub-category - default: all - options: - all: "Tous" - 2178: "Film/Vidéo : Animation" - 2179: "Film/Vidéo : Animation Série" - 2180: "Film/Vidéo : Concert" - 2181: "Film/Vidéo : Documentaire" - 2182: "Film/Vidéo : Emission TV" - 2183: "Film/Vidéo : Film" - 2184: "Film/Vidéo : Série TV" - 2185: "Film/Vidéo : Spectacle" - 2186: "Film/Vidéo : Sport" - 2187: "Film/Vidéo : Vidéo-clips" - 2147: "Audio : Karaoké" - 2148: "Audio : Musique" - 2150: "Audio : Podcast Radio" - 2149: "Audio : Samples" - 2177: "Application : Autre" - 2176: "Application : Formation" - 2171: "Application : Linux" - 2172: "Application : MacOS" - 2174: "Application : Smartphone" - 2175: "Application : Tablette" - 2173: "Application : Windows" - 2167: "Jeu vidéo : Autre" - 2159: "Jeu vidéo : Linux" - 2160: "Jeu vidéo : MacOS" - 2162: "Jeu vidéo : Microsoft" - 2163: "Jeu vidéo : Nintendo" - 2165: "Jeu vidéo : Smartphone" - 2164: "Jeu vidéo : Sony" - 2166: "Jeu vidéo : Tablette" - 2161: "Jeu vidéo : Windows" - 2151: "eBook : Audio" - 2152: "eBook : Bds" - 2153: "eBook : Comics" - 2154: "eBook : Livres" - 2155: "eBook : Mangas" - 2156: "eBook : Presse" - 2301: "Nulled : Wordpress" - 2302: "Nulled : Scripts PHP & CMS" - 2303: "Nulled : Mobile" - 2304: "Nulled : Divers" - 2201: "Imprimante 3D : Objets" - 2202: "Imprimante 3D : Personnages" - 2157: "Emulation : Emulateurs" - 2158: "Emulation : Roms" - 2168: "GPS : Applications" - 2169: "GPS : Cartes" - 2170: "GPS : Divers" - 2401: "XXX : Ebooks" - 2189: "XXX : Films" - 2190: "XXX : Hentai" - 2191: "XXX : Images" - 2402: "XXX : Jeux" - - name: info_category - type: info - label: Category and Sub-category - default: Only select a Category OR a Sub-category, leaving the other as Tous. - - name: multilang - type: checkbox - label: Replace MULTi by another language in release name - default: false - - name: multilanguage - type: select - label: Replace MULTi by this language - default: FRENCH - options: - FRENCH: FRENCH - MULTi.FRENCH: MULTi.FRENCH - ENGLISH: ENGLISH - MULTi.ENGLISH: MULTi.ENGLISH - VOSTFR: VOSTFR - MULTi.VOSTFR: MULTi.VOSTFR - - name: vostfr - type: checkbox - label: Replace VOSTFR and SUBFRENCH with ENGLISH - default: false - - name: filter_title - type: checkbox - label: Normalize release names by moving year after the title - default: false - - name: strip_season - type: checkbox - label: Strip season only (e.g. S01) from searches, as tracker does not support partial matches - default: true - - name: enhancedAnime - type: checkbox - label: Enhance Sonarr compatibility with anime by renaming episodes (xxx > Exxx). Can disturb movies search (e.g. Back To The Future 3 > Back To The Future E3). - default: false - - name: enhancedAnime4 - type: checkbox - label: Extend the Sonarr compatibility with anime up to 4 digits. This WILL break all searches and result titles which contain years. - default: false - - name: sort - type: select - label: Sort requested from site - default: publish_date - options: - publish_date: created - seed: seeders - size: size - name: title - - name: type - type: select - label: Order requested from site - default: desc - options: - desc: desc - asc: asc - - name: info_flaresolverr - type: info_flaresolverr - -login: - method: cookie - inputs: - cookie: "{{ .Config.cookie }}" - test: - path: / - selector: a[href$="/user/logout"] - -search: - paths: - - path: engine/search - inputs: - name: "{{ .Keywords }}" - followredirect: true - - path: engine/search - inputs: - $raw: "name={{ if .Keywords }}{{ re_replace .Keywords \"(?i)S0?(\\d{1,2})\" \"Saison $1\" }}{{ else }}&page=50{{ end }}" - followredirect: true - inputs: - $raw: "{{ if eq .Config.subcategory \"all\" }}category={{ .Config.category }}{{ else }}sub_category={{ .Config.subcategory }}{{ end }}" - do: search - order: "{{ .Config.type }}" - sort: "{{ .Config.sort }}" - - headers: - User-Agent: ["{{ .Config.useragent }}"] - - keywordsfilters: - - name: re_replace # 1234 > E1234 - args: ["\\b(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}E$1{{ else }}$1{{ end }}"] - - name: re_replace # 123 > E123 - args: ["\\b(\\d{2,3})\\b", "{{ if .Config.enhancedAnime }}E$1{{ else }}$1{{ end }}"] - # fix date search and workaround for internal YGG issues - - name: re_replace - args: ["[\\\\\\-\\.\\/!\\s]+", " "] - # strip season as site does not support partial matches - - name: re_replace - args: ["(?i)\\b(S\\d{1,3})\\b", "{{ if .Config.strip_season }}{{ else }}$1{{ end }}"] - - name: trim - # put each word in quotations to prevent exact phrase search - - name: re_replace - args: ["([^\\s]+)", "\"$1\""] - - rows: - selector: table.table > tbody > tr - - fields: - _id: - selector: td:nth-child(2) > a - attribute: href - filters: - - name: regexp - args: "/(\\d+)-" - title_normal: - selector: td:nth-child(2) > a - filters: - # Saison 1 Episode 2 > S01E02 - - name: re_replace - args: ["(?i)\\b(Saisons?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)([\\s\\.]*[EÉ]pisodes?[\\s\\.]*)(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2E$4{{ else }}$1$2$3$4{{ end }}"] - - name: re_replace - args: ["(?i)\\bSaisons?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)[\\s\\.]*[EÉ]pisodes?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1E$2"] - # Saison 1 > S01 - - name: re_replace - args: ["(?i)\\b(Saisons?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2{{ else }}$1$2{{ end }}"] - - name: re_replace - args: ["(?i)\\bSaisons?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1"] - # Episode 1 > E01 - - name: re_replace - args: ["(?i)\\b([EÉ]pisodes?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2{{ else }}$1$2{{ end }}"] - - name: re_replace - args: ["(?i)\\b[EÉ]pisodes?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1"] - # S1 à 2 > S1-2 - - name: re_replace - args: ["(?i)\\b(S?\\d*[SE])(\\d{4})([\\s\\.\\-aà]+)(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}$1$2-$4{{ else }}$1$2$3$4{{ end }}"] - - name: re_replace - args: ["(?i)\\b(S?\\d*[SE])(\\d{1,3})[\\s\\.\\-aà]+(\\d{1,3})\\b", "$1$2-$3"] - # Replace French date dd-mm-yyyy to yyyy.mm.dd - - name: re_replace - args: ["\\b(\\d{2})[\\-_\\.](\\d{2})[\\-_\\.](\\d{4})\\b", "$3.$2.$1"] - title_filtered: - text: "{{ .Result.title_normal }}" - filters: - - name: re_replace - args: ["(?i)^(?:(.+?)((?:[\\.\\-\\s_\\[]+(?:imax|(?:dvd|bd|tv)(?:rip|scr)|bluray(?:\\-?rip)?|720\\s*p?|1080\\s*p?|vof?|vost(?:fr)?|multi|vf(?:f|q)?[1-3]?|(?:true)?french|eng?)[\\.\\-\\s_\\]]*)*)([\\(\\[]?(?:20|1[7-9])\\d{2}[\\)\\]]?)(.*)$|(.*))$", "$1 $3 $2 $4 $5"] - - name: trim - - name: re_replace - args: ["(?i)(.\\b(mkv|avi|divx|xvid|mp4)\\b)$", ""] - - name: re_replace - args: ["(\\s+)", " "] - - name: trim - title_phase1: - text: "{{ if .Config.filter_title }}{{ .Result.title_filtered }}{{ else }}{{ .Result.title_normal }}{{ end }}" - title_vostfr: - text: "{{ .Result.title_phase1 }}" - filters: - - name: re_replace - args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"] - title_phase2: - text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}" - title_multilang: - text: "{{ .Result.title_phase2 }}" - filters: - - name: re_replace - args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"] - title: - text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}" - filters: - - name: re_replace - args: ["\\b(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}E$1{{ else }}$1{{ end }}"] - - name: re_replace - args: ["\\b(\\d{2,3})\\b", "{{ if .Config.enhancedAnime }}E$1{{ else }}$1{{ end }}"] - details: - selector: td:nth-child(2) > a - attribute: href - category: - selector: td:nth-child(1) > div.hidden - download: - text: "/engine/download_torrent?id={{ .Result._id }}" - date: - # unix - selector: td:nth-child(5) > div.hidden - size: - selector: td:nth-child(6) - filters: - - name: replace - args: ["o", "B"] - grabs: - selector: td:nth-child(7) - seeders: - selector: td:nth-child(8) - leechers: - selector: td:nth-child(9) - downloadvolumefactor: - text: 1 - uploadvolumefactor: - text: 1 -# engine n/a diff --git a/definitions/v10/yggtorrent.yml b/definitions/v10/yggtorrent.yml deleted file mode 100644 index c9586db7a..000000000 --- a/definitions/v10/yggtorrent.yml +++ /dev/null @@ -1,386 +0,0 @@ ---- -id: yggtorrent -name: YggTorrent -description: "YggTorrent (YGG) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL" -language: fr-FR -type: private -encoding: UTF-8 -followredirect: true -requestDelay: 2 -links: - - https://www.ygg.re/ -legacylinks: - - http://www2.yggtorrent.si/ - - https://www2.yggtorrent.si/ - - https://www.yggtorrent.li/ - - https://www4.yggtorrent.li/ - - https://www3.yggtorrent.nz/ - - https://www3.yggtorrent.re/ - - https://www3.yggtorrent.la/ - - https://www5.yggtorrent.la/ - - https://www5.yggtorrent.fi/ - - https://yggtorrent.lol/ - - https://www6.yggtorrent.lol/ - - https://www3.yggtorrent.do/ - - https://www3.yggtorrent.wtf/ - - https://www3.yggtorrent.qa/ - - https://www3.yggtorrent.cool/ - -caps: - categorymappings: - - {id: 2145, cat: TV, desc: "Film/Vidéo"} - - {id: 2178, cat: Movies/Other, desc: "Film/Vidéo : Animation"} # changed to movies, see #3553 - - {id: 2179, cat: TV/Anime, desc: "Film/Vidéo : Animation Série"} - - {id: 2180, cat: Audio/Video, desc: "Film/Vidéo : Concert"} - - {id: 2181, cat: TV/Documentary, desc: "Film/Vidéo : Documentaire"} - - {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"} - - {id: 2183, cat: Movies, desc: "Film/Vidéo : Film"} - - {id: 2184, cat: TV, desc: "Film/Vidéo : Série TV"} - - {id: 2185, cat: TV, desc: "Film/Vidéo : Spectacle"} - - {id: 2186, cat: TV/Sport, desc: "Film/Vidéo : Sport"} - - {id: 2187, cat: TV/Other, desc: "Film/Vidéo : Vidéo-clips"} - - {id: 2139, cat: Audio, desc: "Audio"} - - {id: 2147, cat: Audio, desc: "Audio : Karaoké"} - - {id: 2148, cat: Audio, desc: "Audio : Musique"} - - {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"} - - {id: 2149, cat: Audio/Other, desc: "Audio : Samples"} - - {id: 2144, cat: PC, desc: "Application"} - - {id: 2177, cat: PC/0day, desc: "Application : Autre"} - - {id: 2176, cat: PC, desc: "Application : Formation"} - - {id: 2171, cat: PC/ISO, desc: "Application : Linux"} - - {id: 2172, cat: PC/Mac, desc: "Application : MacOS"} - - {id: 2174, cat: PC/Mobile-Android, desc: "Application : Smartphone"} - - {id: 2175, cat: PC/Mobile-Android, desc: "Application : Tablette"} - - {id: 2173, cat: PC/0day, desc: "Application : Windows"} - - {id: 2142, cat: PC/Games, desc: "Jeu vidéo"} - - {id: 2167, cat: Console/Other, desc: "Jeu vidéo : Autre"} - - {id: 2159, cat: PC/Games, desc: "Jeu vidéo : Linux"} - - {id: 2160, cat: PC/Games, desc: "Jeu vidéo : MacOS"} - - {id: 2162, cat: Console/XBox One, desc: "Jeu vidéo : Microsoft"} - - {id: 2163, cat: Console/Wii, desc: "Jeu vidéo : Nintendo"} - - {id: 2165, cat: PC/Mobile-Android, desc: "Jeu vidéo : Smartphone"} - - {id: 2164, cat: Console/PS4, desc: "Jeu vidéo : Sony"} - - {id: 2166, cat: PC/Mobile-Android, desc: "Jeu vidéo : Tablette"} - - {id: 2161, cat: PC/Games, desc: "Jeu vidéo : Windows"} - - {id: 2140, cat: Books, desc: "eBook"} - - {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"} - - {id: 2152, cat: Books/EBook, desc: "eBook : Bds"} - - {id: 2153, cat: Books/Comics, desc: "eBook : Comics"} - - {id: 2154, cat: Books/EBook, desc: "eBook : Livres"} - - {id: 2155, cat: Books/Comics, desc: "eBook : Mangas"} - - {id: 2156, cat: Books/Mags, desc: "eBook : Presse"} - - {id: 2300, cat: Other, desc: "Nulled"} - - {id: 2301, cat: Other, desc: "Nulled : Wordpress"} - - {id: 2302, cat: Other, desc: "Nulled : Scripts PHP & CMS"} - - {id: 2303, cat: Other, desc: "Nulled : Mobile"} - - {id: 2304, cat: Other, desc: "Nulled : Divers"} - - {id: 2200, cat: Other, desc: "Imprimante 3D"} - - {id: 2201, cat: Other, desc: "Imprimante 3D : Objets"} - - {id: 2202, cat: Other, desc: "Imprimante 3D : Personnages"} - - {id: 2141, cat: Other, desc: "Emulation"} - - {id: 2157, cat: Other, desc: "Emulation : Emulateurs"} - - {id: 2158, cat: Other, desc: "Emulation : Roms"} - - {id: 2143, cat: Other, desc: "GPS"} - - {id: 2168, cat: Other, desc: "GPS : Applications"} - - {id: 2169, cat: Other, desc: "GPS : Cartes"} - - {id: 2170, cat: Other, desc: "GPS : Divers"} - - {id: 2188, cat: XXX, desc: "XXX"} - - {id: 2401, cat: XXX/Other, desc: "XXX : Ebooks"} - - {id: 2189, cat: XXX, desc: "XXX : Films"} - - {id: 2190, cat: XXX, desc: "XXX : Hentai"} - - {id: 2191, cat: XXX/ImageSet, desc: "XXX : Images"} - - {id: 2402, cat: XXX/Other, desc: "XXX : Jeux"} - - modes: - search: [q] - tv-search: [q, season, ep] - movie-search: [q] - music-search: [q] - book-search: [q] - allowrawsearch: true - -settings: - - name: username - type: text - label: Username - - name: password - type: password - label: Password - - name: category - type: select - label: Category - default: all - options: - all: "Tous" - 2145: "Film/Vidéo" - 2139: "Audio" - 2144: "Application" - 2142: "Jeu vidéo" - 2140: "eBook" - 2300: "Nulled" - 2200: "Imprimante 3D" - 2141: "Emulation" - 2143: "GPS" - 2188: "XXX" - - name: subcategory - type: select - label: Sub-category - default: all - options: - all: "Tous" - 2178: "Film/Vidéo : Animation" - 2179: "Film/Vidéo : Animation Série" - 2180: "Film/Vidéo : Concert" - 2181: "Film/Vidéo : Documentaire" - 2182: "Film/Vidéo : Emission TV" - 2183: "Film/Vidéo : Film" - 2184: "Film/Vidéo : Série TV" - 2185: "Film/Vidéo : Spectacle" - 2186: "Film/Vidéo : Sport" - 2187: "Film/Vidéo : Vidéo-clips" - 2147: "Audio : Karaoké" - 2148: "Audio : Musique" - 2150: "Audio : Podcast Radio" - 2149: "Audio : Samples" - 2177: "Application : Autre" - 2176: "Application : Formation" - 2171: "Application : Linux" - 2172: "Application : MacOS" - 2174: "Application : Smartphone" - 2175: "Application : Tablette" - 2173: "Application : Windows" - 2167: "Jeu vidéo : Autre" - 2159: "Jeu vidéo : Linux" - 2160: "Jeu vidéo : MacOS" - 2162: "Jeu vidéo : Microsoft" - 2163: "Jeu vidéo : Nintendo" - 2165: "Jeu vidéo : Smartphone" - 2164: "Jeu vidéo : Sony" - 2166: "Jeu vidéo : Tablette" - 2161: "Jeu vidéo : Windows" - 2151: "eBook : Audio" - 2152: "eBook : Bds" - 2153: "eBook : Comics" - 2154: "eBook : Livres" - 2155: "eBook : Mangas" - 2156: "eBook : Presse" - 2301: "Nulled : Wordpress" - 2302: "Nulled : Scripts PHP & CMS" - 2303: "Nulled : Mobile" - 2304: "Nulled : Divers" - 2201: "Imprimante 3D : Objets" - 2202: "Imprimante 3D : Personnages" - 2157: "Emulation : Emulateurs" - 2158: "Emulation : Roms" - 2168: "GPS : Applications" - 2169: "GPS : Cartes" - 2170: "GPS : Divers" - 2401: "XXX : Ebooks" - 2189: "XXX : Films" - 2190: "XXX : Hentai" - 2191: "XXX : Images" - 2402: "XXX : Jeux" - - name: info_category - type: info - label: Category and Sub-category - default: Only select a Category OR a Sub-category, leaving the other as Tous. - - name: multilang - type: checkbox - label: Replace MULTi by another language in release name - default: false - - name: multilanguage - type: select - label: Replace MULTi by this language - default: FRENCH - options: - FRENCH: FRENCH - MULTi.FRENCH: MULTi.FRENCH - ENGLISH: ENGLISH - MULTi.ENGLISH: MULTi.ENGLISH - VOSTFR: VOSTFR - MULTi.VOSTFR: MULTi.VOSTFR - - name: vostfr - type: checkbox - label: Replace VOSTFR and SUBFRENCH with ENGLISH - default: false - - name: filter_title - type: checkbox - label: Normalize release names by moving year after the title - default: false - - name: strip_season - type: checkbox - label: Strip season only (e.g. S01) from searches, as tracker does not support partial matches - default: true - - name: enhancedAnime - type: checkbox - label: Enhance Sonarr compatibility with anime by renaming episodes (xxx > Exxx). Can disturb movies search (e.g. Back To The Future 3 > Back To The Future E3). - default: false - - name: enhancedAnime4 - type: checkbox - label: Extend the Sonarr compatibility with anime up to 4 digits. This WILL break all searches and result titles which contain years. - default: false - - name: sort - type: select - label: Sort requested from site - default: publish_date - options: - publish_date: created - seed: seeders - size: size - name: title - - name: type - type: select - label: Order requested from site - default: desc - options: - desc: desc - asc: asc - - name: info_flaresolverr - type: info_flaresolverr - -login: - method: form - path: /auth/login - form: form.login-form - inputs: - id: "{{ .Config.username }}" - pass: "{{ .Config.password }}" - error: - - selector: p.error-form - - selector: a[href$="/user/disabled"] - message: - # Compte Inactif - selector: a[href$="/user/disabled"] strong - filters: - - name: append - args: " - Dès que vous passez en dessous d'un ratio inférieur à 1, Votre compte devient inactif et le site vous coupe les téléchargements." - test: - path: / - selector: a[href$="/user/logout"] - -search: - paths: - - path: engine/search - inputs: - name: "{{ .Keywords }}" - followredirect: true - - path: engine/search - inputs: - $raw: "name={{ if .Keywords }}{{ re_replace .Keywords \"(?i)S0?(\\d{1,2})\" \"Saison $1\" }}{{ else }}&page=50{{ end }}" - followredirect: true - inputs: - $raw: "{{ if eq .Config.subcategory \"all\" }}category={{ .Config.category }}{{ else }}sub_category={{ .Config.subcategory }}{{ end }}" - do: search - order: "{{ .Config.type }}" - sort: "{{ .Config.sort }}" - - keywordsfilters: - - name: re_replace # 1234 > E1234 - args: ["\\b(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}E$1{{ else }}$1{{ end }}"] - - name: re_replace # 123 > E123 - args: ["\\b(\\d{2,3})\\b", "{{ if .Config.enhancedAnime }}E$1{{ else }}$1{{ end }}"] - # fix date search and workaround for internal YGG issues - - name: re_replace - args: ["[\\\\\\-\\.\\/!\\s]+", " "] - # strip season as site does not support partial matches - - name: re_replace - args: ["(?i)\\b(S\\d{1,3})\\b", "{{ if .Config.strip_season }}{{ else }}$1{{ end }}"] - - name: trim - # put each word in quotations to prevent exact phrase search - - name: re_replace - args: ["([^\\s]+)", "\"$1\""] - - rows: - selector: table.table > tbody > tr - - fields: - _id: - selector: td:nth-child(2) > a - attribute: href - filters: - - name: regexp - args: "/(\\d+)-" - title_normal: - selector: td:nth-child(2) > a - filters: - # Saison 1 Episode 2 > S01E02 - - name: re_replace - args: ["(?i)\\b(Saisons?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)([\\s\\.]*[EÉ]pisodes?[\\s\\.]*)(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2E$4{{ else }}$1$2$3$4{{ end }}"] - - name: re_replace - args: ["(?i)\\bSaisons?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)[\\s\\.]*[EÉ]pisodes?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1E$2"] - # Saison 1 > S01 - - name: re_replace - args: ["(?i)\\b(Saisons?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2{{ else }}$1$2{{ end }}"] - - name: re_replace - args: ["(?i)\\bSaisons?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1"] - # Episode 1 > E01 - - name: re_replace - args: ["(?i)\\b([EÉ]pisodes?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2{{ else }}$1$2{{ end }}"] - - name: re_replace - args: ["(?i)\\b[EÉ]pisodes?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1"] - # S1 à 2 > S1-2 - - name: re_replace - args: ["(?i)\\b(S?\\d*[SE])(\\d{4})([\\s\\.\\-aà]+)(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}$1$2-$4{{ else }}$1$2$3$4{{ end }}"] - - name: re_replace - args: ["(?i)\\b(S?\\d*[SE])(\\d{1,3})[\\s\\.\\-aà]+(\\d{1,3})\\b", "$1$2-$3"] - # Replace French date dd-mm-yyyy to yyyy.mm.dd - - name: re_replace - args: ["\\b(\\d{2})[\\-_\\.](\\d{2})[\\-_\\.](\\d{4})\\b", "$3.$2.$1"] - title_filtered: - text: "{{ .Result.title_normal }}" - filters: - - name: re_replace - args: ["(?i)^(?:(.+?)((?:[\\.\\-\\s_\\[]+(?:imax|(?:dvd|bd|tv)(?:rip|scr)|bluray(?:\\-?rip)?|720\\s*p?|1080\\s*p?|vof?|vost(?:fr)?|multi|vf(?:f|q)?[1-3]?|(?:true)?french|eng?)[\\.\\-\\s_\\]]*)*)([\\(\\[]?(?:20|1[7-9])\\d{2}[\\)\\]]?)(.*)$|(.*))$", "$1 $3 $2 $4 $5"] - - name: trim - - name: re_replace - args: ["(?i)(.\\b(mkv|avi|divx|xvid|mp4)\\b)$", ""] - - name: re_replace - args: ["(\\s+)", " "] - - name: trim - title_phase1: - text: "{{ if .Config.filter_title }}{{ .Result.title_filtered }}{{ else }}{{ .Result.title_normal }}{{ end }}" - title_vostfr: - text: "{{ .Result.title_phase1 }}" - filters: - - name: re_replace - args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"] - title_phase2: - text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}" - title_multilang: - text: "{{ .Result.title_phase2 }}" - filters: - - name: re_replace - args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"] - title: - text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}" - filters: - - name: re_replace - args: ["\\b(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}E$1{{ else }}$1{{ end }}"] - - name: re_replace - args: ["\\b(\\d{2,3})\\b", "{{ if .Config.enhancedAnime }}E$1{{ else }}$1{{ end }}"] - details: - selector: td:nth-child(2) > a - attribute: href - category: - selector: td:nth-child(1) > div.hidden - download: - text: "/engine/download_torrent?id={{ .Result._id }}" - date: - # unix - selector: td:nth-child(5) > div.hidden - size: - selector: td:nth-child(6) - filters: - - name: replace - args: ["o", "B"] - grabs: - selector: td:nth-child(7) - seeders: - selector: td:nth-child(8) - leechers: - selector: td:nth-child(9) - downloadvolumefactor: - text: 1 - uploadvolumefactor: - text: 1 -# engine n/a diff --git a/definitions/v9/yggcookie.yml b/definitions/v9/yggcookie.yml deleted file mode 100644 index 7cc1a95f4..000000000 --- a/definitions/v9/yggcookie.yml +++ /dev/null @@ -1,387 +0,0 @@ ---- -id: yggcookie -name: YGG cookie -description: "YggTorrent (YGG) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL. This indexer uses cookie login." -language: fr-FR -type: private -encoding: UTF-8 -followredirect: true -requestDelay: 2 -links: - - https://www.ygg.re/ -legacylinks: - - http://www2.yggtorrent.si/ - - https://www2.yggtorrent.si/ - - https://www.yggtorrent.li/ - - https://www4.yggtorrent.li/ - - https://www3.yggtorrent.nz/ - - https://www3.yggtorrent.re/ - - https://www3.yggtorrent.la/ - - https://www5.yggtorrent.la/ - - https://www5.yggtorrent.fi/ - - https://yggtorrent.lol/ - - https://www6.yggtorrent.lol/ - - https://www3.yggtorrent.do/ - - https://www3.yggtorrent.wtf/ - - https://www3.yggtorrent.qa/ - - https://www3.yggtorrent.cool/ - -caps: - categorymappings: - - {id: 2145, cat: TV, desc: "Film/Vidéo"} - - {id: 2178, cat: Movies/Other, desc: "Film/Vidéo : Animation"} # changed to movies, see #3553 - - {id: 2179, cat: TV/Anime, desc: "Film/Vidéo : Animation Série"} - - {id: 2180, cat: Audio/Video, desc: "Film/Vidéo : Concert"} - - {id: 2181, cat: TV/Documentary, desc: "Film/Vidéo : Documentaire"} - - {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"} - - {id: 2183, cat: Movies, desc: "Film/Vidéo : Film"} - - {id: 2184, cat: TV, desc: "Film/Vidéo : Série TV"} - - {id: 2185, cat: TV, desc: "Film/Vidéo : Spectacle"} - - {id: 2186, cat: TV/Sport, desc: "Film/Vidéo : Sport"} - - {id: 2187, cat: TV/Other, desc: "Film/Vidéo : Vidéo-clips"} - - {id: 2139, cat: Audio, desc: "Audio"} - - {id: 2147, cat: Audio, desc: "Audio : Karaoké"} - - {id: 2148, cat: Audio, desc: "Audio : Musique"} - - {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"} - - {id: 2149, cat: Audio/Other, desc: "Audio : Samples"} - - {id: 2144, cat: PC, desc: "Application"} - - {id: 2177, cat: PC/0day, desc: "Application : Autre"} - - {id: 2176, cat: PC, desc: "Application : Formation"} - - {id: 2171, cat: PC/ISO, desc: "Application : Linux"} - - {id: 2172, cat: PC/Mac, desc: "Application : MacOS"} - - {id: 2174, cat: PC/Mobile-Android, desc: "Application : Smartphone"} - - {id: 2175, cat: PC/Mobile-Android, desc: "Application : Tablette"} - - {id: 2173, cat: PC/0day, desc: "Application : Windows"} - - {id: 2142, cat: PC/Games, desc: "Jeu vidéo"} - - {id: 2167, cat: Console/Other, desc: "Jeu vidéo : Autre"} - - {id: 2159, cat: PC/Games, desc: "Jeu vidéo : Linux"} - - {id: 2160, cat: PC/Games, desc: "Jeu vidéo : MacOS"} - - {id: 2162, cat: Console/XBox One, desc: "Jeu vidéo : Microsoft"} - - {id: 2163, cat: Console/Wii, desc: "Jeu vidéo : Nintendo"} - - {id: 2165, cat: PC/Mobile-Android, desc: "Jeu vidéo : Smartphone"} - - {id: 2164, cat: Console/PS4, desc: "Jeu vidéo : Sony"} - - {id: 2166, cat: PC/Mobile-Android, desc: "Jeu vidéo : Tablette"} - - {id: 2161, cat: PC/Games, desc: "Jeu vidéo : Windows"} - - {id: 2140, cat: Books, desc: "eBook"} - - {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"} - - {id: 2152, cat: Books/EBook, desc: "eBook : Bds"} - - {id: 2153, cat: Books/Comics, desc: "eBook : Comics"} - - {id: 2154, cat: Books/EBook, desc: "eBook : Livres"} - - {id: 2155, cat: Books/Comics, desc: "eBook : Mangas"} - - {id: 2156, cat: Books/Mags, desc: "eBook : Presse"} - - {id: 2300, cat: Other, desc: "Nulled"} - - {id: 2301, cat: Other, desc: "Nulled : Wordpress"} - - {id: 2302, cat: Other, desc: "Nulled : Scripts PHP & CMS"} - - {id: 2303, cat: Other, desc: "Nulled : Mobile"} - - {id: 2304, cat: Other, desc: "Nulled : Divers"} - - {id: 2200, cat: Other, desc: "Imprimante 3D"} - - {id: 2201, cat: Other, desc: "Imprimante 3D : Objets"} - - {id: 2202, cat: Other, desc: "Imprimante 3D : Personnages"} - - {id: 2141, cat: Other, desc: "Emulation"} - - {id: 2157, cat: Other, desc: "Emulation : Emulateurs"} - - {id: 2158, cat: Other, desc: "Emulation : Roms"} - - {id: 2143, cat: Other, desc: "GPS"} - - {id: 2168, cat: Other, desc: "GPS : Applications"} - - {id: 2169, cat: Other, desc: "GPS : Cartes"} - - {id: 2170, cat: Other, desc: "GPS : Divers"} - - {id: 2188, cat: XXX, desc: "XXX"} - - {id: 2401, cat: XXX/Other, desc: "XXX : Ebooks"} - - {id: 2189, cat: XXX, desc: "XXX : Films"} - - {id: 2190, cat: XXX, desc: "XXX : Hentai"} - - {id: 2191, cat: XXX/ImageSet, desc: "XXX : Images"} - - {id: 2402, cat: XXX/Other, desc: "XXX : Jeux"} - - modes: - search: [q] - tv-search: [q, season, ep] - movie-search: [q] - music-search: [q] - book-search: [q] - allowrawsearch: true - -settings: - - name: cookie - type: text - label: Cookie - - name: info_cookie - type: info - label: How to get the Cookie - default: "
  1. Login to this tracker with your browser
  2. Open the DevTools panel by pressing F12
  3. Select the Network tab
  4. Click on the Doc button (Chrome Browser) or HTML button (FireFox)
  5. Refresh the page by pressing F5
  6. Click on the first row entry
  7. Select the Headers tab on the Right panel
  8. Find 'cookie:' in the Request Headers section
  9. Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
" - - name: useragent - type: text - label: User-Agent - - name: info_useragent - type: info - label: How to get the User-Agent - default: "
  1. From the same place you fetched the cookie,
  2. Find 'user-agent:' in the Request Headers section
  3. Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
" - - name: category - type: select - label: Category - default: all - options: - all: "Tous" - 2145: "Film/Vidéo" - 2139: "Audio" - 2144: "Application" - 2142: "Jeu vidéo" - 2140: "eBook" - 2300: "Nulled" - 2200: "Imprimante 3D" - 2141: "Emulation" - 2143: "GPS" - 2188: "XXX" - - name: subcategory - type: select - label: Sub-category - default: all - options: - all: "Tous" - 2178: "Film/Vidéo : Animation" - 2179: "Film/Vidéo : Animation Série" - 2180: "Film/Vidéo : Concert" - 2181: "Film/Vidéo : Documentaire" - 2182: "Film/Vidéo : Emission TV" - 2183: "Film/Vidéo : Film" - 2184: "Film/Vidéo : Série TV" - 2185: "Film/Vidéo : Spectacle" - 2186: "Film/Vidéo : Sport" - 2187: "Film/Vidéo : Vidéo-clips" - 2147: "Audio : Karaoké" - 2148: "Audio : Musique" - 2150: "Audio : Podcast Radio" - 2149: "Audio : Samples" - 2177: "Application : Autre" - 2176: "Application : Formation" - 2171: "Application : Linux" - 2172: "Application : MacOS" - 2174: "Application : Smartphone" - 2175: "Application : Tablette" - 2173: "Application : Windows" - 2167: "Jeu vidéo : Autre" - 2159: "Jeu vidéo : Linux" - 2160: "Jeu vidéo : MacOS" - 2162: "Jeu vidéo : Microsoft" - 2163: "Jeu vidéo : Nintendo" - 2165: "Jeu vidéo : Smartphone" - 2164: "Jeu vidéo : Sony" - 2166: "Jeu vidéo : Tablette" - 2161: "Jeu vidéo : Windows" - 2151: "eBook : Audio" - 2152: "eBook : Bds" - 2153: "eBook : Comics" - 2154: "eBook : Livres" - 2155: "eBook : Mangas" - 2156: "eBook : Presse" - 2301: "Nulled : Wordpress" - 2302: "Nulled : Scripts PHP & CMS" - 2303: "Nulled : Mobile" - 2304: "Nulled : Divers" - 2201: "Imprimante 3D : Objets" - 2202: "Imprimante 3D : Personnages" - 2157: "Emulation : Emulateurs" - 2158: "Emulation : Roms" - 2168: "GPS : Applications" - 2169: "GPS : Cartes" - 2170: "GPS : Divers" - 2401: "XXX : Ebooks" - 2189: "XXX : Films" - 2190: "XXX : Hentai" - 2191: "XXX : Images" - 2402: "XXX : Jeux" - - name: info_category - type: info - label: Category and Sub-category - default: Only select a Category OR a Sub-category, leaving the other as Tous. - - name: multilang - type: checkbox - label: Replace MULTi by another language in release name - default: false - - name: multilanguage - type: select - label: Replace MULTi by this language - default: FRENCH - options: - FRENCH: FRENCH - MULTi.FRENCH: MULTi.FRENCH - ENGLISH: ENGLISH - MULTi.ENGLISH: MULTi.ENGLISH - VOSTFR: VOSTFR - MULTi.VOSTFR: MULTi.VOSTFR - - name: vostfr - type: checkbox - label: Replace VOSTFR and SUBFRENCH with ENGLISH - default: false - - name: filter_title - type: checkbox - label: Normalize release names by moving year after the title - default: false - - name: strip_season - type: checkbox - label: Strip season only (e.g. S01) from searches, as tracker does not support partial matches - default: true - - name: enhancedAnime - type: checkbox - label: Enhance Sonarr compatibility with anime by renaming episodes (xxx > Exxx). Can disturb movies search (e.g. Back To The Future 3 > Back To The Future E3). - default: false - - name: enhancedAnime4 - type: checkbox - label: Extend the Sonarr compatibility with anime up to 4 digits. This WILL break all searches and result titles which contain years. - default: false - - name: sort - type: select - label: Sort requested from site - default: publish_date - options: - publish_date: created - seed: seeders - size: size - name: title - - name: type - type: select - label: Order requested from site - default: desc - options: - desc: desc - asc: asc - - name: flaresolverr - type: info - label: FlareSolverr - default: This site may use Cloudflare DDoS Protection, therefore Prowlarr may require FlareSolver added as a proxy in Prowlarr (Settings => Indexers) to access it. - -login: - method: cookie - inputs: - cookie: "{{ .Config.cookie }}" - test: - path: / - selector: a[href$="/user/logout"] - -search: - paths: - - path: engine/search - inputs: - name: "{{ .Keywords }}" - followredirect: true - - path: engine/search - inputs: - $raw: "name={{ if .Keywords }}{{ re_replace .Keywords \"(?i)S0?(\\d{1,2})\" \"Saison $1\" }}{{ else }}&page=50{{ end }}" - followredirect: true - inputs: - $raw: "{{ if eq .Config.subcategory \"all\" }}category={{ .Config.category }}{{ else }}sub_category={{ .Config.subcategory }}{{ end }}" - do: search - order: "{{ .Config.type }}" - sort: "{{ .Config.sort }}" - - headers: - User-Agent: ["{{ .Config.useragent }}"] - - keywordsfilters: - - name: re_replace # 1234 > E1234 - args: ["\\b(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}E$1{{ else }}$1{{ end }}"] - - name: re_replace # 123 > E123 - args: ["\\b(\\d{2,3})\\b", "{{ if .Config.enhancedAnime }}E$1{{ else }}$1{{ end }}"] - # fix date search and workaround for internal YGG issues - - name: re_replace - args: ["[\\\\\\-\\.\\/!\\s]+", " "] - # strip season as site does not support partial matches - - name: re_replace - args: ["(?i)\\b(S\\d{1,3})\\b", "{{ if .Config.strip_season }}{{ else }}$1{{ end }}"] - - name: trim - # put each word in quotations to prevent exact phrase search - - name: re_replace - args: ["([^\\s]+)", "\"$1\""] - - rows: - selector: table.table > tbody > tr - - fields: - _id: - selector: td:nth-child(2) > a - attribute: href - filters: - - name: regexp - args: "/(\\d+)-" - title_normal: - selector: td:nth-child(2) > a - filters: - # Saison 1 Episode 2 > S01E02 - - name: re_replace - args: ["(?i)\\b(Saisons?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)([\\s\\.]*[EÉ]pisodes?[\\s\\.]*)(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2E$4{{ else }}$1$2$3$4{{ end }}"] - - name: re_replace - args: ["(?i)\\bSaisons?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)[\\s\\.]*[EÉ]pisodes?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1E$2"] - # Saison 1 > S01 - - name: re_replace - args: ["(?i)\\b(Saisons?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2{{ else }}$1$2{{ end }}"] - - name: re_replace - args: ["(?i)\\bSaisons?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1"] - # Episode 1 > E01 - - name: re_replace - args: ["(?i)\\b([EÉ]pisodes?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2{{ else }}$1$2{{ end }}"] - - name: re_replace - args: ["(?i)\\b[EÉ]pisodes?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1"] - # S1 à 2 > S1-2 - - name: re_replace - args: ["(?i)\\b(S?\\d*[SE])(\\d{4})([\\s\\.\\-aà]+)(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}$1$2-$4{{ else }}$1$2$3$4{{ end }}"] - - name: re_replace - args: ["(?i)\\b(S?\\d*[SE])(\\d{1,3})[\\s\\.\\-aà]+(\\d{1,3})\\b", "$1$2-$3"] - # Replace French date dd-mm-yyyy to yyyy.mm.dd - - name: re_replace - args: ["\\b(\\d{2})[\\-_\\.](\\d{2})[\\-_\\.](\\d{4})\\b", "$3.$2.$1"] - title_filtered: - text: "{{ .Result.title_normal }}" - filters: - - name: re_replace - args: ["(?i)^(?:(.+?)((?:[\\.\\-\\s_\\[]+(?:imax|(?:dvd|bd|tv)(?:rip|scr)|bluray(?:\\-?rip)?|720\\s*p?|1080\\s*p?|vof?|vost(?:fr)?|multi|vf(?:f|q)?[1-3]?|(?:true)?french|eng?)[\\.\\-\\s_\\]]*)*)([\\(\\[]?(?:20|1[7-9])\\d{2}[\\)\\]]?)(.*)$|(.*))$", "$1 $3 $2 $4 $5"] - - name: trim - - name: re_replace - args: ["(?i)(.\\b(mkv|avi|divx|xvid|mp4)\\b)$", ""] - - name: re_replace - args: ["(\\s+)", " "] - - name: trim - title_phase1: - text: "{{ if .Config.filter_title }}{{ .Result.title_filtered }}{{ else }}{{ .Result.title_normal }}{{ end }}" - title_vostfr: - text: "{{ .Result.title_phase1 }}" - filters: - - name: re_replace - args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"] - title_phase2: - text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}" - title_multilang: - text: "{{ .Result.title_phase2 }}" - filters: - - name: re_replace - args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"] - title: - text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}" - filters: - - name: re_replace - args: ["\\b(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}E$1{{ else }}$1{{ end }}"] - - name: re_replace - args: ["\\b(\\d{2,3})\\b", "{{ if .Config.enhancedAnime }}E$1{{ else }}$1{{ end }}"] - details: - selector: td:nth-child(2) > a - attribute: href - category: - selector: td:nth-child(1) > div.hidden - download: - text: "/engine/download_torrent?id={{ .Result._id }}" - date: - # unix - selector: td:nth-child(5) > div.hidden - size: - selector: td:nth-child(6) - filters: - - name: replace - args: ["o", "B"] - grabs: - selector: td:nth-child(7) - seeders: - selector: td:nth-child(8) - leechers: - selector: td:nth-child(9) - downloadvolumefactor: - text: 1 - uploadvolumefactor: - text: 1 -# engine n/a diff --git a/definitions/v9/yggtorrent.yml b/definitions/v9/yggtorrent.yml deleted file mode 100644 index ed70dcac0..000000000 --- a/definitions/v9/yggtorrent.yml +++ /dev/null @@ -1,388 +0,0 @@ ---- -id: yggtorrent -name: YggTorrent -description: "YggTorrent (YGG) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL" -language: fr-FR -type: private -encoding: UTF-8 -followredirect: true -requestDelay: 2 -links: - - https://www.ygg.re/ -legacylinks: - - http://www2.yggtorrent.si/ - - https://www2.yggtorrent.si/ - - https://www.yggtorrent.li/ - - https://www4.yggtorrent.li/ - - https://www3.yggtorrent.nz/ - - https://www3.yggtorrent.re/ - - https://www3.yggtorrent.la/ - - https://www5.yggtorrent.la/ - - https://www5.yggtorrent.fi/ - - https://yggtorrent.lol/ - - https://www6.yggtorrent.lol/ - - https://www3.yggtorrent.do/ - - https://www3.yggtorrent.wtf/ - - https://www3.yggtorrent.qa/ - - https://www3.yggtorrent.cool/ - -caps: - categorymappings: - - {id: 2145, cat: TV, desc: "Film/Vidéo"} - - {id: 2178, cat: Movies/Other, desc: "Film/Vidéo : Animation"} # changed to movies, see #3553 - - {id: 2179, cat: TV/Anime, desc: "Film/Vidéo : Animation Série"} - - {id: 2180, cat: Audio/Video, desc: "Film/Vidéo : Concert"} - - {id: 2181, cat: TV/Documentary, desc: "Film/Vidéo : Documentaire"} - - {id: 2182, cat: TV, desc: "Film/Vidéo : Emission TV"} - - {id: 2183, cat: Movies, desc: "Film/Vidéo : Film"} - - {id: 2184, cat: TV, desc: "Film/Vidéo : Série TV"} - - {id: 2185, cat: TV, desc: "Film/Vidéo : Spectacle"} - - {id: 2186, cat: TV/Sport, desc: "Film/Vidéo : Sport"} - - {id: 2187, cat: TV/Other, desc: "Film/Vidéo : Vidéo-clips"} - - {id: 2139, cat: Audio, desc: "Audio"} - - {id: 2147, cat: Audio, desc: "Audio : Karaoké"} - - {id: 2148, cat: Audio, desc: "Audio : Musique"} - - {id: 2150, cat: Audio, desc: "Audio : Podcast Radio"} - - {id: 2149, cat: Audio/Other, desc: "Audio : Samples"} - - {id: 2144, cat: PC, desc: "Application"} - - {id: 2177, cat: PC/0day, desc: "Application : Autre"} - - {id: 2176, cat: PC, desc: "Application : Formation"} - - {id: 2171, cat: PC/ISO, desc: "Application : Linux"} - - {id: 2172, cat: PC/Mac, desc: "Application : MacOS"} - - {id: 2174, cat: PC/Mobile-Android, desc: "Application : Smartphone"} - - {id: 2175, cat: PC/Mobile-Android, desc: "Application : Tablette"} - - {id: 2173, cat: PC/0day, desc: "Application : Windows"} - - {id: 2142, cat: PC/Games, desc: "Jeu vidéo"} - - {id: 2167, cat: Console/Other, desc: "Jeu vidéo : Autre"} - - {id: 2159, cat: PC/Games, desc: "Jeu vidéo : Linux"} - - {id: 2160, cat: PC/Games, desc: "Jeu vidéo : MacOS"} - - {id: 2162, cat: Console/XBox One, desc: "Jeu vidéo : Microsoft"} - - {id: 2163, cat: Console/Wii, desc: "Jeu vidéo : Nintendo"} - - {id: 2165, cat: PC/Mobile-Android, desc: "Jeu vidéo : Smartphone"} - - {id: 2164, cat: Console/PS4, desc: "Jeu vidéo : Sony"} - - {id: 2166, cat: PC/Mobile-Android, desc: "Jeu vidéo : Tablette"} - - {id: 2161, cat: PC/Games, desc: "Jeu vidéo : Windows"} - - {id: 2140, cat: Books, desc: "eBook"} - - {id: 2151, cat: Audio/Audiobook, desc: "eBook : Audio"} - - {id: 2152, cat: Books/EBook, desc: "eBook : Bds"} - - {id: 2153, cat: Books/Comics, desc: "eBook : Comics"} - - {id: 2154, cat: Books/EBook, desc: "eBook : Livres"} - - {id: 2155, cat: Books/Comics, desc: "eBook : Mangas"} - - {id: 2156, cat: Books/Mags, desc: "eBook : Presse"} - - {id: 2300, cat: Other, desc: "Nulled"} - - {id: 2301, cat: Other, desc: "Nulled : Wordpress"} - - {id: 2302, cat: Other, desc: "Nulled : Scripts PHP & CMS"} - - {id: 2303, cat: Other, desc: "Nulled : Mobile"} - - {id: 2304, cat: Other, desc: "Nulled : Divers"} - - {id: 2200, cat: Other, desc: "Imprimante 3D"} - - {id: 2201, cat: Other, desc: "Imprimante 3D : Objets"} - - {id: 2202, cat: Other, desc: "Imprimante 3D : Personnages"} - - {id: 2141, cat: Other, desc: "Emulation"} - - {id: 2157, cat: Other, desc: "Emulation : Emulateurs"} - - {id: 2158, cat: Other, desc: "Emulation : Roms"} - - {id: 2143, cat: Other, desc: "GPS"} - - {id: 2168, cat: Other, desc: "GPS : Applications"} - - {id: 2169, cat: Other, desc: "GPS : Cartes"} - - {id: 2170, cat: Other, desc: "GPS : Divers"} - - {id: 2188, cat: XXX, desc: "XXX"} - - {id: 2401, cat: XXX/Other, desc: "XXX : Ebooks"} - - {id: 2189, cat: XXX, desc: "XXX : Films"} - - {id: 2190, cat: XXX, desc: "XXX : Hentai"} - - {id: 2191, cat: XXX/ImageSet, desc: "XXX : Images"} - - {id: 2402, cat: XXX/Other, desc: "XXX : Jeux"} - - modes: - search: [q] - tv-search: [q, season, ep] - movie-search: [q] - music-search: [q] - book-search: [q] - allowrawsearch: true - -settings: - - name: username - type: text - label: Username - - name: password - type: password - label: Password - - name: category - type: select - label: Category - default: all - options: - all: "Tous" - 2145: "Film/Vidéo" - 2139: "Audio" - 2144: "Application" - 2142: "Jeu vidéo" - 2140: "eBook" - 2300: "Nulled" - 2200: "Imprimante 3D" - 2141: "Emulation" - 2143: "GPS" - 2188: "XXX" - - name: subcategory - type: select - label: Sub-category - default: all - options: - all: "Tous" - 2178: "Film/Vidéo : Animation" - 2179: "Film/Vidéo : Animation Série" - 2180: "Film/Vidéo : Concert" - 2181: "Film/Vidéo : Documentaire" - 2182: "Film/Vidéo : Emission TV" - 2183: "Film/Vidéo : Film" - 2184: "Film/Vidéo : Série TV" - 2185: "Film/Vidéo : Spectacle" - 2186: "Film/Vidéo : Sport" - 2187: "Film/Vidéo : Vidéo-clips" - 2147: "Audio : Karaoké" - 2148: "Audio : Musique" - 2150: "Audio : Podcast Radio" - 2149: "Audio : Samples" - 2177: "Application : Autre" - 2176: "Application : Formation" - 2171: "Application : Linux" - 2172: "Application : MacOS" - 2174: "Application : Smartphone" - 2175: "Application : Tablette" - 2173: "Application : Windows" - 2167: "Jeu vidéo : Autre" - 2159: "Jeu vidéo : Linux" - 2160: "Jeu vidéo : MacOS" - 2162: "Jeu vidéo : Microsoft" - 2163: "Jeu vidéo : Nintendo" - 2165: "Jeu vidéo : Smartphone" - 2164: "Jeu vidéo : Sony" - 2166: "Jeu vidéo : Tablette" - 2161: "Jeu vidéo : Windows" - 2151: "eBook : Audio" - 2152: "eBook : Bds" - 2153: "eBook : Comics" - 2154: "eBook : Livres" - 2155: "eBook : Mangas" - 2156: "eBook : Presse" - 2301: "Nulled : Wordpress" - 2302: "Nulled : Scripts PHP & CMS" - 2303: "Nulled : Mobile" - 2304: "Nulled : Divers" - 2201: "Imprimante 3D : Objets" - 2202: "Imprimante 3D : Personnages" - 2157: "Emulation : Emulateurs" - 2158: "Emulation : Roms" - 2168: "GPS : Applications" - 2169: "GPS : Cartes" - 2170: "GPS : Divers" - 2401: "XXX : Ebooks" - 2189: "XXX : Films" - 2190: "XXX : Hentai" - 2191: "XXX : Images" - 2402: "XXX : Jeux" - - name: info_category - type: info - label: Category and Sub-category - default: Only select a Category OR a Sub-category, leaving the other as Tous. - - name: multilang - type: checkbox - label: Replace MULTi by another language in release name - default: false - - name: multilanguage - type: select - label: Replace MULTi by this language - default: FRENCH - options: - FRENCH: FRENCH - MULTi.FRENCH: MULTi.FRENCH - ENGLISH: ENGLISH - MULTi.ENGLISH: MULTi.ENGLISH - VOSTFR: VOSTFR - MULTi.VOSTFR: MULTi.VOSTFR - - name: vostfr - type: checkbox - label: Replace VOSTFR and SUBFRENCH with ENGLISH - default: false - - name: filter_title - type: checkbox - label: Normalize release names by moving year after the title - default: false - - name: strip_season - type: checkbox - label: Strip season only (e.g. S01) from searches, as tracker does not support partial matches - default: true - - name: enhancedAnime - type: checkbox - label: Enhance Sonarr compatibility with anime by renaming episodes (xxx > Exxx). Can disturb movies search (e.g. Back To The Future 3 > Back To The Future E3). - default: false - - name: enhancedAnime4 - type: checkbox - label: Extend the Sonarr compatibility with anime up to 4 digits. This WILL break all searches and result titles which contain years. - default: false - - name: sort - type: select - label: Sort requested from site - default: publish_date - options: - publish_date: created - seed: seeders - size: size - name: title - - name: type - type: select - label: Order requested from site - default: desc - options: - desc: desc - asc: asc - - name: flaresolverr - type: info - label: FlareSolverr - default: This site may use Cloudflare DDoS Protection, therefore Prowlarr may require FlareSolver added as a proxy in Prowlarr (Settings => Indexers) to access it. - -login: - method: form - path: /auth/login - form: form.login-form - inputs: - id: "{{ .Config.username }}" - pass: "{{ .Config.password }}" - error: - - selector: p.error-form - - selector: a[href$="/user/disabled"] - message: - # Compte Inactif - selector: a[href$="/user/disabled"] strong - filters: - - name: append - args: " - Dès que vous passez en dessous d'un ratio inférieur à 1, Votre compte devient inactif et le site vous coupe les téléchargements." - test: - path: / - selector: a[href$="/user/logout"] - -search: - paths: - - path: engine/search - inputs: - name: "{{ .Keywords }}" - followredirect: true - - path: engine/search - inputs: - $raw: "name={{ if .Keywords }}{{ re_replace .Keywords \"(?i)S0?(\\d{1,2})\" \"Saison $1\" }}{{ else }}&page=50{{ end }}" - followredirect: true - inputs: - $raw: "{{ if eq .Config.subcategory \"all\" }}category={{ .Config.category }}{{ else }}sub_category={{ .Config.subcategory }}{{ end }}" - do: search - order: "{{ .Config.type }}" - sort: "{{ .Config.sort }}" - - keywordsfilters: - - name: re_replace # 1234 > E1234 - args: ["\\b(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}E$1{{ else }}$1{{ end }}"] - - name: re_replace # 123 > E123 - args: ["\\b(\\d{2,3})\\b", "{{ if .Config.enhancedAnime }}E$1{{ else }}$1{{ end }}"] - # fix date search and workaround for internal YGG issues - - name: re_replace - args: ["[\\\\\\-\\.\\/!\\s]+", " "] - # strip season as site does not support partial matches - - name: re_replace - args: ["(?i)\\b(S\\d{1,3})\\b", "{{ if .Config.strip_season }}{{ else }}$1{{ end }}"] - - name: trim - # put each word in quotations to prevent exact phrase search - - name: re_replace - args: ["([^\\s]+)", "\"$1\""] - - rows: - selector: table.table > tbody > tr - - fields: - _id: - selector: td:nth-child(2) > a - attribute: href - filters: - - name: regexp - args: "/(\\d+)-" - title_normal: - selector: td:nth-child(2) > a - filters: - # Saison 1 Episode 2 > S01E02 - - name: re_replace - args: ["(?i)\\b(Saisons?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)([\\s\\.]*[EÉ]pisodes?[\\s\\.]*)(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2E$4{{ else }}$1$2$3$4{{ end }}"] - - name: re_replace - args: ["(?i)\\bSaisons?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)[\\s\\.]*[EÉ]pisodes?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1E$2"] - # Saison 1 > S01 - - name: re_replace - args: ["(?i)\\b(Saisons?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2{{ else }}$1$2{{ end }}"] - - name: re_replace - args: ["(?i)\\bSaisons?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1"] - # Episode 1 > E01 - - name: re_replace - args: ["(?i)\\b([EÉ]pisodes?[\\s\\.]*)(\\d{4}(?:[\\s\\.\\-aà]+\\d{4})?)\\b", "{{ if .Config.enhancedAnime4 }}S$2{{ else }}$1$2{{ end }}"] - - name: re_replace - args: ["(?i)\\b[EÉ]pisodes?[\\s\\.]*(\\d{1,3}(?:[\\s\\.\\-aà]+\\d{1,3})?)\\b", "S$1"] - # S1 à 2 > S1-2 - - name: re_replace - args: ["(?i)\\b(S?\\d*[SE])(\\d{4})([\\s\\.\\-aà]+)(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}$1$2-$4{{ else }}$1$2$3$4{{ end }}"] - - name: re_replace - args: ["(?i)\\b(S?\\d*[SE])(\\d{1,3})[\\s\\.\\-aà]+(\\d{1,3})\\b", "$1$2-$3"] - # Replace French date dd-mm-yyyy to yyyy.mm.dd - - name: re_replace - args: ["\\b(\\d{2})[\\-_\\.](\\d{2})[\\-_\\.](\\d{4})\\b", "$3.$2.$1"] - title_filtered: - text: "{{ .Result.title_normal }}" - filters: - - name: re_replace - args: ["(?i)^(?:(.+?)((?:[\\.\\-\\s_\\[]+(?:imax|(?:dvd|bd|tv)(?:rip|scr)|bluray(?:\\-?rip)?|720\\s*p?|1080\\s*p?|vof?|vost(?:fr)?|multi|vf(?:f|q)?[1-3]?|(?:true)?french|eng?)[\\.\\-\\s_\\]]*)*)([\\(\\[]?(?:20|1[7-9])\\d{2}[\\)\\]]?)(.*)$|(.*))$", "$1 $3 $2 $4 $5"] - - name: trim - - name: re_replace - args: ["(?i)(.\\b(mkv|avi|divx|xvid|mp4)\\b)$", ""] - - name: re_replace - args: ["(\\s+)", " "] - - name: trim - title_phase1: - text: "{{ if .Config.filter_title }}{{ .Result.title_filtered }}{{ else }}{{ .Result.title_normal }}{{ end }}" - title_vostfr: - text: "{{ .Result.title_phase1 }}" - filters: - - name: re_replace - args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"] - title_phase2: - text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}" - title_multilang: - text: "{{ .Result.title_phase2 }}" - filters: - - name: re_replace - args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"] - title: - text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}" - filters: - - name: re_replace - args: ["\\b(\\d{4})\\b", "{{ if .Config.enhancedAnime4 }}E$1{{ else }}$1{{ end }}"] - - name: re_replace - args: ["\\b(\\d{2,3})\\b", "{{ if .Config.enhancedAnime }}E$1{{ else }}$1{{ end }}"] - details: - selector: td:nth-child(2) > a - attribute: href - category: - selector: td:nth-child(1) > div.hidden - download: - text: "/engine/download_torrent?id={{ .Result._id }}" - date: - # unix - selector: td:nth-child(5) > div.hidden - size: - selector: td:nth-child(6) - filters: - - name: replace - args: ["o", "B"] - grabs: - selector: td:nth-child(7) - seeders: - selector: td:nth-child(8) - leechers: - selector: td:nth-child(9) - downloadvolumefactor: - text: 1 - uploadvolumefactor: - text: 1 -# engine n/a