diff --git a/definitions/v11/yggcookie.yml b/definitions/v11/yggcookie.yml
deleted file mode 100644
index 1711c7ad2..000000000
--- a/definitions/v11/yggcookie.yml
+++ /dev/null
@@ -1,382 +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: 4
-links:
- - https://www.yggtorrent.top/
-legacylinks:
- - 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/
- - https://www.ygg.re/
-
-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:
- # using cookie method as an alternative when regular login for some users does not work
- 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/v11/yggtorrent.yml b/definitions/v11/yggtorrent.yml
deleted file mode 100644
index 0970fab0d..000000000
--- a/definitions/v11/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: 4
-links:
- - https://www.yggtorrent.top/
-legacylinks:
- - 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/
- - https://www.ygg.re/
-
-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/scripts/indexer-sync-v2.sh b/scripts/indexer-sync-v2.sh
index 7d1b9fad0..ad2fa19f9 100755
--- a/scripts/indexer-sync-v2.sh
+++ b/scripts/indexer-sync-v2.sh
@@ -41,7 +41,7 @@ MAX_COMMITS_TO_PICK=50
MAX_COMMITS_TO_SEARCH=100
VALIDATION_SCRIPT="scripts/validate.py"
-BLOCKLIST=("uniongang.yml" "uniongangcookie.yml" "sharewood.yml" "ygg-api.yml" "anirena.yml" "torrentgalaxy.yml" "torrent-heaven.yml" "scenelinks.yml")
+BLOCKLIST=("uniongang.yml" "uniongangcookie.yml" "sharewood.yml" "ygg-api.yml" "yggtorrent.yml" "yggcookie.yml" "anirena.yml" "torrentgalaxy.yml" "torrent-heaven.yml" "scenelinks.yml")
CONFLICTS_NONYML_EXTENSIONS='\.(cs|js|iss|html|ico|png|csproj)$'
# Initialize Defaults
removed_indexers=""