diff --git a/src/Jackett.Common/Definitions/0daykiev.yml b/src/Jackett.Common/Definitions/0daykiev.yml
index 688ed42b5..37fe71e7f 100644
--- a/src/Jackett.Common/Definitions/0daykiev.yml
+++ b/src/Jackett.Common/Definitions/0daykiev.yml
@@ -1,186 +1,186 @@
---
- site: 0daykiev
- name: 0day.kiev
- description: "0day.kiev.ua is a RUSSIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: ru-ru
- type: private
- encoding: windows-1251
- links:
- - https://tracker.0day.kiev.ua/
+site: 0daykiev
+name: 0day.kiev
+description: "0day.kiev.ua is a RUSSIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: ru-ru
+type: private
+encoding: windows-1251
+links:
+ - https://tracker.0day.kiev.ua/
- caps:
- categorymappings:
- - {id: 10, cat: Movies, desc: "Фильмы (Movies)"}
- - {id: 11, cat: TV, desc: "Мультфильмы (Cartoons)"}
- - {id: 29, cat: TV, desc: "Мультсериалы (TV Series)"}
- - {id: 34, cat: TV/Anime, desc: "Аниме (Anime)"}
- - {id: 20, cat: TV/Documentary, desc: "Документальное (Documentary)"}
- - {id: 14, cat: Audio, desc: "Музыка / Аудио (Music / Audio)"}
- - {id: 15, cat: Audio/Video, desc: "Музыка / Видео (Music / Video)"}
- - {id: 16, cat: Movies/HD, desc: "HD / Фильмы (HD / Movies)"}
- - {id: 27, cat: TV/HD, desc: "HD / Мультфильмы (HD / Cartoons)"}
- - {id: 28, cat: TV/HD, desc: "HD / Документальное (HD / Documentary)"}
- - {id: 41, cat: Movies/3D, desc: "HD / 3D видео (HD / 3D video)"}
- - {id: 47, cat: Movies, desc: "HDv 0day Team"}
- - {id: 17, cat: PC/Games, desc: "Игры / ПК (Games / PC)"}
- - {id: 25, cat: Console/Xbox 360, desc: "Игры / XBOX360 (Games / XBOX360)"}
- - {id: 33, cat: Console/PSP, desc: "Игры / PSP - PS2 (Games / PSP - PS2)"}
- - {id: 37, cat: Console/PS3, desc: "Игры / PS3 (Games / PS3)"}
- - {id: 18, cat: PC/0day, desc: "Софт / Windows (Software / Windows)"}
- - {id: 39, cat: PC/Mac, desc: "Mac OS (Софт / Игры) (Mac OS (Software / Games))"}
- - {id: 19, cat: TV, desc: "TV / Сериалы (TV shows)"}
- - {id: 30, cat: TV/HD, desc: "HD / Сериалы (HD / TV Shows)"}
- - {id: 23, cat: TV, desc: "TV / Передачи (TV / Broadcasts)"}
- - {id: 22, cat: TV/Sport, desc: "Спорт (Sports)"}
- - {id: 31, cat: Other, desc: "Прочее (Other)"}
+caps:
+ categorymappings:
+ - {id: 10, cat: Movies, desc: "Фильмы (Movies)"}
+ - {id: 11, cat: TV, desc: "Мультфильмы (Cartoons)"}
+ - {id: 29, cat: TV, desc: "Мультсериалы (TV Series)"}
+ - {id: 34, cat: TV/Anime, desc: "Аниме (Anime)"}
+ - {id: 20, cat: TV/Documentary, desc: "Документальное (Documentary)"}
+ - {id: 14, cat: Audio, desc: "Музыка / Аудио (Music / Audio)"}
+ - {id: 15, cat: Audio/Video, desc: "Музыка / Видео (Music / Video)"}
+ - {id: 16, cat: Movies/HD, desc: "HD / Фильмы (HD / Movies)"}
+ - {id: 27, cat: TV/HD, desc: "HD / Мультфильмы (HD / Cartoons)"}
+ - {id: 28, cat: TV/HD, desc: "HD / Документальное (HD / Documentary)"}
+ - {id: 41, cat: Movies/3D, desc: "HD / 3D видео (HD / 3D video)"}
+ - {id: 47, cat: Movies, desc: "HDv 0day Team"}
+ - {id: 17, cat: PC/Games, desc: "Игры / ПК (Games / PC)"}
+ - {id: 25, cat: Console/Xbox 360, desc: "Игры / XBOX360 (Games / XBOX360)"}
+ - {id: 33, cat: Console/PSP, desc: "Игры / PSP - PS2 (Games / PSP - PS2)"}
+ - {id: 37, cat: Console/PS3, desc: "Игры / PS3 (Games / PS3)"}
+ - {id: 18, cat: PC/0day, desc: "Софт / Windows (Software / Windows)"}
+ - {id: 39, cat: PC/Mac, desc: "Mac OS (Софт / Игры) (Mac OS (Software / Games))"}
+ - {id: 19, cat: TV, desc: "TV / Сериалы (TV shows)"}
+ - {id: 30, cat: TV/HD, desc: "HD / Сериалы (HD / TV Shows)"}
+ - {id: 23, cat: TV, desc: "TV / Передачи (TV / Broadcasts)"}
+ - {id: 22, cat: TV/Sport, desc: "Спорт (Sports)"}
+ - {id: 31, cat: Other, desc: "Прочее (Other)"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: striprussian
- type: checkbox
- label: Strip Russian Letters
- default: true
- - name: sort
- type: select
- label: Sort requested from site
- default: "4"
- options:
- "4": "created"
- "7": "seeders"
- "5": "size"
- "1": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: striprussian
+ type: checkbox
+ label: Strip Russian Letters
+ default: true
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "4"
+ options:
+ "4": "created"
+ "7": "seeders"
+ "5": "size"
+ "1": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- returnto: "/browse.php"
- error:
- - selector: div.maintitle:contains("Ошибка")
- message:
- selector: div.borderwrap table.embedded
- test:
- path: browse.php
- selector: a[href="/logout.php"]
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ returnto: "/browse.php"
+ error:
+ - selector: div.maintitle:contains("Ошибка")
+ message:
+ selector: div.borderwrap table.embedded
+ test:
+ path: browse.php
+ selector: a[href="/logout.php"]
- search:
- paths:
- # https://tracker.0day.kiev.ua/browse.php?c10=1&c27=1&search=endgame&incldead=1&where=0
- - path: browse.php
- keywordsfilters:
- - name: diacritics
- args: replace
- - name: re_replace # S01 to Cезон 1
- args: ["(?i)\\bS0*(\\d+)\\b", "езон $1"]
- - name: re_replace # S01E01 to Сезон 1 Серии 1
- args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "езон $1 ерии $2"]
- inputs:
- $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
- search: "{{ .Keywords }}"
- # 0 active 1 incldead 2 onlydead 3 gold 4 noseed 5 silver
- incldead: 1
- # 0 title 1 title and descr
- where: 0
- sort: "{{ .Config.sort}}"
- type: "{{ .Config.type}}"
+search:
+ paths:
+ # https://tracker.0day.kiev.ua/browse.php?c10=1&c27=1&search=endgame&incldead=1&where=0
+ - path: browse.php
+ keywordsfilters:
+ - name: diacritics
+ args: replace
+ - name: re_replace # S01 to Cезон 1
+ args: ["(?i)\\bS0*(\\d+)\\b", "езон $1"]
+ - name: re_replace # S01E01 to Сезон 1 Серии 1
+ args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "езон $1 ерии $2"]
+ inputs:
+ $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
+ search: "{{ .Keywords }}"
+ # 0 active 1 incldead 2 onlydead 3 gold 4 noseed 5 silver
+ incldead: 1
+ # 0 title 1 title and descr
+ where: 0
+ sort: "{{ .Config.sort}}"
+ type: "{{ .Config.type}}"
- rows:
- selector: table > tbody > tr.rowtorrentinfo
- fields:
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- title:
- selector: a[href^="details.php?id="]
- filters:
- # normalize to SXXEYY format
- - name: re_replace
- args: ["[\\:\\-\\/\\|]", " "]
- - name: replace
- args: ["Кураж Бамбей", "kurazh"]
- - name: replace
- args: ["Кубик в Кубе", "Kubik"]
- - name: replace
- args: ["Кравец", "Kravec"]
- - name: re_replace
- args: ["(.*)\\([CСcс]езон\\s+(\\d+)\\)\\s+[CСcс]ери[ия]\\s+(\\d+)\\s+(\\d+)(.*)", "$1 S$2E$3-$4 rus $5"]
- - name: re_replace
- args: ["(.*)\\([CСcс]езон\\s+(\\d+)\\)(.*)", "$1 S$2 rus $3"]
- - name: re_replace
- args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"]
- - name: replace
- args: ["WEB DL", "WEBDL"]
- - name: replace
- args: ["WEBDLRip", "WEBDL"]
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- date:
- selector: td:nth-child(2) i
- filters:
- - name: dateparse
- args: "2006-01-02 15:04:05"
- size:
- selector: td:nth-child(4)
- filters:
- - name: replace
- args: [".", ""]
- - name: replace
- args: [",", "."]
- - name: replace
- args: ["ТБ", "TB"]
- - name: replace
- args: ["ГБ", "GB"]
- - name: replace
- args: ["МБ", "MB"]
- - name: replace
- args: ["КБ", "KB"]
- grabs:
- selector: td:nth-child(5)
- filters:
- - name: regexp
- args: (\d+)
- seeders:
- selector: td:nth-child(6)
- filters:
- - name: split
- args: ["|", 0]
- leechers:
- selector: td:nth-child(6)
- filters:
- - name: split
- args: ["|", 1]
- downloadvolumefactor:
- case:
- img[src="pic/freedownload.gif"]: 0
- img[src="pic/silverdownload.gif"]: 0.5
- "*": 1
- uploadvolumefactor:
- text: 1
+ rows:
+ selector: table > tbody > tr.rowtorrentinfo
+ fields:
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title:
+ selector: a[href^="details.php?id="]
+ filters:
+ # normalize to SXXEYY format
+ - name: re_replace
+ args: ["[\\:\\-\\/\\|]", " "]
+ - name: replace
+ args: ["Кураж Бамбей", "kurazh"]
+ - name: replace
+ args: ["Кубик в Кубе", "Kubik"]
+ - name: replace
+ args: ["Кравец", "Kravec"]
+ - name: re_replace
+ args: ["(.*)\\([CСcс]езон\\s+(\\d+)\\)\\s+[CСcс]ери[ия]\\s+(\\d+)\\s+(\\d+)(.*)", "$1 S$2E$3-$4 rus $5"]
+ - name: re_replace
+ args: ["(.*)\\([CСcс]езон\\s+(\\d+)\\)(.*)", "$1 S$2 rus $3"]
+ - name: re_replace
+ args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"]
+ - name: replace
+ args: ["WEB DL", "WEBDL"]
+ - name: replace
+ args: ["WEBDLRip", "WEBDL"]
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ date:
+ selector: td:nth-child(2) i
+ filters:
+ - name: dateparse
+ args: "2006-01-02 15:04:05"
+ size:
+ selector: td:nth-child(4)
+ filters:
+ - name: replace
+ args: [".", ""]
+ - name: replace
+ args: [",", "."]
+ - name: replace
+ args: ["ТБ", "TB"]
+ - name: replace
+ args: ["ГБ", "GB"]
+ - name: replace
+ args: ["МБ", "MB"]
+ - name: replace
+ args: ["КБ", "KB"]
+ grabs:
+ selector: td:nth-child(5)
+ filters:
+ - name: regexp
+ args: (\d+)
+ seeders:
+ selector: td:nth-child(6)
+ filters:
+ - name: split
+ args: ["|", 0]
+ leechers:
+ selector: td:nth-child(6)
+ filters:
+ - name: split
+ args: ["|", 1]
+ downloadvolumefactor:
+ case:
+ img[src="pic/freedownload.gif"]: 0
+ img[src="pic/silverdownload.gif"]: 0.5
+ "*": 1
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/1337x.yml b/src/Jackett.Common/Definitions/1337x.yml
index 67480f542..d80d8dea2 100644
--- a/src/Jackett.Common/Definitions/1337x.yml
+++ b/src/Jackett.Common/Definitions/1337x.yml
@@ -1,251 +1,251 @@
---
- site: 1337x
- name: 1337x
- description: "1337X is a Public torrent site that offers verified torrent downloads"
- language: en-us
- type: public
- encoding: UTF-8
- followredirect: true
- links:
- - https://1337x.to/
- - https://1337x.gd/
- - https://1337x.is/
- - https://1337x.st/
- - https://x1337x.ws/
- - https://x1337x.eu/
- - https://x1337x.se/
- - https://1337x.unblockit.me/
- - https://1337.root.yt/
- legacylinks:
- - https://1337x.unblocked.earth/
- - https://1337x.unblockit.pro/
- - https://1337x.unblockit.one/
- - https://1337x.black-mirror.xyz/ # removed from black-mirror.xyz
- - https://1337x.unblocked.casa/ # removed from black-mirror.xyz
- - https://1337x.proxyportal.fun/ # removed from black-mirror.xyz
- - https://1337x.uk-unblock.xyz/ # removed from black-mirror.xyz
- - https://1337x.ind-unblock.xyz/ # removed from black-mirror.xyz
- - https://1337x.unblockninja.com/ # 403 Forbidden
+site: 1337x
+name: 1337x
+description: "1337X is a Public torrent site that offers verified torrent downloads"
+language: en-us
+type: public
+encoding: UTF-8
+followredirect: true
+links:
+ - https://1337x.to/
+ - https://1337x.gd/
+ - https://1337x.is/
+ - https://1337x.st/
+ - https://x1337x.ws/
+ - https://x1337x.eu/
+ - https://x1337x.se/
+ - https://1337x.unblockit.me/
+ - https://1337.root.yt/
+legacylinks:
+ - https://1337x.unblocked.earth/
+ - https://1337x.unblockit.pro/
+ - https://1337x.unblockit.one/
+ - https://1337x.black-mirror.xyz/ # removed from black-mirror.xyz
+ - https://1337x.unblocked.casa/ # removed from black-mirror.xyz
+ - https://1337x.proxyportal.fun/ # removed from black-mirror.xyz
+ - https://1337x.uk-unblock.xyz/ # removed from black-mirror.xyz
+ - https://1337x.ind-unblock.xyz/ # removed from black-mirror.xyz
+ - https://1337x.unblockninja.com/ # 403 Forbidden
- caps:
- categorymappings:
- #Anime
- - {id: 28, cat: TV/Anime, desc: "Anime/Anime"}
- - {id: 78, cat: TV/Anime, desc: "Anime/Dual Audio"}
- - {id: 79, cat: TV/Anime, desc: "Anime/Dubbed"}
- - {id: 80, cat: TV/Anime, desc: "Anime/Subbed"}
- - {id: 81, cat: TV/Anime, desc: "Anime/Raw"}
+caps:
+ categorymappings:
+ #Anime
+ - {id: 28, cat: TV/Anime, desc: "Anime/Anime"}
+ - {id: 78, cat: TV/Anime, desc: "Anime/Dual Audio"}
+ - {id: 79, cat: TV/Anime, desc: "Anime/Dubbed"}
+ - {id: 80, cat: TV/Anime, desc: "Anime/Subbed"}
+ - {id: 81, cat: TV/Anime, desc: "Anime/Raw"}
- #Audio
- - {id: 22, cat: Audio/MP3, desc: "Music/MP3"}
- - {id: 23, cat: Audio/Lossless, desc: "Music/Lossless"}
- - {id: 24, cat: Audio, desc: "Music/DVD"}
- - {id: 25, cat: Audio/Video, desc: "Music/Video"}
- - {id: 26, cat: Audio, desc: "Music/Radio"}
- - {id: 27, cat: Audio/Other, desc: "Music/Other"}
- - {id: 53, cat: Audio, desc: "Music/Album"}
- - {id: 58, cat: Audio, desc: "Music/Box set"}
- - {id: 59, cat: Audio, desc: "Music/Discography"}
- - {id: 60, cat: Audio, desc: "Music/Single"}
- - {id: 68, cat: Audio, desc: "Music/Concerts"}
- - {id: 69, cat: Audio, desc: "Music/AAC"}
+ #Audio
+ - {id: 22, cat: Audio/MP3, desc: "Music/MP3"}
+ - {id: 23, cat: Audio/Lossless, desc: "Music/Lossless"}
+ - {id: 24, cat: Audio, desc: "Music/DVD"}
+ - {id: 25, cat: Audio/Video, desc: "Music/Video"}
+ - {id: 26, cat: Audio, desc: "Music/Radio"}
+ - {id: 27, cat: Audio/Other, desc: "Music/Other"}
+ - {id: 53, cat: Audio, desc: "Music/Album"}
+ - {id: 58, cat: Audio, desc: "Music/Box set"}
+ - {id: 59, cat: Audio, desc: "Music/Discography"}
+ - {id: 60, cat: Audio, desc: "Music/Single"}
+ - {id: 68, cat: Audio, desc: "Music/Concerts"}
+ - {id: 69, cat: Audio, desc: "Music/AAC"}
- #Movies
- - {id: 1, cat: Movies/DVD, desc: "Movies/DVD"}
- - {id: 2, cat: Movies/SD, desc: "Movies/Divx/Xvid"}
- - {id: 3, cat: Movies, desc: "Movies/SVCD/VCD"}
- - {id: 4, cat: Movies/Foreign, desc: "Movies/Dubs/Dual Audio"}
- - {id: 42, cat: Movies/HD, desc: "Movies/HD"}
- - {id: 54, cat: Movies/HD, desc: "Movies/h.264/x264"}
- - {id: 55, cat: Movies, desc: "Movies/Mp4"}
- - {id: 66, cat: Movies/3D, desc: "Movies/3D"}
- - {id: 70, cat: Movies/HD, desc: "Movies/HEVC/x265"}
- - {id: 73, cat: Movies, desc: "Movies/Bollywood"}
- - {id: 76, cat: Movies/UHD, desc: "Movies/UHD"}
+ #Movies
+ - {id: 1, cat: Movies/DVD, desc: "Movies/DVD"}
+ - {id: 2, cat: Movies/SD, desc: "Movies/Divx/Xvid"}
+ - {id: 3, cat: Movies, desc: "Movies/SVCD/VCD"}
+ - {id: 4, cat: Movies/Foreign, desc: "Movies/Dubs/Dual Audio"}
+ - {id: 42, cat: Movies/HD, desc: "Movies/HD"}
+ - {id: 54, cat: Movies/HD, desc: "Movies/h.264/x264"}
+ - {id: 55, cat: Movies, desc: "Movies/Mp4"}
+ - {id: 66, cat: Movies/3D, desc: "Movies/3D"}
+ - {id: 70, cat: Movies/HD, desc: "Movies/HEVC/x265"}
+ - {id: 73, cat: Movies, desc: "Movies/Bollywood"}
+ - {id: 76, cat: Movies/UHD, desc: "Movies/UHD"}
- #TV
- - {id: 5, cat: TV, desc: "TV/DVD"}
- - {id: 6, cat: TV, desc: "TV/Divx/Xvid"}
- - {id: 7, cat: TV, desc: "TV/SVCD/VCD"}
- - {id: 41, cat: TV/HD, desc: "TV/HD"}
- - {id: 71, cat: TV, desc: "TV/HEVC/x265"}
- - {id: 74, cat: TV, desc: "TV/Cartoons"}
- - {id: 75, cat: TV/SD, desc: "TV/SD"}
- - {id: 9, cat: TV/Documentary, desc: "TV/Documentary"}
+ #TV
+ - {id: 5, cat: TV, desc: "TV/DVD"}
+ - {id: 6, cat: TV, desc: "TV/Divx/Xvid"}
+ - {id: 7, cat: TV, desc: "TV/SVCD/VCD"}
+ - {id: 41, cat: TV/HD, desc: "TV/HD"}
+ - {id: 71, cat: TV, desc: "TV/HEVC/x265"}
+ - {id: 74, cat: TV, desc: "TV/Cartoons"}
+ - {id: 75, cat: TV/SD, desc: "TV/SD"}
+ - {id: 9, cat: TV/Documentary, desc: "TV/Documentary"}
- #Apps
- - {id: 18, cat: PC, desc: "Apps/PC Software"}
- - {id: 19, cat: PC/Mac, desc: "Apps/Mac"}
- - {id: 20, cat: PC, desc: "Apps/Linux"}
- - {id: 21, cat: PC, desc: "Apps/Other"}
- - {id: 56, cat: PC/Phone-Android, desc: "Apps/Android"}
- - {id: 57, cat: PC/Phone-IOS, desc: "Apps/iOS"}
+ #Apps
+ - {id: 18, cat: PC, desc: "Apps/PC Software"}
+ - {id: 19, cat: PC/Mac, desc: "Apps/Mac"}
+ - {id: 20, cat: PC, desc: "Apps/Linux"}
+ - {id: 21, cat: PC, desc: "Apps/Other"}
+ - {id: 56, cat: PC/Phone-Android, desc: "Apps/Android"}
+ - {id: 57, cat: PC/Phone-IOS, desc: "Apps/iOS"}
- #Games
- - {id: 10, cat: PC/Games, desc: "Games/PC Game"}
- - {id: 11, cat: Console/Other, desc: "Games/PS2"}
- - {id: 12, cat: Console/PSP, desc: "Games/PSP"}
- - {id: 13, cat: Console/Xbox, desc: "Games/Xbox"}
- - {id: 14, cat: Console/Xbox 360, desc: "Games/Xbox360"}
- - {id: 15, cat: Console/Other, desc: "Games/PS1"}
- - {id: 16, cat: Console/Other, desc: "Games/Dreamcast"}
- - {id: 17, cat: PC/Phone-Other, desc: "Games/Other"}
- - {id: 43, cat: Console/PS3, desc: "Games/PS3"}
- - {id: 44, cat: Console/Wii, desc: "Games/Wii"}
- - {id: 45, cat: Console/NDS, desc: "Games/DS"}
- - {id: 46, cat: Console, desc: "Games/GameCube"}
- - {id: 72, cat: Console/3DS, desc: "Games/3DS"}
- - {id: 77, cat: Console/PS4, desc: "Games/PS4"}
- - {id: 82, cat: Console/Other, desc: "Games/Switch"}
+ #Games
+ - {id: 10, cat: PC/Games, desc: "Games/PC Game"}
+ - {id: 11, cat: Console/Other, desc: "Games/PS2"}
+ - {id: 12, cat: Console/PSP, desc: "Games/PSP"}
+ - {id: 13, cat: Console/Xbox, desc: "Games/Xbox"}
+ - {id: 14, cat: Console/Xbox 360, desc: "Games/Xbox360"}
+ - {id: 15, cat: Console/Other, desc: "Games/PS1"}
+ - {id: 16, cat: Console/Other, desc: "Games/Dreamcast"}
+ - {id: 17, cat: PC/Phone-Other, desc: "Games/Other"}
+ - {id: 43, cat: Console/PS3, desc: "Games/PS3"}
+ - {id: 44, cat: Console/Wii, desc: "Games/Wii"}
+ - {id: 45, cat: Console/NDS, desc: "Games/DS"}
+ - {id: 46, cat: Console, desc: "Games/GameCube"}
+ - {id: 72, cat: Console/3DS, desc: "Games/3DS"}
+ - {id: 77, cat: Console/PS4, desc: "Games/PS4"}
+ - {id: 82, cat: Console/Other, desc: "Games/Switch"}
- #XXX
- - {id: 48, cat: XXX/DVD, desc: "XXX/Video"}
- - {id: 49, cat: XXX/Imageset, desc: "XXX/Picture"}
- - {id: 50, cat: XXX, desc: "XXX/Magazine"}
- - {id: 51, cat: XXX, desc: "XXX/Hentai"}
- - {id: 67, cat: XXX, desc: "XXX/Games"}
+ #XXX
+ - {id: 48, cat: XXX/DVD, desc: "XXX/Video"}
+ - {id: 49, cat: XXX/Imageset, desc: "XXX/Picture"}
+ - {id: 50, cat: XXX, desc: "XXX/Magazine"}
+ - {id: 51, cat: XXX, desc: "XXX/Hentai"}
+ - {id: 67, cat: XXX, desc: "XXX/Games"}
- #Other
- - {id: 33, cat: Other, desc: "Other/Emulation"}
- - {id: 34, cat: Books, desc: "Other/Tutorial"}
- - {id: 35, cat: Other, desc: "Other/Sounds"}
- - {id: 36, cat: Books/Ebook, desc: "Other/E-books"}
- - {id: 37, cat: Other, desc: "Other/Images"}
- - {id: 38, cat: Other, desc: "Other/Mobile Phone"}
- - {id: 39, cat: Books/Comics, desc: "Other/Comics"}
- - {id: 40, cat: Other/Misc, desc: "Other/Other"}
- - {id: 47, cat: Other, desc: "Other/Nulled Script"}
- - {id: 52, cat: Audio/Audiobook, desc: "Other/Audiobook"}
+ #Other
+ - {id: 33, cat: Other, desc: "Other/Emulation"}
+ - {id: 34, cat: Books, desc: "Other/Tutorial"}
+ - {id: 35, cat: Other, desc: "Other/Sounds"}
+ - {id: 36, cat: Books/Ebook, desc: "Other/E-books"}
+ - {id: 37, cat: Other, desc: "Other/Images"}
+ - {id: 38, cat: Other, desc: "Other/Mobile Phone"}
+ - {id: 39, cat: Books/Comics, desc: "Other/Comics"}
+ - {id: 40, cat: Other/Misc, desc: "Other/Other"}
+ - {id: 47, cat: Other, desc: "Other/Nulled Script"}
+ - {id: 52, cat: Audio/Audiobook, desc: "Other/Audiobook"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q, album, artist, label, year]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q, album, artist, label, year]
- settings:
- - name: downloadlink
- type: select
- label: Download link
- default: "magnet:"
- options:
- "http://itorrents.org/" : "iTorrents.org"
- "http://torrage.info/" : "Torrage.info"
- "http://btcache.me/" : "BTcache.me"
- "magnet:": "magnet"
- - name: sort
- type: select
- label: Sort requested from site
- default: "time"
- options:
- "time": "created"
- "seeders": "seeders"
- "size": "size"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: downloadlink
+ type: select
+ label: Download link
+ default: "magnet:"
+ options:
+ "http://itorrents.org/" : "iTorrents.org"
+ "http://torrage.info/" : "Torrage.info"
+ "http://btcache.me/" : "BTcache.me"
+ "magnet:": "magnet"
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "time"
+ options:
+ "time": "created"
+ "seeders": "seeders"
+ "size": "size"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- download:
- # the .torrent url is on the on the details page
- selector: ul li a[href^="{{ .Config.downloadlink }}"]
- attribute: href
+download:
+ # the .torrent url is on the on the details page
+ selector: ul li a[href^="{{ .Config.downloadlink }}"]
+ attribute: href
- search:
- paths:
- # present first page of movies tv and music results if there are no search parms supplied (20 hits per page)
- - path: "{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}sort-search{{else}}cat/Movies{{end}}{{if or (.Query.Album) (.Query.Artist) }}/{{ or (.Query.Album) (.Query.Artist) }}{{else}}/{{ .Keywords }}{{end}}{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}/{{else}}{{end}}{{ .Config.sort }}/{{ .Config.type }}/1/"
- - path: "{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}sort-search{{else}}cat/TV{{end}}{{if or (.Query.Album) (.Query.Artist) }}/{{ or (.Query.Album) (.Query.Artist) }}{{else}}/{{ .Keywords }}{{end}}{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}/{{else}}{{end}}{{ .Config.sort }}/{{ .Config.type }}/{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}2{{else}}1{{end}}/"
- - path: "{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}sort-search{{else}}cat/Music{{end}}{{if or (.Query.Album) (.Query.Artist) }}/{{ or (.Query.Album) (.Query.Artist) }}{{else}}/{{ .Keywords }}{{end}}{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}/{{else}}{{end}}{{ .Config.sort }}/{{ .Config.type }}/{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}3{{else}}1{{end}}/"
- keywordsfilters:
- - name: replace # use this as a workaround till #893 is implemented
- args: ["Greys Anatomy", "Grey's Anatomy"]
+search:
+ paths:
+ # present first page of movies tv and music results if there are no search parms supplied (20 hits per page)
+ - path: "{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}sort-search{{else}}cat/Movies{{end}}{{if or (.Query.Album) (.Query.Artist) }}/{{ or (.Query.Album) (.Query.Artist) }}{{else}}/{{ .Keywords }}{{end}}{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}/{{else}}{{end}}{{ .Config.sort }}/{{ .Config.type }}/1/"
+ - path: "{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}sort-search{{else}}cat/TV{{end}}{{if or (.Query.Album) (.Query.Artist) }}/{{ or (.Query.Album) (.Query.Artist) }}{{else}}/{{ .Keywords }}{{end}}{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}/{{else}}{{end}}{{ .Config.sort }}/{{ .Config.type }}/{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}2{{else}}1{{end}}/"
+ - path: "{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}sort-search{{else}}cat/Music{{end}}{{if or (.Query.Album) (.Query.Artist) }}/{{ or (.Query.Album) (.Query.Artist) }}{{else}}/{{ .Keywords }}{{end}}{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}/{{else}}{{end}}{{ .Config.sort }}/{{ .Config.type }}/{{if or (.Query.Album) (.Query.Artist) (.Keywords) }}3{{else}}1{{end}}/"
+ keywordsfilters:
+ - name: replace # use this as a workaround till #893 is implemented
+ args: ["Greys Anatomy", "Grey's Anatomy"]
- rows:
- selector: tr:has(a[href^="/torrent/"])
+ rows:
+ selector: tr:has(a[href^="/torrent/"])
- fields:
- title:
- # the movies, tv and music pages abbreviate the title so we process the href instead. #8137
- selector: td[class^="coll-1"] a[href^="/torrent/"]
- attribute: href
- filters:
- - name: split
- args: ["/", 3]
- - name: re_replace
- args: ["(-+)", " "]
- - name: replace
- args: ["Grey's Anatomy", "Greys Anatomy"]
- - name: replace
- args: ["\u000f", ""] # get rid of unwanted character
- category:
- text: 40
- category|noappend:
- optional: true
- selector: td[class^="coll-1"] a[href^="/sub/"]
- attribute: href
- filters:
- # extract the third part
- - name: split
- args: ["/", 2]
- details:
- selector: td[class^="coll-1"] a[href^="/torrent/"]
- attribute: href
- download:
- # .torrent link is on the details page
- selector: td[class^="coll-1"] a[href^="/torrent/"]
- attribute: href
- # dates come in three flavours:
- date:
- # (within this year) 7am Sep. 14th
- optional: true
- selector: td[class^="coll-date"]:not(:contains(":")):not(:contains("'"))
- filters:
- - name: replace
- args: ["st", ""]
- - name: replace
- args: ["nd", ""]
- - name: replace
- args: ["rd", ""]
- - name: replace
- args: ["th", ""]
- - name: dateparse
- args: "3pm Jan. 2"
- date:
- # (more than a year ago) Apr. 18th '11
- optional: true
- selector: td[class^="coll-date"]:contains("'")
- filters:
- - name: replace
- args: ["'", ""]
- - name: replace
- args: ["st", ""]
- - name: replace
- args: ["nd", ""]
- - name: replace
- args: ["rd", ""]
- - name: replace
- args: ["th", ""]
- - name: dateparse
- args: "Jan. 2 06"
- date:
- # (today) 12:25am
- optional: true
- selector: td[class^="coll-date"]:contains(":")
- filters:
- - name: dateparse
- args: "3:04pm"
- size:
- selector: td[class^="coll-4"]
- seeders:
- selector: td[class^="coll-2"]
- leechers:
- selector: td[class^="coll-3"]
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ fields:
+ title:
+ # the movies, tv and music pages abbreviate the title so we process the href instead. #8137
+ selector: td[class^="coll-1"] a[href^="/torrent/"]
+ attribute: href
+ filters:
+ - name: split
+ args: ["/", 3]
+ - name: re_replace
+ args: ["(-+)", " "]
+ - name: replace
+ args: ["Grey's Anatomy", "Greys Anatomy"]
+ - name: replace
+ args: ["\u000f", ""] # get rid of unwanted character
+ category:
+ text: 40
+ category|noappend:
+ optional: true
+ selector: td[class^="coll-1"] a[href^="/sub/"]
+ attribute: href
+ filters:
+ # extract the third part
+ - name: split
+ args: ["/", 2]
+ details:
+ selector: td[class^="coll-1"] a[href^="/torrent/"]
+ attribute: href
+ download:
+ # .torrent link is on the details page
+ selector: td[class^="coll-1"] a[href^="/torrent/"]
+ attribute: href
+ # dates come in three flavours:
+ date:
+ # (within this year) 7am Sep. 14th
+ optional: true
+ selector: td[class^="coll-date"]:not(:contains(":")):not(:contains("'"))
+ filters:
+ - name: replace
+ args: ["st", ""]
+ - name: replace
+ args: ["nd", ""]
+ - name: replace
+ args: ["rd", ""]
+ - name: replace
+ args: ["th", ""]
+ - name: dateparse
+ args: "3pm Jan. 2"
+ date:
+ # (more than a year ago) Apr. 18th '11
+ optional: true
+ selector: td[class^="coll-date"]:contains("'")
+ filters:
+ - name: replace
+ args: ["'", ""]
+ - name: replace
+ args: ["st", ""]
+ - name: replace
+ args: ["nd", ""]
+ - name: replace
+ args: ["rd", ""]
+ - name: replace
+ args: ["th", ""]
+ - name: dateparse
+ args: "Jan. 2 06"
+ date:
+ # (today) 12:25am
+ optional: true
+ selector: td[class^="coll-date"]:contains(":")
+ filters:
+ - name: dateparse
+ args: "3:04pm"
+ size:
+ selector: td[class^="coll-4"]
+ seeders:
+ selector: td[class^="coll-2"]
+ leechers:
+ selector: td[class^="coll-3"]
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/2fast4you.yml b/src/Jackett.Common/Definitions/2fast4you.yml
index 5542c9600..4a4634f70 100644
--- a/src/Jackett.Common/Definitions/2fast4you.yml
+++ b/src/Jackett.Common/Definitions/2fast4you.yml
@@ -1,184 +1,184 @@
---
- site: 2fast4you
- name: 2 Fast 4 You
- description: "2 Fast 4 You is a FRENCH Private site for TV / MOVIES / GENERAL"
- language: fr-fr
- type: private
- encoding: UTF-8
- links:
- - https://2f4y.me/
- legacylinks:
- - http://www.2f4y.me/
- - https://www.2f4y.me/
+site: 2fast4you
+name: 2 Fast 4 You
+description: "2 Fast 4 You is a FRENCH Private site for TV / MOVIES / GENERAL"
+language: fr-fr
+type: private
+encoding: UTF-8
+links:
+ - https://2f4y.me/
+legacylinks:
+ - http://www.2f4y.me/
+ - https://www.2f4y.me/
- caps:
- categorymappings:
- - {id: 10, cat: TV/Anime, desc: "Animation: HD720P"}
- - {id: 11, cat: TV/Anime, desc: "Animation: HD1080P"}
- - {id: 56, cat: TV/Anime, desc: "Animation: DVDRip"}
- - {id: 18, cat: PC/0day, desc: "Applications: PC"}
- - {id: 16, cat: PC/Games, desc: "Applications: Jeux"}
- - {id: 19, cat: PC/Phone-Android, desc: "Applications: Android"}
- - {id: 17, cat: PC/0day, desc: "Applications: Autres"}
- - {id: 67, cat: TV, desc: "Autres: Emission TV"}
- - {id: 68, cat: TV/Sport, desc: "Autres: Sport"}
- - {id: 40, cat: Other, desc: "Autres: Autres"}
- - {id: 14, cat: TV/Documentary, desc: "Documentaires: DivX"}
- - {id: 15, cat: TV/Documentary, desc: "Documentaires: HD"}
- - {id: 76, cat: TV/Documentary, desc: "Documentaires: TVRip"}
- - {id: 62, cat: Audio/Audiobook, desc: "E-Books: E-Books Audio"}
- - {id: 50, cat: Books, desc: "E-Books: Manuel Français"}
- - {id: 49, cat: Books, desc: "E-Books: Manuel Anglais"}
- - {id: 36, cat: Books, desc: "E-Books: Livres Français"}
- - {id: 53, cat: Books, desc: "E-Books: Livre Anglais"}
- - {id: 52, cat: Books, desc: "E-Books: Revue - Journaux"}
- - {id: 51, cat: Books, desc: "E-Books: BD"}
- - {id: 95, cat: Movies, desc: "Films: Film Divx XviD"}
- - {id: 66, cat: Movies, desc: "Films: VOSTFR"}
- - {id: 71, cat: Movies/WEBDL, desc: "Films: WEB-DL"}
- - {id: 65, cat: Movies, desc: "Films: VO"}
- - {id: 72, cat: Movies/SD, desc: "Films: TVRip/HDTV"}
- - {id: 70, cat: Movies/HD, desc: "Films: MHD X265"}
- - {id: 57, cat: Movies/SD, desc: "Films: TS/CAM"}
- - {id: 59, cat: Movies, desc: "Films: Spectacle"}
- - {id: 55, cat: Movies/HD, desc: "Films: MHD 720P"}
- - {id: 54, cat: Movies/HD, desc: "Films: MHD 1080P"}
- - {id: 1, cat: Movies/HD, desc: "Films: HD720P"}
- - {id: 2, cat: Movies/HD, desc: "Films: HD1080P"}
- - {id: 90, cat: Movies/HD, desc: "Films: HD X265"}
- - {id: 92, cat: Movies/HD, desc: "Films: 4K"}
- - {id: 69, cat: Movies/3D, desc: "Films: Film 3D"}
- - {id: 3, cat: Movies/DVD, desc: "Films: DVDRIP"}
- - {id: 5, cat: Movies/DVD, desc: "Films: DVD9"}
- - {id: 91, cat: Movies/HD, desc: "Films: RemuX"}
- - {id: 89, cat: Movies/HD, desc: "Films: BD/BR Rip"}
- - {id: 88, cat: Movies/BluRay, desc: "Films: Full BD/BR"}
- - {id: 97, cat: Movies, desc: "Films: Cours Métrage"}
- - {id: 79, cat: TV/Anime, desc: "Mangas: HD"}
- - {id: 81, cat: TV/Anime, desc: "Mangas: HD VOSTFR"}
- - {id: 85, cat: TV/Anime, desc: "Mangas: Web-DL"}
- - {id: 86, cat: TV/Anime, desc: "Mangas: TV-RIP"}
- - {id: 75, cat: Audio, desc: "Musique: Concert TVRip"}
- - {id: 25, cat: Audio/MP3, desc: "Musique: Single MP3"}
- - {id: 24, cat: Audio/Lossless, desc: "Musique: Single Flac"}
- - {id: 22, cat: Audio/MP3, desc: "Musique: Album MP3"}
- - {id: 23, cat: Audio/Lossless, desc: "Musique: Album Flac"}
- - {id: 64, cat: Audio, desc: "Musique: Mégamix Maison"}
- - {id: 96, cat: Audio/MP3, desc: "Musique: PlayList MP3"}
- - {id: 94, cat: Audio, desc: "Musique: Podcast"}
- - {id: 58, cat: Audio, desc: "Musique: Concert"}
- - {id: 93, cat: TV, desc: "Serie TV: Saison VOSTFR"}
- - {id: 61, cat: TV, desc: "Serie TV: Episode VOSTFR"}
- - {id: 63, cat: TV, desc: "Serie TV: Episode VO"}
- - {id: 12, cat: TV/Anime, desc: "Serie TV: Animation"}
- - {id: 74, cat: TV, desc: "Serie TV: TVRip"}
- - {id: 73, cat: TV/WEB-DL, desc: "Serie TV: WEB-DL"}
- - {id: 7, cat: TV, desc: "Serie TV: Episode FR"}
- - {id: 6, cat: TV, desc: "Serie TV: Saison FR"}
- - {id: 98, cat: TV/Anime, desc: "Serie TV: Manga VOSTFR"}
+caps:
+ categorymappings:
+ - {id: 10, cat: TV/Anime, desc: "Animation: HD720P"}
+ - {id: 11, cat: TV/Anime, desc: "Animation: HD1080P"}
+ - {id: 56, cat: TV/Anime, desc: "Animation: DVDRip"}
+ - {id: 18, cat: PC/0day, desc: "Applications: PC"}
+ - {id: 16, cat: PC/Games, desc: "Applications: Jeux"}
+ - {id: 19, cat: PC/Phone-Android, desc: "Applications: Android"}
+ - {id: 17, cat: PC/0day, desc: "Applications: Autres"}
+ - {id: 67, cat: TV, desc: "Autres: Emission TV"}
+ - {id: 68, cat: TV/Sport, desc: "Autres: Sport"}
+ - {id: 40, cat: Other, desc: "Autres: Autres"}
+ - {id: 14, cat: TV/Documentary, desc: "Documentaires: DivX"}
+ - {id: 15, cat: TV/Documentary, desc: "Documentaires: HD"}
+ - {id: 76, cat: TV/Documentary, desc: "Documentaires: TVRip"}
+ - {id: 62, cat: Audio/Audiobook, desc: "E-Books: E-Books Audio"}
+ - {id: 50, cat: Books, desc: "E-Books: Manuel Français"}
+ - {id: 49, cat: Books, desc: "E-Books: Manuel Anglais"}
+ - {id: 36, cat: Books, desc: "E-Books: Livres Français"}
+ - {id: 53, cat: Books, desc: "E-Books: Livre Anglais"}
+ - {id: 52, cat: Books, desc: "E-Books: Revue - Journaux"}
+ - {id: 51, cat: Books, desc: "E-Books: BD"}
+ - {id: 95, cat: Movies, desc: "Films: Film Divx XviD"}
+ - {id: 66, cat: Movies, desc: "Films: VOSTFR"}
+ - {id: 71, cat: Movies/WEBDL, desc: "Films: WEB-DL"}
+ - {id: 65, cat: Movies, desc: "Films: VO"}
+ - {id: 72, cat: Movies/SD, desc: "Films: TVRip/HDTV"}
+ - {id: 70, cat: Movies/HD, desc: "Films: MHD X265"}
+ - {id: 57, cat: Movies/SD, desc: "Films: TS/CAM"}
+ - {id: 59, cat: Movies, desc: "Films: Spectacle"}
+ - {id: 55, cat: Movies/HD, desc: "Films: MHD 720P"}
+ - {id: 54, cat: Movies/HD, desc: "Films: MHD 1080P"}
+ - {id: 1, cat: Movies/HD, desc: "Films: HD720P"}
+ - {id: 2, cat: Movies/HD, desc: "Films: HD1080P"}
+ - {id: 90, cat: Movies/HD, desc: "Films: HD X265"}
+ - {id: 92, cat: Movies/HD, desc: "Films: 4K"}
+ - {id: 69, cat: Movies/3D, desc: "Films: Film 3D"}
+ - {id: 3, cat: Movies/DVD, desc: "Films: DVDRIP"}
+ - {id: 5, cat: Movies/DVD, desc: "Films: DVD9"}
+ - {id: 91, cat: Movies/HD, desc: "Films: RemuX"}
+ - {id: 89, cat: Movies/HD, desc: "Films: BD/BR Rip"}
+ - {id: 88, cat: Movies/BluRay, desc: "Films: Full BD/BR"}
+ - {id: 97, cat: Movies, desc: "Films: Cours Métrage"}
+ - {id: 79, cat: TV/Anime, desc: "Mangas: HD"}
+ - {id: 81, cat: TV/Anime, desc: "Mangas: HD VOSTFR"}
+ - {id: 85, cat: TV/Anime, desc: "Mangas: Web-DL"}
+ - {id: 86, cat: TV/Anime, desc: "Mangas: TV-RIP"}
+ - {id: 75, cat: Audio, desc: "Musique: Concert TVRip"}
+ - {id: 25, cat: Audio/MP3, desc: "Musique: Single MP3"}
+ - {id: 24, cat: Audio/Lossless, desc: "Musique: Single Flac"}
+ - {id: 22, cat: Audio/MP3, desc: "Musique: Album MP3"}
+ - {id: 23, cat: Audio/Lossless, desc: "Musique: Album Flac"}
+ - {id: 64, cat: Audio, desc: "Musique: Mégamix Maison"}
+ - {id: 96, cat: Audio/MP3, desc: "Musique: PlayList MP3"}
+ - {id: 94, cat: Audio, desc: "Musique: Podcast"}
+ - {id: 58, cat: Audio, desc: "Musique: Concert"}
+ - {id: 93, cat: TV, desc: "Serie TV: Saison VOSTFR"}
+ - {id: 61, cat: TV, desc: "Serie TV: Episode VOSTFR"}
+ - {id: 63, cat: TV, desc: "Serie TV: Episode VO"}
+ - {id: 12, cat: TV/Anime, desc: "Serie TV: Animation"}
+ - {id: 74, cat: TV, desc: "Serie TV: TVRip"}
+ - {id: 73, cat: TV/WEB-DL, desc: "Serie TV: WEB-DL"}
+ - {id: 7, cat: TV, desc: "Serie TV: Episode FR"}
+ - {id: 6, cat: TV, desc: "Serie TV: Saison FR"}
+ - {id: 98, cat: TV/Anime, desc: "Serie TV: Manga VOSTFR"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "id"
- options:
- "id": "created"
- "seeders": "seeders"
- "size": "size"
- "name": "title"
- - name: order
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "id"
+ options:
+ "id": "created"
+ "seeders": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: order
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: account-login.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: form:contains("Erreur")
- message:
- selector: form
- remove: table
- test:
- path: torrents-search.php
+login:
+ path: account-login.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: form:contains("Erreur")
+ message:
+ selector: form
+ remove: table
+ test:
+ path: torrents-search.php
- search:
- paths:
- - path: torrents-search.php
- inputs:
- $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
- search: "{{ .Keywords }}"
- # 0 active 1 incldead 2 onlydead
- incldead: 1
- # 0 all 1 notfree 2 onlyfree
- freeleech: 0
- # 0 any 1 French 2 English 3 Multi 4-8 32-41
- lang: 0
- sort: "{{ .Config.sort}}"
- order: "{{ .Config.order}}"
- keywordsfilters:
- - name: re_replace
- args: ["^$", "%"] # replace empty search string with %
+search:
+ paths:
+ - path: torrents-search.php
+ inputs:
+ $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
+ search: "{{ .Keywords }}"
+ # 0 active 1 incldead 2 onlydead
+ incldead: 1
+ # 0 all 1 notfree 2 onlyfree
+ freeleech: 0
+ # 0 any 1 French 2 English 3 Multi 4-8 32-41
+ lang: 0
+ sort: "{{ .Config.sort}}"
+ order: "{{ .Config.order}}"
+ keywordsfilters:
+ - name: re_replace
+ args: ["^$", "%"] # replace empty search string with %
- rows:
- selector: table.ttable_headinner > tbody > tr[class^="t-row"]
+ rows:
+ selector: table.ttable_headinner > tbody > tr[class^="t-row"]
- fields:
- category:
- selector: a[href^="torrents.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- download:
- selector: a[href^="torrents-details.php?id="]
- attribute: href
- filters:
- - name: replace
- args: ["torrents-details.php", "download.php"]
- title:
- selector: a[href^="torrents-details.php?id="]
- filters:
- - name: replace
- args: [" - (Nouveau!)", ""]
- details:
- selector: a[href^="torrents-details.php?id="]
- attribute: href
- banner:
- selector: img.rounded-img
- attribute: src
- size:
- selector: td:nth-child(5)
- seeders:
- selector: td:nth-child(7)
- leechers:
- selector: td:nth-child(8)
- date:
- text: now
- downloadvolumefactor:
- case:
- img[title="freeleech"]: 0
- "*": 1
- uploadvolumefactor:
- case:
- "*": 1
+ fields:
+ category:
+ selector: a[href^="torrents.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ download:
+ selector: a[href^="torrents-details.php?id="]
+ attribute: href
+ filters:
+ - name: replace
+ args: ["torrents-details.php", "download.php"]
+ title:
+ selector: a[href^="torrents-details.php?id="]
+ filters:
+ - name: replace
+ args: [" - (Nouveau!)", ""]
+ details:
+ selector: a[href^="torrents-details.php?id="]
+ attribute: href
+ banner:
+ selector: img.rounded-img
+ attribute: src
+ size:
+ selector: td:nth-child(5)
+ seeders:
+ selector: td:nth-child(7)
+ leechers:
+ selector: td:nth-child(8)
+ date:
+ text: now
+ downloadvolumefactor:
+ case:
+ img[title="freeleech"]: 0
+ "*": 1
+ uploadvolumefactor:
+ case:
+ "*": 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/32pages.yml b/src/Jackett.Common/Definitions/32pages.yml
index 9d5276dea..bc3d0bd82 100644
--- a/src/Jackett.Common/Definitions/32pages.yml
+++ b/src/Jackett.Common/Definitions/32pages.yml
@@ -1,148 +1,148 @@
# Because API is broken we use screen scraping instead of the generic Gazelle based approach
---
- site: 32pages
- name: 32Pages
- description: "32Pages (32P) is a Private Torrent Tracker for comic books/graphic novels"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - https://32pag.es/
+site: 32pages
+name: 32Pages
+description: "32Pages (32P) is a Private Torrent Tracker for comic books/graphic novels"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - https://32pag.es/
- caps:
- categories:
- "Comics": Books/Comics
+caps:
+ categories:
+ "Comics": Books/Comics
- modes:
- search: [q]
+ modes:
+ search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: 2facode
- type: text
- label: 2FA code
- - name: info_2fa
- type: info
- label: "About 2FA code"
- default: "Only fill in the 2FA code box if you have enabled 2FA on the 32Pages Web Site. Otherwise just leave it empty."
- - name: lockip
- type: select
- label: "Lock session to my IP address"
- default: "1"
- options:
- "1": "yes"
- "0": "no"
- - name: sort
- type: select
- label: Sort requested from site
- default: "time"
- options:
- "time": "created"
- "seeders": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
- - name: info
- type: info
- label: Results Per Page
- default: For best results, your search query has to be as specific as possible (only first 100 torrents will be displayed).
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: 2facode
+ type: text
+ label: 2FA code
+ - name: info_2fa
+ type: info
+ label: "About 2FA code"
+ default: "Only fill in the 2FA code box if you have enabled 2FA on the 32Pages Web Site. Otherwise just leave it empty."
+ - name: lockip
+ type: select
+ label: "Lock session to my IP address"
+ default: "1"
+ options:
+ "1": "yes"
+ "0": "no"
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "time"
+ options:
+ "time": "created"
+ "seeders": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
+ - name: info
+ type: info
+ label: Results Per Page
+ default: For best results, your search query has to be as specific as possible (only first 100 torrents will be displayed).
- login:
- path: login
- method: post
- path: login.php
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- twostep_pub: "{{ .Config.2facode }}"
- keeplogged: 1
- lockip: "{{ .Config.lockip }}"
- error:
- - selector: "#formerror"
- test:
- path: torrents.php
- selector: "#nav_userinfo"
+login:
+ path: login
+ method: post
+ path: login.php
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ twostep_pub: "{{ .Config.2facode }}"
+ keeplogged: 1
+ lockip: "{{ .Config.lockip }}"
+ error:
+ - selector: "#formerror"
+ test:
+ path: torrents.php
+ selector: "#nav_userinfo"
- search:
- paths:
- - path: torrents.php
- #site displays just 25 results per page, no profile options found to change this, so we attempt to fetch 4 pages
- - path: torrents.php
- inputs:
- page: 2
- - path: torrents.php
- inputs:
- page: 3
- - path: torrents.php
- inputs:
- page: 4
- inputs:
- searchstr: "{{ .Keywords }}"
- order_by: "{{ .Config.sort}}"
- order_way: "{{ .Config.type}}"
- disablegrouping: 1
+search:
+ paths:
+ - path: torrents.php
+ #site displays just 25 results per page, no profile options found to change this, so we attempt to fetch 4 pages
+ - path: torrents.php
+ inputs:
+ page: 2
+ - path: torrents.php
+ inputs:
+ page: 3
+ - path: torrents.php
+ inputs:
+ page: 4
+ inputs:
+ searchstr: "{{ .Keywords }}"
+ order_by: "{{ .Config.sort}}"
+ order_way: "{{ .Config.type}}"
+ disablegrouping: 1
- rows:
- selector: table#torrent_table > tbody > tr[class^="torrent"]
+ rows:
+ selector: table#torrent_table > tbody > tr[class^="torrent"]
- fields:
- _grouptitle:
- selector: a[href^="torrents.php?id="]
- _language:
- selector: img[class^="flag"]
- attribute: alt
- optional: true
- title:
- selector: a[title="View Torrent"]
- filters:
- - name: prepend
- args: "{{.Result._grouptitle}} - "
- - name: replace
- args: ["/ /","/"] #removes slash left after freeleech images
- - name: append
- args: "{{if .Result._language}} [{{.Result._language}}]{{else}}{{end}}"
- category:
- text: Comics
- details:
- selector: a[title="View Torrent"]
- attribute: href
- download:
- selector: a[title="Download"]
- attribute: href
- size:
- selector: td[headers="browse_size"]
- files:
- selector: td[headers="browse_files"]
- grabs:
- selector: td[headers="browse_snatches"]
- seeders:
- selector: td[headers="browse_seeders"]
- leechers:
- selector: td[headers="browse_leechers"]
- date:
- selector: td[headers="browse_time"] > span[title]
- attribute: title
- filters:
- - name: dateparse
- args: "Apr 04 2020, 16:24"
- downloadvolumefactor:
- case:
- img.fl-diamond: 0
- img.fl-sapphire: 0
- img.fl-emerald: 0
- img.fl-ruby: 0
- "*": 1
- uploadvolumefactor:
- text: 1
+ fields:
+ _grouptitle:
+ selector: a[href^="torrents.php?id="]
+ _language:
+ selector: img[class^="flag"]
+ attribute: alt
+ optional: true
+ title:
+ selector: a[title="View Torrent"]
+ filters:
+ - name: prepend
+ args: "{{.Result._grouptitle}} - "
+ - name: replace
+ args: ["/ /","/"] #removes slash left after freeleech images
+ - name: append
+ args: "{{if .Result._language}} [{{.Result._language}}]{{else}}{{end}}"
+ category:
+ text: Comics
+ details:
+ selector: a[title="View Torrent"]
+ attribute: href
+ download:
+ selector: a[title="Download"]
+ attribute: href
+ size:
+ selector: td[headers="browse_size"]
+ files:
+ selector: td[headers="browse_files"]
+ grabs:
+ selector: td[headers="browse_snatches"]
+ seeders:
+ selector: td[headers="browse_seeders"]
+ leechers:
+ selector: td[headers="browse_leechers"]
+ date:
+ selector: td[headers="browse_time"] > span[title]
+ attribute: title
+ filters:
+ - name: dateparse
+ args: "Apr 04 2020, 16:24"
+ downloadvolumefactor:
+ case:
+ img.fl-diamond: 0
+ img.fl-sapphire: 0
+ img.fl-emerald: 0
+ img.fl-ruby: 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
# gazelle
diff --git a/src/Jackett.Common/Definitions/3changtrai.yml b/src/Jackett.Common/Definitions/3changtrai.yml
index 51e8eb31a..3f18db657 100644
--- a/src/Jackett.Common/Definitions/3changtrai.yml
+++ b/src/Jackett.Common/Definitions/3changtrai.yml
@@ -1,161 +1,161 @@
---
- site: 3changtrai
- name: 3ChangTrai
- description: "3ChangTrai (3CT) is a VIETNAMESE Private Torrent Tracker for HD MOVIES / TV"
- language: vi-vn
- type: private
- encoding: UTF-8
- links:
- - https://3changtrai.com/
+site: 3changtrai
+name: 3ChangTrai
+description: "3ChangTrai (3CT) is a VIETNAMESE Private Torrent Tracker for HD MOVIES / TV"
+language: vi-vn
+type: private
+encoding: UTF-8
+links:
+ - https://3changtrai.com/
- caps:
- categorymappings:
- - {id: 401, cat: Movies, desc: "Movies"}
- - {id: 402, cat: TV, desc: "TV Series"}
- - {id: 403, cat: TV, desc: "TV Shows"}
- - {id: 404, cat: TV/Documentary, desc: "Documentaries"}
- - {id: 405, cat: TV/Anime, desc: "Animations"}
- - {id: 406, cat: Audio/Video, desc: "Music Videos"}
- - {id: 407, cat: TV/Sport, desc: "Sports"}
- - {id: 408, cat: Audio, desc: "HQ Audio"}
- - {id: 410, cat: PC, desc: "Software"}
- - {id: 411, cat: Books, desc: "Documents"}
- - {id: 412, cat: PC/Games, desc: "Games"}
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "Movies"}
+ - {id: 402, cat: TV, desc: "TV Series"}
+ - {id: 403, cat: TV, desc: "TV Shows"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries"}
+ - {id: 405, cat: TV/Anime, desc: "Animations"}
+ - {id: 406, cat: Audio/Video, desc: "Music Videos"}
+ - {id: 407, cat: TV/Sport, desc: "Sports"}
+ - {id: 408, cat: Audio, desc: "HQ Audio"}
+ - {id: 410, cat: PC, desc: "Software"}
+ - {id: 411, cat: Books, desc: "Documents"}
+ - {id: 412, cat: PC/Games, desc: "Games"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "4"
- options:
- "4": "created"
- "7": "seeders"
- "5": "size"
- "1": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "4"
+ options:
+ "4": "created"
+ "7": "seeders"
+ "5": "size"
+ "1": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: login.php
- method: form
- form: form[action="takelogin.php"]
- captcha:
- type: image
- selector: img[alt="CAPTCHA"]
- input: imagestring
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- logout: ""
- securelogin: ""
- ssl: yes
- trackerssl: yes
- error:
- - selector: td.embedded:has(h2:contains("Đăng nhập thất bại!")) # Login failed!
- - selector: td.embedded:has(h2:contains("Thất bại")) # Failure (captcha)
- test:
- path: index.php
- selector: a[href="logout.php"]
+login:
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[alt="CAPTCHA"]
+ input: imagestring
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ logout: ""
+ securelogin: ""
+ ssl: yes
+ trackerssl: yes
+ error:
+ - selector: td.embedded:has(h2:contains("Đăng nhập thất bại!")) # Login failed!
+ - selector: td.embedded:has(h2:contains("Thất bại")) # Failure (captcha)
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
- search:
- paths:
- - path: torrents.php
- inputs:
- $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
- search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- # 0 incldead 1 active 2 dead
- incldead: 0
- # 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x50% 7 30%
- spstate: 0
- # 0 title 1 descr 3 uploader 4 imdburl
- search_area: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
- # 0 AND 1 OR 2 exact
- search_mode: 0
- sort: "{{ .Config.sort }}"
- type: "{{ .Config.type }}"
- # does not return imdb link in results
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ # 0 incldead 1 active 2 dead
+ incldead: 0
+ # 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x50% 7 30%
+ spstate: 0
+ # 0 title 1 descr 3 uploader 4 imdburl
+ search_area: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
+ # 0 AND 1 OR 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ # does not return imdb link in results
- rows:
- selector: table.torrents > tbody > tr:has(table.torrentname)
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname)
- fields:
- category:
- selector: a[href^="?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- title:
- selector: a[href^="details.php?id="]
- title:
- optional: true
- selector: a[title][href^="details.php?id="]
- attribute: title
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- date:
- # time type: time elapsed (default)
- selector: td:nth-child(4) > span[title]
- attribute: title
- optional: true
- filters:
- - name: append
- args: " +07:00"
- - name: dateparse
- args: "2006-01-02 15:04:05 -07:00"
- date:
- # time added
- selector: td:nth-child(4):not(:has(span))
- optional: true
- filters:
- - name: append
- args: " +07:00"
- - name: dateparse
- args: "2006-01-0215:04:05 -07:00"
- size:
- selector: td:nth-child(5)
- seeders:
- selector: td:nth-child(6)
- leechers:
- selector: td:nth-child(7)
- grabs:
- selector: td:nth-child(8)
- downloadvolumefactor:
- case:
- img.pro_free: 0
- img.pro_free2up: 0
- img.pro_50pctdown: 0.5
- img.pro_50pctdown2up: 0.5
- img.pro_30pctdown: 0.3
- "*": 1
- uploadvolumefactor:
- case:
- img.pro_50pctdown2up: 2
- img.pro_free2up: 2
- img.pro_2up: 2
- "*": 1
- description:
- selector: td:nth-child(2)
- remove: a, img
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title:
+ selector: a[href^="details.php?id="]
+ title:
+ optional: true
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ date:
+ # time type: time elapsed (default)
+ selector: td:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +07:00"
+ - name: dateparse
+ args: "2006-01-02 15:04:05 -07:00"
+ date:
+ # time added
+ selector: td:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +07:00"
+ - name: dateparse
+ args: "2006-01-0215:04:05 -07:00"
+ size:
+ selector: td:nth-child(5)
+ seeders:
+ selector: td:nth-child(6)
+ leechers:
+ selector: td:nth-child(7)
+ grabs:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ description:
+ selector: td:nth-child(2)
+ remove: a, img
# NexusPHP Standard v1.5 Beta 4
diff --git a/src/Jackett.Common/Definitions/3dtorrents.yml b/src/Jackett.Common/Definitions/3dtorrents.yml
index d706b0110..ca18ef9ef 100644
--- a/src/Jackett.Common/Definitions/3dtorrents.yml
+++ b/src/Jackett.Common/Definitions/3dtorrents.yml
@@ -1,117 +1,117 @@
---
- site: 3dtorrents
- name: 3D Torrents
- description: "3D Torrents (3DT) is a Private Torrent Tracker for 3D HD / BLURAY MOVIES"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - http://www.3dtorrents.org/ # site does not support https ERR_CONNECTION_CLOSED
+site: 3dtorrents
+name: 3D Torrents
+description: "3D Torrents (3DT) is a Private Torrent Tracker for 3D HD / BLURAY MOVIES"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - http://www.3dtorrents.org/ # site does not support https ERR_CONNECTION_CLOSED
- caps:
- categorymappings:
- - {id: 14, cat: Movies, desc: "Movies XviD"}
- - {id: 34, cat: Movies, desc: "Movies UltraHD"}
- - {id: 15, cat: Movies, desc: "Movies DVD-R"}
- - {id: 11, cat: Movies, desc: "Movies 720p"}
- - {id: 13, cat: Movies, desc: "Movies 1080p"}
- - {id: 16, cat: Movies, desc: "Movies 3DTV"}
- - {id: 17, cat: Movies, desc: "Movies Blu-ray"}
- - {id: 27, cat: Movies, desc: "Movies BD25 Encode"}
- - {id: 33, cat: Movies, desc: "Movies BD9 AVCHD"}
- - {id: 22, cat: Movies, desc: "Movies 2D to 3D Conv"}
- - {id: 32, cat: Movies, desc: "Bluray MKV Remux"}
- - {id: 23, cat: Movies, desc: "Movies Evo 3D"}
- - {id: 21, cat: PC, desc: "3D Software"}
- - {id: 2, cat: Audio, desc: "Music"}
- - {id: 28, cat: XXX, desc: "Adult 720p"}
- - {id: 29, cat: XXX, desc: "Adult 1080p"}
- - {id: 30, cat: XXX, desc: "Adult Blu-ray"}
- - {id: 31, cat: Other, desc: "Misc"}
- - {id: 19, cat: Audio, desc: "Audio Packs"}
+caps:
+ categorymappings:
+ - {id: 14, cat: Movies, desc: "Movies XviD"}
+ - {id: 34, cat: Movies, desc: "Movies UltraHD"}
+ - {id: 15, cat: Movies, desc: "Movies DVD-R"}
+ - {id: 11, cat: Movies, desc: "Movies 720p"}
+ - {id: 13, cat: Movies, desc: "Movies 1080p"}
+ - {id: 16, cat: Movies, desc: "Movies 3DTV"}
+ - {id: 17, cat: Movies, desc: "Movies Blu-ray"}
+ - {id: 27, cat: Movies, desc: "Movies BD25 Encode"}
+ - {id: 33, cat: Movies, desc: "Movies BD9 AVCHD"}
+ - {id: 22, cat: Movies, desc: "Movies 2D to 3D Conv"}
+ - {id: 32, cat: Movies, desc: "Bluray MKV Remux"}
+ - {id: 23, cat: Movies, desc: "Movies Evo 3D"}
+ - {id: 21, cat: PC, desc: "3D Software"}
+ - {id: 2, cat: Audio, desc: "Music"}
+ - {id: 28, cat: XXX, desc: "Adult 720p"}
+ - {id: 29, cat: XXX, desc: "Adult 1080p"}
+ - {id: 30, cat: XXX, desc: "Adult Blu-ray"}
+ - {id: 31, cat: Other, desc: "Misc"}
+ - {id: 19, cat: Audio, desc: "Audio Packs"}
- modes:
- search: [q]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: info
- type: info
- label: Results Per Page
- default: For best results, change the Torrents per page: setting to 100 on your account profile.
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: info
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
- login:
- path: index.php?page=login&returnto=index.php
- method: form
- form: form
- inputs:
- uid: "{{ .Config.username }}"
- pwd: "{{ .Config.password }}"
- captcha:
- type: image
- selector: img.captcha
- input: private_key
- error:
- - selector: span.errormsg
- test:
- path: index.php
+login:
+ path: index.php?page=login&returnto=index.php
+ method: form
+ form: form
+ inputs:
+ uid: "{{ .Config.username }}"
+ pwd: "{{ .Config.password }}"
+ captcha:
+ type: image
+ selector: img.captcha
+ input: private_key
+ error:
+ - selector: span.errormsg
+ test:
+ path: index.php
- search:
- paths:
- - path: index.php
- inputs:
- $raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
- search: "{{ .Keywords }}"
- page: torrents
- category: 0
- 3dformat: 0
- active: 1
+search:
+ paths:
+ - path: index.php
+ inputs:
+ $raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
+ search: "{{ .Keywords }}"
+ page: torrents
+ category: 0
+ 3dformat: 0
+ active: 1
- rows:
- selector: table[cellspacing!="1"].lista > tbody > tr:has(a[href^="index.php?page=torrents&category="])
+ rows:
+ selector: table[cellspacing!="1"].lista > tbody > tr:has(a[href^="index.php?page=torrents&category="])
- fields:
- category:
- selector: a[href^="index.php?page=torrents&category="]
- attribute: href
- filters:
- - name: querystring
- args: category
- title:
- remove: span
- selector: td:nth-child(2)
- download:
- selector: a[href^="index.php?page=torrent-details&id="]
- attribute: href
- filters:
- - name: replace
- args: ["index.php?page=torrent-details&id=", "download.php?id="]
- details:
- selector: a[href^="index.php?page=torrent-details&id="]
- attribute: href
- size:
- selector: td:nth-last-child(4)
- seeders:
- selector: td:nth-last-child(3)
- # leechers:
- # selector: td:nth-last-child(2)
- date:
- selector: td:nth-last-child(5)
- filters:
- - name: dateparse
- args: "02/01/2006"
- downloadvolumefactor:
- case:
- img[title^="You get 50% off download count on this torrent"]: 0.5
- "*": 1
- uploadvolumefactor:
- case:
- "*": 1
+ fields:
+ category:
+ selector: a[href^="index.php?page=torrents&category="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: category
+ title:
+ remove: span
+ selector: td:nth-child(2)
+ download:
+ selector: a[href^="index.php?page=torrent-details&id="]
+ attribute: href
+ filters:
+ - name: replace
+ args: ["index.php?page=torrent-details&id=", "download.php?id="]
+ details:
+ selector: a[href^="index.php?page=torrent-details&id="]
+ attribute: href
+ size:
+ selector: td:nth-last-child(4)
+ seeders:
+ selector: td:nth-last-child(3)
+ # leechers:
+ # selector: td:nth-last-child(2)
+ date:
+ selector: td:nth-last-child(5)
+ filters:
+ - name: dateparse
+ args: "02/01/2006"
+ downloadvolumefactor:
+ case:
+ img[title^="You get 50% off download count on this torrent"]: 0.5
+ "*": 1
+ uploadvolumefactor:
+ case:
+ "*": 1
# xbtit
diff --git a/src/Jackett.Common/Definitions/3evils.yml b/src/Jackett.Common/Definitions/3evils.yml
index 30e966b54..b8f968038 100644
--- a/src/Jackett.Common/Definitions/3evils.yml
+++ b/src/Jackett.Common/Definitions/3evils.yml
@@ -1,155 +1,155 @@
---
- site: 3evils
- name: 3evils
- description: "3evils is a Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: en
- type: private
- encoding: UTF-8
- links:
- - https://www.3evils.com/
+site: 3evils
+name: 3evils
+description: "3evils is a Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: en
+type: private
+encoding: UTF-8
+links:
+ - https://www.3evils.com/
- caps:
- categorymappings:
- - {id: 65, cat: Books, desc: "Books"}
- - {id: 11, cat: Movies/UHD, desc: "Movies/Encodes 2160p"}
- - {id: 12, cat: Movies/UHD, desc: "Movies/Remux 2160p"}
- - {id: 13, cat: Movies/HD, desc: "Movies/Remux 1080p"}
- - {id: 14, cat: Movies, desc: "Movies/Packs"}
- - {id: 16, cat: Movies/HD, desc: "Movies/x264"}
- - {id: 17, cat: Movies/HD, desc: "Movies/X265"}
- - {id: 33, cat: Audio, desc: "Music/Audio"}
- - {id: 32, cat: Audio, desc: "Music/Packs"}
- - {id: 6, cat: TV, desc: "TV/Packs"}
- - {id: 3, cat: TV/HD, desc: "TV/x264"}
- - {id: 4, cat: TV/HD, desc: "TV/x265"}
- - {id: 8, cat: TV/SD, desc: "TV/Xvid"}
- - {id: 43, cat: PC/0day, desc: "Appz/Windows"}
- - {id: 42, cat: PC/Phone-Android, desc: "Appz/Android"}
+caps:
+ categorymappings:
+ - {id: 65, cat: Books, desc: "Books"}
+ - {id: 11, cat: Movies/UHD, desc: "Movies/Encodes 2160p"}
+ - {id: 12, cat: Movies/UHD, desc: "Movies/Remux 2160p"}
+ - {id: 13, cat: Movies/HD, desc: "Movies/Remux 1080p"}
+ - {id: 14, cat: Movies, desc: "Movies/Packs"}
+ - {id: 16, cat: Movies/HD, desc: "Movies/x264"}
+ - {id: 17, cat: Movies/HD, desc: "Movies/X265"}
+ - {id: 33, cat: Audio, desc: "Music/Audio"}
+ - {id: 32, cat: Audio, desc: "Music/Packs"}
+ - {id: 6, cat: TV, desc: "TV/Packs"}
+ - {id: 3, cat: TV/HD, desc: "TV/x264"}
+ - {id: 4, cat: TV/HD, desc: "TV/x265"}
+ - {id: 8, cat: TV/SD, desc: "TV/Xvid"}
+ - {id: 43, cat: PC/0day, desc: "Appz/Windows"}
+ - {id: 42, cat: PC/Phone-Android, desc: "Appz/Android"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "4"
- options:
- "4": "created"
- "7": "seeders"
- "5": "size"
- "1": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "4"
+ options:
+ "4": "created"
+ "7": "seeders"
+ "5": "size"
+ "1": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- submitme: "X"
- error:
- - selector: div.callout:contains("Login failed!")
- test:
- path: /
- selector: a[href*="/logout.php?hash_please="]
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ submitme: "X"
+ error:
+ - selector: div.callout:contains("Login failed!")
+ test:
+ path: /
+ selector: a[href*="/logout.php?hash_please="]
- search:
- paths:
- # https://www.3evils.com/browse.php?search=black+lightning+s02e11&searchin=title&incldead=1
- # https://www.3evils.com/browse.php?c3=1&c4=1&search=&searchin=title&incldead=1
- - path: browse.php
- inputs:
- $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
- search: "{{.Keywords}}"
- # title descr genre all
- searchin: title
- # 0 active 1 incldead 2 onlydead
- incldead: 1
- sort: "{{ .Config.sort }}"
- type: "{{ .Config.type }}"
+search:
+ paths:
+ # https://www.3evils.com/browse.php?search=black+lightning+s02e11&searchin=title&incldead=1
+ # https://www.3evils.com/browse.php?c3=1&c4=1&search=&searchin=title&incldead=1
+ - path: browse.php
+ inputs:
+ $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
+ search: "{{.Keywords}}"
+ # title descr genre all
+ searchin: title
+ # 0 active 1 incldead 2 onlydead
+ incldead: 1
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
- rows:
- selector: table.responsive-card-table tr:has(td[data-label])
+ rows:
+ selector: table.responsive-card-table tr:has(td[data-label])
+ filters:
+ - name: andmatch
+
+ fields:
+ category:
+ selector: td[data-label="Type"] a
+ attribute: href
filters:
- - name: andmatch
-
- fields:
- category:
- selector: td[data-label="Type"] a
- attribute: href
- filters:
- - name: querystring
- args: cat
- title:
- selector: td[data-label="Name"] a[onmouseover]
- attribute: onmouseover
- filters:
- - name: regexp
- args: "Tip\\('(.*?)"
- details:
- selector: td[data-label="Name"] a
- attribute: href
- download:
- selector: td[data-label="Download"] a
- attribute: href
- banner:
- selector: td[data-label="Name"] a[onmouseover]
- attribute: onmouseover
- optional: true
- filters:
- # onmouseover="Tip('blahblah />');"
- #
10:20 AM
- # Yesterday
08:03 PM
- optional: true
- selector: td[data-label="Added"]:contains("day")
- date:
- # Feb 14 2019
10:20 AM
- optional: true
- selector: td[data-label="Added"]:not(:contains("day"))
- filters:
- - name: dateparse
- args: "Jan 2 2006 03:04 PM"
- seeders:
- selector: td[data-label="Seeders"]
- leechers:
- selector: td[data-label="Leechers"]
- downloadvolumefactor:
- case:
- img[src="./pic/freedownload.gif"]: 0
- "*": 1
- uploadvolumefactor:
- case:
- "*": 1
+ - name: querystring
+ args: cat
+ title:
+ selector: td[data-label="Name"] a[onmouseover]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: "Tip\\('(.*?)"
+ details:
+ selector: td[data-label="Name"] a
+ attribute: href
+ download:
+ selector: td[data-label="Download"] a
+ attribute: href
+ banner:
+ selector: td[data-label="Name"] a[onmouseover]
+ attribute: onmouseover
+ optional: true
+ filters:
+ # onmouseover="Tip('blahblah />');"
+ #
10:20 AM
+ # Yesterday
08:03 PM
+ optional: true
+ selector: td[data-label="Added"]:contains("day")
+ date:
+ # Feb 14 2019
10:20 AM
+ optional: true
+ selector: td[data-label="Added"]:not(:contains("day"))
+ filters:
+ - name: dateparse
+ args: "Jan 2 2006 03:04 PM"
+ seeders:
+ selector: td[data-label="Seeders"]
+ leechers:
+ selector: td[data-label="Leechers"]
+ downloadvolumefactor:
+ case:
+ img[src="./pic/freedownload.gif"]: 0
+ "*": 1
+ uploadvolumefactor:
+ case:
+ "*": 1
# U-232 V5
diff --git a/src/Jackett.Common/Definitions/4thd.yml b/src/Jackett.Common/Definitions/4thd.yml
index 1d394ed83..7e2b8104c 100644
--- a/src/Jackett.Common/Definitions/4thd.yml
+++ b/src/Jackett.Common/Definitions/4thd.yml
@@ -1,145 +1,145 @@
---
- site: 4thd
- name: 4thD
- description: "4th Dimension is a Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: en-us
- encoding: UTF-8
- type: private
- links:
- - https://4thd.xyz/
+site: 4thd
+name: 4thD
+description: "4th Dimension is a Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: en-us
+encoding: UTF-8
+type: private
+links:
+ - https://4thd.xyz/
- caps:
- categorymappings:
- - {id: 38, cat: Movies, desc: "Movie Pack"}
- - {id: 36, cat: Movies, desc: "Movies/Classic Films"}
- - {id: 13, cat: Movies, desc: "Movies/Documentary"}
- - {id: 21, cat: Movies/Foreign, desc: "Movies/Foreign"}
- - {id: 27, cat: Movies/HD, desc: "MoviesHD"}
- - {id: 29, cat: Movies/SD, desc: "Movies/SD"}
- - {id: 26, cat: Movies/SD, desc: "Movies/XviD"}
- - {id: 41, cat: TV/FOREIGN, desc: "Foreign tv"}
- - {id: 40, cat: TV, desc: "Mini-Series"}
- - {id: 43, cat: TV/HD, desc: "TV H265"}
- - {id: 42, cat: TV, desc: "TV Movie"}
- - {id: 4, cat: TV/HD, desc: "TV/HD-x720"}
- - {id: 14, cat: TV, desc: "TV/Packs"}
- - {id: 2, cat: TV/SD, desc: "TV/SD MP4/mkv"}
- - {id: 31, cat: TV/SD, desc: "TV/XviD"}
- - {id: 18, cat: PC/Games, desc: "Games/PC"}
- - {id: 44, cat: Audio, desc: "Music/Pack"}
- - {id: 12, cat: Audio/Lossless, desc: "Music/FLAC"}
- - {id: 15, cat: Audio/MP3, desc: "Music/MP3"}
- - {id: 37, cat: Audio, desc: "Radio"}
- - {id: 9, cat: PC/0day, desc: "Apps/PC"}
- - {id: 34, cat: Audio/Audiobook, desc: "Audiobooks"}
- - {id: 25, cat: Books/Ebook, desc: "eBooks"}
+caps:
+ categorymappings:
+ - {id: 38, cat: Movies, desc: "Movie Pack"}
+ - {id: 36, cat: Movies, desc: "Movies/Classic Films"}
+ - {id: 13, cat: Movies, desc: "Movies/Documentary"}
+ - {id: 21, cat: Movies/Foreign, desc: "Movies/Foreign"}
+ - {id: 27, cat: Movies/HD, desc: "MoviesHD"}
+ - {id: 29, cat: Movies/SD, desc: "Movies/SD"}
+ - {id: 26, cat: Movies/SD, desc: "Movies/XviD"}
+ - {id: 41, cat: TV/FOREIGN, desc: "Foreign tv"}
+ - {id: 40, cat: TV, desc: "Mini-Series"}
+ - {id: 43, cat: TV/HD, desc: "TV H265"}
+ - {id: 42, cat: TV, desc: "TV Movie"}
+ - {id: 4, cat: TV/HD, desc: "TV/HD-x720"}
+ - {id: 14, cat: TV, desc: "TV/Packs"}
+ - {id: 2, cat: TV/SD, desc: "TV/SD MP4/mkv"}
+ - {id: 31, cat: TV/SD, desc: "TV/XviD"}
+ - {id: 18, cat: PC/Games, desc: "Games/PC"}
+ - {id: 44, cat: Audio, desc: "Music/Pack"}
+ - {id: 12, cat: Audio/Lossless, desc: "Music/FLAC"}
+ - {id: 15, cat: Audio/MP3, desc: "Music/MP3"}
+ - {id: 37, cat: Audio, desc: "Radio"}
+ - {id: 9, cat: PC/0day, desc: "Apps/PC"}
+ - {id: 34, cat: Audio/Audiobook, desc: "Audiobooks"}
+ - {id: 25, cat: Books/Ebook, desc: "eBooks"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "time"
- options:
- "time": "created"
- "seeders": "seeders"
- "size": "size"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "time"
+ options:
+ "time": "created"
+ "seeders": "seeders"
+ "size": "size"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: login.php
- method: form
- form: form#loginform
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- keeplogged: 1
- error:
- - selector: form#loginform .warning
- test:
- path: index.php
- selector: a[href^="logout.php?auth="]
+login:
+ path: login.php
+ method: form
+ form: form#loginform
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ keeplogged: 1
+ error:
+ - selector: form#loginform .warning
+ test:
+ path: index.php
+ selector: a[href^="logout.php?auth="]
- search:
- paths:
- - path: torrents.php
- inputs:
- # https://4thd.xyz/torrents.php?order_by=time&order_way=desc&filter_freeleech=1&title=twilight+zone&search_type=1&taglist=&tags_type=0
- $raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
- order_by: "{{ .Config.sort }}"
- order_way: "{{ .Config.type }}"
- # 0 all 1 onlyfree
- filter_freeleech: 0
- title: "{{ .Keywords }}"
- search_type: 1
- taglist: ""
- tags_type: 0
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ # https://4thd.xyz/torrents.php?order_by=time&order_way=desc&filter_freeleech=1&title=twilight+zone&search_type=1&taglist=&tags_type=0
+ $raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
+ order_by: "{{ .Config.sort }}"
+ order_way: "{{ .Config.type }}"
+ # 0 all 1 onlyfree
+ filter_freeleech: 0
+ title: "{{ .Keywords }}"
+ search_type: 1
+ taglist: ""
+ tags_type: 0
- rows:
- selector: table#torrent_table > tbody > tr.torrent:has(a[href^="torrents.php?action=download&id="])
+ rows:
+ selector: table#torrent_table > tbody > tr.torrent:has(a[href^="torrents.php?action=download&id="])
- fields:
- category:
- selector: td.cats_col div a
- attribute: href
- filters:
- - name: regexp
- args: \[(\d+)\]
- title:
- selector: a[href^="torrents.php?id="]
- details:
- selector: a[href^="torrents.php?id="]
- attribute: href
- download:
- selector: a[href^="torrents.php?action=download&id="]
- attribute: href
- description:
- selector: div.tags
- banner:
- selector: td:nth-child(2) script
- optional: true
- filters:
- - name: regexp
- args: "src=(.*?)>"
- - name: re_replace
- args: ["\\\\", ""]
- files:
- selector: td:nth-child(3)
- date:
- selector: td:nth-child(5)
- filters:
- - name: replace
- args: ["Never", "99 years ago"]
- size:
- selector: td:nth-child(6)
- grabs:
- selector: td:nth-child(7)
- seeders:
- selector: td:nth-child(8)
- leechers:
- selector: td:nth-child(9)
- downloadvolumefactor:
- case:
- img[src$="/freedownload.gif"]: 0
- "*": 1
- uploadvolumefactor:
- case:
- "*": 1
+ fields:
+ category:
+ selector: td.cats_col div a
+ attribute: href
+ filters:
+ - name: regexp
+ args: \[(\d+)\]
+ title:
+ selector: a[href^="torrents.php?id="]
+ details:
+ selector: a[href^="torrents.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="torrents.php?action=download&id="]
+ attribute: href
+ description:
+ selector: div.tags
+ banner:
+ selector: td:nth-child(2) script
+ optional: true
+ filters:
+ - name: regexp
+ args: "src=(.*?)>"
+ - name: re_replace
+ args: ["\\\\", ""]
+ files:
+ selector: td:nth-child(3)
+ date:
+ selector: td:nth-child(5)
+ filters:
+ - name: replace
+ args: ["Never", "99 years ago"]
+ size:
+ selector: td:nth-child(6)
+ grabs:
+ selector: td:nth-child(7)
+ seeders:
+ selector: td:nth-child(8)
+ leechers:
+ selector: td:nth-child(9)
+ downloadvolumefactor:
+ case:
+ img[src$="/freedownload.gif"]: 0
+ "*": 1
+ uploadvolumefactor:
+ case:
+ "*": 1
# Engine n/a
diff --git a/src/Jackett.Common/Definitions/52pt.yml b/src/Jackett.Common/Definitions/52pt.yml
index 19d43b37a..0b6343450 100644
--- a/src/Jackett.Common/Definitions/52pt.yml
+++ b/src/Jackett.Common/Definitions/52pt.yml
@@ -1,159 +1,159 @@
---
- site: 52pt
- name: 52PT
- description: "52PT is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
- language: zh-cn
- type: private
- encoding: UTF-8
- links:
- - https://52pt.site/
+site: 52pt
+name: 52PT
+description: "52PT is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
+language: zh-cn
+type: private
+encoding: UTF-8
+links:
+ - https://52pt.site/
- caps:
- categorymappings:
- - {id: 401, cat: Movies, desc: "Movies/电影"}
- - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
- - {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
- - {id: 402, cat: TV, desc: "TV Series/剧集"}
- - {id: 403, cat: TV, desc: "TV Shows/综艺"}
- - {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐MV"}
- - {id: 407, cat: TV/Sport, desc: "Sports/运体"}
- - {id: 409, cat: Other, desc: "Misc/其他"}
- - {id: 410, cat: Other, desc: "Opera/戏曲 曲艺"}
- - {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "Movies/电影"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
+ - {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
+ - {id: 402, cat: TV, desc: "TV Series/剧集"}
+ - {id: 403, cat: TV, desc: "TV Shows/综艺"}
+ - {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐MV"}
+ - {id: 407, cat: TV/Sport, desc: "Sports/运体"}
+ - {id: 409, cat: Other, desc: "Misc/其他"}
+ - {id: 410, cat: Other, desc: "Opera/戏曲 曲艺"}
+ - {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "4"
- options:
- "4": "created"
- "7": "seeders"
- "5": "size"
- "1": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "4"
+ options:
+ "4": "created"
+ "7": "seeders"
+ "5": "size"
+ "1": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: login.php
- method: form
- form: form[action="takelogin.php"]
- captcha:
- type: image
- selector: img[alt="CAPTCHA"]
- input: imagestring
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: td.embedded:has(h2:contains("失败"))
- - selector: td.embedded:has(h2:contains("登录失败"))
- test:
- path: index.php
- selector: a[href*="logout.php"]
+login:
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[alt="CAPTCHA"]
+ input: imagestring
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: td.embedded:has(h2:contains("失败"))
+ - selector: td.embedded:has(h2:contains("登录失败"))
+ test:
+ path: index.php
+ selector: a[href*="logout.php"]
- search:
- paths:
- - path: torrents.php
- inputs:
- $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
- search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- # 0 incldead 1 active 2 dead
- incldead: 0
- # 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x50% 7 30%
- spstate: 0
- # 0 title 1 descr 3 uploaded 4 imdburl
- search_area: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
- # 0 AND 1 OR 2 exact
- search_mode: 0
- sort: "{{ .Config.sort }}"
- type: "{{ .Config.type }}"
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ # 0 incldead 1 active 2 dead
+ incldead: 0
+ # 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x50% 7 30%
+ spstate: 0
+ # 0 title 1 descr 3 uploaded 4 imdburl
+ search_area: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
+ # 0 AND 1 OR 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
- rows:
- selector: table.torrents > tbody > tr:has(table.torrentname)
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname)
- fields:
- title:
- selector: a[href^="details.php?id="]
- title:
- optional: true
- selector: a[title][href^="details.php?id="]
- attribute: title
- category:
- selector: a[href^="?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- imdb:
- optional: true
- selector: div.imdb_100 > a
- attribute: href
- date:
- # time type: time elapsed (default)
- selector: td:nth-child(4) > span[title]
- attribute: title
- optional: true
- filters:
- - name: append
- args: " +08:00"
- - name: dateparse
- args: "2006-01-02 15:04:05 -07:00"
- date:
- # time added
- selector: td:nth-child(4):not(:has(span))
- optional: true
- filters:
- - name: append
- args: " +08:00"
- - name: dateparse
- args: "2006-01-0215:04:05 -07:00"
- size:
- selector: td:nth-child(5)
- seeders:
- selector: td:nth-child(6)
- leechers:
- selector: td:nth-child(7)
- grabs:
- selector: td:nth-child(8)
- downloadvolumefactor:
- case:
- img.pro_free: 0
- img.pro_free2up: 0
- img.pro_50pctdown: 0.5
- img.pro_50pctdown2up: 0.5
- img.pro_30pctdown: 0.3
- "*": 1
- uploadvolumefactor:
- case:
- img.pro_50pctdown2up: 2
- img.pro_free2up: 2
- img.pro_2up: 2
- "*": 1
- description:
- selector: td:nth-child(2)
- remove: a, img
+ fields:
+ title:
+ selector: a[href^="details.php?id="]
+ title:
+ optional: true
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ imdb:
+ optional: true
+ selector: div.imdb_100 > a
+ attribute: href
+ date:
+ # time type: time elapsed (default)
+ selector: td:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00"
+ - name: dateparse
+ args: "2006-01-02 15:04:05 -07:00"
+ date:
+ # time added
+ selector: td:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00"
+ - name: dateparse
+ args: "2006-01-0215:04:05 -07:00"
+ size:
+ selector: td:nth-child(5)
+ seeders:
+ selector: td:nth-child(6)
+ leechers:
+ selector: td:nth-child(7)
+ grabs:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ description:
+ selector: td:nth-child(2)
+ remove: a, img
# NexusPHP Standard v1.5 Beta 4
diff --git a/src/Jackett.Common/Definitions/7torrents.yml b/src/Jackett.Common/Definitions/7torrents.yml
index 9269aadb1..d8cf9156f 100644
--- a/src/Jackett.Common/Definitions/7torrents.yml
+++ b/src/Jackett.Common/Definitions/7torrents.yml
@@ -1,77 +1,77 @@
---
- site: 7torrents
- name: 7torrents
- description: "7torrents is a Public BitTorrent DHT search engine."
- language: en-us
- type: public
- encoding: UTF-8
- links:
- - https://www.7torrents.cc/
+site: 7torrents
+name: 7torrents
+description: "7torrents is a Public BitTorrent DHT search engine."
+language: en-us
+type: public
+encoding: UTF-8
+links:
+ - https://www.7torrents.cc/
- caps:
- categories:
- 1: Other
+caps:
+ categories:
+ 1: Other
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
- settings:
- - name: info
- type: info
- default: 7torrents does not use categories. In your software Indexer settings, set the category to 7000.
- - name: sort
- type: select
- label: Sort requested from site
- default: "created"
- options:
- "created": "created"
- "length": "size"
- "seeders": "seeders"
+settings:
+ - name: info
+ type: info
+ default: 7torrents does not use categories. In your software Indexer settings, set the category to 7000.
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "created"
+ options:
+ "created": "created"
+ "length": "size"
+ "seeders": "seeders"
- search:
- # https://www.7torrents.cc/search?query=2020&sort=created
- paths:
- - path: search
- inputs:
- query: "{{ if .Keywords }}{{ .Keywords }}{{else}} {{end}}"
- sort: "{{ .Config.sort }}"
+search:
+ # https://www.7torrents.cc/search?query=2020&sort=created
+ paths:
+ - path: search
+ inputs:
+ query: "{{ if .Keywords }}{{ .Keywords }}{{else}} {{end}}"
+ sort: "{{ .Config.sort }}"
- rows:
+ rows:
+ selector: div.media
+
+ fields:
+ category:
+ text: 1
+ title:
selector: div.media
-
- fields:
- category:
- text: 1
- title:
- selector: div.media
- attribute: data-name
- details:
- selector: div.media h5 a
- attribute: href
- download:
- selector: div.media-right a[href*="/torrent/"]
- attribute: href
- magnet:
- selector: a[href^="magnet:?xt="]
- attribute: href
- date:
- selector: div.media
- attribute: data-added
- filters:
- - name: timeago
- size:
- selector: div.media
- attribute: data-size
- seeders:
- selector: div.media
- attribute: data-seeders
- leechers:
- selector: div.media
- attribute: data-leechers
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ attribute: data-name
+ details:
+ selector: div.media h5 a
+ attribute: href
+ download:
+ selector: div.media-right a[href*="/torrent/"]
+ attribute: href
+ magnet:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
+ date:
+ selector: div.media
+ attribute: data-added
+ filters:
+ - name: timeago
+ size:
+ selector: div.media
+ attribute: data-size
+ seeders:
+ selector: div.media
+ attribute: data-seeders
+ leechers:
+ selector: div.media
+ attribute: data-leechers
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/Bittorrentfiles.yml b/src/Jackett.Common/Definitions/Bittorrentfiles.yml
index aef121c92..923fe60c5 100644
--- a/src/Jackett.Common/Definitions/Bittorrentfiles.yml
+++ b/src/Jackett.Common/Definitions/Bittorrentfiles.yml
@@ -1,230 +1,230 @@
---
- site: Bittorrentfiles
- name: Bittorrentfiles
- description: "Bittorrentfiles is a Private GERMAN tracker"
- language: de-de
- type: private
- encoding: UTF-8
- links:
- - https://bittorrentfiles.me/
- legacylinks:
- - https://www.Bittorrentfiles.me/
+site: Bittorrentfiles
+name: Bittorrentfiles
+description: "Bittorrentfiles is a Private GERMAN tracker"
+language: de-de
+type: private
+encoding: UTF-8
+links:
+ - https://bittorrentfiles.me/
+legacylinks:
+ - https://www.Bittorrentfiles.me/
- caps:
- categorymappings:
- # Movie
- - {id: 48, cat: Movies/HD, desc: "Movie 1080p"}
- - {id: 31, cat: Movies/3D, desc: "Movie 3D"}
- - {id: 21, cat: Movies/HD, desc: "Movie 720p"}
- - {id: 28, cat: Movies/SD, desc: "Movie AVI"}
- - {id: 20, cat: Movies/DVD, desc: "Movie DVD-R"}
- - {id: 40, cat: Movies/HD, desc: Movie "h264/x264"}
- - {id: 30, cat: Movies/HD, desc: "Movie HD/BD"}
- - {id: 49, cat: Movies/Foreign, desc: "Movie International"}
- - {id: 78, cat: Movies/UHD, desc: "Movie UHD"}
- - {id: 85, cat: Movies/HD, desc: "Movie x265"}
+caps:
+ categorymappings:
+ # Movie
+ - {id: 48, cat: Movies/HD, desc: "Movie 1080p"}
+ - {id: 31, cat: Movies/3D, desc: "Movie 3D"}
+ - {id: 21, cat: Movies/HD, desc: "Movie 720p"}
+ - {id: 28, cat: Movies/SD, desc: "Movie AVI"}
+ - {id: 20, cat: Movies/DVD, desc: "Movie DVD-R"}
+ - {id: 40, cat: Movies/HD, desc: Movie "h264/x264"}
+ - {id: 30, cat: Movies/HD, desc: "Movie HD/BD"}
+ - {id: 49, cat: Movies/Foreign, desc: "Movie International"}
+ - {id: 78, cat: Movies/UHD, desc: "Movie UHD"}
+ - {id: 85, cat: Movies/HD, desc: "Movie x265"}
- # Serien
- - {id: 79, cat: TV/HD, desc: "Staffeln HD"}
- - {id: 56, cat: TV/SD, desc: "Staffeln SD"}
- - {id: 88, cat: TV/UHD, desc: "Staffeln UHD"}
- - {id: 86, cat: TV/HD, desc: "Folgen UHD"}
- - {id: 54, cat: TV/HD, desc: "Folgen HD"}
- - {id: 80, cat: TV/HD, desc: "Folgen HD/BD"}
- - {id: 7, cat: TV/SD, desc: "Folgen SD"}
- - {id: 55, cat: TV/Foreign, desc: "Folgen International"}
+ # Serien
+ - {id: 79, cat: TV/HD, desc: "Staffeln HD"}
+ - {id: 56, cat: TV/SD, desc: "Staffeln SD"}
+ - {id: 88, cat: TV/UHD, desc: "Staffeln UHD"}
+ - {id: 86, cat: TV/HD, desc: "Folgen UHD"}
+ - {id: 54, cat: TV/HD, desc: "Folgen HD"}
+ - {id: 80, cat: TV/HD, desc: "Folgen HD/BD"}
+ - {id: 7, cat: TV/SD, desc: "Folgen SD"}
+ - {id: 55, cat: TV/Foreign, desc: "Folgen International"}
- # Doku
- - {id: 91, cat: TV/Documentary, desc: "Doku UHD"}
- - {id: 64, cat: TV/Documentary, desc: "Doku HD"}
- - {id: 36, cat: TV/Documentary, desc: "Doku SD"}
- - {id: 81, cat: TV/Documentary, desc: "Doku 3D"}
- - {id: 82, cat: TV/Documentary, desc: "Doku Packs"}
+ # Doku
+ - {id: 91, cat: TV/Documentary, desc: "Doku UHD"}
+ - {id: 64, cat: TV/Documentary, desc: "Doku HD"}
+ - {id: 36, cat: TV/Documentary, desc: "Doku SD"}
+ - {id: 81, cat: TV/Documentary, desc: "Doku 3D"}
+ - {id: 82, cat: TV/Documentary, desc: "Doku Packs"}
- # Spiele
- - {id: 4, cat: PC/Games, desc: "Spiele Windows"}
- - {id: 92, cat: PC/Mac, desc: "Spiele Mac"}
- - {id: 93, cat: PC, desc: "Spiele Linux"}
- - {id: 97, cat: Console/XBox, desc: "Spiele XBOX"}
- - {id: 94, cat: PC/Phone-Other, desc: "Spiele Mobile"}
- - {id: 95, cat: Console/NDS, desc: "Spiele Nintendo"}
- - {id: 96, cat: Console/PSP, desc: "Spiele Playstation"}
- - {id: 42, cat: Console/Other, desc: "Spiele Andere"}
+ # Spiele
+ - {id: 4, cat: PC/Games, desc: "Spiele Windows"}
+ - {id: 92, cat: PC/Mac, desc: "Spiele Mac"}
+ - {id: 93, cat: PC, desc: "Spiele Linux"}
+ - {id: 97, cat: Console/XBox, desc: "Spiele XBOX"}
+ - {id: 94, cat: PC/Phone-Other, desc: "Spiele Mobile"}
+ - {id: 95, cat: Console/NDS, desc: "Spiele Nintendo"}
+ - {id: 96, cat: Console/PSP, desc: "Spiele Playstation"}
+ - {id: 42, cat: Console/Other, desc: "Spiele Andere"}
- # Musik
- - {id: 66, cat: Audio, desc: "Musik Alben"}
- - {id: 75, cat: Audio, desc: "Musik Singles"}
- - {id: 50, cat: Audio, desc: "Musik Charts"}
- - {id: 52, cat: Audio, desc: "Musik Packs"}
- - {id: 53, cat: Audio/Video, desc: "Musik Video"}
- - {id: 61, cat: Audio/Video, desc: "Musik DVD-R"}
- - {id: 83, cat: Audio/Lossless, desc: "Musik Flac"}
- - {id: 68, cat: Audio, desc: "Musik Live"}
- - {id: 6, cat: Audio, desc: "Musik Misc"}
- - {id: 51, cat: Audio, desc: "Musik OST"}
- - {id: 67, cat: Audio, desc: "Musik Sampler"}
+ # Musik
+ - {id: 66, cat: Audio, desc: "Musik Alben"}
+ - {id: 75, cat: Audio, desc: "Musik Singles"}
+ - {id: 50, cat: Audio, desc: "Musik Charts"}
+ - {id: 52, cat: Audio, desc: "Musik Packs"}
+ - {id: 53, cat: Audio/Video, desc: "Musik Video"}
+ - {id: 61, cat: Audio/Video, desc: "Musik DVD-R"}
+ - {id: 83, cat: Audio/Lossless, desc: "Musik Flac"}
+ - {id: 68, cat: Audio, desc: "Musik Live"}
+ - {id: 6, cat: Audio, desc: "Musik Misc"}
+ - {id: 51, cat: Audio, desc: "Musik OST"}
+ - {id: 67, cat: Audio, desc: "Musik Sampler"}
- # App
- - {id: 98, cat: PC/0day, desc: "App Windows"}
- - {id: 62, cat: PC/Mac, desc: "App Mac OS"}
- - {id: 63, cat: PC/0day, desc: "App Linux"}
- - {id: 34, cat: PC, desc: "App Andere"}
+ # App
+ - {id: 98, cat: PC/0day, desc: "App Windows"}
+ - {id: 62, cat: PC/Mac, desc: "App Mac OS"}
+ - {id: 63, cat: PC/0day, desc: "App Linux"}
+ - {id: 34, cat: PC, desc: "App Andere"}
- # Sport
- - {id: 74, cat: TV/Sport, desc: "Sport HD"}
- - {id: 39, cat: TV/Sport, desc: "Sport SD"}
+ # Sport
+ - {id: 74, cat: TV/Sport, desc: "Sport HD"}
+ - {id: 39, cat: TV/Sport, desc: "Sport SD"}
- # Sonstiges
- - {id: 41, cat: Books/Comics, desc: "Sonstiges A-Book"}
- - {id: 33, cat: TV/Anime, desc: "Sonstiges Anime"}
- - {id: 35, cat: Books/Ebook, desc: "Sonstiges e-Book-DE"}
- - {id: 90, cat: Books/Ebook, desc: "Sonstiges e-Book-INT"}
- - {id: 65, cat: Other, desc: "Sonstiges E-Learning"}
- - {id: 37, cat: PC, desc: "Sonstiges Mobile"}
- - {id: 87, cat: Books/Magazines, desc: "Sonstiges E-Paper"}
- - {id: 38, cat: Other, desc: "Sonstiges Kids"}
- - {id: 47, cat: Other, desc: "Sonstiges Line"}
- - {id: 9, cat: Other, desc: "Sonstiges Andere"}
+ # Sonstiges
+ - {id: 41, cat: Books/Comics, desc: "Sonstiges A-Book"}
+ - {id: 33, cat: TV/Anime, desc: "Sonstiges Anime"}
+ - {id: 35, cat: Books/Ebook, desc: "Sonstiges e-Book-DE"}
+ - {id: 90, cat: Books/Ebook, desc: "Sonstiges e-Book-INT"}
+ - {id: 65, cat: Other, desc: "Sonstiges E-Learning"}
+ - {id: 37, cat: PC, desc: "Sonstiges Mobile"}
+ - {id: 87, cat: Books/Magazines, desc: "Sonstiges E-Paper"}
+ - {id: 38, cat: Other, desc: "Sonstiges Kids"}
+ - {id: 47, cat: Other, desc: "Sonstiges Line"}
+ - {id: 9, cat: Other, desc: "Sonstiges Andere"}
- #XXX
- - {id: 58, cat: Books/Comics, desc: "XXX HD"}
- - {id: 46, cat: XXX, desc: "XXX Hentai"}
- - {id: 35, cat: XXX/Other, desc: "XXX Andere"}
- - {id: 59, cat: XXX/Packs, desc: "XXX Pack"}
- - {id: 27, cat: XXX, desc: "XXX SD"}
- - {id: 76, cat: XXX, desc: "XXX Andere"}
+ #XXX
+ - {id: 58, cat: Books/Comics, desc: "XXX HD"}
+ - {id: 46, cat: XXX, desc: "XXX Hentai"}
+ - {id: 35, cat: XXX/Other, desc: "XXX Andere"}
+ - {id: 59, cat: XXX/Packs, desc: "XXX Pack"}
+ - {id: 27, cat: XXX, desc: "XXX SD"}
+ - {id: 76, cat: XXX, desc: "XXX Andere"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- settings:
- - name: user
- type: text
- label: Username
- - name: pass
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "added"
- options:
- "added": "created"
- "seeds": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: user
+ type: text
+ label: Username
+ - name: pass
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "added"
+ options:
+ "added": "created"
+ "seeds": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: signin.php
- method: form
- form: form
- inputs:
- user: "{{ .Config.user }}"
- pass: "{{ .Config.pass }}"
- error:
- - selector: .error
- test:
- path: browse.php
-
- search:
+login:
+ path: signin.php
+ method: form
+ form: form
+ inputs:
+ user: "{{ .Config.user }}"
+ pass: "{{ .Config.pass }}"
+ error:
+ - selector: .error
+ test:
path: browse.php
- inputs:
- $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
- search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- # 0=title 1=descr 2=nfo 3=all
- search_where: "{{ if .Query.IMDBID }}3{{else}}0{{end}}"
- # 0=active 1=all 2=dead 4=upload 5=doubleup 6=halfdown 7=highlight =request
- status: 1
- orderby: "{{ .Config.sort }}"
- sort: "{{ .Config.type }}"
- rows:
- selector: table.tableinborder > tbody > tr:has(a[href^="details.php"])
+search:
+ path: browse.php
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ # 0=title 1=descr 2=nfo 3=all
+ search_where: "{{ if .Query.IMDBID }}3{{else}}0{{end}}"
+ # 0=active 1=all 2=dead 4=upload 5=doubleup 6=halfdown 7=highlight =request
+ status: 1
+ orderby: "{{ .Config.sort }}"
+ sort: "{{ .Config.type }}"
- fields:
- title:
- selector: a[href^="details.php"]
- attribute: title
- category:
- selector: a[href^="/browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- details:
- selector: a[href^="details.php"]
- attribute: href
- download:
- selector: a[href^="/download.php"]
- attribute: href
- grabs:
- text: 0
- grabs:
- selector: a[title="Snatcher"]
- optional: true
- files:
- text: 0
- files:
- selector: a[title="Files"]
- optional: true
- size:
- selector: td:nth-child(6)
- filters:
- - name: replace
- args: [".", ""]
- - name: replace
- args: [",", "."]
- seeders:
- text: 0
- seeders:
- selector: a[title="Seeder"]
- optional: true
- leechers:
- text: 0
- leechers:
- selector: a[title="Leecher"]
- optional: true
- # 2 flavours of dates
- date:
- # Heute 13:30:04
- # Gestern 09:10:10
- selector: td:nth-child(10):contains("Heute"), td:nth-child(10):contains("Gestern")
- optional: true
- filters:
- - name: split
- args: ["b", 0]
- - name: replace
- args: ["Heute", "Today"]
- - name: replace
- args: ["Gestern", "Yesterday"]
- date:
- # 30.02.2018 23:12:50
- selector: td:nth-child(10):contains("."):contains(":")
- optional: true
- filters:
- - name: split
- args: ["b", 0]
- - name: dateparse
- args: "02.01.2006 15:04:05"
- downloadvolumefactor:
- case:
- img[alt="OU"]: 0
- img[alt="D/2"]: 0.5
- img[alt="D / 2"]: 0.5
- "*": 1
- uploadvolumefactor:
- case:
- img[alt="2xU"]: 2
- "*": 1
+ rows:
+ selector: table.tableinborder > tbody > tr:has(a[href^="details.php"])
+
+ fields:
+ title:
+ selector: a[href^="details.php"]
+ attribute: title
+ category:
+ selector: a[href^="/browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ details:
+ selector: a[href^="details.php"]
+ attribute: href
+ download:
+ selector: a[href^="/download.php"]
+ attribute: href
+ grabs:
+ text: 0
+ grabs:
+ selector: a[title="Snatcher"]
+ optional: true
+ files:
+ text: 0
+ files:
+ selector: a[title="Files"]
+ optional: true
+ size:
+ selector: td:nth-child(6)
+ filters:
+ - name: replace
+ args: [".", ""]
+ - name: replace
+ args: [",", "."]
+ seeders:
+ text: 0
+ seeders:
+ selector: a[title="Seeder"]
+ optional: true
+ leechers:
+ text: 0
+ leechers:
+ selector: a[title="Leecher"]
+ optional: true
+ # 2 flavours of dates
+ date:
+ # Heute 13:30:04
+ # Gestern 09:10:10
+ selector: td:nth-child(10):contains("Heute"), td:nth-child(10):contains("Gestern")
+ optional: true
+ filters:
+ - name: split
+ args: ["b", 0]
+ - name: replace
+ args: ["Heute", "Today"]
+ - name: replace
+ args: ["Gestern", "Yesterday"]
+ date:
+ # 30.02.2018 23:12:50
+ selector: td:nth-child(10):contains("."):contains(":")
+ optional: true
+ filters:
+ - name: split
+ args: ["b", 0]
+ - name: dateparse
+ args: "02.01.2006 15:04:05"
+ downloadvolumefactor:
+ case:
+ img[alt="OU"]: 0
+ img[alt="D/2"]: 0.5
+ img[alt="D / 2"]: 0.5
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img[alt="2xU"]: 2
+ "*": 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/DasUnerwartete.yml b/src/Jackett.Common/Definitions/DasUnerwartete.yml
index b07c5849a..5ee9a7259 100644
--- a/src/Jackett.Common/Definitions/DasUnerwartete.yml
+++ b/src/Jackett.Common/Definitions/DasUnerwartete.yml
@@ -1,124 +1,124 @@
---
- site: Das-Unerwartete
- name: Das Unerwartete
- description: "Das Unerwartete is a Private GERMAN tracker"
- language: de-de
- type: private
- encoding: UTF-8
- links:
- - https://dasunerwartete.nl
+site: Das-Unerwartete
+name: Das Unerwartete
+description: "Das Unerwartete is a Private GERMAN tracker"
+language: de-de
+type: private
+encoding: UTF-8
+links:
+ - https://dasunerwartete.nl
- caps:
- categorymappings:
+caps:
+ categorymappings:
- - {id: 112, cat: Audio/Audiobook, desc: "Hoerbuecher/Hoerspiele"}
- - {id: 51, cat: Audio, desc: "Musik"}
- - {id: 124, cat: Audio/Video, desc: "Musikvideo"}
- - {id: 103, cat: Movies/DVD, desc: "DVD"}
- - {id: 88, cat: Movies, desc: "Kids Only"}
- - {id: 43, cat: Movies, desc: "Movie Packs"}
- - {id: 105, cat: Movies/HD, desc: "Movie/1080 P"}
- - {id: 107, cat: Movies/HD, desc: "Movie/3D"}
- - {id: 102, cat: Movies/HD, desc: "Movie/720 P"}
- - {id: 101, cat: Movies/BluRay, desc: "Movie/Blueray - HD"}
- - {id: 108, cat: Movies, desc: "Movie/Bollywood"}
- - {id: 93, cat: TV/Documentary, desc: "Movie/Dokus"}
- - {id: 125, cat: Movies/Foreign, desc: "Movie/International"}
- - {id: 91, cat: Movies/SD, desc: "Movie/SD"}
- - {id: 114, cat: Movies, desc: "Movie/TV-Rip"}
- - {id: 132, cat: Movies/HD, desc: "Movie/UHD"}
- - {id: 110, cat: Movies/HD, desc: "x264"}
- - {id: 106, cat: Console/PS3, desc: "Games/PS3"}
- - {id: 109, cat: Console/PSP, desc: "Games/PSP"}
- - {id: 113, cat: Console/Wii, desc: "Games/Wii"}
- - {id: 86, cat: PC/Games, desc: "Games/Windows"}
- - {id: 104, cat: Console/XBox360, desc: "Games/Xbox360"}
- - {id: 116, cat: PC/Games, desc: "Linux/Spiele"}
- - {id: 53, cat: PC/Phone-Android, desc: "Android/Appz/Games/Navi"}
- - {id: 126, cat: PC, desc: "Win/Mac/linux"}
- - {id: 129, cat: TV/HD, desc: "Serien/Folgen HD"}
- - {id: 61, cat: TV/SD, desc: "Serien/Folgen SD"}
- - {id: 131, cat: TV/HD, desc: "Serien/Staffeln HD"}
- - {id: 130, cat: TV/SD, desc: "Serien/Staffeln SD"}
- - {id: 94, cat: Books/Ebook, desc: "Ebooks"}
- - {id: 96, cat: TV/Anime, desc: "Anime / Hentai"}
- - {id: 9, cat: Other/Misc, desc: "Sonstiges"}
- - {id: 115, cat: TV/Sport, desc: "Sport"}
- - {id: 69, cat: XXX, desc: "XXX"}
- - {id: 122, cat: Books/Magazines, desc: "Zeitschriften/Zeitungen"}
+ - {id: 112, cat: Audio/Audiobook, desc: "Hoerbuecher/Hoerspiele"}
+ - {id: 51, cat: Audio, desc: "Musik"}
+ - {id: 124, cat: Audio/Video, desc: "Musikvideo"}
+ - {id: 103, cat: Movies/DVD, desc: "DVD"}
+ - {id: 88, cat: Movies, desc: "Kids Only"}
+ - {id: 43, cat: Movies, desc: "Movie Packs"}
+ - {id: 105, cat: Movies/HD, desc: "Movie/1080 P"}
+ - {id: 107, cat: Movies/HD, desc: "Movie/3D"}
+ - {id: 102, cat: Movies/HD, desc: "Movie/720 P"}
+ - {id: 101, cat: Movies/BluRay, desc: "Movie/Blueray - HD"}
+ - {id: 108, cat: Movies, desc: "Movie/Bollywood"}
+ - {id: 93, cat: TV/Documentary, desc: "Movie/Dokus"}
+ - {id: 125, cat: Movies/Foreign, desc: "Movie/International"}
+ - {id: 91, cat: Movies/SD, desc: "Movie/SD"}
+ - {id: 114, cat: Movies, desc: "Movie/TV-Rip"}
+ - {id: 132, cat: Movies/HD, desc: "Movie/UHD"}
+ - {id: 110, cat: Movies/HD, desc: "x264"}
+ - {id: 106, cat: Console/PS3, desc: "Games/PS3"}
+ - {id: 109, cat: Console/PSP, desc: "Games/PSP"}
+ - {id: 113, cat: Console/Wii, desc: "Games/Wii"}
+ - {id: 86, cat: PC/Games, desc: "Games/Windows"}
+ - {id: 104, cat: Console/XBox360, desc: "Games/Xbox360"}
+ - {id: 116, cat: PC/Games, desc: "Linux/Spiele"}
+ - {id: 53, cat: PC/Phone-Android, desc: "Android/Appz/Games/Navi"}
+ - {id: 126, cat: PC, desc: "Win/Mac/linux"}
+ - {id: 129, cat: TV/HD, desc: "Serien/Folgen HD"}
+ - {id: 61, cat: TV/SD, desc: "Serien/Folgen SD"}
+ - {id: 131, cat: TV/HD, desc: "Serien/Staffeln HD"}
+ - {id: 130, cat: TV/SD, desc: "Serien/Staffeln SD"}
+ - {id: 94, cat: Books/Ebook, desc: "Ebooks"}
+ - {id: 96, cat: TV/Anime, desc: "Anime / Hentai"}
+ - {id: 9, cat: Other/Misc, desc: "Sonstiges"}
+ - {id: 115, cat: TV/Sport, desc: "Sport"}
+ - {id: 69, cat: XXX, desc: "XXX"}
+ - {id: 122, cat: Books/Magazines, desc: "Zeitschriften/Zeitungen"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
- login:
- path: login.php
- method: form
- form: form
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: .tablea:contains("Benutzername oder Passwort ungültig")
- test:
- path: browse.php
-
- search:
+login:
+ path: login.php
+ method: form
+ form: form
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: .tablea:contains("Benutzername oder Passwort ungültig")
+ test:
path: browse.php
- inputs:
- $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
- search: "{{ .Query.Keywords }}"
- incldead: "1"
- rows:
- selector: table.tableinborder > tbody > tr:has(a[href^="download.php"])
- fields:
- title:
- selector: a[href^="details.php"]
- filters:
- - name: replace
- args: [".torrent", ""]
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- details:
- selector: a[href^="details.php"]
- attribute: href
- download:
- selector: a[href^="download.php"]
- attribute: href
- files:
- selector: .tablea tr:nth-child(2) td:nth-child(1) b:nth-child(2)
- grabs:
- selector: .tablea tr:nth-child(2) td:nth-child(3) b
- size:
- selector: .tablea tr:nth-child(2) td:nth-child(1) b:nth-child(1)
- filters:
- - name: replace
- args: [".", ""]
- - name: replace
- args: [",", "."]
- seeders:
- selector: .tablea tr:nth-child(2) td:nth-child(2) b:nth-child(1) font
- leechers:
- selector: .tablea tr:nth-child(2) td:nth-child(2) b:nth-child(3) font
- downloadvolumefactor:
- case:
- img[src="pic/oupic.gif"]: "0"
- "*": "1"
- uploadvolumefactor:
- case:
- "*": "1"
+search:
+ path: browse.php
+ inputs:
+ $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
+ search: "{{ .Query.Keywords }}"
+ incldead: "1"
+
+ rows:
+ selector: table.tableinborder > tbody > tr:has(a[href^="download.php"])
+ fields:
+ title:
+ selector: a[href^="details.php"]
+ filters:
+ - name: replace
+ args: [".torrent", ""]
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ details:
+ selector: a[href^="details.php"]
+ attribute: href
+ download:
+ selector: a[href^="download.php"]
+ attribute: href
+ files:
+ selector: .tablea tr:nth-child(2) td:nth-child(1) b:nth-child(2)
+ grabs:
+ selector: .tablea tr:nth-child(2) td:nth-child(3) b
+ size:
+ selector: .tablea tr:nth-child(2) td:nth-child(1) b:nth-child(1)
+ filters:
+ - name: replace
+ args: [".", ""]
+ - name: replace
+ args: [",", "."]
+ seeders:
+ selector: .tablea tr:nth-child(2) td:nth-child(2) b:nth-child(1) font
+ leechers:
+ selector: .tablea tr:nth-child(2) td:nth-child(2) b:nth-child(3) font
+ downloadvolumefactor:
+ case:
+ img[src="pic/oupic.gif"]: "0"
+ "*": "1"
+ uploadvolumefactor:
+ case:
+ "*": "1"
diff --git a/src/Jackett.Common/Definitions/academictorrents.yml b/src/Jackett.Common/Definitions/academictorrents.yml
index 930b7243f..c8d2de0f1 100644
--- a/src/Jackett.Common/Definitions/academictorrents.yml
+++ b/src/Jackett.Common/Definitions/academictorrents.yml
@@ -1,100 +1,100 @@
---
- site: academictorrents
- name: AcademicTorrents
- description: "AcademicTorrents is a Public Community-Maintained Distributed Repository for datasets and scientific knowledge."
- language: en-us
- type: public
- encoding: UTF-8
- links:
- - https://academictorrents.com/
+site: academictorrents
+name: AcademicTorrents
+description: "AcademicTorrents is a Public Community-Maintained Distributed Repository for datasets and scientific knowledge."
+language: en-us
+type: public
+encoding: UTF-8
+links:
+ - https://academictorrents.com/
- caps:
- categorymappings:
- - {id: 5, cat: Books, desc: "Paper"}
- - {id: 6, cat: Other, desc: "Dataset"}
- - {id: 7, cat: TV/Documentary, desc: "Course"}
+caps:
+ categorymappings:
+ - {id: 5, cat: Books, desc: "Paper"}
+ - {id: 6, cat: Other, desc: "Dataset"}
+ - {id: 7, cat: TV/Documentary, desc: "Course"}
- modes:
- search: [q]
+ modes:
+ search: [q]
- settings:
- - name: sort
- type: select
- label: Sort requested from site
- default: "added"
- options:
- "added": "created"
- "seeders": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "DESC"
- options:
- "DESC": "desc"
- "ASC": "asc"
+settings:
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "added"
+ options:
+ "added": "created"
+ "seeders": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "DESC"
+ options:
+ "DESC": "desc"
+ "ASC": "asc"
- search:
- # https://academictorrents.com/browse.php?search=&c5=1&c6=1&c7=1&sort_field=added&sort_dir=DESC
- paths:
- - path: browse.php
- - path: browse.php
- inputs:
- page: 1
- inputs:
- $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
- search: "{{ .Keywords }}"
- sort_field: "{{ .Config.sort }}"
- sort_dir: "{{ .Config.type }}"
-
- rows:
- selector: table.table> tbody > tr:has(a[href^="/browse.php?cat="])
+search:
+ # https://academictorrents.com/browse.php?search=&c5=1&c6=1&c7=1&sort_field=added&sort_dir=DESC
+ paths:
+ - path: browse.php
+ - path: browse.php
+ inputs:
+ page: 1
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ search: "{{ .Keywords }}"
+ sort_field: "{{ .Config.sort }}"
+ sort_dir: "{{ .Config.type }}"
+
+ rows:
+ selector: table.table> tbody > tr:has(a[href^="/browse.php?cat="])
+ filters:
+ - name: andmatch
+
+ fields:
+ category:
+ selector: a[href^="/browse.php?cat="]
+ attribute: href
filters:
- - name: andmatch
-
- fields:
- category:
- selector: a[href^="/browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- title:
- selector: a[href^="/details/"]
- details:
- selector: a[href^="/details/"]
- attribute: href
- download:
- # /download/08078e0894099530913e9335bdbc804f42f6e872.torrent"
- selector: a[href^="/details/"]
- attribute: href
- filters:
- - name: replace
- args: ["/details/", "/download/"]
- - name: append
- args: ".torrent"
- date:
- selector: td:nth-child(4)
- filters:
- - name: dateparse
- args: "2006-01-02"
- size:
- selector: td:nth-child(5)
- grabs:
- selector: td:nth-child(6)
- seeders:
- text: 0
- seeders:
- selector: td:nth-child(7):not(:empty)
- optional: true
- filters:
- - name: replace
- args: ["+", ""]
- leechers:
- selector: td:nth-child(8)
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ - name: querystring
+ args: cat
+ title:
+ selector: a[href^="/details/"]
+ details:
+ selector: a[href^="/details/"]
+ attribute: href
+ download:
+ # /download/08078e0894099530913e9335bdbc804f42f6e872.torrent"
+ selector: a[href^="/details/"]
+ attribute: href
+ filters:
+ - name: replace
+ args: ["/details/", "/download/"]
+ - name: append
+ args: ".torrent"
+ date:
+ selector: td:nth-child(4)
+ filters:
+ - name: dateparse
+ args: "2006-01-02"
+ size:
+ selector: td:nth-child(5)
+ grabs:
+ selector: td:nth-child(6)
+ seeders:
+ text: 0
+ seeders:
+ selector: td:nth-child(7):not(:empty)
+ optional: true
+ filters:
+ - name: replace
+ args: ["+", ""]
+ leechers:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/acgrip.yml b/src/Jackett.Common/Definitions/acgrip.yml
index a6ba54f5d..a4e70a22a 100644
--- a/src/Jackett.Common/Definitions/acgrip.yml
+++ b/src/Jackett.Common/Definitions/acgrip.yml
@@ -1,61 +1,61 @@
---
- site: acgrip
- name: ACG.RIP
- description: "ACG.RIP is a CHINESE Public torrent tracker for the latest anime and Japanese related torrents"
- language: zh-cn
- type: public
- followredirect: true
- encoding: UTF-8
- links:
- - https://acg.rip/
- certificates:
- - bfd88de41aeeda5c9d98d5e081e8c4ec40204b6b # expired 4 jan 20
+site: acgrip
+name: ACG.RIP
+description: "ACG.RIP is a CHINESE Public torrent tracker for the latest anime and Japanese related torrents"
+language: zh-cn
+type: public
+followredirect: true
+encoding: UTF-8
+links:
+ - https://acg.rip/
+certificates:
+ - bfd88de41aeeda5c9d98d5e081e8c4ec40204b6b # expired 4 jan 20
- caps:
- categories:
- 1: TV
+caps:
+ categories:
+ 1: TV
- modes:
- search: [q]
- tv-search: [q, season, ep]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
- settings: []
+settings: []
- search:
- paths:
- - path: /
- inputs:
- term: "{{ .Keywords }}"
+search:
+ paths:
+ - path: /
+ inputs:
+ term: "{{ .Keywords }}"
- rows:
- selector: tbody tr
+ rows:
+ selector: tbody tr
- fields:
- title:
- selector: td.title > span.title a
- category:
- text: 1
- details:
- selector: td.title > span.title a
- attribute: href
- download:
- selector: td.action a
- attribute: href
- size:
- selector: td.size
- seeders:
- selector: td.peers div.seed
- leechers:
- selector: td.peers div.leech
- grabs:
- selector: td.peers div.done
- date:
- selector: td.date time
- attribute: datetime
- filters:
- - name: fuzzytime
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ fields:
+ title:
+ selector: td.title > span.title a
+ category:
+ text: 1
+ details:
+ selector: td.title > span.title a
+ attribute: href
+ download:
+ selector: td.action a
+ attribute: href
+ size:
+ selector: td.size
+ seeders:
+ selector: td.peers div.seed
+ leechers:
+ selector: td.peers div.leech
+ grabs:
+ selector: td.peers div.done
+ date:
+ selector: td.date time
+ attribute: datetime
+ filters:
+ - name: fuzzytime
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/acgsou.yml b/src/Jackett.Common/Definitions/acgsou.yml
index 9e3e03288..20158ac8f 100644
--- a/src/Jackett.Common/Definitions/acgsou.yml
+++ b/src/Jackett.Common/Definitions/acgsou.yml
@@ -1,106 +1,106 @@
---
- site: acgsou
- name: ACGsou
- description: "ACGsou (36DM) is a CHINESE Public torrent tracker for ANIME"
- language: zh-cn
- type: public
- followredirect: true
- encoding: UTF-8
- links:
- - https://www.36dm.club/
- - https://www.36dm.com/
- legacylinks:
- - https://www.acgsou.com/
- - https://acgsou.com/
- - http://www.acgsou.com/
- - http://acgsou.com/
- - http://www.36dm.club/
- - https://36dm.com/
- - http://36dm.com/
- - http://www.36dm.com/
+site: acgsou
+name: ACGsou
+description: "ACGsou (36DM) is a CHINESE Public torrent tracker for ANIME"
+language: zh-cn
+type: public
+followredirect: true
+encoding: UTF-8
+links:
+ - https://www.36dm.club/
+ - https://www.36dm.com/
+legacylinks:
+ - https://www.acgsou.com/
+ - https://acgsou.com/
+ - http://www.acgsou.com/
+ - http://acgsou.com/
+ - http://www.36dm.club/
+ - https://36dm.com/
+ - http://36dm.com/
+ - http://www.36dm.com/
- caps:
- categorymappings:
- - {id: 2, cat: TV/Anime, desc: "动画分类 (Anime)"}
- - {id: 7, cat: TV/Anime, desc: "新番连载 (Anime New Fan Series)"}
- - {id: 8, cat: TV/Anime, desc: "完整动画 (Anime Collection)"}
- - {id: 9, cat: TV/Anime, desc: "剧场版 (Anime Movie)"}
- - {id: 10, cat: TV/Anime, desc: "DVDRIP (Anime DVDRIP)"}
- - {id: 11, cat: TV/Anime, desc: "BDRIP (Anime BDRIP)"}
- - {id: 5, cat: TV/Anime, desc: "RAW/ISO"}
- - {id: 3, cat: Books/Comics, desc: "漫画分类 (Manga)"}
- - {id: 12, cat: Books/Comics, desc: "连载漫画 (Manga Serial)"}
- - {id: 13, cat: Books/Comics, desc: "完整漫画 (Manga Complete)"}
- - {id: 14, cat: Books/Comics, desc: "原版漫画 (Manga Original)"}
- - {id: 4, cat: Audio, desc: "动漫音乐 (Anime Music)"}
- - {id: 15, cat: Audio/Video, desc: "动画MV (Music Video)"}
- - {id: 20, cat: TV, desc: "日剧 (Drama Japanese)"}
- - {id: 21, cat: TV, desc: "特摄片 (Drama Special)"}
- - {id: 6, cat: Other, desc: "其他资源 (Other)"}
- - {id: 16, cat: Other, desc: "其他动画 (Other Animation)"}
- - {id: 17, cat: Other, desc: "声优视频 (Voice Video)"}
- - {id: 19, cat: Other, desc: "动漫资讯 (Anime Information)"}
- - {id: 18, cat: PC/Games, desc: "游戏 (Games)"}
+caps:
+ categorymappings:
+ - {id: 2, cat: TV/Anime, desc: "动画分类 (Anime)"}
+ - {id: 7, cat: TV/Anime, desc: "新番连载 (Anime New Fan Series)"}
+ - {id: 8, cat: TV/Anime, desc: "完整动画 (Anime Collection)"}
+ - {id: 9, cat: TV/Anime, desc: "剧场版 (Anime Movie)"}
+ - {id: 10, cat: TV/Anime, desc: "DVDRIP (Anime DVDRIP)"}
+ - {id: 11, cat: TV/Anime, desc: "BDRIP (Anime BDRIP)"}
+ - {id: 5, cat: TV/Anime, desc: "RAW/ISO"}
+ - {id: 3, cat: Books/Comics, desc: "漫画分类 (Manga)"}
+ - {id: 12, cat: Books/Comics, desc: "连载漫画 (Manga Serial)"}
+ - {id: 13, cat: Books/Comics, desc: "完整漫画 (Manga Complete)"}
+ - {id: 14, cat: Books/Comics, desc: "原版漫画 (Manga Original)"}
+ - {id: 4, cat: Audio, desc: "动漫音乐 (Anime Music)"}
+ - {id: 15, cat: Audio/Video, desc: "动画MV (Music Video)"}
+ - {id: 20, cat: TV, desc: "日剧 (Drama Japanese)"}
+ - {id: 21, cat: TV, desc: "特摄片 (Drama Special)"}
+ - {id: 6, cat: Other, desc: "其他资源 (Other)"}
+ - {id: 16, cat: Other, desc: "其他动画 (Other Animation)"}
+ - {id: 17, cat: Other, desc: "声优视频 (Voice Video)"}
+ - {id: 19, cat: Other, desc: "动漫资讯 (Anime Information)"}
+ - {id: 18, cat: PC/Games, desc: "游戏 (Games)"}
- modes:
- search: [q]
+ modes:
+ search: [q]
- settings: []
+settings: []
- download:
- selector: a[href^="magnet:?xt="]
- attribute: href
+download:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
- search:
- paths:
- # https://www.acgsou.com/1.html
- # https://www.acgsou.com/search.php?keyword=test
- - path: "{{ if .Keywords }}search.php?keyword={{ .Keywords }}{{else}}1.html{{end}}"
+search:
+ paths:
+ # https://www.acgsou.com/1.html
+ # https://www.acgsou.com/search.php?keyword=test
+ - path: "{{ if .Keywords }}search.php?keyword={{ .Keywords }}{{else}}1.html{{end}}"
- rows:
- selector: table tbody tr[class^="alt"]:has(td:nth-child(3) a)
+ rows:
+ selector: table tbody tr[class^="alt"]:has(td:nth-child(3) a)
- fields:
- date:
- selector: td:nth-child(1):contains("昨天")
- optional: true
- filters:
- - name: replace
- args: ["昨天", "Yesterday"]
- date:
- selector: td:nth-child(1):contains(":"):not(:contains("昨天"))
- optional: true
- filters:
- - name: dateparse
- args: "01/02 15:04"
- date:
- selector: td:nth-child(1):not(:contains(":"))
- optional: true
- filters:
- - name: dateparse
- args: "2006/01/02"
- category:
- selector: td:nth-child(2) a
- attribute: href
- filters:
- - name: regexp
- args: "sort-(\\d+)-1.html"
- title:
- selector: td:nth-child(3) a
- details:
- selector: td:nth-child(3) a
- attribute: href
- download:
- selector: td:nth-child(3) a
- attribute: href
- size:
- selector: td:nth-child(4)
- seeders:
- text: 1
- leechers:
- text: 1
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ fields:
+ date:
+ selector: td:nth-child(1):contains("昨天")
+ optional: true
+ filters:
+ - name: replace
+ args: ["昨天", "Yesterday"]
+ date:
+ selector: td:nth-child(1):contains(":"):not(:contains("昨天"))
+ optional: true
+ filters:
+ - name: dateparse
+ args: "01/02 15:04"
+ date:
+ selector: td:nth-child(1):not(:contains(":"))
+ optional: true
+ filters:
+ - name: dateparse
+ args: "2006/01/02"
+ category:
+ selector: td:nth-child(2) a
+ attribute: href
+ filters:
+ - name: regexp
+ args: "sort-(\\d+)-1.html"
+ title:
+ selector: td:nth-child(3) a
+ details:
+ selector: td:nth-child(3) a
+ attribute: href
+ download:
+ selector: td:nth-child(3) a
+ attribute: href
+ size:
+ selector: td:nth-child(4)
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# BTMaster 2.1.1
diff --git a/src/Jackett.Common/Definitions/acidlounge.yml b/src/Jackett.Common/Definitions/acidlounge.yml
index 4b7e23717..544a5970b 100644
--- a/src/Jackett.Common/Definitions/acidlounge.yml
+++ b/src/Jackett.Common/Definitions/acidlounge.yml
@@ -1,134 +1,134 @@
---
- site: acidlounge
- name: Acid-Lounge
- description: "Acid Lounge (A-L) is a Private Torrent Tracker for 0DAY / GENERAL"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - https://www.acid-lounge.org.uk/
+site: acidlounge
+name: Acid-Lounge
+description: "Acid Lounge (A-L) is a Private Torrent Tracker for 0DAY / GENERAL"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - https://www.acid-lounge.org.uk/
- caps:
- categorymappings:
- - {id: 79, cat: PC/Phone-Android, desc: "Android"}
- - {id: 61, cat: TV/Anime, desc: "Anime"}
- - {id: 55, cat: PC/0day, desc: "Appz/0-Day"}
- - {id: 59, cat: PC/Mac, desc: "Appz/Mac"}
- - {id: 22, cat: PC, desc: "Appz/Misc"}
- - {id: 32, cat: PC, desc: "Appz/PC"}
- - {id: 48, cat: Audio/Audiobook, desc: "Audio/Books"}
- - {id: 84, cat: Other, desc: "Damaged Torrent"}
- - {id: 14, cat: Books, desc: "eBooks"}
- - {id: 82, cat: Books, desc: "eBooks/Comics"}
- - {id: 81, cat: Books, desc: "eBooks/Mags"}
- - {id: 60, cat: PC/Mac, desc: "Games/Mac"}
- - {id: 54, cat: Console/NDS, desc: "Games/NDS"}
- - {id: 4, cat: PC/Games, desc: "Games/PC"}
- - {id: 42, cat: Console/PS3, desc: "Games/PS3"}
- - {id: 56, cat: Console/Wii, desc: "Games/Wii"}
- - {id: 36, cat: Console/Xbox360, desc: "Games/xbox360"}
- - {id: 69, cat: Other, desc: "Halloween"}
- - {id: 80, cat: PC/Phone-IOS, desc: "iPhone / iPad"}
- - {id: 46, cat: Other, desc: "Kids"}
- - {id: 63, cat: PC, desc: "Linux"}
- - {id: 49, cat: Other, desc: "Misc"}
- - {id: 77, cat: Movies/3D, desc: "Movies/3D BLURAY"}
- - {id: 73, cat: Movies/HD, desc: "Movies/Boxsets HD"}
- - {id: 74, cat: Movies/SD, desc: "Movies/Boxsets SD"}
- - {id: 25, cat: Movies/DVD, desc: "Movies/DVD-R"}
- - {id: 51, cat: Movies/HD, desc: "Movies/HD"}
- - {id: 26, cat: Movies, desc: "Movies/Retro"}
- - {id: 29, cat: Movies/SD, desc: "Movies/SD"}
- - {id: 52, cat: Movies/SD, desc: "Movies/WMV"}
- - {id: 85, cat: Movies/HD, desc: "Movies/X265"}
- - {id: 66, cat: Audio/Lossless, desc: "Music/Flac"}
- - {id: 35, cat: Audio/MP3, desc: "Music/MP3"}
- - {id: 31, cat: Audio/Video, desc: "Music/Videos"}
- - {id: 72, cat: Movies, desc: "Sci-Fi"}
- - {id: 83, cat: Movies, desc: "Tribute Packs"}
- - {id: 30, cat: TV, desc: "TV"}
- - {id: 50, cat: TV/HD, desc: "TV-HD/X264"}
- - {id: 71, cat: TV/SD, desc: "TV-SD/X264"}
- - {id: 75, cat: TV/HD, desc: "TV/Boxsets HD"}
- - {id: 76, cat: TV/SD, desc: "TV/Boxsets SD"}
- - {id: 37, cat: XXX, desc: "XXX"}
- - {id: 78, cat: XXX, desc: "XXX/3D"}
+caps:
+ categorymappings:
+ - {id: 79, cat: PC/Phone-Android, desc: "Android"}
+ - {id: 61, cat: TV/Anime, desc: "Anime"}
+ - {id: 55, cat: PC/0day, desc: "Appz/0-Day"}
+ - {id: 59, cat: PC/Mac, desc: "Appz/Mac"}
+ - {id: 22, cat: PC, desc: "Appz/Misc"}
+ - {id: 32, cat: PC, desc: "Appz/PC"}
+ - {id: 48, cat: Audio/Audiobook, desc: "Audio/Books"}
+ - {id: 84, cat: Other, desc: "Damaged Torrent"}
+ - {id: 14, cat: Books, desc: "eBooks"}
+ - {id: 82, cat: Books, desc: "eBooks/Comics"}
+ - {id: 81, cat: Books, desc: "eBooks/Mags"}
+ - {id: 60, cat: PC/Mac, desc: "Games/Mac"}
+ - {id: 54, cat: Console/NDS, desc: "Games/NDS"}
+ - {id: 4, cat: PC/Games, desc: "Games/PC"}
+ - {id: 42, cat: Console/PS3, desc: "Games/PS3"}
+ - {id: 56, cat: Console/Wii, desc: "Games/Wii"}
+ - {id: 36, cat: Console/Xbox360, desc: "Games/xbox360"}
+ - {id: 69, cat: Other, desc: "Halloween"}
+ - {id: 80, cat: PC/Phone-IOS, desc: "iPhone / iPad"}
+ - {id: 46, cat: Other, desc: "Kids"}
+ - {id: 63, cat: PC, desc: "Linux"}
+ - {id: 49, cat: Other, desc: "Misc"}
+ - {id: 77, cat: Movies/3D, desc: "Movies/3D BLURAY"}
+ - {id: 73, cat: Movies/HD, desc: "Movies/Boxsets HD"}
+ - {id: 74, cat: Movies/SD, desc: "Movies/Boxsets SD"}
+ - {id: 25, cat: Movies/DVD, desc: "Movies/DVD-R"}
+ - {id: 51, cat: Movies/HD, desc: "Movies/HD"}
+ - {id: 26, cat: Movies, desc: "Movies/Retro"}
+ - {id: 29, cat: Movies/SD, desc: "Movies/SD"}
+ - {id: 52, cat: Movies/SD, desc: "Movies/WMV"}
+ - {id: 85, cat: Movies/HD, desc: "Movies/X265"}
+ - {id: 66, cat: Audio/Lossless, desc: "Music/Flac"}
+ - {id: 35, cat: Audio/MP3, desc: "Music/MP3"}
+ - {id: 31, cat: Audio/Video, desc: "Music/Videos"}
+ - {id: 72, cat: Movies, desc: "Sci-Fi"}
+ - {id: 83, cat: Movies, desc: "Tribute Packs"}
+ - {id: 30, cat: TV, desc: "TV"}
+ - {id: 50, cat: TV/HD, desc: "TV-HD/X264"}
+ - {id: 71, cat: TV/SD, desc: "TV-SD/X264"}
+ - {id: 75, cat: TV/HD, desc: "TV/Boxsets HD"}
+ - {id: 76, cat: TV/SD, desc: "TV/Boxsets SD"}
+ - {id: 37, cat: XXX, desc: "XXX"}
+ - {id: 78, cat: XXX, desc: "XXX/3D"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- login:
- path: Main/?act=Login
- method: form
- form: form#login
- captcha:
- type: image
- selector: img[alt="Security code"]
- input: code
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: div.errorWrap
- test:
- path: browse.php
+login:
+ path: Main/?act=Login
+ method: form
+ form: form#login
+ captcha:
+ type: image
+ selector: img[alt="Security code"]
+ input: code
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: div.errorWrap
+ test:
+ path: browse.php
- search:
- paths:
- - path: browse.php
- inputs:
- $raw: "{{range .Categories}}cid[]={{.}}&{{end}}"
- search: "{{ .Keywords }}"
- search_type: "title"
- rows:
- selector: table#browse_torrents_table > tbody > tr[id^="torrent_row_"]
- fields:
- title:
- selector: a.torrent_name
- attribute: title
- description:
- selector: span.torrent_small_desc
- category:
- selector: td.torrent_table_type > a
- attribute: href
- filters:
- - name: querystring
- args: cat[]
- details:
- selector: a.torrent_name
- attribute: href
- download:
- selector: a[href^="download.php?"]
- attribute: href
- size:
- selector: td.torrent_table_size
- files:
- selector: td.torrent_table_files
- seeders:
- selector: td.torrent_table_seeders
- leechers:
- selector: td.torrent_table_leechers
- grabs:
- selector: td.torrent_table_snatched
- filters:
- - name: regexp
- args: ([\d\.]+)
- downloadvolumefactor:
- case:
- ":root div#notice_ratioBoostingMadness": "0"
- "*": "1"
- uploadvolumefactor:
- case:
- "*": "1"
- date:
- selector: td.torrent_table_dateAdded
- filters:
- - name: append
- args: " +01:00"
- - name: dateparse
- args: "2006-01-02 15:04:05 -07:00"
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ $raw: "{{range .Categories}}cid[]={{.}}&{{end}}"
+ search: "{{ .Keywords }}"
+ search_type: "title"
+ rows:
+ selector: table#browse_torrents_table > tbody > tr[id^="torrent_row_"]
+ fields:
+ title:
+ selector: a.torrent_name
+ attribute: title
+ description:
+ selector: span.torrent_small_desc
+ category:
+ selector: td.torrent_table_type > a
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat[]
+ details:
+ selector: a.torrent_name
+ attribute: href
+ download:
+ selector: a[href^="download.php?"]
+ attribute: href
+ size:
+ selector: td.torrent_table_size
+ files:
+ selector: td.torrent_table_files
+ seeders:
+ selector: td.torrent_table_seeders
+ leechers:
+ selector: td.torrent_table_leechers
+ grabs:
+ selector: td.torrent_table_snatched
+ filters:
+ - name: regexp
+ args: ([\d\.]+)
+ downloadvolumefactor:
+ case:
+ ":root div#notice_ratioBoostingMadness": "0"
+ "*": "1"
+ uploadvolumefactor:
+ case:
+ "*": "1"
+ date:
+ selector: td.torrent_table_dateAdded
+ filters:
+ - name: append
+ args: " +01:00"
+ - name: dateparse
+ args: "2006-01-02 15:04:05 -07:00"
diff --git a/src/Jackett.Common/Definitions/aftershock.yml b/src/Jackett.Common/Definitions/aftershock.yml
index dc8d77b04..0fdfde270 100644
--- a/src/Jackett.Common/Definitions/aftershock.yml
+++ b/src/Jackett.Common/Definitions/aftershock.yml
@@ -1,174 +1,174 @@
---
- site: aftershock
- name: Aftershock
- description: "Aftershock is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
- language: hu-hu
- type: private
- encoding: iso-8859-1
- links:
- - https://aftershock-tracker.eu/
+site: aftershock
+name: Aftershock
+description: "Aftershock is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
+language: hu-hu
+type: private
+encoding: iso-8859-1
+links:
+ - https://aftershock-tracker.eu/
- caps:
- categorymappings:
- - {id: 7, cat: Movies/SD, desc: "XvidEng"}
- - {id: 2, cat: Movies, desc: "AfterShock Release"}
- - {id: 190, cat: Movies/DVD, desc: "DVD-9Eng"}
- - {id: 191, cat: Movies/DVD, desc: "DVD-9Hun"}
- - {id: 1, cat: Movies/DVD, desc: "DVDEng"}
- - {id: 4, cat: Movies/DVD, desc: "DVDHun"}
- - {id: 23, cat: Books/Ebook, desc: "E-Book"}
- - {id: 3, cat: Movies, desc: "Film Pack"}
- - {id: 185, cat: Audio/Lossless, desc: "FLACeng"}
- - {id: 188, cat: Audio/Lossless, desc: "FLAChu"}
- - {id: 173, cat: Audio/Audiobook, desc: "Hangoskönyv"}
- - {id: 34, cat: Movies/HD, desc: "HDEng"}
- - {id: 33, cat: Movies/HD, desc: "HDHun"}
- - {id: 182, cat: XXX/x264, desc: "HDXXX"}
- - {id: 12, cat: PC/Games, desc: "JátékIso"}
- - {id: 130, cat: Console, desc: "JátékKonzol"}
- - {id: 38, cat: Console/PSP, desc: "JátékPS2"}
- - {id: 44, cat: Console, desc: "Jatekrip"}
- - {id: 131, cat: Console/Xbox, desc: "JátékX-box"}
- - {id: 140, cat: Other, desc: "Képek"}
- - {id: 141, cat: Other, desc: "Klipek"}
- - {id: 154, cat: Other, desc: "MeseEng"}
- - {id: 155, cat: Other, desc: "MeseHun"}
- - {id: 176, cat: Other, desc: "Mikro HDEng"}
- - {id: 174, cat: Other, desc: "Mikro HDHun"}
- - {id: 37, cat: PC/Phone-Other, desc: "MobilPDA"}
- - {id: 35, cat: PC, desc: "ProgramEgyéb"}
- - {id: 170, cat: PC/ISO, desc: "ProgramIso"}
- - {id: 24, cat: TV, desc: "Sorozat Eng"}
- - {id: 25, cat: TV, desc: "Sorozat Hun"}
- - {id: 167, cat: Movies/SD, desc: "Xvid CamEng"}
- - {id: 166, cat: Movies/SD, desc: "Xvid CamHun"}
- - {id: 9, cat: Movies/SD, desc: "XvidHun"}
- - {id: 169, cat: XXX/Imageset, desc: "XXX Képek"}
- - {id: 39, cat: XXX, desc: "XXXFilm"}
- - {id: 28, cat: Audio, desc: "ZeneEng"}
- - {id: 29, cat: Audio, desc: "ZeneHun"}
+caps:
+ categorymappings:
+ - {id: 7, cat: Movies/SD, desc: "XvidEng"}
+ - {id: 2, cat: Movies, desc: "AfterShock Release"}
+ - {id: 190, cat: Movies/DVD, desc: "DVD-9Eng"}
+ - {id: 191, cat: Movies/DVD, desc: "DVD-9Hun"}
+ - {id: 1, cat: Movies/DVD, desc: "DVDEng"}
+ - {id: 4, cat: Movies/DVD, desc: "DVDHun"}
+ - {id: 23, cat: Books/Ebook, desc: "E-Book"}
+ - {id: 3, cat: Movies, desc: "Film Pack"}
+ - {id: 185, cat: Audio/Lossless, desc: "FLACeng"}
+ - {id: 188, cat: Audio/Lossless, desc: "FLAChu"}
+ - {id: 173, cat: Audio/Audiobook, desc: "Hangoskönyv"}
+ - {id: 34, cat: Movies/HD, desc: "HDEng"}
+ - {id: 33, cat: Movies/HD, desc: "HDHun"}
+ - {id: 182, cat: XXX/x264, desc: "HDXXX"}
+ - {id: 12, cat: PC/Games, desc: "JátékIso"}
+ - {id: 130, cat: Console, desc: "JátékKonzol"}
+ - {id: 38, cat: Console/PSP, desc: "JátékPS2"}
+ - {id: 44, cat: Console, desc: "Jatekrip"}
+ - {id: 131, cat: Console/Xbox, desc: "JátékX-box"}
+ - {id: 140, cat: Other, desc: "Képek"}
+ - {id: 141, cat: Other, desc: "Klipek"}
+ - {id: 154, cat: Other, desc: "MeseEng"}
+ - {id: 155, cat: Other, desc: "MeseHun"}
+ - {id: 176, cat: Other, desc: "Mikro HDEng"}
+ - {id: 174, cat: Other, desc: "Mikro HDHun"}
+ - {id: 37, cat: PC/Phone-Other, desc: "MobilPDA"}
+ - {id: 35, cat: PC, desc: "ProgramEgyéb"}
+ - {id: 170, cat: PC/ISO, desc: "ProgramIso"}
+ - {id: 24, cat: TV, desc: "Sorozat Eng"}
+ - {id: 25, cat: TV, desc: "Sorozat Hun"}
+ - {id: 167, cat: Movies/SD, desc: "Xvid CamEng"}
+ - {id: 166, cat: Movies/SD, desc: "Xvid CamHun"}
+ - {id: 9, cat: Movies/SD, desc: "XvidHun"}
+ - {id: 169, cat: XXX/Imageset, desc: "XXX Képek"}
+ - {id: 39, cat: XXX, desc: "XXXFilm"}
+ - {id: 28, cat: Audio, desc: "ZeneEng"}
+ - {id: 29, cat: Audio, desc: "ZeneHun"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "0"
- options:
- "0": "created"
- "6": "seeders"
- "4": "size"
- "1": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "0"
+ options:
+ "0": "created"
+ "6": "seeders"
+ "4": "size"
+ "1": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: td.text:contains("Hiba")
- message:
- selector: td.text
- test:
- path: /
- selector: a[href="/logout.php"]
-
- ratio:
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: td.text:contains("Hiba")
+ message:
+ selector: td.text
+ test:
path: /
- selector: p.sajatadatok font
+ selector: a[href="/logout.php"]
+
+ratio:
+ path: /
+ selector: p.sajatadatok font
+ filters:
+ - name: replace
+ args: [",", ""]
+
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ search: "{{ .Keywords }}"
+ incldead: 1
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+
+ rows:
+ selector: table tbody#torrent_background tr:has(a.index)
filters:
- - name: replace
- args: [",", ""]
+ - name: andmatch
- search:
- paths:
- - path: browse.php
- inputs:
- $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
- search: "{{ .Keywords }}"
- incldead: 1
- sort: "{{ .Config.sort }}"
- type: "{{ .Config.type }}"
-
- rows:
- selector: table tbody#torrent_background tr:has(a.index)
+ fields:
+ title:
+ selector: a.index
+ attribute: href
filters:
- - name: andmatch
-
- fields:
- title:
- selector: a.index
- attribute: href
- filters:
- - name: querystring
- args: name
- - name: urldecode
- category:
- selector: td a[href^="/browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- details:
- selector: a.index
- attribute: href
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- filters:
- - name: urldecode
- banner:
- selector: a[onmouseover]
- attribute: onmouseover
- filters:
- - name: regexp
- args: "src=(.*?) width="
- imdb:
- optional: true
- selector: a[href^="https://www.imdb.com/title"]
- attribute: href
- files:
- selector: td:nth-last-child(6)
- size:
- selector: td:nth-last-child(5)
- seeders:
- selector: td:nth-last-child(4)
- leechers:
- selector: td:nth-last-child(3)
- grabs:
- selector: td:nth-last-child(2)
- date:
- selector: td font
- filters:
- - name: re_replace
- args: ["\\s", " "]
- - name: dateparse
- args: "2006-01-02 15:04:05"
- downloadvolumefactor:
- case:
- span.icon_gift: 0
- "*": 1
- uploadvolumefactor:
- case:
- span.icon_upload: 2
- "*": 1
+ - name: querystring
+ args: name
+ - name: urldecode
+ category:
+ selector: td a[href^="/browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ details:
+ selector: a.index
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ filters:
+ - name: urldecode
+ banner:
+ selector: a[onmouseover]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: "src=(.*?) width="
+ imdb:
+ optional: true
+ selector: a[href^="https://www.imdb.com/title"]
+ attribute: href
+ files:
+ selector: td:nth-last-child(6)
+ size:
+ selector: td:nth-last-child(5)
+ seeders:
+ selector: td:nth-last-child(4)
+ leechers:
+ selector: td:nth-last-child(3)
+ grabs:
+ selector: td:nth-last-child(2)
+ date:
+ selector: td font
+ filters:
+ - name: re_replace
+ args: ["\\s", " "]
+ - name: dateparse
+ args: "2006-01-02 15:04:05"
+ downloadvolumefactor:
+ case:
+ span.icon_gift: 0
+ "*": 1
+ uploadvolumefactor:
+ case:
+ span.icon_upload: 2
+ "*": 1
# XBT v3
diff --git a/src/Jackett.Common/Definitions/alexfilm.yml b/src/Jackett.Common/Definitions/alexfilm.yml
index 26c5e2f0b..c9f84a97b 100644
--- a/src/Jackett.Common/Definitions/alexfilm.yml
+++ b/src/Jackett.Common/Definitions/alexfilm.yml
@@ -1,156 +1,156 @@
---
- site: alexfilm
- name: AlexFilm
- description: "AlexFilm is a RUSSIAN Semi-Private Torrent Tracker for TV"
- language: ru-ru
- type: semi-private
- encoding: UTF-8
- links:
- - https://alexfilm.org/
- legacylinks:
- - https://alexfilm.cc/
- certificates:
- - 9200e15406272061df1f609a0f40d76282f54295 # expired 30 nov '19
+site: alexfilm
+name: AlexFilm
+description: "AlexFilm is a RUSSIAN Semi-Private Torrent Tracker for TV"
+language: ru-ru
+type: semi-private
+encoding: UTF-8
+links:
+ - https://alexfilm.org/
+legacylinks:
+ - https://alexfilm.cc/
+certificates:
+ - 9200e15406272061df1f609a0f40d76282f54295 # expired 30 nov '19
- caps:
- categorymappings:
- - {id: 1, cat: TV, desc: "TV"}
+caps:
+ categorymappings:
+ - {id: 1, cat: TV, desc: "TV"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: striprussian
- type: checkbox
- label: Strip Russian Letters
- default: false
- - name: sort
- type: select
- label: Sort requested from site
- default: "1"
- options:
- "1": "created"
- "10": "seeders"
- "7": "size"
- "2": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "1"
- options:
- "2": "desc"
- "1": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: striprussian
+ type: checkbox
+ label: Strip Russian Letters
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "1"
+ options:
+ "1": "created"
+ "10": "seeders"
+ "7": "size"
+ "2": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "1"
+ options:
+ "2": "desc"
+ "1": "asc"
- login:
- path: login.php
- method: post
- inputs:
- "login_username": "{{ .Config.username }}"
- "login_password": "{{ .Config.password }}"
- autologin: 1
- login: "Log in"
- error:
- - selector: div.bg-danger
- test:
- path: tracker.php
- selector: a[href="./login.php?logout=1"]
+login:
+ path: login.php
+ method: post
+ inputs:
+ "login_username": "{{ .Config.username }}"
+ "login_password": "{{ .Config.password }}"
+ autologin: 1
+ login: "Log in"
+ error:
+ - selector: div.bg-danger
+ test:
+ path: tracker.php
+ selector: a[href="./login.php?logout=1"]
- search:
- paths:
- - path: tracker.php
- method: post
- inputs:
- prev_allw: 1
- prev_a: 0
- prev_dla: 0
- prev_dlc: 0
- prev_dld: 0
- prev_dlw: 0
- prev_my: 0
- prev_new: 0
- prev_sd: 0
- prev_da: 1
- prev_dc: 0
- prev_df: 1
- prev_ds: 0
- prev_tor_type: 0
- # sort by 1=registered 2=topicTitle 4=completed 10=seed 11=leech 12=up 13=down 5=replies 6=views 7=size 8=lastPost 9=seedLastSeen
- o: "{{ .Config.sort }}"
- # 1=asc 2=desc
- s: "{{ .Config.type }}"
- # show category
- dc: 0
- # show forum
- df: 1
- # show author
- da: 1
- # show speed
- ds: 0
- # -1=all time
- tm: -1
- # seed not seen -1=disregard
- sns: -1
- # group releases -1=not selected
- srg: -1
- nm: "{{ .Keywords }}"
- # find a username
- pn: ""
- # despite the all words flag the search engine returns anywords matching.
- allw: 1
+search:
+ paths:
+ - path: tracker.php
+ method: post
+ inputs:
+ prev_allw: 1
+ prev_a: 0
+ prev_dla: 0
+ prev_dlc: 0
+ prev_dld: 0
+ prev_dlw: 0
+ prev_my: 0
+ prev_new: 0
+ prev_sd: 0
+ prev_da: 1
+ prev_dc: 0
+ prev_df: 1
+ prev_ds: 0
+ prev_tor_type: 0
+ # sort by 1=registered 2=topicTitle 4=completed 10=seed 11=leech 12=up 13=down 5=replies 6=views 7=size 8=lastPost 9=seedLastSeen
+ o: "{{ .Config.sort }}"
+ # 1=asc 2=desc
+ s: "{{ .Config.type }}"
+ # show category
+ dc: 0
+ # show forum
+ df: 1
+ # show author
+ da: 1
+ # show speed
+ ds: 0
+ # -1=all time
+ tm: -1
+ # seed not seen -1=disregard
+ sns: -1
+ # group releases -1=not selected
+ srg: -1
+ nm: "{{ .Keywords }}"
+ # find a username
+ pn: ""
+ # despite the all words flag the search engine returns anywords matching.
+ allw: 1
- rows:
- selector: tr[id^="tor_"]
+ rows:
+ selector: tr[id^="tor_"]
- fields:
- title:
- selector: td a.tLink
- filters:
- - name: re_replace
- args: ["[\\/]+", ""]
- - name: replace
- args: ["-Rip", "Rip"]
- - name: replace
- args: ["WEB-DL", "WEBDL"]
- - name: replace
- args: ["WEBRip", "WEBDL"]
- - name: re_replace
- args: ["WEBDLRip", "WEBDL"]
- - name: re_replace
- args: ["(.*)[CСcс]езон\\s+(\\d+)\\s+[CСcс]ери[ия]\\s+(\\d+)[\\-](\\d+)\\s+\\((\\d+)\\)(.*)", "$1 S$2E$3-$4 rus $6"]
- - name: re_replace
- args: ["(.*)[CСcс]езон\\s+(\\d+)(.*)", "$1 S$2 rus $3"]
- - name: re_replace
- args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"]
- details:
- selector: td a.tLink
- attribute: href
- download:
- selector: li a
- attribute: href
- category:
- text: 1
- seeders:
- selector: td:nth-child(3) u
- leechers:
- selector: td:nth-child(4) u
- size:
- selector: td:nth-child(5) u
- date:
- selector: td:nth-child(6) u
- grabs:
- selector: td:nth-child(6) span:nth-last-child(1)
- downloadvolumefactor:
- case:
- img[src="./styles/images/tor_gold.gif"]: 0
- img[src="./styles/images/tor_silver.gif"]: 0.5
- "*": 1
- uploadvolumefactor:
- text: 1
+ fields:
+ title:
+ selector: td a.tLink
+ filters:
+ - name: re_replace
+ args: ["[\\/]+", ""]
+ - name: replace
+ args: ["-Rip", "Rip"]
+ - name: replace
+ args: ["WEB-DL", "WEBDL"]
+ - name: replace
+ args: ["WEBRip", "WEBDL"]
+ - name: re_replace
+ args: ["WEBDLRip", "WEBDL"]
+ - name: re_replace
+ args: ["(.*)[CСcс]езон\\s+(\\d+)\\s+[CСcс]ери[ия]\\s+(\\d+)[\\-](\\d+)\\s+\\((\\d+)\\)(.*)", "$1 S$2E$3-$4 rus $6"]
+ - name: re_replace
+ args: ["(.*)[CСcс]езон\\s+(\\d+)(.*)", "$1 S$2 rus $3"]
+ - name: re_replace
+ args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"]
+ details:
+ selector: td a.tLink
+ attribute: href
+ download:
+ selector: li a
+ attribute: href
+ category:
+ text: 1
+ seeders:
+ selector: td:nth-child(3) u
+ leechers:
+ selector: td:nth-child(4) u
+ size:
+ selector: td:nth-child(5) u
+ date:
+ selector: td:nth-child(6) u
+ grabs:
+ selector: td:nth-child(6) span:nth-last-child(1)
+ downloadvolumefactor:
+ case:
+ img[src="./styles/images/tor_gold.gif"]: 0
+ img[src="./styles/images/tor_silver.gif"]: 0.5
+ "*": 1
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/amigosshare.yml b/src/Jackett.Common/Definitions/amigosshare.yml
index 790753443..b8487944f 100644
--- a/src/Jackett.Common/Definitions/amigosshare.yml
+++ b/src/Jackett.Common/Definitions/amigosshare.yml
@@ -1,300 +1,300 @@
---
- site: amigosshare
- name: Amigos Share Club
- description: "Amigos Share Club is a Brazilian Private site for TV / MOVIES / GENERAL"
- language: pt-br
- type: private
- encoding: UTF-8
- links:
- - https://amigos-share.club/
- legacylinks:
- - http://amigos-share.club/
+site: amigosshare
+name: Amigos Share Club
+description: "Amigos Share Club is a Brazilian Private site for TV / MOVIES / GENERAL"
+language: pt-br
+type: private
+encoding: UTF-8
+links:
+ - https://amigos-share.club/
+legacylinks:
+ - http://amigos-share.club/
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: info_results
- type: info
- label: "Search results"
- default: "Set Exibição De Torrents to Lista in your Minhas Configurações.
Using Capas is not supported and will return 0 results."
- - name: sort
- type: select
- label: Sort requested from site
- default: "id"
- options:
- "id": "created"
- "seeders": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: info_results
+ type: info
+ label: "Search results"
+ default: "Set Exibição De Torrents to Lista in your Minhas Configurações.
Using Capas is not supported and will return 0 results."
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "id"
+ options:
+ "id": "created"
+ "seeders": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- caps:
- categorymappings:
- - {id: 107, cat: XXX, desc: "Adultos: Gay"}
- - {id: 75, cat: XXX, desc: "Adultos: Hentai"}
- - {id: 108, cat: XXX, desc: "Adultos: Transex/Female"}
- - {id: 74, cat: XXX, desc: "Adultos: XXX"}
- - {id: 69, cat: TV/Anime, desc: "Anime: Anime"}
- - {id: 116, cat: TV/Anime, desc: "Anime: Filmes"}
- - {id: 118, cat: TV/Anime, desc: "Anime: Séries"}
- - {id: 23, cat: PC/Phone-Android, desc: "Aplicativos: Android"}
- - {id: 27, cat: PC/Phone-IOS, desc: "Aplicativos: iPad"}
- - {id: 26, cat: PC/Phone-IOS, desc: "Aplicativos: iPhone"}
- - {id: 28, cat: PC/Phone-IOS, desc: "Aplicativos: iPod"}
- - {id: 25, cat: PC, desc: "Aplicativos: Linux"}
- - {id: 22, cat: PC/Mac, desc: "Aplicativos: Mac"}
- - {id: 21, cat: PC/0day, desc: "Aplicativos: Windows"}
- - {id: 72, cat: Books, desc: "Apostila: Apostila"}
- - {id: 71, cat: Books, desc: "Apostila: Cursos"}
- - {id: 121, cat: Audio/Audiobook, desc: "Ebook: Audio-book"}
- - {id: 112, cat: Books, desc: "Ebook: HQs"}
- - {id: 67, cat: Books, desc: "Ebook: Livros"}
- - {id: 68, cat: Books, desc: "Ebook: Revistas"}
- - {id: 119, cat: Movies, desc: "Filmes:"}
- - {id: 70, cat: XXX, desc: "Fotos: XXX"}
- - {id: 57, cat: Console, desc: "Jogos: Android"}
- - {id: 52, cat: Console, desc: "Jogos: Dreamcast"}
- - {id: 109, cat: Console, desc: "Jogos: Emulação"}
- - {id: 61, cat: Console, desc: "Jogos: Emuladores e Roms"}
- - {id: 48, cat: PC/Mac, desc: "Jogos: Mac"}
- - {id: 58, cat: Console/NDS, desc: "Jogos: Nintendo DS"}
- - {id: 110, cat: Console, desc: "Jogos: Nintendo Switch"}
- - {id: 47, cat: PC/Games, desc: "Jogos: Pc"}
- - {id: 49, cat: Console, desc: "Jogos: Ps1"}
- - {id: 50, cat: Console, desc: "Jogos: Ps2"}
- - {id: 51, cat: Console/PS3, desc: "Jogos: Ps3"}
- - {id: 79, cat: Console/PS4, desc: "Jogos: Ps4"}
- - {id: 82, cat: Console/PSP, desc: "Jogos: PSP"}
- - {id: 55, cat: Console/Wii, desc: "Jogos: Wii"}
- - {id: 54, cat: Console/Xbox 360, desc: "Jogos: Xbox360"}
- - {id: 56, cat: Console/Xbox, desc: "Jogos: Xbox"}
- - {id: 78, cat: Console/Xbox One, desc: "Jogos: Xbox One"}
- - {id: 29, cat: Audio, desc: "Musica: Axé"}
- - {id: 38, cat: Audio, desc: "Musica: Blues"}
- - {id: 39, cat: Audio, desc: "Musica: Dance"}
- - {id: 40, cat: Audio, desc: "Musica: Discografia"}
- - {id: 43, cat: Audio, desc: "Musica: Dubstep"}
- - {id: 41, cat: Audio, desc: "Musica: Erudita"}
- - {id: 42, cat: Audio, desc: "Musica: Forró"}
- - {id: 31, cat: Audio, desc: "Musica: Funk"}
- - {id: 84, cat: Audio, desc: "Musica: Game (OST)"}
- - {id: 83, cat: Audio, desc: "Musica: Gospel"}
- - {id: 37, cat: Audio, desc: "Musica: Hard Rock"}
- - {id: 33, cat: Audio, desc: "Musica: Hip-Hop"}
- - {id: 114, cat: Audio, desc: "Musica: MPB"}
- - {id: 77, cat: Audio, desc: "Musica: Outros"}
- - {id: 32, cat: Audio, desc: "Musica: Pagode"}
- - {id: 115, cat: Audio, desc: "Musica: POP"}
- - {id: 34, cat: Audio, desc: "Musica: Rap"}
- - {id: 76, cat: Audio, desc: "Musica: Reggae"}
- - {id: 36, cat: Audio, desc: "Musica: Rock"}
- - {id: 45, cat: Audio, desc: "Musica: Samba"}
- - {id: 46, cat: Audio, desc: "Musica: Sertanejo"}
- - {id: 120, cat: TV, desc: "Series:"}
- - {id: 65, cat: TV, desc: "Shows: Show"}
- - {id: 63, cat: TV, desc: "Tv: Aberta"}
- - {id: 62, cat: TV/Sport, desc: "Tv: Esportes"}
- - {id: 64, cat: TV, desc: "Tv: Fechada"}
- - {id: 73, cat: TV, desc: "Video Aula: Video Aula"}
- - {id: 999, cat: Other, desc: "Error Cat not Found"}
+caps:
+ categorymappings:
+ - {id: 107, cat: XXX, desc: "Adultos: Gay"}
+ - {id: 75, cat: XXX, desc: "Adultos: Hentai"}
+ - {id: 108, cat: XXX, desc: "Adultos: Transex/Female"}
+ - {id: 74, cat: XXX, desc: "Adultos: XXX"}
+ - {id: 69, cat: TV/Anime, desc: "Anime: Anime"}
+ - {id: 116, cat: TV/Anime, desc: "Anime: Filmes"}
+ - {id: 118, cat: TV/Anime, desc: "Anime: Séries"}
+ - {id: 23, cat: PC/Phone-Android, desc: "Aplicativos: Android"}
+ - {id: 27, cat: PC/Phone-IOS, desc: "Aplicativos: iPad"}
+ - {id: 26, cat: PC/Phone-IOS, desc: "Aplicativos: iPhone"}
+ - {id: 28, cat: PC/Phone-IOS, desc: "Aplicativos: iPod"}
+ - {id: 25, cat: PC, desc: "Aplicativos: Linux"}
+ - {id: 22, cat: PC/Mac, desc: "Aplicativos: Mac"}
+ - {id: 21, cat: PC/0day, desc: "Aplicativos: Windows"}
+ - {id: 72, cat: Books, desc: "Apostila: Apostila"}
+ - {id: 71, cat: Books, desc: "Apostila: Cursos"}
+ - {id: 121, cat: Audio/Audiobook, desc: "Ebook: Audio-book"}
+ - {id: 112, cat: Books, desc: "Ebook: HQs"}
+ - {id: 67, cat: Books, desc: "Ebook: Livros"}
+ - {id: 68, cat: Books, desc: "Ebook: Revistas"}
+ - {id: 119, cat: Movies, desc: "Filmes:"}
+ - {id: 70, cat: XXX, desc: "Fotos: XXX"}
+ - {id: 57, cat: Console, desc: "Jogos: Android"}
+ - {id: 52, cat: Console, desc: "Jogos: Dreamcast"}
+ - {id: 109, cat: Console, desc: "Jogos: Emulação"}
+ - {id: 61, cat: Console, desc: "Jogos: Emuladores e Roms"}
+ - {id: 48, cat: PC/Mac, desc: "Jogos: Mac"}
+ - {id: 58, cat: Console/NDS, desc: "Jogos: Nintendo DS"}
+ - {id: 110, cat: Console, desc: "Jogos: Nintendo Switch"}
+ - {id: 47, cat: PC/Games, desc: "Jogos: Pc"}
+ - {id: 49, cat: Console, desc: "Jogos: Ps1"}
+ - {id: 50, cat: Console, desc: "Jogos: Ps2"}
+ - {id: 51, cat: Console/PS3, desc: "Jogos: Ps3"}
+ - {id: 79, cat: Console/PS4, desc: "Jogos: Ps4"}
+ - {id: 82, cat: Console/PSP, desc: "Jogos: PSP"}
+ - {id: 55, cat: Console/Wii, desc: "Jogos: Wii"}
+ - {id: 54, cat: Console/Xbox 360, desc: "Jogos: Xbox360"}
+ - {id: 56, cat: Console/Xbox, desc: "Jogos: Xbox"}
+ - {id: 78, cat: Console/Xbox One, desc: "Jogos: Xbox One"}
+ - {id: 29, cat: Audio, desc: "Musica: Axé"}
+ - {id: 38, cat: Audio, desc: "Musica: Blues"}
+ - {id: 39, cat: Audio, desc: "Musica: Dance"}
+ - {id: 40, cat: Audio, desc: "Musica: Discografia"}
+ - {id: 43, cat: Audio, desc: "Musica: Dubstep"}
+ - {id: 41, cat: Audio, desc: "Musica: Erudita"}
+ - {id: 42, cat: Audio, desc: "Musica: Forró"}
+ - {id: 31, cat: Audio, desc: "Musica: Funk"}
+ - {id: 84, cat: Audio, desc: "Musica: Game (OST)"}
+ - {id: 83, cat: Audio, desc: "Musica: Gospel"}
+ - {id: 37, cat: Audio, desc: "Musica: Hard Rock"}
+ - {id: 33, cat: Audio, desc: "Musica: Hip-Hop"}
+ - {id: 114, cat: Audio, desc: "Musica: MPB"}
+ - {id: 77, cat: Audio, desc: "Musica: Outros"}
+ - {id: 32, cat: Audio, desc: "Musica: Pagode"}
+ - {id: 115, cat: Audio, desc: "Musica: POP"}
+ - {id: 34, cat: Audio, desc: "Musica: Rap"}
+ - {id: 76, cat: Audio, desc: "Musica: Reggae"}
+ - {id: 36, cat: Audio, desc: "Musica: Rock"}
+ - {id: 45, cat: Audio, desc: "Musica: Samba"}
+ - {id: 46, cat: Audio, desc: "Musica: Sertanejo"}
+ - {id: 120, cat: TV, desc: "Series:"}
+ - {id: 65, cat: TV, desc: "Shows: Show"}
+ - {id: 63, cat: TV, desc: "Tv: Aberta"}
+ - {id: 62, cat: TV/Sport, desc: "Tv: Esportes"}
+ - {id: 64, cat: TV, desc: "Tv: Fechada"}
+ - {id: 73, cat: TV, desc: "Video Aula: Video Aula"}
+ - {id: 999, cat: Other, desc: "Error Cat not Found"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- login:
- path: account-login.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- remember: yes
- error:
- - selector: div.alert-error
- test:
- path: torrents-search.php
- selector: a[href="account-logout.php"]
-
- ratio:
+login:
+ path: account-login.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ remember: yes
+ error:
+ - selector: div.alert-error
+ test:
path: torrents-search.php
- selector: li:contains("Ratio:") a b
+ selector: a[href="account-logout.php"]
- search:
- paths:
- # http://amigos-share.club/torrents-search.php?search=&c1=1&c19=1&c36=1&incldead=0&freeleech=0&lang=0sort=id&order=desc&page=1
- - path: torrents-search.php
- # site displays just 9 results, no profile options found to change this, so we attempt to fetch 5 pages
- - path: torrents-search.php
- inputs:
- page: 1
- - path: torrents-search.php
- inputs:
- page: 2
- - path: torrents-search.php
- inputs:
- page: 3
- - path: torrents-search.php
- inputs:
- page: 4
- inputs:
- $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
- search: "{{ re_replace .Keywords \"[\\s]+\" \"%\" }}"
- incldead: 1
- freeleech: 0
- lang: 0
- sort: "{{ .Config.sort }}"
- order: "{{ .Config.type }}"
- keywordsfilters:
- - name: re_replace
- args: ["([12][0-9]{3})", ""]
+ratio:
+ path: torrents-search.php
+ selector: li:contains("Ratio:") a b
- rows:
- selector: div#fancy-list-group ul.list-group li.list-group-item
+search:
+ paths:
+ # http://amigos-share.club/torrents-search.php?search=&c1=1&c19=1&c36=1&incldead=0&freeleech=0&lang=0sort=id&order=desc&page=1
+ - path: torrents-search.php
+ # site displays just 9 results, no profile options found to change this, so we attempt to fetch 5 pages
+ - path: torrents-search.php
+ inputs:
+ page: 1
+ - path: torrents-search.php
+ inputs:
+ page: 2
+ - path: torrents-search.php
+ inputs:
+ page: 3
+ - path: torrents-search.php
+ inputs:
+ page: 4
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ search: "{{ re_replace .Keywords \"[\\s]+\" \"%\" }}"
+ incldead: 1
+ freeleech: 0
+ lang: 0
+ sort: "{{ .Config.sort }}"
+ order: "{{ .Config.type }}"
+ keywordsfilters:
+ - name: re_replace
+ args: ["([12][0-9]{3})", ""]
- fields:
- _quality:
- selector: div.list-group-item-content p.m-0 span.badge-primary:contains("1080p"), div.list-group-item-content p.m-0 span.badge-primary:contains("720p"), div.list-group-item-content p.m-0 span.badge-primary:contains("4k")
- optional: true
- _year:
- selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#246AB6;"]
- optional: true
- _type:
- selector: div.list-group-item-content p.m-0 span.badge-info:contains("Rip"), div.list-group-item-content p.m-0 span.badge-info:contains("WEB-"), div.list-group-item-content p.m-0 span.badge-info:contains("TV"), div.list-group-item-content p.m-0 span.badge-info:contains("Blu-Ray"), div.list-group-item-content p.m-0 span.badge-info:contains("BD50"), div.list-group-item-content p.m-0 span.badge-info:contains("MUX"), div.list-group-item-content p.m-0 span.badge-info:contains("DVD"), div.list-group-item-content p.m-0 span.badge-info:contains("320"), div.list-group-item-content p.m-0 span.badge-info:contains("CAM"), div.list-group-item-content p.m-0 span.badge-info:contains("rip")
- optional: true
- _language:
- selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#b6249d;"]
- optional: true
- title:
- selector: a[href^="torrents-details.php?id="]
- filters:
- # strip out the non-english title [to the left of the brackets] and drop the brackets enclosing the english title
- - name: re_replace
- args: ["^(.*?)[\\(](.*?)[\\)](.*?)$", "$2$3"]
- # add the year to the title
- - name: append
- args: "{{if .Result._year}} {{.Result._year}}{{else}}{{end}}"
- # add the quality to the title
- - name: append
- args: "{{if .Result._quality}} {{.Result._quality}}{{else}}{{end}}"
- # add the type to the title
- - name: append
- args: "{{if .Result._type}} {{.Result._type}}{{else}}{{end}}"
- # add audio to the title
- - name: append
- args: "{{if .Result._language}} {{.Result._language}}{{else}}{{end}}"
- - name: re_replace
- args: ["(Dual-Audio|Dublado)", "Brazilian $1"]
- details:
- selector: a[href^="torrents-details.php?id="]
- attribute: href
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- category:
- selector: div.list-group-item-addon img
- attribute: src
- case:
- # unfortunately the site does not have category numbers on the results page, just a .png which can apply to both movies and tv.
- # therefore I've order the list to favour movies,
- # also, not all .png have been verified as the site has many empty categories. their image names have been extrapolated from the cat desc.
- "[src$=\"/XXXZ.png\"]": 74
- "[src$=\"/Hentai.png\"]": 75
- "[src$=\"/Anime.png\"]": 69
- "[src$=\"/Windows.png\"]": 21
- "[src$=\"/Mac.png\"]": 22
- "[src$=\"/Android.png\"]": 23
- "[src$=\"/Linux.png\"]": 25
- "[src$=\"/iPhone.png\"]": 26
- "[src$=\"/iPad.png\"]": 27
- "[src$=\"/iPod.png\"]": 28
- "[src$=\"/Cursos.png\"]": 71
- "[src$=\"/Apostila.png\"]": 72
- "[src$=\"/E-books.png\"]": 67
- "[src$=\"/Revista.png\"]": 68
- "[src$=\"/HQ.png\"]": 112
- "[src$=\"/Filmes.png\"]": 119
- "[src$=\"/Revistas-XXX.png\"]": 70
- "[src$=\"/PS4.png\"]": 79
- "[src$=\"/Jogos-PC.png\"]": 47
- "[src$=\"/Emulador.png\"]": 61
- "[src$=\"/Emulacao.png\"]": 109
- "[src$=\"/Jogos-Mac.png\"]": 48
- "[src$=\"/Jogos-PS1.png\"]": 49
- "[src$=\"/Jogos-PS2.png\"]": 50
- "[src$=\"/Jogos-PS3.png\"]": 51
- "[src$=\"/Jogos-Dreamcast.png\"]": 52
- "[src$=\"/Jogos-Xbox360.png\"]": 54
- "[src$=\"/Jogos-Xbox.png\"]": 56
- "[src$=\"/Jogos-Wii.png\"]": 55
- "[src$=\"/Jogos-DS.png\"]": 58
- "[src$=\"/jogosandroid.png\"]": 57
- "[src$=\"/Jogos-PSP.png\"]": 82
- "[src$=\"/Jogos-NS.png\"]": 110
- "[src$=\"/Jogos-XboxOne.png\"]": 78
- "[src$=\"/Axe.png\"]": 29
- "[src$=\"/Funk.png\"]": 31
- "[src$=\"/Pagode.png\"]": 32
- "[src$=\"/HIP_HOP.png\"]": 33
- "[src$=\"/Rap.png\"]": 34
- "[src$=\"/Rock.png\"]": 36
- "[src$=\"/Hard-Rock.png\"]": 37
- "[src$=\"/Blues.png\"]": 38
- "[src$=\"/Dance.png\"]": 39
- "[src$=\"/Discografia.png\"]": 40
- "[src$=\"/Erudita.png\"]": 41
- "[src$=\"/Forro.png\"]": 42
- "[src$=\"/Dubstep.png\"]": 43
- "[src$=\"/Sertanejo.png\"]": 46
- "[src$=\"/Samba.png\"]": 45
- "[src$=\"/Musica-Outros.png\"]": 77
- "[src$=\"/Reggae.png\"]": 76
- "[src$=\"/Gospel.png\"]": 83
- "[src$=\"/POP.png\"]": 115
- "[src$=\"/MPB.png\"]": 114
- "[src$=\"/OST.png\"]": 84
- "[src$=\"/Seriados.png\"]": 120
- "[src$=\"/Shows.png\"]": 65
- "[src$=\"/Aberta.png\"]": 63
- "[src$=\"/Esporte.png\"]": 62
- "[src$=\"/Fechada.png\"]": 64
- "[src$=\"/Videoaula.png\"]": 73
- "*": 999
- date:
- text: now
- date:
- selector: p:contains("Lançado:")
- optional: true
- filters:
- - name: regexp
- args: "Lançado: (.+?)$"
- - name: re_replace
- args: [" (\\d:)", " 0$1"]
- - name: dateparse
- args: "02/01/06 15:04:05"
- size:
- selector: div.list-group-item-content p.m-0 span.badge-info
- seeders:
- selector: div.list-group-item-controls a:nth-child(1)
- leechers:
- selector: div.list-group-item-controls a:nth-child(2)
- grabs:
- selector: div.list-group-item-controls a:nth-child(3)
- downloadvolumefactor:
- case:
- "span.badge-success:contains(\"FREE\")": 0
- "*": 1
- uploadvolumefactor:
- text: 1
+ rows:
+ selector: div#fancy-list-group ul.list-group li.list-group-item
+
+ fields:
+ _quality:
+ selector: div.list-group-item-content p.m-0 span.badge-primary:contains("1080p"), div.list-group-item-content p.m-0 span.badge-primary:contains("720p"), div.list-group-item-content p.m-0 span.badge-primary:contains("4k")
+ optional: true
+ _year:
+ selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#246AB6;"]
+ optional: true
+ _type:
+ selector: div.list-group-item-content p.m-0 span.badge-info:contains("Rip"), div.list-group-item-content p.m-0 span.badge-info:contains("WEB-"), div.list-group-item-content p.m-0 span.badge-info:contains("TV"), div.list-group-item-content p.m-0 span.badge-info:contains("Blu-Ray"), div.list-group-item-content p.m-0 span.badge-info:contains("BD50"), div.list-group-item-content p.m-0 span.badge-info:contains("MUX"), div.list-group-item-content p.m-0 span.badge-info:contains("DVD"), div.list-group-item-content p.m-0 span.badge-info:contains("320"), div.list-group-item-content p.m-0 span.badge-info:contains("CAM"), div.list-group-item-content p.m-0 span.badge-info:contains("rip")
+ optional: true
+ _language:
+ selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#b6249d;"]
+ optional: true
+ title:
+ selector: a[href^="torrents-details.php?id="]
+ filters:
+ # strip out the non-english title [to the left of the brackets] and drop the brackets enclosing the english title
+ - name: re_replace
+ args: ["^(.*?)[\\(](.*?)[\\)](.*?)$", "$2$3"]
+ # add the year to the title
+ - name: append
+ args: "{{if .Result._year}} {{.Result._year}}{{else}}{{end}}"
+ # add the quality to the title
+ - name: append
+ args: "{{if .Result._quality}} {{.Result._quality}}{{else}}{{end}}"
+ # add the type to the title
+ - name: append
+ args: "{{if .Result._type}} {{.Result._type}}{{else}}{{end}}"
+ # add audio to the title
+ - name: append
+ args: "{{if .Result._language}} {{.Result._language}}{{else}}{{end}}"
+ - name: re_replace
+ args: ["(Dual-Audio|Dublado)", "Brazilian $1"]
+ details:
+ selector: a[href^="torrents-details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ category:
+ selector: div.list-group-item-addon img
+ attribute: src
+ case:
+ # unfortunately the site does not have category numbers on the results page, just a .png which can apply to both movies and tv.
+ # therefore I've order the list to favour movies,
+ # also, not all .png have been verified as the site has many empty categories. their image names have been extrapolated from the cat desc.
+ "[src$=\"/XXXZ.png\"]": 74
+ "[src$=\"/Hentai.png\"]": 75
+ "[src$=\"/Anime.png\"]": 69
+ "[src$=\"/Windows.png\"]": 21
+ "[src$=\"/Mac.png\"]": 22
+ "[src$=\"/Android.png\"]": 23
+ "[src$=\"/Linux.png\"]": 25
+ "[src$=\"/iPhone.png\"]": 26
+ "[src$=\"/iPad.png\"]": 27
+ "[src$=\"/iPod.png\"]": 28
+ "[src$=\"/Cursos.png\"]": 71
+ "[src$=\"/Apostila.png\"]": 72
+ "[src$=\"/E-books.png\"]": 67
+ "[src$=\"/Revista.png\"]": 68
+ "[src$=\"/HQ.png\"]": 112
+ "[src$=\"/Filmes.png\"]": 119
+ "[src$=\"/Revistas-XXX.png\"]": 70
+ "[src$=\"/PS4.png\"]": 79
+ "[src$=\"/Jogos-PC.png\"]": 47
+ "[src$=\"/Emulador.png\"]": 61
+ "[src$=\"/Emulacao.png\"]": 109
+ "[src$=\"/Jogos-Mac.png\"]": 48
+ "[src$=\"/Jogos-PS1.png\"]": 49
+ "[src$=\"/Jogos-PS2.png\"]": 50
+ "[src$=\"/Jogos-PS3.png\"]": 51
+ "[src$=\"/Jogos-Dreamcast.png\"]": 52
+ "[src$=\"/Jogos-Xbox360.png\"]": 54
+ "[src$=\"/Jogos-Xbox.png\"]": 56
+ "[src$=\"/Jogos-Wii.png\"]": 55
+ "[src$=\"/Jogos-DS.png\"]": 58
+ "[src$=\"/jogosandroid.png\"]": 57
+ "[src$=\"/Jogos-PSP.png\"]": 82
+ "[src$=\"/Jogos-NS.png\"]": 110
+ "[src$=\"/Jogos-XboxOne.png\"]": 78
+ "[src$=\"/Axe.png\"]": 29
+ "[src$=\"/Funk.png\"]": 31
+ "[src$=\"/Pagode.png\"]": 32
+ "[src$=\"/HIP_HOP.png\"]": 33
+ "[src$=\"/Rap.png\"]": 34
+ "[src$=\"/Rock.png\"]": 36
+ "[src$=\"/Hard-Rock.png\"]": 37
+ "[src$=\"/Blues.png\"]": 38
+ "[src$=\"/Dance.png\"]": 39
+ "[src$=\"/Discografia.png\"]": 40
+ "[src$=\"/Erudita.png\"]": 41
+ "[src$=\"/Forro.png\"]": 42
+ "[src$=\"/Dubstep.png\"]": 43
+ "[src$=\"/Sertanejo.png\"]": 46
+ "[src$=\"/Samba.png\"]": 45
+ "[src$=\"/Musica-Outros.png\"]": 77
+ "[src$=\"/Reggae.png\"]": 76
+ "[src$=\"/Gospel.png\"]": 83
+ "[src$=\"/POP.png\"]": 115
+ "[src$=\"/MPB.png\"]": 114
+ "[src$=\"/OST.png\"]": 84
+ "[src$=\"/Seriados.png\"]": 120
+ "[src$=\"/Shows.png\"]": 65
+ "[src$=\"/Aberta.png\"]": 63
+ "[src$=\"/Esporte.png\"]": 62
+ "[src$=\"/Fechada.png\"]": 64
+ "[src$=\"/Videoaula.png\"]": 73
+ "*": 999
+ date:
+ text: now
+ date:
+ selector: p:contains("Lançado:")
+ optional: true
+ filters:
+ - name: regexp
+ args: "Lançado: (.+?)$"
+ - name: re_replace
+ args: [" (\\d:)", " 0$1"]
+ - name: dateparse
+ args: "02/01/06 15:04:05"
+ size:
+ selector: div.list-group-item-content p.m-0 span.badge-info
+ seeders:
+ selector: div.list-group-item-controls a:nth-child(1)
+ leechers:
+ selector: div.list-group-item-controls a:nth-child(2)
+ grabs:
+ selector: div.list-group-item-controls a:nth-child(3)
+ downloadvolumefactor:
+ case:
+ "span.badge-success:contains(\"FREE\")": 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/anirena.yml b/src/Jackett.Common/Definitions/anirena.yml
index e3fa5ea86..08ceec9f5 100644
--- a/src/Jackett.Common/Definitions/anirena.yml
+++ b/src/Jackett.Common/Definitions/anirena.yml
@@ -1,81 +1,81 @@
---
- site: aniRena
- name: AniRena
- description: "AniRena is a Public torrent tracker for the latest anime and Japanese related torrents"
- language: en-us
- type: public
- encoding: UTF-8
- links:
- - https://www.anirena.com/
-
- settings: []
+site: aniRena
+name: AniRena
+description: "AniRena is a Public torrent tracker for the latest anime and Japanese related torrents"
+language: en-us
+type: public
+encoding: UTF-8
+links:
+ - https://www.anirena.com/
+
+settings: []
- caps:
- categorymappings:
- # Anime
- - {id: 1, cat: TV/Anime, desc: "Raw Animes"}
- - {id: 2, cat: TV/Anime, desc: "Anime"}
- - {id: 3, cat: TV/Anime, desc: "Hentai"}
- - {id: 4, cat: TV/Anime, desc: "Drama"}
- - {id: 9, cat: TV/Anime, desc: "Anime Music Videos"}
- - {id: 10, cat: TV/Anime, desc: "Non-English"}
- # Software
- - {id: 5, cat: PC/ISO, desc: "DVD/ISO"}
- - {id: 6, cat: PC, desc: "Hentai-Game"}
- # Literature
- - {id: 7, cat: Books, desc: "Manga"}
- # Audio
- - {id: 8, cat: Audio, desc: "Audio"}
- # Other
- - {id: 11, cat: Other, desc: "Other"}
+caps:
+ categorymappings:
+ # Anime
+ - {id: 1, cat: TV/Anime, desc: "Raw Animes"}
+ - {id: 2, cat: TV/Anime, desc: "Anime"}
+ - {id: 3, cat: TV/Anime, desc: "Hentai"}
+ - {id: 4, cat: TV/Anime, desc: "Drama"}
+ - {id: 9, cat: TV/Anime, desc: "Anime Music Videos"}
+ - {id: 10, cat: TV/Anime, desc: "Non-English"}
+ # Software
+ - {id: 5, cat: PC/ISO, desc: "DVD/ISO"}
+ - {id: 6, cat: PC, desc: "Hentai-Game"}
+ # Literature
+ - {id: 7, cat: Books, desc: "Manga"}
+ # Audio
+ - {id: 8, cat: Audio, desc: "Audio"}
+ # Other
+ - {id: 11, cat: Other, desc: "Other"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
- search:
- paths:
- - path: "{{if .Keywords}}?s={{ .Keywords}}{{else}}{{end}}"
+search:
+ paths:
+ - path: "{{if .Keywords}}?s={{ .Keywords}}{{else}}{{end}}"
- rows:
- selector: table tbody tr:has(td.torrents_small_type_data1)
+ rows:
+ selector: table tbody tr:has(td.torrents_small_type_data1)
- fields:
- title:
- selector: .torrents_small_info_data1 div
- download:
- selector: .torrents_small_info_data2 a[title="Download Torrent"]
- attribute: href
- magnet:
- selector: .torrents_small_info_data2 a[title="Magnet Link"]
- attribute: href
- date:
- text: now
- size:
- selector: .torrents_small_size_data1
- seeders:
- selector: .torrents_small_seeders_data1 b big
- leechers:
- selector: .torrents_small_leechers_data1 b big
- grabs:
- selector: .torrents_small_downloads_data1
- category:
- selector: .torrents_small_type_data1 img
- attribute: src
- case:
- "[src=\"./styles/tracker/imageset/cat_raw_small.png\"]": 1
- "[src=\"./styles/tracker/imageset/cat_anime_small.png\"]": 2
- "[src=\"./styles/tracker/imageset/cat_hentai_small.png\"]": 3
- "[src=\"./styles/tracker/imageset/cat_drama_small.png\"]": 4
- "[src=\"./styles/tracker/imageset/cat_dvd_small.png\"]": 5
- "[src=\"./styles/tracker/imageset/cat_hgame2_small.png\"]": 6
- "[src=\"./styles/tracker/imageset/cat_manga_small.png\"]": 7
- "[src=\"./styles/tracker/imageset/cat_music_small.png\"]": 8
- "[src=\"./styles/tracker/imageset/cat_musicvid_small.png\"]": 9
- "[src=\"./styles/tracker/imageset/cat_noneng_small.png\"]": 10
- "[src=\"./styles/tracker/imageset/cat_other_small.png\"]": 11
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ fields:
+ title:
+ selector: .torrents_small_info_data1 div
+ download:
+ selector: .torrents_small_info_data2 a[title="Download Torrent"]
+ attribute: href
+ magnet:
+ selector: .torrents_small_info_data2 a[title="Magnet Link"]
+ attribute: href
+ date:
+ text: now
+ size:
+ selector: .torrents_small_size_data1
+ seeders:
+ selector: .torrents_small_seeders_data1 b big
+ leechers:
+ selector: .torrents_small_leechers_data1 b big
+ grabs:
+ selector: .torrents_small_downloads_data1
+ category:
+ selector: .torrents_small_type_data1 img
+ attribute: src
+ case:
+ "[src=\"./styles/tracker/imageset/cat_raw_small.png\"]": 1
+ "[src=\"./styles/tracker/imageset/cat_anime_small.png\"]": 2
+ "[src=\"./styles/tracker/imageset/cat_hentai_small.png\"]": 3
+ "[src=\"./styles/tracker/imageset/cat_drama_small.png\"]": 4
+ "[src=\"./styles/tracker/imageset/cat_dvd_small.png\"]": 5
+ "[src=\"./styles/tracker/imageset/cat_hgame2_small.png\"]": 6
+ "[src=\"./styles/tracker/imageset/cat_manga_small.png\"]": 7
+ "[src=\"./styles/tracker/imageset/cat_music_small.png\"]": 8
+ "[src=\"./styles/tracker/imageset/cat_musicvid_small.png\"]": 9
+ "[src=\"./styles/tracker/imageset/cat_noneng_small.png\"]": 10
+ "[src=\"./styles/tracker/imageset/cat_other_small.png\"]": 11
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/anisource.yml b/src/Jackett.Common/Definitions/anisource.yml
index 0da4c5bd6..89256d715 100644
--- a/src/Jackett.Common/Definitions/anisource.yml
+++ b/src/Jackett.Common/Definitions/anisource.yml
@@ -1,91 +1,91 @@
---
- site: anisource
- name: AniSource
- description: "AniSource is a Public site for HD Anime raws."
- language: en-us
- type: public
- encoding: UTF-8
- links:
- - https://asnet.pw/
+site: anisource
+name: AniSource
+description: "AniSource is a Public site for HD Anime raws."
+language: en-us
+type: public
+encoding: UTF-8
+links:
+ - https://asnet.pw/
- settings: []
+settings: []
- caps:
- categorymappings:
- - {id: 1, cat: TV/Anime, desc: "Raw Animes"}
+caps:
+ categorymappings:
+ - {id: 1, cat: TV/Anime, desc: "Raw Animes"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
- search:
- paths:
- - path: /
- - path: /
- inputs:
- tpage: 2
- - path: /
- inputs:
- tpage: 3
- - path: /
- inputs:
- tpage: 4
- - path: /
- inputs:
- tpage: 5
- inputs:
- search: "{{ .Keywords }}"
+search:
+ paths:
+ - path: /
+ - path: /
+ inputs:
+ tpage: 2
+ - path: /
+ inputs:
+ tpage: 3
+ - path: /
+ inputs:
+ tpage: 4
+ - path: /
+ inputs:
+ tpage: 5
+ inputs:
+ search: "{{ .Keywords }}"
- rows:
- selector: div[class^="item"]
+ rows:
+ selector: div[class^="item"]
- fields:
- category:
- text: 1
- title:
- selector: a[href*="/showprofile/"]
- filters:
- # move group to the end
- - name: re_replace
- args: ["^(\\[.+?\\]) (.+?)$", "$2 $1"]
- details:
- selector: a[href*="/showprofile/"]
- attribute: href
- download:
- selector: a[href*="/download/"]
- attribute: href
- magnet:
- selector: a[href^="magnet:?xt="]
- attribute: href
- date:
- selector: font[color="Black"]
- filters:
- - name: regexp
- args: "Date: (.+?) Central"
- - name: replace
- args: [" at ", " "]
- - name: append
- args: " -09:00"
- - name: dateparse
- args: "2006-01-02 15:04 -07:00"
- size:
- selector: font[color="Black"]
- filters:
- - name: regexp
- args: "Size: (.+?) \\|"
- - name: replace
- args: ["b", "B"]
- files:
- selector: font[color="Black"]
- filters:
- - name: regexp
- args: (\d+)$
- seeders:
- text: 1
- leechers:
- text: 1
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ fields:
+ category:
+ text: 1
+ title:
+ selector: a[href*="/showprofile/"]
+ filters:
+ # move group to the end
+ - name: re_replace
+ args: ["^(\\[.+?\\]) (.+?)$", "$2 $1"]
+ details:
+ selector: a[href*="/showprofile/"]
+ attribute: href
+ download:
+ selector: a[href*="/download/"]
+ attribute: href
+ magnet:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
+ date:
+ selector: font[color="Black"]
+ filters:
+ - name: regexp
+ args: "Date: (.+?) Central"
+ - name: replace
+ args: [" at ", " "]
+ - name: append
+ args: " -09:00"
+ - name: dateparse
+ args: "2006-01-02 15:04 -07:00"
+ size:
+ selector: font[color="Black"]
+ filters:
+ - name: regexp
+ args: "Size: (.+?) \\|"
+ - name: replace
+ args: ["b", "B"]
+ files:
+ selector: font[color="Black"]
+ filters:
+ - name: regexp
+ args: (\d+)$
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/arabafenice.yml b/src/Jackett.Common/Definitions/arabafenice.yml
index 8ce3691dd..64591e794 100644
--- a/src/Jackett.Common/Definitions/arabafenice.yml
+++ b/src/Jackett.Common/Definitions/arabafenice.yml
@@ -1,225 +1,225 @@
---
- site: arabafenice
- name: ArabaFenice
- description: "Araba Fenice (Phoenix) is an ITALIAN Private site for TV / MOVIES / GENERAL"
- language: it-it
- type: private
- encoding: UTF-8
- links:
- - https://www.arabafenice.me/
- legacylinks:
- - http://www.arabafenice.me/
+site: arabafenice
+name: ArabaFenice
+description: "Araba Fenice (Phoenix) is an ITALIAN Private site for TV / MOVIES / GENERAL"
+language: it-it
+type: private
+encoding: UTF-8
+links:
+ - https://www.arabafenice.me/
+legacylinks:
+ - http://www.arabafenice.me/
- caps:
- categorymappings:
- # HRS
- - {id: 34, cat: Movies/HD, desc: "1080p HRS x264"}
- - {id: 47, cat: Movies/UHD, desc: "2160p 4k UltraHD HRS"}
- - {id: 35, cat: TV, desc: "Serie TV HRS"}
- - {id: 36, cat: Movies/SD, desc: "DVDRip HRS"}
- - {id: 41, cat: Movies/SD, desc: "BDRip 576p HRS"}
- - {id: 39, cat: Movies/HD, desc: "1080p HRS x265 HEVC"}
+caps:
+ categorymappings:
+ # HRS
+ - {id: 34, cat: Movies/HD, desc: "1080p HRS x264"}
+ - {id: 47, cat: Movies/UHD, desc: "2160p 4k UltraHD HRS"}
+ - {id: 35, cat: TV, desc: "Serie TV HRS"}
+ - {id: 36, cat: Movies/SD, desc: "DVDRip HRS"}
+ - {id: 41, cat: Movies/SD, desc: "BDRip 576p HRS"}
+ - {id: 39, cat: Movies/HD, desc: "1080p HRS x265 HEVC"}
- # VIDEO
- - {id: 1, cat: Movies, desc: "News Cinema"}
- - {id: 2, cat: Movies/SD, desc: "BD-DVDRip"}
- - {id: 3, cat: Movies/DVD, desc: "DVD 5"}
- - {id: 5, cat: Movies/DVD, desc: "DVD 9"}
- - {id: 6, cat: Movies/BluRay, desc: "BluRay Full"}
- - {id: 4, cat: Movies/HD, desc: "1080p 3D x264"}
- - {id: 7, cat: Movies/HD, desc: "1080p x264"}
- - {id: 46, cat: Movies/HD, desc: "1080p Video Untouch"}
- - {id: 44, cat: Movies/HD, desc: "1080p x265"}
- - {id: 9, cat: TV/Anime, desc: "Cartoons"}
- - {id: 8, cat: TV/Anime, desc: "720p x264"}
- - {id: 12, cat: TV, desc: "He concluded seasons"}
- - {id: 13, cat: TV, desc: "Seasons in Onda"}
- - {id: 14, cat: TV, desc: "TV Show"}
- - {id: 42, cat: TV, desc: "Serie Tv Sub Ita"}
- - {id: 15, cat: TV/Documentary, desc: "documentaries"}
- - {id: 33, cat: TV, desc: "mp4"}
- - {id: 40, cat: TV/UHD, desc: "2160p 4K UltraHD"}
- - {id: 38, cat: XXX, desc: "xXx"}
- - {id: 43, cat: Other, desc: "Arabic for social"}
+ # VIDEO
+ - {id: 1, cat: Movies, desc: "News Cinema"}
+ - {id: 2, cat: Movies/SD, desc: "BD-DVDRip"}
+ - {id: 3, cat: Movies/DVD, desc: "DVD 5"}
+ - {id: 5, cat: Movies/DVD, desc: "DVD 9"}
+ - {id: 6, cat: Movies/BluRay, desc: "BluRay Full"}
+ - {id: 4, cat: Movies/HD, desc: "1080p 3D x264"}
+ - {id: 7, cat: Movies/HD, desc: "1080p x264"}
+ - {id: 46, cat: Movies/HD, desc: "1080p Video Untouch"}
+ - {id: 44, cat: Movies/HD, desc: "1080p x265"}
+ - {id: 9, cat: TV/Anime, desc: "Cartoons"}
+ - {id: 8, cat: TV/Anime, desc: "720p x264"}
+ - {id: 12, cat: TV, desc: "He concluded seasons"}
+ - {id: 13, cat: TV, desc: "Seasons in Onda"}
+ - {id: 14, cat: TV, desc: "TV Show"}
+ - {id: 42, cat: TV, desc: "Serie Tv Sub Ita"}
+ - {id: 15, cat: TV/Documentary, desc: "documentaries"}
+ - {id: 33, cat: TV, desc: "mp4"}
+ - {id: 40, cat: TV/UHD, desc: "2160p 4K UltraHD"}
+ - {id: 38, cat: XXX, desc: "xXx"}
+ - {id: 43, cat: Other, desc: "Arabic for social"}
- # MUSICA
- - {id: 17, cat: Audio, desc: "Italian music"}
- - {id: 45, cat: Audio, desc: "Discography"}
- - {id: 18, cat: Audio, desc: "MusicaInternazionale"}
- - {id: 19, cat: Audio, desc: "Compilation"}
+ # MUSICA
+ - {id: 17, cat: Audio, desc: "Italian music"}
+ - {id: 45, cat: Audio, desc: "Discography"}
+ - {id: 18, cat: Audio, desc: "MusicaInternazionale"}
+ - {id: 19, cat: Audio, desc: "Compilation"}
- # PDF
- - {id: 21, cat: Books, desc: "Ebook"}
- - {id: 22, cat: Books/Comics, desc: "Comics"}
- - {id: 23, cat: Books, desc: "Newsstand"}
+ # PDF
+ - {id: 21, cat: Books, desc: "Ebook"}
+ - {id: 22, cat: Books/Comics, desc: "Comics"}
+ - {id: 23, cat: Books, desc: "Newsstand"}
- # GAMES
- - {id: 25, cat: Console/PS4, desc: "Sony Games"}
- - {id: 26, cat: Console/Xbox, desc: "XboX Games"}
- - {id: 27, cat: Console/Other, desc: "Nintendo Games"}
- - {id: 28, cat: PC/Games, desc: "PC Games"}
+ # GAMES
+ - {id: 25, cat: Console/PS4, desc: "Sony Games"}
+ - {id: 26, cat: Console/Xbox, desc: "XboX Games"}
+ - {id: 27, cat: Console/Other, desc: "Nintendo Games"}
+ - {id: 28, cat: PC/Games, desc: "PC Games"}
- # SOFTWARE
- - {id: 30, cat: PC/ISO, desc: "Windows APP"}
- - {id: 31, cat: PC/Phone-IOS, desc: "Apple APP"}
- - {id: 32, cat: PC/Phone-Android, desc: "Android APP"}
+ # SOFTWARE
+ - {id: 30, cat: PC/ISO, desc: "Windows APP"}
+ - {id: 31, cat: PC/Phone-IOS, desc: "Apple APP"}
+ - {id: 32, cat: PC/Phone-Android, desc: "Android APP"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "3"
- options:
- "3": "created"
- "5": "seeders"
- "4": "size"
- "2": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "2"
- options:
- "2": "desc"
- "1": "asc"
- - name: info
- type: info
- label: Results Per Page
- default: For best results, change the Torrents per page: setting to 100 on your account profile.
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "3"
+ options:
+ "3": "created"
+ "5": "seeders"
+ "4": "size"
+ "2": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "2"
+ options:
+ "2": "desc"
+ "1": "asc"
+ - name: info
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
- login:
- path: index.php?page=login
- method: post
- inputs:
- uid: "{{ .Config.username }}"
- pwd: "{{ .Config.password }}"
- error:
- - selector: body[onLoad^="makeAlert('"]
- message:
- selector: body[onLoad^="makeAlert('"]
- attribute: onLoad
- filters:
- - name: replace
- args: ["makeAlert('Error' , '", ""]
- - name: replace
- args: ["');", ""]
- test:
- path: index.php
-
- download:
- before:
- path: thanks.php
- method: post
- inputs:
- infohash: "{{ .DownloadUri.Query.id }}"
- thanks: 1
- rndval: "1487013827343"
- selector: a[href^="download.php?id="]
- attribute: href
-
- search:
- paths:
- - path: index.php
- keywordsfilters:
- - name: diacritics
- args: replace
- - name: re_replace # S01 to 1
- args: ["(?i)\\bS0*(\\d+)\\b", "$1"]
- - name: re_replace # S01E01 to 1 1
- args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1 $2"]
- inputs:
- search: "{{if .Query.IMDBID}}{{ .Query.IMDBIDShort }}{{else}}{{ .Keywords }}{{end}}"
- page: torrents
- category: "{{ range .Categories }}{{.}};{{end}}"
- options: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
- active: 0
- order: "{{ .Config.sort }}"
- by: "{{ .Config.type }}"
-
- rows:
- selector: table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
-
- fields:
- download:
- selector: a[href^="index.php?page=downloadcheck&id="]
- attribute: href
- title:
- selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
- filters:
- - name: re_replace # S01 E01 to S01E01
- args: ["(?i)\\bS(\\d+)\\sE(\\d+)\\b", "S$1E$2"]
- - name: re_replace # 01x01 to S01E01
- args: ["(?i)(\\d{2})x(\\d+)", "S$1E$2"]
- - name: re_replace # 1x01 to S01E01
- args: ["(?i)\\b(\\d{1})x(\\d+)", "S0$1E$2"]
- - name: re_replace # Stagione X --> S0X
- args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\b|\\bSeason'?s?\\s?(\\d{1})\\b", "S0$1$2"]
- - name: re_replace # Stagione XX --> SXX
- args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\b|\\bSeason'?s?\\s?(\\d{2,})\\b", "S$1$2"]
- - name: re_replace # Episodio 4 to E4
- args: ["(?i)\\b(?:[\\/\\|]?Episodio\\s?(\\d+)|Puntata\\s?(\\d+))", "E$1$2"]
- - name: re_replace # Episodi 4 5 to E04-05
- args: ["(?i)\\b(?:Puntate\\s*)(\\d+)\\s?(\\d+)", "E0$1-0$2"]
- banner:
- selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
- attribute: onmouseover
- filters:
- - name: regexp
- args: "src=(.*?) "
- category:
- selector: a[href^="index.php?page=torrents&category="]
- attribute: href
- filters:
- - name: querystring
- args: category
- details:
- selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
- attribute: href
- size:
- selector: td:nth-last-child(4)
- date:
- selector: td:nth-last-child(9)
- filters:
- - name: append
- args: " +01:00"
- - name: dateparse
- args: "02/01/2006 -07:00"
- grabs:
- selector: td:nth-last-child(6)
+login:
+ path: index.php?page=login
+ method: post
+ inputs:
+ uid: "{{ .Config.username }}"
+ pwd: "{{ .Config.password }}"
+ error:
+ - selector: body[onLoad^="makeAlert('"]
+ message:
+ selector: body[onLoad^="makeAlert('"]
+ attribute: onLoad
filters:
- name: replace
- args: ["---", "0"]
- seeders:
- selector: td:nth-last-child(8)
- leechers:
- selector: td:nth-last-child(7)
- downloadvolumefactor:
- case:
- img[alt="Gold 100% Free"]: 0
- img[alt="Silver 50% Free"]: 0.5
- img[alt="Bronze 25% Free"]: 0.75
- "*": 1
- uploadvolumefactor:
- case:
- img[alt="2x Upload Multiplier"]: 2
- img[alt="3x Upload Multiplier"]: 3
- img[alt="4x Upload Multiplier"]: 4
- img[alt="5x Upload Multiplier"]: 5
- img[alt="6x Upload Multiplier"]: 6
- img[alt="7x Upload Multiplier"]: 7
- img[alt="8x Upload Multiplier"]: 8
- img[alt="9x Upload Multiplier"]: 9
- img[alt="10x Upload Multiplier"]: 10
- "*": 1
+ args: ["makeAlert('Error' , '", ""]
+ - name: replace
+ args: ["');", ""]
+ test:
+ path: index.php
+
+download:
+ before:
+ path: thanks.php
+ method: post
+ inputs:
+ infohash: "{{ .DownloadUri.Query.id }}"
+ thanks: 1
+ rndval: "1487013827343"
+ selector: a[href^="download.php?id="]
+ attribute: href
+
+search:
+ paths:
+ - path: index.php
+ keywordsfilters:
+ - name: diacritics
+ args: replace
+ - name: re_replace # S01 to 1
+ args: ["(?i)\\bS0*(\\d+)\\b", "$1"]
+ - name: re_replace # S01E01 to 1 1
+ args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1 $2"]
+ inputs:
+ search: "{{if .Query.IMDBID}}{{ .Query.IMDBIDShort }}{{else}}{{ .Keywords }}{{end}}"
+ page: torrents
+ category: "{{ range .Categories }}{{.}};{{end}}"
+ options: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
+ active: 0
+ order: "{{ .Config.sort }}"
+ by: "{{ .Config.type }}"
+
+ rows:
+ selector: table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
+
+ fields:
+ download:
+ selector: a[href^="index.php?page=downloadcheck&id="]
+ attribute: href
+ title:
+ selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
+ filters:
+ - name: re_replace # S01 E01 to S01E01
+ args: ["(?i)\\bS(\\d+)\\sE(\\d+)\\b", "S$1E$2"]
+ - name: re_replace # 01x01 to S01E01
+ args: ["(?i)(\\d{2})x(\\d+)", "S$1E$2"]
+ - name: re_replace # 1x01 to S01E01
+ args: ["(?i)\\b(\\d{1})x(\\d+)", "S0$1E$2"]
+ - name: re_replace # Stagione X --> S0X
+ args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\b|\\bSeason'?s?\\s?(\\d{1})\\b", "S0$1$2"]
+ - name: re_replace # Stagione XX --> SXX
+ args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\b|\\bSeason'?s?\\s?(\\d{2,})\\b", "S$1$2"]
+ - name: re_replace # Episodio 4 to E4
+ args: ["(?i)\\b(?:[\\/\\|]?Episodio\\s?(\\d+)|Puntata\\s?(\\d+))", "E$1$2"]
+ - name: re_replace # Episodi 4 5 to E04-05
+ args: ["(?i)\\b(?:Puntate\\s*)(\\d+)\\s?(\\d+)", "E0$1-0$2"]
+ banner:
+ selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: "src=(.*?) "
+ category:
+ selector: a[href^="index.php?page=torrents&category="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: category
+ details:
+ selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
+ attribute: href
+ size:
+ selector: td:nth-last-child(4)
+ date:
+ selector: td:nth-last-child(9)
+ filters:
+ - name: append
+ args: " +01:00"
+ - name: dateparse
+ args: "02/01/2006 -07:00"
+ grabs:
+ selector: td:nth-last-child(6)
+ filters:
+ - name: replace
+ args: ["---", "0"]
+ seeders:
+ selector: td:nth-last-child(8)
+ leechers:
+ selector: td:nth-last-child(7)
+ downloadvolumefactor:
+ case:
+ img[alt="Gold 100% Free"]: 0
+ img[alt="Silver 50% Free"]: 0.5
+ img[alt="Bronze 25% Free"]: 0.75
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img[alt="2x Upload Multiplier"]: 2
+ img[alt="3x Upload Multiplier"]: 3
+ img[alt="4x Upload Multiplier"]: 4
+ img[alt="5x Upload Multiplier"]: 5
+ img[alt="6x Upload Multiplier"]: 6
+ img[alt="7x Upload Multiplier"]: 7
+ img[alt="8x Upload Multiplier"]: 8
+ img[alt="9x Upload Multiplier"]: 9
+ img[alt="10x Upload Multiplier"]: 10
+ "*": 1
# xbtitFM v1.16
diff --git a/src/Jackett.Common/Definitions/arabp2p.yml b/src/Jackett.Common/Definitions/arabp2p.yml
index 6b210b328..f0301af72 100644
--- a/src/Jackett.Common/Definitions/arabp2p.yml
+++ b/src/Jackett.Common/Definitions/arabp2p.yml
@@ -1,167 +1,167 @@
---
- site: arabp2p
- name: ArabP2P
- description: "ArabP2P is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: ar-ar
- type: private
- encoding: UTF-8
- links:
- - https://www.arabp2p.com/
+site: arabp2p
+name: ArabP2P
+description: "ArabP2P is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: ar-ar
+type: private
+encoding: UTF-8
+links:
+ - https://www.arabp2p.com/
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "3"
- options:
- "3": "created"
- "5": "seeders"
- "4": "size"
- "2": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "2"
- options:
- "2": "desc"
- "1": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "3"
+ options:
+ "3": "created"
+ "5": "seeders"
+ "4": "size"
+ "2": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "2"
+ options:
+ "2": "desc"
+ "1": "asc"
- caps:
- categorymappings:
- # المرئيات العربية Arabic Movies
- - {id: 14, cat: Movies, desc: "اسلامي (Islamic)"}
- - {id: 19, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
- - {id: 70, cat: TV, desc: "تعليمي (Educational)"}
- - {id: 41, cat: Movies, desc: "افلام عربيه (Arabic Movies)"}
- - {id: 88, cat: Movies, desc: "افلام مدبلجه عربي (Arabic Dubbed Movies)"}
- - {id: 44, cat: TV, desc: "مسلسلات عربية (Arabic Series)"}
- - {id: 89, cat: TV, desc: "مسلسلات عربية كامله (Full Arabic Series)"}
- - {id: 52, cat: TV, desc: "مسرحيات (Plays)"}
- - {id: 71, cat: TV, desc: "مسلسلات مدبلجه عربي (Arabic Dubbed Series)"}
- - {id: 90, cat: TV, desc: "برامج ومسابقات (Shows)"}
- - {id: 109, cat: TV, desc: "رمضان 2020 (Ramadan 2020)"}
- # المرئيات الاجنبية Foreign Movies
- - {id: 92, cat: TV/FOREIGN, desc: "تعليمي (Educational)"}
- - {id: 93, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
- - {id: 45, cat: TV/FOREIGN, desc: "مسلسلات وبرامج اجنبيه (Serials)"}
- - {id: 57, cat: TV/FOREIGN, desc: "مسلسلات آسيوية (Asian Series)"}
- - {id: 42, cat: Movies/Foreign, desc: "افلام اجنبيه (Foreign)"}
- - {id: 76, cat: Movies/3D, desc: "&ثلاثي الابعاد 3D (3D)"}
- - {id: 74, cat: Movies/HD, desc: "جودة عالية HD"}
- - {id: 59, cat: Movies/Foreign, desc: "افلام آسيوية (Asian Movies)"}
- - {id: 86, cat: Movies/Foreign, desc: "افلام هنديه (Indian Movies)"}
- # انمي مدبلج عربي Anime Arabic dubbed
- - {id: 98, cat: TV/Anime, desc: "افلام (Movies)"}
- - {id: 100, cat: TV/Anime, desc: "مسلسلات (Series)"}
- - {id: 102, cat: TV/Anime, desc: "حلقات (Episdoes)"}
- # انمي مترجم عربي Anime Arabic translator
- - {id: 99, cat: TV/Anime, desc: "افلام (Movies)"}
- - {id: 101, cat: TV/Anime, desc: "مسلسلات (Series)"}
- - {id: 103, cat: TV/Anime, desc: "حلقات (Episodes)"}
- - {id: 85, cat: TV/Anime, desc: "الكارتون الصامت والكلاسيكي (Cartoons)"}
- # صوتيات Audio
- - {id: 25, cat: Audio, desc: "القران الكريم (The Holy Quran)"}
- - {id: 27, cat: Audio, desc: "محاضرات (Lectures)"}
- - {id: 26, cat: Audio, desc: "اناشيد (Chants)"}
- # برامج Software
- - {id: 22, cat: PC, desc: "برامج عربية (Arabic Software)"}
- - {id: 23, cat: PC, desc: "برامج عامه (Public Software)"}
- - {id: 78, cat: PC/Phone-IOS, desc: "iPad/iPhone"}
- - {id: 79, cat: PC/Phone-Android, desc: "android"}
- # العاب Games
- - {id: 30, cat: PC/Games, desc: "PC"}
- - {id: 31, cat: Console/PS3, desc: "PS2"}
- - {id: 53, cat: Console/Wii, desc: "wii"}
- - {id: 55, cat: Console/PSP, desc: "PSP"}
- - {id: 63, cat: Console/Xbox, desc: "XBOX"}
- - {id: 64, cat: Console/PS3, desc: "PS3"}
- # اخرى Other
- - {id: 17, cat: Books, desc: "كتب (Books)"}
- - {id: 65, cat: Other, desc: "صور (Images)"}
- - {id: 56, cat: Other, desc: "رياضي (Sport)"}
- - {id: 46, cat: Other, desc: "منوع (Misc)"}
+caps:
+ categorymappings:
+ # المرئيات العربية Arabic Movies
+ - {id: 14, cat: Movies, desc: "اسلامي (Islamic)"}
+ - {id: 19, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
+ - {id: 70, cat: TV, desc: "تعليمي (Educational)"}
+ - {id: 41, cat: Movies, desc: "افلام عربيه (Arabic Movies)"}
+ - {id: 88, cat: Movies, desc: "افلام مدبلجه عربي (Arabic Dubbed Movies)"}
+ - {id: 44, cat: TV, desc: "مسلسلات عربية (Arabic Series)"}
+ - {id: 89, cat: TV, desc: "مسلسلات عربية كامله (Full Arabic Series)"}
+ - {id: 52, cat: TV, desc: "مسرحيات (Plays)"}
+ - {id: 71, cat: TV, desc: "مسلسلات مدبلجه عربي (Arabic Dubbed Series)"}
+ - {id: 90, cat: TV, desc: "برامج ومسابقات (Shows)"}
+ - {id: 109, cat: TV, desc: "رمضان 2020 (Ramadan 2020)"}
+ # المرئيات الاجنبية Foreign Movies
+ - {id: 92, cat: TV/FOREIGN, desc: "تعليمي (Educational)"}
+ - {id: 93, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
+ - {id: 45, cat: TV/FOREIGN, desc: "مسلسلات وبرامج اجنبيه (Serials)"}
+ - {id: 57, cat: TV/FOREIGN, desc: "مسلسلات آسيوية (Asian Series)"}
+ - {id: 42, cat: Movies/Foreign, desc: "افلام اجنبيه (Foreign)"}
+ - {id: 76, cat: Movies/3D, desc: "&ثلاثي الابعاد 3D (3D)"}
+ - {id: 74, cat: Movies/HD, desc: "جودة عالية HD"}
+ - {id: 59, cat: Movies/Foreign, desc: "افلام آسيوية (Asian Movies)"}
+ - {id: 86, cat: Movies/Foreign, desc: "افلام هنديه (Indian Movies)"}
+ # انمي مدبلج عربي Anime Arabic dubbed
+ - {id: 98, cat: TV/Anime, desc: "افلام (Movies)"}
+ - {id: 100, cat: TV/Anime, desc: "مسلسلات (Series)"}
+ - {id: 102, cat: TV/Anime, desc: "حلقات (Episdoes)"}
+ # انمي مترجم عربي Anime Arabic translator
+ - {id: 99, cat: TV/Anime, desc: "افلام (Movies)"}
+ - {id: 101, cat: TV/Anime, desc: "مسلسلات (Series)"}
+ - {id: 103, cat: TV/Anime, desc: "حلقات (Episodes)"}
+ - {id: 85, cat: TV/Anime, desc: "الكارتون الصامت والكلاسيكي (Cartoons)"}
+ # صوتيات Audio
+ - {id: 25, cat: Audio, desc: "القران الكريم (The Holy Quran)"}
+ - {id: 27, cat: Audio, desc: "محاضرات (Lectures)"}
+ - {id: 26, cat: Audio, desc: "اناشيد (Chants)"}
+ # برامج Software
+ - {id: 22, cat: PC, desc: "برامج عربية (Arabic Software)"}
+ - {id: 23, cat: PC, desc: "برامج عامه (Public Software)"}
+ - {id: 78, cat: PC/Phone-IOS, desc: "iPad/iPhone"}
+ - {id: 79, cat: PC/Phone-Android, desc: "android"}
+ # العاب Games
+ - {id: 30, cat: PC/Games, desc: "PC"}
+ - {id: 31, cat: Console/PS3, desc: "PS2"}
+ - {id: 53, cat: Console/Wii, desc: "wii"}
+ - {id: 55, cat: Console/PSP, desc: "PSP"}
+ - {id: 63, cat: Console/Xbox, desc: "XBOX"}
+ - {id: 64, cat: Console/PS3, desc: "PS3"}
+ # اخرى Other
+ - {id: 17, cat: Books, desc: "كتب (Books)"}
+ - {id: 65, cat: Other, desc: "صور (Images)"}
+ - {id: 56, cat: Other, desc: "رياضي (Sport)"}
+ - {id: 46, cat: Other, desc: "منوع (Misc)"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- login:
- path: index.php?page=login
- method: form
- form: form[action^="index.php?page=login"]
- inputs:
- uid: "{{ .Config.username }}"
- pwd: "{{ .Config.password }}"
- error:
- - selector: tr td span[style="color:#FF0000;"]
- test:
- path: index.php
- selector: a[href^="logout.php?t="]
+login:
+ path: index.php?page=login
+ method: form
+ form: form[action^="index.php?page=login"]
+ inputs:
+ uid: "{{ .Config.username }}"
+ pwd: "{{ .Config.password }}"
+ error:
+ - selector: tr td span[style="color:#FF0000;"]
+ test:
+ path: index.php
+ selector: a[href^="logout.php?t="]
- search:
- paths:
- # https://www.arabp2p.com/index.php?page=torrents&search=&category=0&active=0&internel=0
- - path: index.php
- inputs:
- page: torrents
- search: "{{ .Keywords }}"
- category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{else}}0{{end}}"
- # 0 all 1 activeonly 2 deadonly
- active: 0
- # 0 all 1 internal 2 external
- internel: 0
- order: "{{ .Config.sort }}"
- by: "{{ .Config.type }}"
- # does not support imdbid search or provide imdb link in results
+search:
+ paths:
+ # https://www.arabp2p.com/index.php?page=torrents&search=&category=0&active=0&internel=0
+ - path: index.php
+ inputs:
+ page: torrents
+ search: "{{ .Keywords }}"
+ category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{else}}0{{end}}"
+ # 0 all 1 activeonly 2 deadonly
+ active: 0
+ # 0 all 1 internal 2 external
+ internel: 0
+ order: "{{ .Config.sort }}"
+ by: "{{ .Config.type }}"
+ # does not support imdbid search or provide imdb link in results
- rows:
- selector: table.torrent tr.torrent
+ rows:
+ selector: table.torrent tr.torrent
- fields:
- category:
- selector: td a[href^="index.php?page=torrents&category="]
- attribute: href
- filters:
- - name: querystring
- args: category
- title:
- selector: td a[href^="index.php?page=torrent-details"]
- details:
- selector: td a[href^="index.php?page=torrent-details"]
- attribute: href
- download:
- selector: td a[href^="download.php"]
- attribute: href
- date:
- selector: td:nth-child(4) span
- attribute: title
- filters:
- - name: append
- args: " +03:00" # (AST)
- - name: dateparse
- args: "2006-01-02 15:04:05 -07:00"
- seeders:
- selector: td:nth-child(5)
- leechers:
- selector: td:nth-child(6)
- size:
- selector: td:nth-child(7)
- downloadvolumefactor:
- case:
- span.free: 0
- "*": 1
- uploadvolumefactor:
- text: 1
- minimumratio:
- text: 0.8
- minimumseedtime:
- text: 259200 # 3 days
+ fields:
+ category:
+ selector: td a[href^="index.php?page=torrents&category="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: category
+ title:
+ selector: td a[href^="index.php?page=torrent-details"]
+ details:
+ selector: td a[href^="index.php?page=torrent-details"]
+ attribute: href
+ download:
+ selector: td a[href^="download.php"]
+ attribute: href
+ date:
+ selector: td:nth-child(4) span
+ attribute: title
+ filters:
+ - name: append
+ args: " +03:00" # (AST)
+ - name: dateparse
+ args: "2006-01-02 15:04:05 -07:00"
+ seeders:
+ selector: td:nth-child(5)
+ leechers:
+ selector: td:nth-child(6)
+ size:
+ selector: td:nth-child(7)
+ downloadvolumefactor:
+ case:
+ span.free: 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
+ minimumratio:
+ text: 0.8
+ minimumseedtime:
+ text: 259200 # 3 days
# xbtit
diff --git a/src/Jackett.Common/Definitions/arenabg.yml b/src/Jackett.Common/Definitions/arenabg.yml
index 5cd4a5272..a3676e469 100644
--- a/src/Jackett.Common/Definitions/arenabg.yml
+++ b/src/Jackett.Common/Definitions/arenabg.yml
@@ -1,185 +1,185 @@
---
- site: arenabg
- name: ArenaBG
- description: "ArenaBG is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GENERAL"
- language: bg-BG
- type: semi-private
- encoding: UTF-8
- links:
- - https://arenabg.ch/
- legacylinks:
- - https://arenabg.com/
+site: arenabg
+name: ArenaBG
+description: "ArenaBG is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GENERAL"
+language: bg-BG
+type: semi-private
+encoding: UTF-8
+links:
+ - https://arenabg.ch/
+legacylinks:
+ - https://arenabg.com/
- caps:
- categorymappings:
- - {id: "movies", cat: Movies, desc: "Movies"}
- - {id: "arenabgtv", cat: Movies, desc: "Movies / ArenaBG.TV"}
- - {id: "xvid", cat: Movies/SD, desc: "Movies / XviD"}
- - {id: "dvd-r", cat: Movies/DVD, desc: "Movies / DVD-R"}
- - {id: "x264", cat: Movies/HD, desc: "Movies / x264"}
- - {id: "animemanga", cat: TV/Anime, desc: "Movies / Anime & Manga"}
- - {id: "documentaries", cat: TV/Documentary, desc: "Movies / Documentaries"}
- - {id: "blu-ray", cat: Movies/BluRay, desc: "Movies / Blu-ray"}
- - {id: "boxset", cat: Movies, desc: "Movies / Boxset"}
- - {id: "x264boxset", cat: Movies/HD, desc: "Movies / x264 Boxset"}
- - {id: "tvepisodeshd", cat: Movies/HD, desc: "Movies / HDTV"}
- - {id: "3d", cat: Movies/3D, desc: "Movies / 3D"}
- - {id: "movies-hd", cat: Movies/HD, desc: "Movies / Movies HD"}
- - {id: "x265", cat: Movies/HD, desc: "Movies / x265"}
- - {id: "4k", cat: Movies/UHD, desc: "Movies / 4K"}
- - {id: "series", cat: TV, desc: "Series"}
- - {id: "hdtv", cat: TV/HD, desc: "Series / TV Episodes HD"}
- - {id: "tvepisodes", cat: TV, desc: "Series / TV Episodes"}
- - {id: "tvboxset", cat: TV, desc: "Series / TV Boxset"}
- - {id: "tvboxsethd", cat: TV/HD, desc: "Series / TV Boxset HD"}
- - {id: "music", cat: Audio, desc: "Music"}
- - {id: "mp3", cat: Audio/MP3, desc: "Music / MP3"}
- - {id: "music-video", cat: Audio/Video, desc: "Music / Video"}
- - {id: "flac", cat: Audio/Lossless, desc: "Music / FLAC"}
- - {id: "music-dvd", cat: Audio, desc: "Music / DVD"}
- - {id: "music-ape", cat: Audio/Lossless, desc: "Music / APE"}
- - {id: "music-dts", cat: Audio, desc: "Music / DTS"}
- - {id: "musicwavpack", cat: Audio, desc: "Music / WavePack"}
- - {id: "musicost", cat: Audio, desc: "Music / OST"}
- - {id: "games", cat: PC/Games, desc: "Games"}
- - {id: "games-iso", cat: PC/Games, desc: "Games / PC ISO"}
- - {id: "pc-rip", cat: PC, desc: "Games / PC RIP"}
- - {id: "ps2", cat: Console, desc: "Games / PS2"}
- - {id: "psp", cat: Console/PSP, desc: "Games / PSP"}
- - {id: "xbox", cat: Console/Xbox, desc: "Games / XBOX"}
- - {id: "xbox-360", cat: Console/Xbox 360, desc: "Games / XBOX-360"}
- - {id: "ps3", cat: Console/PS3, desc: "Games / PS3"}
- - {id: "wii", cat: Console/Wii, desc: "Games / WII"}
- - {id: "PS4", cat: Console/PS4, desc: "Games / PS4"}
- - {id: "software", cat: PC, desc: "Software"}
- - {id: "pc-iso", cat: PC/ISO, desc: "Software / PC ISO"}
- - {id: "pdasmartphone", cat: PC/Phone-Other, desc: "Software / Smartphone"}
- - {id: "tutorial", cat: PC, desc: "Software / Tutorial"}
- - {id: "android", cat: PC/Phone-Android, desc: "Software / Android"}
- - {id: "ios", cat: PC/Phone-IOS, desc: "Software / iOS"}
- - {id: "misc", cat: Other/Misc, desc: "Misc"}
- - {id: "other", cat: Other, desc: "Misc / Other"}
- - {id: "e-books", cat: Books/Ebook, desc: "Misc / e-Books"}
- - {id: "sports", cat: TV/Sport, desc: "Misc / Sports"}
- - {id: "0-day", cat: PC/0day, desc: "Misc / 0-Day"}
- - {id: "xxx", cat: XXX, desc: "XXX"}
- - {id: "porn", cat: XXX, desc: "XXX / Porn"}
- - {id: "xxx-hd", cat: XXX, desc: "XXX / XXX HD"}
+caps:
+ categorymappings:
+ - {id: "movies", cat: Movies, desc: "Movies"}
+ - {id: "arenabgtv", cat: Movies, desc: "Movies / ArenaBG.TV"}
+ - {id: "xvid", cat: Movies/SD, desc: "Movies / XviD"}
+ - {id: "dvd-r", cat: Movies/DVD, desc: "Movies / DVD-R"}
+ - {id: "x264", cat: Movies/HD, desc: "Movies / x264"}
+ - {id: "animemanga", cat: TV/Anime, desc: "Movies / Anime & Manga"}
+ - {id: "documentaries", cat: TV/Documentary, desc: "Movies / Documentaries"}
+ - {id: "blu-ray", cat: Movies/BluRay, desc: "Movies / Blu-ray"}
+ - {id: "boxset", cat: Movies, desc: "Movies / Boxset"}
+ - {id: "x264boxset", cat: Movies/HD, desc: "Movies / x264 Boxset"}
+ - {id: "tvepisodeshd", cat: Movies/HD, desc: "Movies / HDTV"}
+ - {id: "3d", cat: Movies/3D, desc: "Movies / 3D"}
+ - {id: "movies-hd", cat: Movies/HD, desc: "Movies / Movies HD"}
+ - {id: "x265", cat: Movies/HD, desc: "Movies / x265"}
+ - {id: "4k", cat: Movies/UHD, desc: "Movies / 4K"}
+ - {id: "series", cat: TV, desc: "Series"}
+ - {id: "hdtv", cat: TV/HD, desc: "Series / TV Episodes HD"}
+ - {id: "tvepisodes", cat: TV, desc: "Series / TV Episodes"}
+ - {id: "tvboxset", cat: TV, desc: "Series / TV Boxset"}
+ - {id: "tvboxsethd", cat: TV/HD, desc: "Series / TV Boxset HD"}
+ - {id: "music", cat: Audio, desc: "Music"}
+ - {id: "mp3", cat: Audio/MP3, desc: "Music / MP3"}
+ - {id: "music-video", cat: Audio/Video, desc: "Music / Video"}
+ - {id: "flac", cat: Audio/Lossless, desc: "Music / FLAC"}
+ - {id: "music-dvd", cat: Audio, desc: "Music / DVD"}
+ - {id: "music-ape", cat: Audio/Lossless, desc: "Music / APE"}
+ - {id: "music-dts", cat: Audio, desc: "Music / DTS"}
+ - {id: "musicwavpack", cat: Audio, desc: "Music / WavePack"}
+ - {id: "musicost", cat: Audio, desc: "Music / OST"}
+ - {id: "games", cat: PC/Games, desc: "Games"}
+ - {id: "games-iso", cat: PC/Games, desc: "Games / PC ISO"}
+ - {id: "pc-rip", cat: PC, desc: "Games / PC RIP"}
+ - {id: "ps2", cat: Console, desc: "Games / PS2"}
+ - {id: "psp", cat: Console/PSP, desc: "Games / PSP"}
+ - {id: "xbox", cat: Console/Xbox, desc: "Games / XBOX"}
+ - {id: "xbox-360", cat: Console/Xbox 360, desc: "Games / XBOX-360"}
+ - {id: "ps3", cat: Console/PS3, desc: "Games / PS3"}
+ - {id: "wii", cat: Console/Wii, desc: "Games / WII"}
+ - {id: "PS4", cat: Console/PS4, desc: "Games / PS4"}
+ - {id: "software", cat: PC, desc: "Software"}
+ - {id: "pc-iso", cat: PC/ISO, desc: "Software / PC ISO"}
+ - {id: "pdasmartphone", cat: PC/Phone-Other, desc: "Software / Smartphone"}
+ - {id: "tutorial", cat: PC, desc: "Software / Tutorial"}
+ - {id: "android", cat: PC/Phone-Android, desc: "Software / Android"}
+ - {id: "ios", cat: PC/Phone-IOS, desc: "Software / iOS"}
+ - {id: "misc", cat: Other/Misc, desc: "Misc"}
+ - {id: "other", cat: Other, desc: "Misc / Other"}
+ - {id: "e-books", cat: Books/Ebook, desc: "Misc / e-Books"}
+ - {id: "sports", cat: TV/Sport, desc: "Misc / Sports"}
+ - {id: "0-day", cat: PC/0day, desc: "Misc / 0-Day"}
+ - {id: "xxx", cat: XXX, desc: "XXX"}
+ - {id: "porn", cat: XXX, desc: "XXX / Porn"}
+ - {id: "xxx-hd", cat: XXX, desc: "XXX / XXX HD"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: downloadlink
- type: select
- label: Download link
- default: "magnet:?xt="
- options:
- "/get/key:" : ".torrent"
- "magnet:?xt=": "magnet"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: downloadlink
+ type: select
+ label: Download link
+ default: "magnet:?xt="
+ options:
+ "/get/key:" : ".torrent"
+ "magnet:?xt=": "magnet"
- login:
+login:
+ path: /
+ method: form
+ form: form[action="/users/"]
+ inputs:
+ email: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ action: login
+ error:
+ - selector: div.row div div.alert i.fa-warning
+ message:
+ selector: div.row div div.alert
+ test:
path: /
- method: form
- form: form[action="/users/"]
- inputs:
- email: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- action: login
- error:
- - selector: div.row div div.alert i.fa-warning
- message:
- selector: div.row div div.alert
- test:
- path: /
- selector: a[href="/users/logout/"]
+ selector: a[href="/users/logout/"]
- download:
- selector: a[href*="{{ .Config.downloadlink }}"]
- attribute: href
+download:
+ selector: a[href*="{{ .Config.downloadlink }}"]
+ attribute: href
- search:
- paths:
- - path: torrents/
- method: post
- followredirect: true
- inputs:
- text: "{{ if .Keywords }}{{ .Keywords }}{{else}}{{end}}"
- "text_mobile": ""
- type: 0
- audio: 0
- subtitles: 0
- action: search
+search:
+ paths:
+ - path: torrents/
+ method: post
+ followredirect: true
+ inputs:
+ text: "{{ if .Keywords }}{{ .Keywords }}{{else}}{{end}}"
+ "text_mobile": ""
+ type: 0
+ audio: 0
+ subtitles: 0
+ action: search
- rows:
- selector: tr:has(td.category)
+ rows:
+ selector: tr:has(td.category)
- fields:
- title:
- # use the second div for full title
- selector: td.filename div:nth-child(2) a
- details:
- selector: td.filename div a
- attribute: href
- category:
- selector: td.category a
- attribute: href
- filters:
- - name: re_replace
- args: ["/torrents/type:(.+?)/", "$1"]
- download:
- selector: td.filename div a
- attribute: href
- size:
- selector: td:nth-child(4)
- date:
- # 08:49:09
- selector: td:nth-child(3):contains(":")
- optional: true
- filters:
- - name: dateparse
- args: "15:04:05"
- date:
- # 2018-10-19
- selector: td:nth-child(3):contains("-")
- optional: true
- filters:
- - name: dateparse
- args: "2006-01-02"
- seeders:
- selector: td:nth-child(6)
- filters:
- - name: replace
- args: ["-", "0"]
- - name: replace
- args: ["DHT", "0"] # torrent can only be downloaded via DHT
- leechers:
- selector: td:nth-child(7)
- filters:
- - name: replace
- args: ["-", "0"]
- grabs:
- selector: td:nth-child(8)
- filters:
- - name: replace
- args: ["-", "0"]
- banner:
- selector: td.filename div:nth-child(2) a
- attribute: onmouseover
- filters:
- - name: regexp
- args: src=\\'([^\s\\]+)
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ fields:
+ title:
+ # use the second div for full title
+ selector: td.filename div:nth-child(2) a
+ details:
+ selector: td.filename div a
+ attribute: href
+ category:
+ selector: td.category a
+ attribute: href
+ filters:
+ - name: re_replace
+ args: ["/torrents/type:(.+?)/", "$1"]
+ download:
+ selector: td.filename div a
+ attribute: href
+ size:
+ selector: td:nth-child(4)
+ date:
+ # 08:49:09
+ selector: td:nth-child(3):contains(":")
+ optional: true
+ filters:
+ - name: dateparse
+ args: "15:04:05"
+ date:
+ # 2018-10-19
+ selector: td:nth-child(3):contains("-")
+ optional: true
+ filters:
+ - name: dateparse
+ args: "2006-01-02"
+ seeders:
+ selector: td:nth-child(6)
+ filters:
+ - name: replace
+ args: ["-", "0"]
+ - name: replace
+ args: ["DHT", "0"] # torrent can only be downloaded via DHT
+ leechers:
+ selector: td:nth-child(7)
+ filters:
+ - name: replace
+ args: ["-", "0"]
+ grabs:
+ selector: td:nth-child(8)
+ filters:
+ - name: replace
+ args: ["-", "0"]
+ banner:
+ selector: td.filename div:nth-child(2) a
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: src=\\'([^\s\\]+)
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/asgaard.yml b/src/Jackett.Common/Definitions/asgaard.yml
index 6967a9f90..019cb71d8 100644
--- a/src/Jackett.Common/Definitions/asgaard.yml
+++ b/src/Jackett.Common/Definitions/asgaard.yml
@@ -1,183 +1,183 @@
---
- site: asgaard
- name: Asgaard
- description: "Asgaard (AG) is a NORDIC Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: en
- type: private
- encoding: UTF-8
- links:
- - https://asgrd.org/
+site: asgaard
+name: Asgaard
+description: "Asgaard (AG) is a NORDIC Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: en
+type: private
+encoding: UTF-8
+links:
+ - https://asgrd.org/
- caps:
- categorymappings:
- - {id: 1, cat: TV, desc: "Kidz"}
- - {id: 2, cat: Movies, desc: "Movies"}
- - {id: 3, cat: TV, desc: "TV"}
- - {id: 4, cat: Audio, desc: "Music"}
- - {id: 5, cat: PC, desc: "Apps"}
- - {id: 6, cat: PC/Games, desc: "Games"}
- - {id: 7, cat: Books, desc: "Books"}
- - {id: 8, cat: Movies, desc: "Kidz Movies"}
- - {id: 9, cat: TV, desc: "Kidz TV"}
- - {id: 10, cat: TV, desc: "Kidz Boxset"}
- - {id: 54, cat: Movies/SD, desc: "Movies SD"}
- - {id: 55, cat: Movies/DVD, desc: "Movies DVDR"}
- - {id: 14, cat: Movies/HD, desc: "Movies HD"}
- - {id: 15, cat: Movies/UHD, desc: "Movies 4K"}
- - {id: 17, cat: Movies/BluRay, desc: "Movies BD"}
- - {id: 73, cat: Movies, desc: "Movies Boxset"}
- - {id: 51, cat: Movies, desc: "Movies No Nordic Subs"}
- - {id: 52, cat: TV/SD, desc: "TV SD"}
- - {id: 58, cat: TV/SD, desc: "TV DVDR"}
- - {id: 18, cat: TV/HD, desc: "TV HD"}
- - {id: 19, cat: TV/UHD, desc: "TV 4K"}
- - {id: 60, cat: TV/HD, desc: "TV BD"}
- - {id: 20, cat: TV, desc: "TV Boxset"}
- - {id: 50, cat: TV, desc: "TV No Nordic Subs"}
- - {id: 49, cat: Audio/Video, desc: "Music Video"}
- - {id: 23, cat: Audio/MP3, desc: "Music MP3"}
- - {id: 61, cat: Audio/MP3, desc: "Music MP3 Boxset"}
- - {id: 24, cat: Audio/Lossless, desc: "Music Flac"}
- - {id: 62, cat: Audio/Lossless, desc: "Music Flac Boxset"}
- - {id: 28, cat: PC/Phone-Android, desc: "Apps Android"}
- - {id: 29, cat: PC/Phone-IOS, desc: "Apps iOS"}
- - {id: 25, cat: PC/0day, desc: "Apps Windows"}
- - {id: 26, cat: PC, desc: "Apps Linux"}
- - {id: 27, cat: PC/Mac, desc: "Apps MacOS"}
- - {id: 30, cat: PC/Games, desc: "Games Windows"}
- - {id: 31, cat: PC, desc: "Games Linux"}
- - {id: 32, cat: PC/Mac, desc: "Games MacOS"}
- - {id: 33, cat: PC/Phone-Android, desc: "Games Android"}
- - {id: 34, cat: PC/Phone-IOS, desc: "Games iOS"}
- - {id: 35, cat: Console/NDS, desc: "Games Nintendo"}
- - {id: 38, cat: Console/PSP, desc: "Games Playstation"}
- - {id: 39, cat: Console/Xbox, desc: "Games XBox"}
- - {id: 41, cat: Books/Ebook, desc: "Books E-Book"}
- - {id: 42, cat: Audio/Audiobook, desc: "Books Audiobook"}
- - {id: 43, cat: Books/Technical, desc: "Books Education"}
+caps:
+ categorymappings:
+ - {id: 1, cat: TV, desc: "Kidz"}
+ - {id: 2, cat: Movies, desc: "Movies"}
+ - {id: 3, cat: TV, desc: "TV"}
+ - {id: 4, cat: Audio, desc: "Music"}
+ - {id: 5, cat: PC, desc: "Apps"}
+ - {id: 6, cat: PC/Games, desc: "Games"}
+ - {id: 7, cat: Books, desc: "Books"}
+ - {id: 8, cat: Movies, desc: "Kidz Movies"}
+ - {id: 9, cat: TV, desc: "Kidz TV"}
+ - {id: 10, cat: TV, desc: "Kidz Boxset"}
+ - {id: 54, cat: Movies/SD, desc: "Movies SD"}
+ - {id: 55, cat: Movies/DVD, desc: "Movies DVDR"}
+ - {id: 14, cat: Movies/HD, desc: "Movies HD"}
+ - {id: 15, cat: Movies/UHD, desc: "Movies 4K"}
+ - {id: 17, cat: Movies/BluRay, desc: "Movies BD"}
+ - {id: 73, cat: Movies, desc: "Movies Boxset"}
+ - {id: 51, cat: Movies, desc: "Movies No Nordic Subs"}
+ - {id: 52, cat: TV/SD, desc: "TV SD"}
+ - {id: 58, cat: TV/SD, desc: "TV DVDR"}
+ - {id: 18, cat: TV/HD, desc: "TV HD"}
+ - {id: 19, cat: TV/UHD, desc: "TV 4K"}
+ - {id: 60, cat: TV/HD, desc: "TV BD"}
+ - {id: 20, cat: TV, desc: "TV Boxset"}
+ - {id: 50, cat: TV, desc: "TV No Nordic Subs"}
+ - {id: 49, cat: Audio/Video, desc: "Music Video"}
+ - {id: 23, cat: Audio/MP3, desc: "Music MP3"}
+ - {id: 61, cat: Audio/MP3, desc: "Music MP3 Boxset"}
+ - {id: 24, cat: Audio/Lossless, desc: "Music Flac"}
+ - {id: 62, cat: Audio/Lossless, desc: "Music Flac Boxset"}
+ - {id: 28, cat: PC/Phone-Android, desc: "Apps Android"}
+ - {id: 29, cat: PC/Phone-IOS, desc: "Apps iOS"}
+ - {id: 25, cat: PC/0day, desc: "Apps Windows"}
+ - {id: 26, cat: PC, desc: "Apps Linux"}
+ - {id: 27, cat: PC/Mac, desc: "Apps MacOS"}
+ - {id: 30, cat: PC/Games, desc: "Games Windows"}
+ - {id: 31, cat: PC, desc: "Games Linux"}
+ - {id: 32, cat: PC/Mac, desc: "Games MacOS"}
+ - {id: 33, cat: PC/Phone-Android, desc: "Games Android"}
+ - {id: 34, cat: PC/Phone-IOS, desc: "Games iOS"}
+ - {id: 35, cat: Console/NDS, desc: "Games Nintendo"}
+ - {id: 38, cat: Console/PSP, desc: "Games Playstation"}
+ - {id: 39, cat: Console/Xbox, desc: "Games XBox"}
+ - {id: 41, cat: Books/Ebook, desc: "Books E-Book"}
+ - {id: 42, cat: Audio/Audiobook, desc: "Books Audiobook"}
+ - {id: 43, cat: Books/Technical, desc: "Books Education"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- settings:
- - name: info
- type: info
- label: "About the Username field"
- default: "Enter your Email address in the username field."
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "2"
- options:
- "2": "created"
- "7": "seeders"
- "5": "size"
- "1": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: info
+ type: info
+ label: "About the Username field"
+ default: "Enter your Email address in the username field."
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "2"
+ options:
+ "2": "created"
+ "7": "seeders"
+ "5": "size"
+ "1": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: login.php
- method: post
- form: form
- inputs:
- email: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- remember: 1
- error:
- - selector: h2:contains("Error")
- message:
- selector: p
- test:
- path: /
- selector: a[href$="/logout.php"]
+login:
+ path: login.php
+ method: post
+ form: form
+ inputs:
+ email: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ remember: 1
+ error:
+ - selector: h2:contains("Error")
+ message:
+ selector: p
+ test:
+ path: /
+ selector: a[href$="/logout.php"]
- search:
- paths:
- # https://asgrd.org/browse.php?sns=&sna=&spf=&sr=&sg=&sys=&sye=&srs=&sre=&si=tt2401090&ss=&incldead=0&only_free=0&sort=4&type=desc
- - path: browse.php
- inputs:
- $raw: "{{ range .Categories }}cats[]={{.}}&{{end}}"
- sns: ""
- sna: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- spf: ""
- sr: ""
- sg: ""
- sys: ""
- sye: ""
- srs: ""
- sre: ""
- si: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{end}}"
- ss: ""
- # 0 active 1 incldead 2 onlydead
- incldead: 0
- # 0 incl non-free 1 incl only-free
- only_free: 0
- sort: "{{ .Config.sort }}"
- type: "{{ .Config.type }}"
+search:
+ paths:
+ # https://asgrd.org/browse.php?sns=&sna=&spf=&sr=&sg=&sys=&sye=&srs=&sre=&si=tt2401090&ss=&incldead=0&only_free=0&sort=4&type=desc
+ - path: browse.php
+ inputs:
+ $raw: "{{ range .Categories }}cats[]={{.}}&{{end}}"
+ sns: ""
+ sna: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ spf: ""
+ sr: ""
+ sg: ""
+ sys: ""
+ sye: ""
+ srs: ""
+ sre: ""
+ si: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{end}}"
+ ss: ""
+ # 0 active 1 incldead 2 onlydead
+ incldead: 0
+ # 0 incl non-free 1 incl only-free
+ only_free: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
- rows:
- selector: table.table-striped > tbody > tr:has(a[href*="details.php?id="])
+ rows:
+ selector: table.table-striped > tbody > tr:has(a[href*="details.php?id="])
+ filters:
+ - name: andmatch
+
+ fields:
+ title:
+ selector: div.torrent-name
filters:
- - name: andmatch
-
- fields:
- title:
- selector: div.torrent-name
- filters:
- # need to remove the tooltip text
- - name: regexp
- args: "(.+?)\\n"
- details:
- selector: a[href*="details.php?id="]
- attribute: href
- category:
- selector: a[href*="browse.php?"]
- attribute: href
- filters:
- - name: regexp
- args: cats\[\]=(\d+)$
- banner:
- optional: true
- selector: img.tooltip-poster
- attribute: src
- download:
- selector: a[href*="download.php?torrent="]
- attribute: href
- date:
- selector: td:nth-child(2) > div > div:last-of-type
- filters:
- - name: dateparse
- args: "2 Jan 2006 15:04:05"
- files:
- # remember #5754 advanced users have additional last TD so dont go using nth-last-child ;-)
- selector: td:nth-child(5)
- size:
- selector: td:nth-child(7)
- grabs:
- selector: td:nth-child(8)
- seeders:
- selector: td:nth-child(9)
- leechers:
- selector: td:nth-child(10)
- downloadvolumefactor:
- case:
- img[src="./images/gold.png"]: 0
- "*": 1
- uploadvolumefactor:
- text: 1
+ # need to remove the tooltip text
+ - name: regexp
+ args: "(.+?)\\n"
+ details:
+ selector: a[href*="details.php?id="]
+ attribute: href
+ category:
+ selector: a[href*="browse.php?"]
+ attribute: href
+ filters:
+ - name: regexp
+ args: cats\[\]=(\d+)$
+ banner:
+ optional: true
+ selector: img.tooltip-poster
+ attribute: src
+ download:
+ selector: a[href*="download.php?torrent="]
+ attribute: href
+ date:
+ selector: td:nth-child(2) > div > div:last-of-type
+ filters:
+ - name: dateparse
+ args: "2 Jan 2006 15:04:05"
+ files:
+ # remember #5754 advanced users have additional last TD so dont go using nth-last-child ;-)
+ selector: td:nth-child(5)
+ size:
+ selector: td:nth-child(7)
+ grabs:
+ selector: td:nth-child(8)
+ seeders:
+ selector: td:nth-child(9)
+ leechers:
+ selector: td:nth-child(10)
+ downloadvolumefactor:
+ case:
+ img[src="./images/gold.png"]: 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
# Midgaard
diff --git a/src/Jackett.Common/Definitions/asiancinema.yml b/src/Jackett.Common/Definitions/asiancinema.yml
index aba2d266a..bb4a4fce9 100644
--- a/src/Jackett.Common/Definitions/asiancinema.yml
+++ b/src/Jackett.Common/Definitions/asiancinema.yml
@@ -1,154 +1,154 @@
---
- site: asiancinema
- name: AsianCinema
- description: "Tracker Movies/TV/Music"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - https://asiancinema.me/
+site: asiancinema
+name: AsianCinema
+description: "Tracker Movies/TV/Music"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - https://asiancinema.me/
- caps:
- categorymappings:
- - {id: 1, cat: Movies, desc: "Movies"}
- - {id: 2, cat: TV, desc: "TV"}
- - {id: 3, cat: Audio, desc: "Music"}
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 2, cat: TV, desc: "TV"}
+ - {id: 3, cat: Audio, desc: "Music"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "created_at"
- options:
- "created_at": "created"
- "seeders": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "created_at"
+ options:
+ "created_at": "created"
+ "seeders": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: login
- method: form
- form: form[action$="/login"]
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- remember: on
- selectorinputs:
- _token:
- selector: input[name="_token"]
- attribute: value
- error:
- - selector: div#ERROR_COPY
+login:
+ path: login
+ method: form
+ form: form[action$="/login"]
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ remember: on
+ selectorinputs:
+ _token:
+ selector: input[name="_token"]
+ attribute: value
+ error:
+ - selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
- ratio:
- path: /
- selector: li:has(i.fa-sync-alt)
- filters:
- - name: regexp
- args: "Ratio : (\\d+)"
+ratio:
+ path: /
+ selector: li:has(i.fa-sync-alt)
+ filters:
+ - name: regexp
+ args: "Ratio : (\\d+)"
- search:
- paths:
- - path: torrents/filter
- inputs:
- $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
- search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- description: ""
- uploader: ""
- imdb: "{{ .Query.IMDBIDShort }}"
- tvdb: ""
- tmdb: ""
- mal: ""
- igdb: ""
- sorting: "{{ .Config.sort }}"
- sort: "{{ .Config.sort }}"
- direction: "{{ .Config.type }}"
- qty: 100
+search:
+ paths:
+ - path: torrents/filter
+ inputs:
+ $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ description: ""
+ uploader: ""
+ imdb: "{{ .Query.IMDBIDShort }}"
+ tvdb: ""
+ tmdb: ""
+ mal: ""
+ igdb: ""
+ sorting: "{{ .Config.sort }}"
+ sort: "{{ .Config.sort }}"
+ direction: "{{ .Config.type }}"
+ qty: 100
- rows:
- selector: table > tbody > tr
+ rows:
+ selector: table > tbody > tr
- fields:
- category:
- selector: a[href*="/categories/"]
- attribute: href
- filters:
- - name: regexp
- args: "/categories/(\\d+)"
- title:
- selector: a.view-torrent
- download:
- selector: a[href*="/download/"]
- attribute: href
- details:
- selector: a.view-torrent
- attribute: href
- banner:
- optional: true
- selector: div.torrent-poster img
- attribute: src
- filters:
- - name: replace
- args: ["https://via.placeholder.com/600x900", ""]
- comments:
- selector: a[href*="#comments"]
- attribute: href
- size:
- selector: td:nth-last-child(4)
- seeders:
- selector: td:nth-last-child(3)
- leechers:
- selector: td:nth-last-child(2)
- grabs:
- selector: td:nth-last-child(1)
- filters:
- - name: regexp
- args: (\d+)
- imdb:
- optional: true
- selector: a[href*="www.imdb.com/title/tt"]
- attribute: href
- date:
- selector: time
- filters:
- - name: append
- args: " ago"
- downloadvolumefactor:
- case:
- i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
- i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
- i[class*="fa-star text-bold"]: 0 # Freeleech From Token
- i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
- i[class*="fa-globe text-blue"]: 0 # Global Freeleech
- i[class*="fa-star text-gold"]: 0 # Freeleech
- i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
- "*": 1
- uploadvolumefactor:
- case:
- i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
- i[class*="fa-globe text-green"]: 2 # Global Double Upload
- i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
- "*": 1
+ fields:
+ category:
+ selector: a[href*="/categories/"]
+ attribute: href
+ filters:
+ - name: regexp
+ args: "/categories/(\\d+)"
+ title:
+ selector: a.view-torrent
+ download:
+ selector: a[href*="/download/"]
+ attribute: href
+ details:
+ selector: a.view-torrent
+ attribute: href
+ banner:
+ optional: true
+ selector: div.torrent-poster img
+ attribute: src
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/600x900", ""]
+ comments:
+ selector: a[href*="#comments"]
+ attribute: href
+ size:
+ selector: td:nth-last-child(4)
+ seeders:
+ selector: td:nth-last-child(3)
+ leechers:
+ selector: td:nth-last-child(2)
+ grabs:
+ selector: td:nth-last-child(1)
+ filters:
+ - name: regexp
+ args: (\d+)
+ imdb:
+ optional: true
+ selector: a[href*="www.imdb.com/title/tt"]
+ attribute: href
+ date:
+ selector: time
+ filters:
+ - name: append
+ args: " ago"
+ downloadvolumefactor:
+ case:
+ i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
+ i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
+ i[class*="fa-star text-bold"]: 0 # Freeleech From Token
+ i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
+ i[class*="fa-globe text-blue"]: 0 # Global Freeleech
+ i[class*="fa-star text-gold"]: 0 # Freeleech
+ i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
+ "*": 1
+ uploadvolumefactor:
+ case:
+ i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
+ i[class*="fa-globe text-green"]: 2 # Global Double Upload
+ i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
+ "*": 1
# UNIT3D 2.2.7
diff --git a/src/Jackett.Common/Definitions/ast4u.yml b/src/Jackett.Common/Definitions/ast4u.yml
index a6f0a79d4..84ef2aa7c 100644
--- a/src/Jackett.Common/Definitions/ast4u.yml
+++ b/src/Jackett.Common/Definitions/ast4u.yml
@@ -1,130 +1,130 @@
---
- site: ast4u
- name: AST4u
- description: "AST4u is a GERMAN Private site for TV / MOVIES / ANIME / HENTAI"
- language: de-de
- type: private
- encoding: iso-8859-1
- links:
- - https://www.ast4u.me/
+site: ast4u
+name: AST4u
+description: "AST4u is a GERMAN Private site for TV / MOVIES / ANIME / HENTAI"
+language: de-de
+type: private
+encoding: iso-8859-1
+links:
+ - https://www.ast4u.me/
- caps:
- categorymappings:
- - {id: 35, cat: TV/Anime, desc: "Anime Movie"}
- - {id: 36, cat: TV/Anime, desc: "Anime Serie"}
- - {id: 37, cat: Audio/Foreign, desc: "Anime Musik"}
- - {id: 41, cat: Books, desc: "Anime Pic & Manga"}
- - {id: 42, cat: XXX, desc: "Hentai Movie & OVA"}
- - {id: 43, cat: XXX, desc: "Hentai Serie"}
- - {id: 44, cat: PC, desc: "Hentai Game"}
- - {id: 45, cat: Movies, desc: "Cartoon Movie"}
- - {id: 46, cat: TV, desc: "Cartoon Serie"}
- - {id: 47, cat: TV, desc: "TV-Serie"}
- - {id: 49, cat: TV/Documentary, desc: "Sonstiges Doku"}
- - {id: 50, cat: Audio, desc: "Sonstiges Soundtrack"}
- - {id: 52, cat: Movies/HD, desc: "Movie HD"}
- - {id: 53, cat: Other, desc: "Sonstiges"}
- - {id: 55, cat: Movies/Foreign, desc: "Movie Asia & MartialArts"}
- - {id: 56, cat: TV/Anime, desc: "Anime OVA"}
- - {id: 58, cat: Movies, desc: "Movie"}
- - {id: 59, cat: Audio/Audiobook, desc: "Sonstiges Hoerspiele"}
- - {id: 62, cat: Console, desc: "Sonstiges Game"}
- - {id: 65, cat: Movies/BluRay, desc: "Movie BluRay"}
- - {id: 66, cat: TV, desc: "TV-Serie BluRay"}
- - {id: 67, cat: TV/HD, desc: "TV-Serie HD"}
- - {id: 68, cat: TV/Anime, desc: "Anime Movie HD & BD"}
- - {id: 69, cat: TV/Anime, desc: "Anime OVA HD & BD"}
- - {id: 70, cat: TV/Anime, desc: "Anime Serie HD & BD"}
+caps:
+ categorymappings:
+ - {id: 35, cat: TV/Anime, desc: "Anime Movie"}
+ - {id: 36, cat: TV/Anime, desc: "Anime Serie"}
+ - {id: 37, cat: Audio/Foreign, desc: "Anime Musik"}
+ - {id: 41, cat: Books, desc: "Anime Pic & Manga"}
+ - {id: 42, cat: XXX, desc: "Hentai Movie & OVA"}
+ - {id: 43, cat: XXX, desc: "Hentai Serie"}
+ - {id: 44, cat: PC, desc: "Hentai Game"}
+ - {id: 45, cat: Movies, desc: "Cartoon Movie"}
+ - {id: 46, cat: TV, desc: "Cartoon Serie"}
+ - {id: 47, cat: TV, desc: "TV-Serie"}
+ - {id: 49, cat: TV/Documentary, desc: "Sonstiges Doku"}
+ - {id: 50, cat: Audio, desc: "Sonstiges Soundtrack"}
+ - {id: 52, cat: Movies/HD, desc: "Movie HD"}
+ - {id: 53, cat: Other, desc: "Sonstiges"}
+ - {id: 55, cat: Movies/Foreign, desc: "Movie Asia & MartialArts"}
+ - {id: 56, cat: TV/Anime, desc: "Anime OVA"}
+ - {id: 58, cat: Movies, desc: "Movie"}
+ - {id: 59, cat: Audio/Audiobook, desc: "Sonstiges Hoerspiele"}
+ - {id: 62, cat: Console, desc: "Sonstiges Game"}
+ - {id: 65, cat: Movies/BluRay, desc: "Movie BluRay"}
+ - {id: 66, cat: TV, desc: "TV-Serie BluRay"}
+ - {id: 67, cat: TV/HD, desc: "TV-Serie HD"}
+ - {id: 68, cat: TV/Anime, desc: "Anime Movie HD & BD"}
+ - {id: 69, cat: TV/Anime, desc: "Anime OVA HD & BD"}
+ - {id: 70, cat: TV/Anime, desc: "Anime Serie HD & BD"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: info
- type: info
- label: Results Per Page
- default: For best results, change the 'Torrentliste' setting to "Platzsparendes Layout mit PopUp für zusätzliche Informationen" in your profile.
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: info
+ type: info
+ label: Results Per Page
+ default: For best results, change the 'Torrentliste' setting to "Platzsparendes Layout mit PopUp für zusätzliche Informationen" in your profile.
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- returnto: "/index.php"
- test:
- path: browse.php
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ returnto: "/index.php"
+ test:
+ path: browse.php
- search:
- paths:
- - path: browse.php
- inputs:
- $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
- search: "{{ .Query.Keywords }}"
- incldead: "0"
- orderby: "added"
- sort: "desc"
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
+ search: "{{ .Query.Keywords }}"
+ incldead: "0"
+ orderby: "added"
+ sort: "desc"
- rows:
- selector: table.tableinborder > tbody > tr:has(a[href^="details.php"])
- fields: # note: two alternative layouts available
- title:
- selector: a[href^="details.php"]
- title:
- optional: true
- selector: a[href^="details.php"][title]
- attribute: title
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- details:
- selector: a[href^="details.php"]
- attribute: href
- download:
- selector: a[href^=" /gettorrent/"]
- attribute: href
- files:
- selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(2), a[href*="&filelist=1"]
- grabs:
- selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(3) > b:nth-child(1), a[href*="&tosnatchers=1"]
- size:
- selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(1), td:nth-child(7):has(br)
- filters:
- - name: replace
- args: [".", ""]
- - name: replace
- args: [",", "."]
- seeders:
- selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2) > b:nth-child(1), a[href*="&toseeders=1"]
- leechers:
- selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2) > b:nth-child(3), a[href*="&todlers=1"]
- date:
- selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(5), td:nth-child(5):has(br)
- filters:
- - name: replace
- args: [" ", ""]
- - name: append
- args: " +2:00"
- - name: replace
- args: ["\xA0", ""]
- - name: dateparse
- args: "02.01.200615:04:05 -07:00"
- downloadvolumefactor:
- case:
- img[src="/pic/free.gif"]: "0"
- "*": "1"
- uploadvolumefactor:
- case:
- "*": "1"
+ rows:
+ selector: table.tableinborder > tbody > tr:has(a[href^="details.php"])
+ fields: # note: two alternative layouts available
+ title:
+ selector: a[href^="details.php"]
+ title:
+ optional: true
+ selector: a[href^="details.php"][title]
+ attribute: title
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ details:
+ selector: a[href^="details.php"]
+ attribute: href
+ download:
+ selector: a[href^=" /gettorrent/"]
+ attribute: href
+ files:
+ selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(2), a[href*="&filelist=1"]
+ grabs:
+ selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(3) > b:nth-child(1), a[href*="&tosnatchers=1"]
+ size:
+ selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(1) > b:nth-child(1), td:nth-child(7):has(br)
+ filters:
+ - name: replace
+ args: [".", ""]
+ - name: replace
+ args: [",", "."]
+ seeders:
+ selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2) > b:nth-child(1), a[href*="&toseeders=1"]
+ leechers:
+ selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2) > b:nth-child(3), a[href*="&todlers=1"]
+ date:
+ selector: td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(5), td:nth-child(5):has(br)
+ filters:
+ - name: replace
+ args: [" ", ""]
+ - name: append
+ args: " +2:00"
+ - name: replace
+ args: ["\xA0", ""]
+ - name: dateparse
+ args: "02.01.200615:04:05 -07:00"
+ downloadvolumefactor:
+ case:
+ img[src="/pic/free.gif"]: "0"
+ "*": "1"
+ uploadvolumefactor:
+ case:
+ "*": "1"
diff --git a/src/Jackett.Common/Definitions/audiobookbay.yml b/src/Jackett.Common/Definitions/audiobookbay.yml
index 6cda2a6ac..a816f6e86 100644
--- a/src/Jackett.Common/Definitions/audiobookbay.yml
+++ b/src/Jackett.Common/Definitions/audiobookbay.yml
@@ -1,145 +1,145 @@
---
- site: audiobookbay
- name: AudioBookBay
- description: "AudioBook Bay (ABB) is a public Torrent Tracker for AUDIOBOOKS"
- language: en-us
- type: public
- encoding: UTF-8
- links:
- - http://audiobookbay.nl/ # site forces http, does not support https
- legacylinks:
- - https://audiobookbay.la/
+site: audiobookbay
+name: AudioBookBay
+description: "AudioBook Bay (ABB) is a public Torrent Tracker for AUDIOBOOKS"
+language: en-us
+type: public
+encoding: UTF-8
+links:
+ - http://audiobookbay.nl/ # site forces http, does not support https
+legacylinks:
+ - https://audiobookbay.la/
- caps:
- categorymappings:
- - {id: "(Post)apocalyptic", cat: Audio/Audiobook, desc: "(Post)apocalyptic"}
- - {id: "True", cat: Audio/Audiobook, desc: "True Crime"}
- - {id: Action, cat: Audio/Audiobook, desc: "Action"}
- - {id: Adults, cat: Audio/Audiobook, desc: "Adults"}
- - {id: Adventure, cat: Audio/Audiobook, desc: "Adventure"}
- - {id: Anthology, cat: Audio/Audiobook, desc: "Anthology"}
- - {id: Art, cat: Audio/Audiobook, desc: "Art"}
- - {id: Autobiography, cat: Audio/Audiobook, desc: "Autobiography & Biographies"}
- - {id: Bestsellers, cat: Audio/Audiobook, desc: "Bestsellers"}
- - {id: Business, cat: Audio/Audiobook, desc: "Business"}
- - {id: Children, cat: Audio/Audiobook, desc: "Children"}
- - {id: Classic, cat: Audio/Audiobook, desc: "Classic"}
- - {id: Computer, cat: Audio/Audiobook, desc: "Computer"}
- - {id: Contemporary, cat: Audio/Audiobook, desc: "Contemporary"}
- - {id: Crime, cat: Audio/Audiobook, desc: "Crime"}
- - {id: Detective, cat: Audio/Audiobook, desc: "Detective"}
- - {id: Doctor, cat: Audio/Audiobook, desc: "Doctor Who"}
- - {id: Documentary, cat: Audio/Audiobook, desc: "Documentary"}
- - {id: Education, cat: Audio/Audiobook, desc: "Education"}
- - {id: Fantasy, cat: Audio/Audiobook, desc: "Fantasy"}
- - {id: Full, cat: Audio/Audiobook, desc: "Full Cast"}
- - {id: Gay, cat: Audio/Audiobook, desc: "Gay"}
- - {id: General, cat: Audio/Audiobook, desc: "General Fiction"}
- - {id: Historical, cat: Audio/Audiobook, desc: "Historical Fiction"}
- - {id: History, cat: Audio/Audiobook, desc: "History"}
- - {id: Horror, cat: Audio/Audiobook, desc: "Horror"}
- - {id: Humor, cat: Audio/Audiobook, desc: "Humor"}
- - {id: LGBT, cat: Audio/Audiobook, desc: "LGBT"}
- - {id: Lecture, cat: Audio/Audiobook, desc: "Lecture"}
- - {id: Lesbian, cat: Audio/Audiobook, desc: "Lesbian"}
- - {id: Libertarian, cat: Audio/Audiobook, desc: "Libertarian"}
- - {id: LitRPG, cat: Audio/Audiobook, desc: "LitRPG"}
- - {id: Literature, cat: Audio/Audiobook, desc: "Literature"}
- - {id: Military, cat: Audio/Audiobook, desc: "Military"}
- - {id: Misc., cat: Audio/Audiobook, desc: "Misc. Non-fiction"}
- - {id: Mystery, cat: Audio/Audiobook, desc: "Mystery"}
- - {id: Novel, cat: Audio/Audiobook, desc: "Novel"}
- - {id: Other, cat: Audio/Audiobook, desc: "Other"}
- - {id: Paranormal, cat: Audio/Audiobook, desc: "Paranormal"}
- - {id: Plays, cat: Audio/Audiobook, desc: "Plays & Theater"}
- - {id: Poetry, cat: Audio/Audiobook, desc: "Poetry"}
- - {id: Political, cat: Audio/Audiobook, desc: "Political"}
- - {id: Radio, cat: Audio/Audiobook, desc: "Radio Productions"}
- - {id: Romance, cat: Audio/Audiobook, desc: "Romance"}
- - {id: Sci-Fi, cat: Audio/Audiobook, desc: "Sci-Fi"}
- - {id: Science, cat: Audio/Audiobook, desc: "Science"}
- - {id: Self-help, cat: Audio/Audiobook, desc: "Self-help"}
- - {id: Sex, cat: Audio/Audiobook, desc: "Sex Scenes"}
- - {id: Short, cat: Audio/Audiobook, desc: "Short Story"}
- - {id: Spiritual, cat: Audio/Audiobook, desc: "Spiritual & Religious"}
- - {id: Sports, cat: Audio/Audiobook, desc: "Sports"}
- - {id: Suspense, cat: Audio/Audiobook, desc: "Suspense"}
- - {id: Teen, cat: Audio/Audiobook, desc: "Teen & Young Adult"}
- - {id: The, cat: Audio/Audiobook, desc: "The Undead"}
- - {id: Thriller, cat: Audio/Audiobook, desc: "Thriller"}
- - {id: Tutorial, cat: Audio/Audiobook, desc: "Tutorial"}
- - {id: Violence, cat: Audio/Audiobook, desc: "Violence"}
- - {id: Westerns, cat: Audio/Audiobook, desc: "Westerns"}
+caps:
+ categorymappings:
+ - {id: "(Post)apocalyptic", cat: Audio/Audiobook, desc: "(Post)apocalyptic"}
+ - {id: "True", cat: Audio/Audiobook, desc: "True Crime"}
+ - {id: Action, cat: Audio/Audiobook, desc: "Action"}
+ - {id: Adults, cat: Audio/Audiobook, desc: "Adults"}
+ - {id: Adventure, cat: Audio/Audiobook, desc: "Adventure"}
+ - {id: Anthology, cat: Audio/Audiobook, desc: "Anthology"}
+ - {id: Art, cat: Audio/Audiobook, desc: "Art"}
+ - {id: Autobiography, cat: Audio/Audiobook, desc: "Autobiography & Biographies"}
+ - {id: Bestsellers, cat: Audio/Audiobook, desc: "Bestsellers"}
+ - {id: Business, cat: Audio/Audiobook, desc: "Business"}
+ - {id: Children, cat: Audio/Audiobook, desc: "Children"}
+ - {id: Classic, cat: Audio/Audiobook, desc: "Classic"}
+ - {id: Computer, cat: Audio/Audiobook, desc: "Computer"}
+ - {id: Contemporary, cat: Audio/Audiobook, desc: "Contemporary"}
+ - {id: Crime, cat: Audio/Audiobook, desc: "Crime"}
+ - {id: Detective, cat: Audio/Audiobook, desc: "Detective"}
+ - {id: Doctor, cat: Audio/Audiobook, desc: "Doctor Who"}
+ - {id: Documentary, cat: Audio/Audiobook, desc: "Documentary"}
+ - {id: Education, cat: Audio/Audiobook, desc: "Education"}
+ - {id: Fantasy, cat: Audio/Audiobook, desc: "Fantasy"}
+ - {id: Full, cat: Audio/Audiobook, desc: "Full Cast"}
+ - {id: Gay, cat: Audio/Audiobook, desc: "Gay"}
+ - {id: General, cat: Audio/Audiobook, desc: "General Fiction"}
+ - {id: Historical, cat: Audio/Audiobook, desc: "Historical Fiction"}
+ - {id: History, cat: Audio/Audiobook, desc: "History"}
+ - {id: Horror, cat: Audio/Audiobook, desc: "Horror"}
+ - {id: Humor, cat: Audio/Audiobook, desc: "Humor"}
+ - {id: LGBT, cat: Audio/Audiobook, desc: "LGBT"}
+ - {id: Lecture, cat: Audio/Audiobook, desc: "Lecture"}
+ - {id: Lesbian, cat: Audio/Audiobook, desc: "Lesbian"}
+ - {id: Libertarian, cat: Audio/Audiobook, desc: "Libertarian"}
+ - {id: LitRPG, cat: Audio/Audiobook, desc: "LitRPG"}
+ - {id: Literature, cat: Audio/Audiobook, desc: "Literature"}
+ - {id: Military, cat: Audio/Audiobook, desc: "Military"}
+ - {id: Misc., cat: Audio/Audiobook, desc: "Misc. Non-fiction"}
+ - {id: Mystery, cat: Audio/Audiobook, desc: "Mystery"}
+ - {id: Novel, cat: Audio/Audiobook, desc: "Novel"}
+ - {id: Other, cat: Audio/Audiobook, desc: "Other"}
+ - {id: Paranormal, cat: Audio/Audiobook, desc: "Paranormal"}
+ - {id: Plays, cat: Audio/Audiobook, desc: "Plays & Theater"}
+ - {id: Poetry, cat: Audio/Audiobook, desc: "Poetry"}
+ - {id: Political, cat: Audio/Audiobook, desc: "Political"}
+ - {id: Radio, cat: Audio/Audiobook, desc: "Radio Productions"}
+ - {id: Romance, cat: Audio/Audiobook, desc: "Romance"}
+ - {id: Sci-Fi, cat: Audio/Audiobook, desc: "Sci-Fi"}
+ - {id: Science, cat: Audio/Audiobook, desc: "Science"}
+ - {id: Self-help, cat: Audio/Audiobook, desc: "Self-help"}
+ - {id: Sex, cat: Audio/Audiobook, desc: "Sex Scenes"}
+ - {id: Short, cat: Audio/Audiobook, desc: "Short Story"}
+ - {id: Spiritual, cat: Audio/Audiobook, desc: "Spiritual & Religious"}
+ - {id: Sports, cat: Audio/Audiobook, desc: "Sports"}
+ - {id: Suspense, cat: Audio/Audiobook, desc: "Suspense"}
+ - {id: Teen, cat: Audio/Audiobook, desc: "Teen & Young Adult"}
+ - {id: The, cat: Audio/Audiobook, desc: "The Undead"}
+ - {id: Thriller, cat: Audio/Audiobook, desc: "Thriller"}
+ - {id: Tutorial, cat: Audio/Audiobook, desc: "Tutorial"}
+ - {id: Violence, cat: Audio/Audiobook, desc: "Violence"}
+ - {id: Westerns, cat: Audio/Audiobook, desc: "Westerns"}
- modes:
- search: [q]
+ modes:
+ search: [q]
- settings: []
+settings: []
- download:
- selector: td:contains("Info Hash:") ~ td
- filters:
- - name: prepend
- args: "magnet:?xt=urn:btih:"
- - name: append
- args: "&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969&tr=udp%3A%2F%2Fp4p.arenabg.com%3A1337%2Fannounce&tr=udp%3A%2F%2Fexplodie.org%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.tiny-vps.com%3A6969%2Fannounce&tr=udp%3A%2F%2Fopen.demonii.si%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&tr=udp%3A%2F%2Ftracker.pirateparty.gr%3A6969%2Fannounce&tr=udp%3A%2F%2Fipv4.tracker.harry.lu%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.cyberia.is%3A6969%2Fannounce&tr=udp%3A%2F%2F9.rarbg.to%3A2710%2Fannounce&tr=udp%3A%2F%2Fdenis.stalker.upeer.me%3A6969%2Fannounce"
+download:
+ selector: td:contains("Info Hash:") ~ td
+ filters:
+ - name: prepend
+ args: "magnet:?xt=urn:btih:"
+ - name: append
+ args: "&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969&tr=udp%3A%2F%2Fp4p.arenabg.com%3A1337%2Fannounce&tr=udp%3A%2F%2Fexplodie.org%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.tiny-vps.com%3A6969%2Fannounce&tr=udp%3A%2F%2Fopen.demonii.si%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&tr=udp%3A%2F%2Ftracker.pirateparty.gr%3A6969%2Fannounce&tr=udp%3A%2F%2Fipv4.tracker.harry.lu%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.cyberia.is%3A6969%2Fannounce&tr=udp%3A%2F%2F9.rarbg.to%3A2710%2Fannounce&tr=udp%3A%2F%2Fdenis.stalker.upeer.me%3A6969%2Fannounce"
- search:
- paths:
- # with just 7 results per page, try to grab up to 35 results
- # http://audiobookbay.nl/?s=teeth
- # http://audiobookbay.nl/page/2/?s=teeth
- - path: "{{ if .Keywords }}/?s={{ .Keywords }}{{else}}/{{end}}"
- - path: "{{ if .Keywords }}/page/2/?s={{ .Keywords }}{{else}}{{end}}"
- - path: "{{ if .Keywords }}/page/3/?s={{ .Keywords }}{{else}}{{end}}"
- - path: "{{ if .Keywords }}/page/4/?s={{ .Keywords }}{{else}}{{end}}"
- - path: "{{ if .Keywords }}/page/5/?s={{ .Keywords }}{{else}}{{end}}"
+search:
+ paths:
+ # with just 7 results per page, try to grab up to 35 results
+ # http://audiobookbay.nl/?s=teeth
+ # http://audiobookbay.nl/page/2/?s=teeth
+ - path: "{{ if .Keywords }}/?s={{ .Keywords }}{{else}}/{{end}}"
+ - path: "{{ if .Keywords }}/page/2/?s={{ .Keywords }}{{else}}{{end}}"
+ - path: "{{ if .Keywords }}/page/3/?s={{ .Keywords }}{{else}}{{end}}"
+ - path: "{{ if .Keywords }}/page/4/?s={{ .Keywords }}{{else}}{{end}}"
+ - path: "{{ if .Keywords }}/page/5/?s={{ .Keywords }}{{else}}{{end}}"
- rows:
- selector: div.post:has(div[class="postTitle"])
+ rows:
+ selector: div.post:has(div[class="postTitle"])
- fields:
- title:
- selector: div.postTitle
- details:
- selector: div.postTitle h2 a
- attribute: href
- download:
- selector: div.postTitle h2 a
- attribute: href
- banner:
- optional: true
- selector: img
- attribute: src
- category:
- selector: div.postInfo
- filters:
- - name: regexp
- args: "Category: (.+?)\\s"
- date:
- selector: div.postContent p:contains("Posted:")
- filters:
- - name: regexp
- args: "Posted: (.+?)Format:"
- - name: dateparse
- args: "2 Jan 2006"
- size:
- selector: div.postContent p:contains("File Size:")
- filters:
- - name: regexp
- args: "File Size: (.+?)$"
- - name: replace
- args: ["MBs", "MB"]
- - name: replace
- args: ["GBs", "GB"]
- - name: replace
- args: ["KBs", "KB"]
- seeders:
- text: 1
- leechers:
- text: 1
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ fields:
+ title:
+ selector: div.postTitle
+ details:
+ selector: div.postTitle h2 a
+ attribute: href
+ download:
+ selector: div.postTitle h2 a
+ attribute: href
+ banner:
+ optional: true
+ selector: img
+ attribute: src
+ category:
+ selector: div.postInfo
+ filters:
+ - name: regexp
+ args: "Category: (.+?)\\s"
+ date:
+ selector: div.postContent p:contains("Posted:")
+ filters:
+ - name: regexp
+ args: "Posted: (.+?)Format:"
+ - name: dateparse
+ args: "2 Jan 2006"
+ size:
+ selector: div.postContent p:contains("File Size:")
+ filters:
+ - name: regexp
+ args: "File Size: (.+?)$"
+ - name: replace
+ args: ["MBs", "MB"]
+ - name: replace
+ args: ["GBs", "GB"]
+ - name: replace
+ args: ["KBs", "KB"]
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/audiobooktorrents.yml b/src/Jackett.Common/Definitions/audiobooktorrents.yml
index 13e5a073a..f635b7611 100644
--- a/src/Jackett.Common/Definitions/audiobooktorrents.yml
+++ b/src/Jackett.Common/Definitions/audiobooktorrents.yml
@@ -1,159 +1,159 @@
---
- site: audiobooktorrents
- name: Audiobook Torrents
- description: "Audiobook Torrents (ABT) is a Private Torrent Tracker for AUDIOBOOKS"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - https://abtorrents.me/
+site: audiobooktorrents
+name: Audiobook Torrents
+description: "Audiobook Torrents (ABT) is a Private Torrent Tracker for AUDIOBOOKS"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - https://abtorrents.me/
- caps:
- categorymappings:
- - {id: 10, cat: Audio/Audiobook, desc: "Adventure"}
- - {id: 20, cat: Audio/Audiobook, desc: "Biographies & Memoirs"}
- - {id: 30, cat: Audio/Audiobook, desc: "Business "}
- - {id: 40, cat: Audio/Audiobook, desc: "Childrens"}
- - {id: 50, cat: Audio/Audiobook, desc: "Comedy"}
- - {id: 60, cat: Audio/Audiobook, desc: "Comics"}
- - {id: 70, cat: Audio/Audiobook, desc: "Computers "}
- - {id: 80, cat: Audio/Audiobook, desc: "Erotica"}
- - {id: 90, cat: Audio/Audiobook, desc: "Fantasy-General"}
- - {id: 100, cat: Audio/Audiobook, desc: "Fantasy-Youth"}
- - {id: 110, cat: Audio/Audiobook, desc: "Files"}
- - {id: 120, cat: Audio/Audiobook, desc: "Foreign Language"}
- - {id: 130, cat: Audio/Audiobook, desc: "General Fiction"}
- - {id: 140, cat: Audio/Audiobook, desc: "Historical Fiction"}
- - {id: 150, cat: Audio/Audiobook, desc: "History"}
- - {id: 160, cat: Audio/Audiobook, desc: "Horror"}
- - {id: 170, cat: Audio/Audiobook, desc: "Literature "}
- - {id: 180, cat: Audio/Audiobook, desc: "Mystery "}
- - {id: 190, cat: Audio/Audiobook, desc: "Non-Fiction"}
- - {id: 200, cat: Audio/Audiobook, desc: "Radio Drama"}
- - {id: 210, cat: Audio/Audiobook, desc: "Romance"}
- - {id: 220, cat: Audio/Audiobook, desc: "Science"}
- - {id: 230, cat: Audio/Audiobook, desc: "Science Fiction "}
- - {id: 240, cat: Audio/Audiobook, desc: "Sci-Fi Apocalypse"}
- - {id: 250, cat: Audio/Audiobook, desc: "Self Improvement"}
- - {id: 270, cat: Audio/Audiobook, desc: "Suspense"}
- - {id: 280, cat: Audio/Audiobook, desc: "Talk Radio"}
- - {id: 260, cat: Audio/Audiobook, desc: "Thriller and Suspense"}
- - {id: 290, cat: Audio/Audiobook, desc: "Urban Fantasy"}
- - {id: 300, cat: Audio/Audiobook, desc: "Western"}
- - {id: 400, cat: Books/Ebook, desc: "[E] Action/Adventure"}
- - {id: 410, cat: Books/Ebook, desc: "[E] Adult / Erotica"}
- - {id: 420, cat: Books/Ebook, desc: "[E] Arts & Crafts (Hobbies)"}
- - {id: 430, cat: Books/Ebook, desc: "[E] Biography/Memoirs"}
- - {id: 730, cat: Books/Ebook, desc: "[E] Collections"}
- - {id: 440, cat: Books/Ebook, desc: "[E] Comic Books"}
- - {id: 450, cat: Books/Ebook, desc: "[E] Computer Learning"}
- - {id: 460, cat: Books/Ebook, desc: "[E] Cookery"}
- - {id: 470, cat: Books/Ebook, desc: "[E] Crime/Thriller/Mystery"}
- - {id: 480, cat: Books/Ebook, desc: "[E] Fantasy"}
- - {id: 490, cat: Books/Ebook, desc: "[E] Forteana"}
- - {id: 500, cat: Books/Ebook, desc: "[E] General Fiction"}
- - {id: 510, cat: Books/Ebook, desc: "[E] Historical Fiction"}
- - {id: 520, cat: Books/Ebook, desc: "[E] History/Documentary"}
- - {id: 530, cat: Books/Ebook, desc: "[E] Horror"}
- - {id: 540, cat: Books/Ebook, desc: "[E] Humor ( Comedy)"}
- - {id: 550, cat: Books/Ebook, desc: "[E] LGBT"}
- - {id: 560, cat: Books/Ebook, desc: "[E] Literary Fiction"}
- - {id: 570, cat: Books/Ebook, desc: "[E] Magazines - all"}
- - {id: 580, cat: Books/Ebook, desc: "[E] Non-Fiction"}
- - {id: 590, cat: Books/Ebook, desc: "[E] Paranormal Romance"}
- - {id: 600, cat: Books/Ebook, desc: "[E] Reference/Educational"}
- - {id: 610, cat: Books/Ebook, desc: "[E] Religion and Spirituality"}
- - {id: 620, cat: Books/Ebook, desc: "[E] Romance"}
- - {id: 630, cat: Books/Ebook, desc: "[E] Sci-Fi"}
- - {id: 640, cat: Books/Ebook, desc: "[E] Sci-Fi/Apocalyptic"}
- - {id: 650, cat: Books/Ebook, desc: "[E] Self-Help"}
- - {id: 660, cat: Books/Ebook, desc: "[E] Sports/Fitness"}
- - {id: 670, cat: Books/Ebook, desc: "[E] Travel"}
- - {id: 680, cat: Books/Ebook, desc: "[E] Unsorted"}
- - {id: 690, cat: Books/Ebook, desc: "[E] Urban Fantasy/Paranormal"}
- - {id: 700, cat: Books/Ebook, desc: "[E] Western"}
- - {id: 710, cat: Books/Ebook, desc: "[E] Young Adult"}
- - {id: 720, cat: Books/Ebook, desc: "[E] Young Children"}
+caps:
+ categorymappings:
+ - {id: 10, cat: Audio/Audiobook, desc: "Adventure"}
+ - {id: 20, cat: Audio/Audiobook, desc: "Biographies & Memoirs"}
+ - {id: 30, cat: Audio/Audiobook, desc: "Business "}
+ - {id: 40, cat: Audio/Audiobook, desc: "Childrens"}
+ - {id: 50, cat: Audio/Audiobook, desc: "Comedy"}
+ - {id: 60, cat: Audio/Audiobook, desc: "Comics"}
+ - {id: 70, cat: Audio/Audiobook, desc: "Computers "}
+ - {id: 80, cat: Audio/Audiobook, desc: "Erotica"}
+ - {id: 90, cat: Audio/Audiobook, desc: "Fantasy-General"}
+ - {id: 100, cat: Audio/Audiobook, desc: "Fantasy-Youth"}
+ - {id: 110, cat: Audio/Audiobook, desc: "Files"}
+ - {id: 120, cat: Audio/Audiobook, desc: "Foreign Language"}
+ - {id: 130, cat: Audio/Audiobook, desc: "General Fiction"}
+ - {id: 140, cat: Audio/Audiobook, desc: "Historical Fiction"}
+ - {id: 150, cat: Audio/Audiobook, desc: "History"}
+ - {id: 160, cat: Audio/Audiobook, desc: "Horror"}
+ - {id: 170, cat: Audio/Audiobook, desc: "Literature "}
+ - {id: 180, cat: Audio/Audiobook, desc: "Mystery "}
+ - {id: 190, cat: Audio/Audiobook, desc: "Non-Fiction"}
+ - {id: 200, cat: Audio/Audiobook, desc: "Radio Drama"}
+ - {id: 210, cat: Audio/Audiobook, desc: "Romance"}
+ - {id: 220, cat: Audio/Audiobook, desc: "Science"}
+ - {id: 230, cat: Audio/Audiobook, desc: "Science Fiction "}
+ - {id: 240, cat: Audio/Audiobook, desc: "Sci-Fi Apocalypse"}
+ - {id: 250, cat: Audio/Audiobook, desc: "Self Improvement"}
+ - {id: 270, cat: Audio/Audiobook, desc: "Suspense"}
+ - {id: 280, cat: Audio/Audiobook, desc: "Talk Radio"}
+ - {id: 260, cat: Audio/Audiobook, desc: "Thriller and Suspense"}
+ - {id: 290, cat: Audio/Audiobook, desc: "Urban Fantasy"}
+ - {id: 300, cat: Audio/Audiobook, desc: "Western"}
+ - {id: 400, cat: Books/Ebook, desc: "[E] Action/Adventure"}
+ - {id: 410, cat: Books/Ebook, desc: "[E] Adult / Erotica"}
+ - {id: 420, cat: Books/Ebook, desc: "[E] Arts & Crafts (Hobbies)"}
+ - {id: 430, cat: Books/Ebook, desc: "[E] Biography/Memoirs"}
+ - {id: 730, cat: Books/Ebook, desc: "[E] Collections"}
+ - {id: 440, cat: Books/Ebook, desc: "[E] Comic Books"}
+ - {id: 450, cat: Books/Ebook, desc: "[E] Computer Learning"}
+ - {id: 460, cat: Books/Ebook, desc: "[E] Cookery"}
+ - {id: 470, cat: Books/Ebook, desc: "[E] Crime/Thriller/Mystery"}
+ - {id: 480, cat: Books/Ebook, desc: "[E] Fantasy"}
+ - {id: 490, cat: Books/Ebook, desc: "[E] Forteana"}
+ - {id: 500, cat: Books/Ebook, desc: "[E] General Fiction"}
+ - {id: 510, cat: Books/Ebook, desc: "[E] Historical Fiction"}
+ - {id: 520, cat: Books/Ebook, desc: "[E] History/Documentary"}
+ - {id: 530, cat: Books/Ebook, desc: "[E] Horror"}
+ - {id: 540, cat: Books/Ebook, desc: "[E] Humor ( Comedy)"}
+ - {id: 550, cat: Books/Ebook, desc: "[E] LGBT"}
+ - {id: 560, cat: Books/Ebook, desc: "[E] Literary Fiction"}
+ - {id: 570, cat: Books/Ebook, desc: "[E] Magazines - all"}
+ - {id: 580, cat: Books/Ebook, desc: "[E] Non-Fiction"}
+ - {id: 590, cat: Books/Ebook, desc: "[E] Paranormal Romance"}
+ - {id: 600, cat: Books/Ebook, desc: "[E] Reference/Educational"}
+ - {id: 610, cat: Books/Ebook, desc: "[E] Religion and Spirituality"}
+ - {id: 620, cat: Books/Ebook, desc: "[E] Romance"}
+ - {id: 630, cat: Books/Ebook, desc: "[E] Sci-Fi"}
+ - {id: 640, cat: Books/Ebook, desc: "[E] Sci-Fi/Apocalyptic"}
+ - {id: 650, cat: Books/Ebook, desc: "[E] Self-Help"}
+ - {id: 660, cat: Books/Ebook, desc: "[E] Sports/Fitness"}
+ - {id: 670, cat: Books/Ebook, desc: "[E] Travel"}
+ - {id: 680, cat: Books/Ebook, desc: "[E] Unsorted"}
+ - {id: 690, cat: Books/Ebook, desc: "[E] Urban Fantasy/Paranormal"}
+ - {id: 700, cat: Books/Ebook, desc: "[E] Western"}
+ - {id: 710, cat: Books/Ebook, desc: "[E] Young Adult"}
+ - {id: 720, cat: Books/Ebook, desc: "[E] Young Children"}
- modes:
- search: [q]
+ modes:
+ search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: info_results
- type: info
- label: Search results
- default: "If you are getting the error Login Failed, got redirected then access the site with your browser and mark as read all PMs."
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: info_results
+ type: info
+ label: Search results
+ default: "If you are getting the error Login Failed, got redirected then access the site with your browser and mark as read all PMs."
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- use_ssl: 1
- perm_ssl: 1
- submitme: X
- error:
- - selector: td.embedded:has(h2:contains("Oops"))
- - selector: td.embedded:has(h2:contains("failed"))
- test:
- path: browse.php
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ use_ssl: 1
+ perm_ssl: 1
+ submitme: X
+ error:
+ - selector: td.embedded:has(h2:contains("Oops"))
+ - selector: td.embedded:has(h2:contains("failed"))
+ test:
+ path: browse.php
- search:
- paths:
- - path: browse.php
- inputs:
- $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
- search: "{{ .Keywords }}"
- searchin: title
- incldead: 1
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
+ search: "{{ .Keywords }}"
+ searchin: title
+ incldead: 1
- rows:
- selector: table.table-striped > tbody > tr:has(a[href^="download.php?torrent="])
+ rows:
+ selector: table.table-striped > tbody > tr:has(a[href^="download.php?torrent="])
- fields: # some users (rank specific?) have an extra column (td:nth-child(4)) with bookmark features
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- title:
- selector: div.torrent-name
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="download.php?torrent="]
- attribute: href
- banner:
- selector: img[src*="/img.php?"]
- attribute: src
- files:
- selector: td:nth-last-child(8)
- date:
- selector: td:nth-last-child(6)
- size:
- selector: td:nth-last-child(5)
- grabs:
- selector: td:nth-last-child(4)
- filters:
- - name: regexp
- args: (\d+)
- seeders:
- selector: td:nth-last-child(3)
- leechers:
- selector: td:nth-last-child(2)
- downloadvolumefactor:
- case:
- "a.info > b:contains(\"[FREE]\")": 0
- "*": 1
- uploadvolumefactor:
- text: 1
+ fields: # some users (rank specific?) have an extra column (td:nth-child(4)) with bookmark features
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title:
+ selector: div.torrent-name
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?torrent="]
+ attribute: href
+ banner:
+ selector: img[src*="/img.php?"]
+ attribute: src
+ files:
+ selector: td:nth-last-child(8)
+ date:
+ selector: td:nth-last-child(6)
+ size:
+ selector: td:nth-last-child(5)
+ grabs:
+ selector: td:nth-last-child(4)
+ filters:
+ - name: regexp
+ args: (\d+)
+ seeders:
+ selector: td:nth-last-child(3)
+ leechers:
+ selector: td:nth-last-child(2)
+ downloadvolumefactor:
+ case:
+ "a.info > b:contains(\"[FREE]\")": 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
# U-232 V4.5
diff --git a/src/Jackett.Common/Definitions/audionews.yml b/src/Jackett.Common/Definitions/audionews.yml
index 9ea5bdb04..66c7b1c65 100644
--- a/src/Jackett.Common/Definitions/audionews.yml
+++ b/src/Jackett.Common/Definitions/audionews.yml
@@ -1,321 +1,321 @@
---
- site: audionews
- name: AudioNews
- description: "AudioNews (AN) is a Private Torrent Tracker for AUDIO SOFTWARE / SAMPLES / ETC"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - https://audionews.org/
+site: audionews
+name: AudioNews
+description: "AudioNews (AN) is a Private Torrent Tracker for AUDIO SOFTWARE / SAMPLES / ETC"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - https://audionews.org/
- caps:
- categorymappings:
- - {id: 106, cat: PC/Phone-Other, desc: "Mobile Apps"}
- - {id: 161, cat: PC/Phone-IOS, desc: "Mobile Apps iOS"}
- - {id: 160, cat: PC/Phone-Android, desc: "Mobile Apps Android"}
- - {id: 12, cat: PC, desc: "AUDIOAPPS"}
- - {id: 32, cat: PC, desc: "AUDIOAPPS DAW Apps"}
- - {id: 175, cat: PC, desc: "AUDIOAPPS Ableton"}
- - {id: 177, cat: PC, desc: "AUDIOAPPS Cakewalk"}
- - {id: 176, cat: PC, desc: "AUDIOAPPS REAPER"}
- - {id: 174, cat: PC, desc: "AUDIOAPPS Steinberg"}
- - {id: 34, cat: PC, desc: "AUDIOAPPS Mastering &Audio Editor Apps"}
- - {id: 37, cat: PC, desc: "AUDIOAPPS DJ Apps"}
- - {id: 13, cat: Audio, desc: "SAMPLE LIBRARIES"}
- - {id: 62, cat: Audio, desc: "SAMPLE LIBRARIES AMG"}
- - {id: 117, cat: Audio, desc: "SAMPLE LIBRARIES Bela D Media"}
- - {id: 118, cat: Audio, desc: "SAMPLE LIBRARIES Beta Monkey Music"}
- - {id: 51, cat: Audio, desc: "SAMPLE LIBRARIES Best Service"}
- - {id: 46, cat: Audio, desc: "SAMPLE LIBRARIES Big Fish"}
- - {id: 66, cat: Audio, desc: "SAMPLE LIBRARIES Bigga Giggas"}
- - {id: 122, cat: Audio, desc: "SAMPLE LIBRARIES Bluezone Corporation"}
- - {id: 123, cat: Audio, desc: "SAMPLE LIBRARIES Bunker 8"}
- - {id: 126, cat: Audio, desc: "SAMPLE LIBRARIES Cinematique Instruments"}
- - {id: 127, cat: Audio, desc: "SAMPLE LIBRARIES CineSamples"}
- - {id: 128, cat: Audio, desc: "SAMPLE LIBRARIES ClusterSound"}
- - {id: 121, cat: Audio, desc: "SAMPLE LIBRARIES Dan Dean"}
- - {id: 195, cat: Audio, desc: "SAMPLE LIBRARIES Diginoiz"}
- - {id: 52, cat: Audio, desc: "SAMPLE LIBRARIES Digital Juice"}
- - {id: 134, cat: Audio, desc: "SAMPLE LIBRARIES Digital-Redux"}
- - {id: 65, cat: Audio, desc: "SAMPLE LIBRARIES Digital Vision"}
- - {id: 59, cat: Audio, desc: "SAMPLE LIBRARIES Discovery Firm"}
- - {id: 61, cat: Audio, desc: "SAMPLE LIBRARIES Drumdrops"}
- - {id: 40, cat: Audio, desc: "SAMPLE LIBRARIES East West"}
- - {id: 74, cat: Audio, desc: "SAMPLE LIBRARIES Electronisounds"}
- - {id: 80, cat: Audio, desc: "SAMPLE LIBRARIES EMU format"}
- - {id: 82, cat: Audio, desc: "SAMPLE LIBRARIES ENSONIQ format"}
- - {id: 111, cat: Audio, desc: "SAMPLE LIBRARIES Fatloud"}
- - {id: 135, cat: Audio, desc: "SAMPLE LIBRARIES Fox Samples"}
- - {id: 41, cat: Audio, desc: "SAMPLE LIBRARIES FxPansion"}
- - {id: 130, cat: Audio, desc: "SAMPLE LIBRARIES Goldbaby"}
- - {id: 54, cat: Audio, desc: "SAMPLE LIBRARIES Hollywood Edge"}
- - {id: 64, cat: Audio, desc: "SAMPLE LIBRARIES IK Multimedia"}
- - {id: 75, cat: Audio, desc: "SAMPLE LIBRARIES Ilio"}
- - {id: 108, cat: Audio, desc: "SAMPLE LIBRARIES Industrial Strength Records"}
- - {id: 81, cat: Audio, desc: "SAMPLE LIBRARIES KURZWEIL format"}
- - {id: 91, cat: Audio, desc: "SAMPLE LIBRARIES Loopmasters"}
- - {id: 92, cat: Audio, desc: "SAMPLE LIBRARIES Masterbits"}
- - {id: 58, cat: Audio, desc: "SAMPLE LIBRARIES M-Audio"}
- - {id: 112, cat: Audio, desc: "SAMPLE LIBRARIES Mutekki"}
- - {id: 137, cat: Audio, desc: "SAMPLE LIBRARIES Mystic Kingz"}
- - {id: 47, cat: Audio, desc: "SAMPLE LIBRARIES Native Instruments"}
- - {id: 60, cat: Audio, desc: "SAMPLE LIBRARIES Nine Volt Audio"}
- - {id: 129, cat: Audio, desc: "SAMPLE LIBRARIES OrangeTree"}
- - {id: 203, cat: Audio, desc: "SAMPLE LIBRARIES Origin Sound"}
- - {id: 154, cat: Audio, desc: "SAMPLE LIBRARIES P5Audio"}
- - {id: 133, cat: Audio, desc: "SAMPLE LIBRARIES Peace Love Productions"}
- - {id: 140, cat: Audio, desc: "SAMPLE LIBRARIES Pound Audio"}
- - {id: 110, cat: Audio, desc: "SAMPLE LIBRARIES Prime Loops"}
- - {id: 180, cat: Audio, desc: "SAMPLE LIBRARIES Producer Loops"}
- - {id: 50, cat: Audio, desc: "SAMPLE LIBRARIES Prominy"}
- - {id: 171, cat: Audio, desc: "SAMPLE LIBRARIES Pulsed Records"}
- - {id: 132, cat: Audio, desc: "SAMPLE LIBRARIES Puremagnetik"}
- - {id: 49, cat: Audio, desc: "SAMPLE LIBRARIES Refills"}
- - {id: 99, cat: Audio, desc: "SAMPLE LIBRARIES reFX Nexus"}
- - {id: 125, cat: Audio, desc: "SAMPLE LIBRARIES Realsamples"}
- - {id: 83, cat: Audio, desc: "SAMPLE LIBRARIES ROLAND format"}
- - {id: 109, cat: Audio, desc: "SAMPLE LIBRARIES Sample Magic"}
- - {id: 136, cat: Audio, desc: "SAMPLE LIBRARIES Samplephonics"}
- - {id: 43, cat: Audio, desc: "SAMPLE LIBRARIES Sampletekk"}
- - {id: 48, cat: Audio, desc: "SAMPLE LIBRARIES Scarbee"}
- - {id: 178, cat: Audio, desc: "SAMPLE LIBRARIES SFX (Sound FX libraries)"}
- - {id: 90, cat: Audio, desc: "SAMPLE LIBRARIES Smartsound"}
- - {id: 172, cat: Audio, desc: "SAMPLE LIBRARIES Sonart Audio"}
- - {id: 116, cat: Audio, desc: "SAMPLE LIBRARIES SonicCouture"}
- - {id: 42, cat: Audio, desc: "SAMPLE LIBRARIES Sonic Implants"}
- - {id: 115, cat: Audio, desc: "SAMPLE LIBRARIES Sonic Reality"}
- - {id: 53, cat: Audio, desc: "SAMPLE LIBRARIES Sound Ideas"}
- - {id: 56, cat: Audio, desc: "SAMPLE LIBRARIES Sony"}
- - {id: 139, cat: Audio, desc: "SAMPLE LIBRARIES Sounds To Sample"}
- - {id: 76, cat: Audio, desc: "SAMPLE LIBRARIES Spectrasonics"}
- - {id: 162, cat: Audio, desc: "SAMPLE LIBRARIES Spitfire Audio"}
- - {id: 193, cat: Audio, desc: "SAMPLE LIBRARIES studiolinked"}
- - {id: 68, cat: Audio, desc: "SAMPLE LIBRARIES Synthogy"}
- - {id: 179, cat: Audio, desc: "SAMPLE LIBRARIES The Loop Loft"}
- - {id: 96, cat: Audio, desc: "SAMPLE LIBRARIES Tonehammer, 8dio, SoundIron"}
- - {id: 67, cat: Audio, desc: "SAMPLE LIBRARIES Toontrack, Drumkit From Hell, DFHS"}
- - {id: 69, cat: Audio, desc: "SAMPLE LIBRARIES Ueberschall"}
- - {id: 157, cat: Audio, desc: "SAMPLE LIBRARIES USB Soundscan"}
- - {id: 120, cat: Audio, desc: "SAMPLE LIBRARIES Valentino Production"}
- - {id: 173, cat: Audio, desc: "SAMPLE LIBRARIES vandalism sounds"}
- - {id: 170, cat: Audio, desc: "SAMPLE LIBRARIES Vanilla Groove Studios"}
- - {id: 119, cat: Audio, desc: "SAMPLE LIBRARIES Vengeance Sound"}
- - {id: 114, cat: Audio, desc: "SAMPLE LIBRARIES Video Helper"}
- - {id: 44, cat: Audio, desc: "SAMPLE LIBRARIES Vienna"}
- - {id: 77, cat: Audio, desc: "SAMPLE LIBRARIES Vipzone"}
- - {id: 131, cat: Audio, desc: "SAMPLE LIBRARIES Wavesfactory"}
- - {id: 89, cat: Audio, desc: "SAMPLE LIBRARIES West one"}
- - {id: 113, cat: Audio, desc: "SAMPLE LIBRARIES Wusik.com"}
- - {id: 78, cat: Audio, desc: "SAMPLE LIBRARIES Yellowtools"}
- - {id: 138, cat: Audio, desc: "SAMPLE LIBRARIES YnK.Audio"}
- - {id: 100, cat: Audio, desc: "SAMPLE LIBRARIES Zenhiser"}
- - {id: 57, cat: Audio, desc: "SAMPLE LIBRARIES Zero-G"}
- - {id: 15, cat: PC, desc: "VSTi + FX"}
- - {id: 72, cat: PC, desc: "VSTi + FX FX"}
- - {id: 181, cat: PC, desc: "VSTi + FX VSTi"}
- - {id: 18, cat: PC/Mac, desc: "MAC"}
- - {id: 186, cat: PC/Mac, desc: "MAC Apps"}
- - {id: 188, cat: PC/Mac, desc: "MAC FX"}
- - {id: 189, cat: PC/Mac, desc: "MAC Instruments"}
- - {id: 190, cat: PC/Mac, desc: "MAC TUTORIAL"}
- - {id: 187, cat: PC/Mac, desc: "MAC Samples"}
- - {id: 19, cat: Other, desc: "MISC"}
- - {id: 185, cat: Other, desc: "MISC Utilities"}
- - {id: 84, cat: Books, desc: "SHEET MUSIC"}
- - {id: 87, cat: Books, desc: "SHEET MUSIC Full Score"}
- - {id: 86, cat: Books, desc: "SHEET MUSIC Guitar"}
- - {id: 88, cat: Books, desc: "SHEET MUSIC Other instruments"}
- - {id: 85, cat: Books, desc: "SHEET MUSIC Piano"}
- - {id: 20, cat: Books, desc: "LEARNING"}
- - {id: 197, cat: Books, desc: "LEARNING Academy.FM"}
- - {id: 183, cat: Books, desc: "LEARNING ADSR"}
- - {id: 141, cat: Books, desc: "LEARNING Alfred"}
- - {id: 142, cat: Books, desc: "LEARNING Ask Video"}
- - {id: 27, cat: Books, desc: "LEARNING Books"}
- - {id: 143, cat: Books, desc: "LEARNING FaderPro"}
- - {id: 144, cat: Books, desc: "LEARNING Groove3"}
- - {id: 145, cat: Books, desc: "LEARNING Hal Leonard"}
- - {id: 105, cat: Books, desc: "LEARNING Hardware manuals"}
- - {id: 196, cat: Books, desc: "LEARNING Jam Track Central"}
- - {id: 146, cat: Books, desc: "LEARNING Lick Library"}
- - {id: 147, cat: Books, desc: "LEARNING Lynda.com"}
- - {id: 148, cat: Books, desc: "LEARNING MacProVideo"}
- - {id: 101, cat: Books, desc: "LEARNING Magazines"}
- - {id: 93, cat: Books, desc: "LEARNING Music Video (Concerts, DVD, DVDrip)"}
- - {id: 199, cat: Books, desc: "LEARNING PUREMIX"}
- - {id: 149, cat: Books, desc: "LEARNING Riff Interactive"}
- - {id: 194, cat: Books, desc: "LEARNING SkillShare"}
- - {id: 150, cat: Books, desc: "LEARNING Sonic Academy"}
- - {id: 151, cat: Books, desc: "LEARNING Total training"}
- - {id: 152, cat: Books, desc: "LEARNING TrueFire"}
- - {id: 182, cat: Books, desc: "LEARNING Udemy"}
- - {id: 28, cat: Books, desc: "LEARNING Video"}
- - {id: 153, cat: Books, desc: "LEARNING VTC"}
- - {id: 29, cat: Audio/Other, desc: "PRESETS"}
- - {id: 167, cat: Audio/Other, desc: "PRESETS Ableton Live"}
- - {id: 184, cat: Audio/Other, desc: "PRESETS Impulse Responses"}
- - {id: 166, cat: Audio/Other, desc: "PRESETS Massive"}
- - {id: 163, cat: Audio/Other, desc: "PRESETS Nebula"}
- - {id: 200, cat: Audio/Other, desc: "PRESETS Omnisphere"}
- - {id: 165, cat: Audio/Other, desc: "PRESETS Reaktor"}
- - {id: 201, cat: Audio/Other, desc: "PRESETS Xfer Serum"}
- - {id: 164, cat: Audio/Other, desc: "PRESETS Sylenth"}
- - {id: 168, cat: Audio/Other, desc: "PRESETS Toontrack"}
- - {id: 21, cat: Other, desc: "UPDATE"}
- - {id: 222, cat: Other, desc: "GFXNEWS 3D"}
- - {id: 207, cat: Other, desc: "GFXNEWS APPS WIN"}
- - {id: 215, cat: Other, desc: "GFXNEWS APPS LINUX"}
- - {id: 214, cat: Other, desc: "GFXNEWS APPS MAC"}
- - {id: 211, cat: Other, desc: "GFXNEWS BOOKS"}
- - {id: 224, cat: Other, desc: "GFXNEWS CAD/CAM"}
- - {id: 212, cat: Other, desc: "GFXNEWS FONTS"}
- - {id: 213, cat: Other, desc: "GFXNEWS FOOTAGE"}
- - {id: 226, cat: Other, desc: "GFXNEWS MAGAZINE"}
- - {id: 216, cat: Other, desc: "GFXNEWS PHOTOSTOCK"}
- - {id: 220, cat: Other, desc: "GFXNEWS PHOTOGRAPHY - ART"}
- - {id: 227, cat: Other, desc: "GFXNEWS PHOTOSHOP"}
- - {id: 228, cat: Other, desc: "GFXNEWS PHOTOSHOP Actions, Pattern & Styles"}
- - {id: 229, cat: Other, desc: "GFXNEWS PHOTOSHOP Background & PSD Source"}
- - {id: 230, cat: Other, desc: "GFXNEWS PHOTOSHOP Brushes & Gradient"}
- - {id: 231, cat: Other, desc: "GFXNEWS PHOTOSHOP Toolkits, Papers & Objects"}
- - {id: 225, cat: Other, desc: "GFXNEWS PLUGINS LINUX"}
- - {id: 223, cat: Other, desc: "GFXNEWS PLUGINS MAC"}
- - {id: 210, cat: Other, desc: "GFXNEWS PLUGINS WIN"}
- - {id: 217, cat: Other, desc: "GFXNEWS SCRIPTS - WEB PROGRAMMING"}
- - {id: 218, cat: Other, desc: "GFXNEWS TEMPLATES"}
- - {id: 232, cat: Other, desc: "GFXNEWS TEXTURES"}
- - {id: 219, cat: Other, desc: "GFXNEWS TUTORIALS"}
- - {id: 221, cat: Other, desc: "GFXNEWS VIDEO PRODUCTION"}
+caps:
+ categorymappings:
+ - {id: 106, cat: PC/Phone-Other, desc: "Mobile Apps"}
+ - {id: 161, cat: PC/Phone-IOS, desc: "Mobile Apps iOS"}
+ - {id: 160, cat: PC/Phone-Android, desc: "Mobile Apps Android"}
+ - {id: 12, cat: PC, desc: "AUDIOAPPS"}
+ - {id: 32, cat: PC, desc: "AUDIOAPPS DAW Apps"}
+ - {id: 175, cat: PC, desc: "AUDIOAPPS Ableton"}
+ - {id: 177, cat: PC, desc: "AUDIOAPPS Cakewalk"}
+ - {id: 176, cat: PC, desc: "AUDIOAPPS REAPER"}
+ - {id: 174, cat: PC, desc: "AUDIOAPPS Steinberg"}
+ - {id: 34, cat: PC, desc: "AUDIOAPPS Mastering &Audio Editor Apps"}
+ - {id: 37, cat: PC, desc: "AUDIOAPPS DJ Apps"}
+ - {id: 13, cat: Audio, desc: "SAMPLE LIBRARIES"}
+ - {id: 62, cat: Audio, desc: "SAMPLE LIBRARIES AMG"}
+ - {id: 117, cat: Audio, desc: "SAMPLE LIBRARIES Bela D Media"}
+ - {id: 118, cat: Audio, desc: "SAMPLE LIBRARIES Beta Monkey Music"}
+ - {id: 51, cat: Audio, desc: "SAMPLE LIBRARIES Best Service"}
+ - {id: 46, cat: Audio, desc: "SAMPLE LIBRARIES Big Fish"}
+ - {id: 66, cat: Audio, desc: "SAMPLE LIBRARIES Bigga Giggas"}
+ - {id: 122, cat: Audio, desc: "SAMPLE LIBRARIES Bluezone Corporation"}
+ - {id: 123, cat: Audio, desc: "SAMPLE LIBRARIES Bunker 8"}
+ - {id: 126, cat: Audio, desc: "SAMPLE LIBRARIES Cinematique Instruments"}
+ - {id: 127, cat: Audio, desc: "SAMPLE LIBRARIES CineSamples"}
+ - {id: 128, cat: Audio, desc: "SAMPLE LIBRARIES ClusterSound"}
+ - {id: 121, cat: Audio, desc: "SAMPLE LIBRARIES Dan Dean"}
+ - {id: 195, cat: Audio, desc: "SAMPLE LIBRARIES Diginoiz"}
+ - {id: 52, cat: Audio, desc: "SAMPLE LIBRARIES Digital Juice"}
+ - {id: 134, cat: Audio, desc: "SAMPLE LIBRARIES Digital-Redux"}
+ - {id: 65, cat: Audio, desc: "SAMPLE LIBRARIES Digital Vision"}
+ - {id: 59, cat: Audio, desc: "SAMPLE LIBRARIES Discovery Firm"}
+ - {id: 61, cat: Audio, desc: "SAMPLE LIBRARIES Drumdrops"}
+ - {id: 40, cat: Audio, desc: "SAMPLE LIBRARIES East West"}
+ - {id: 74, cat: Audio, desc: "SAMPLE LIBRARIES Electronisounds"}
+ - {id: 80, cat: Audio, desc: "SAMPLE LIBRARIES EMU format"}
+ - {id: 82, cat: Audio, desc: "SAMPLE LIBRARIES ENSONIQ format"}
+ - {id: 111, cat: Audio, desc: "SAMPLE LIBRARIES Fatloud"}
+ - {id: 135, cat: Audio, desc: "SAMPLE LIBRARIES Fox Samples"}
+ - {id: 41, cat: Audio, desc: "SAMPLE LIBRARIES FxPansion"}
+ - {id: 130, cat: Audio, desc: "SAMPLE LIBRARIES Goldbaby"}
+ - {id: 54, cat: Audio, desc: "SAMPLE LIBRARIES Hollywood Edge"}
+ - {id: 64, cat: Audio, desc: "SAMPLE LIBRARIES IK Multimedia"}
+ - {id: 75, cat: Audio, desc: "SAMPLE LIBRARIES Ilio"}
+ - {id: 108, cat: Audio, desc: "SAMPLE LIBRARIES Industrial Strength Records"}
+ - {id: 81, cat: Audio, desc: "SAMPLE LIBRARIES KURZWEIL format"}
+ - {id: 91, cat: Audio, desc: "SAMPLE LIBRARIES Loopmasters"}
+ - {id: 92, cat: Audio, desc: "SAMPLE LIBRARIES Masterbits"}
+ - {id: 58, cat: Audio, desc: "SAMPLE LIBRARIES M-Audio"}
+ - {id: 112, cat: Audio, desc: "SAMPLE LIBRARIES Mutekki"}
+ - {id: 137, cat: Audio, desc: "SAMPLE LIBRARIES Mystic Kingz"}
+ - {id: 47, cat: Audio, desc: "SAMPLE LIBRARIES Native Instruments"}
+ - {id: 60, cat: Audio, desc: "SAMPLE LIBRARIES Nine Volt Audio"}
+ - {id: 129, cat: Audio, desc: "SAMPLE LIBRARIES OrangeTree"}
+ - {id: 203, cat: Audio, desc: "SAMPLE LIBRARIES Origin Sound"}
+ - {id: 154, cat: Audio, desc: "SAMPLE LIBRARIES P5Audio"}
+ - {id: 133, cat: Audio, desc: "SAMPLE LIBRARIES Peace Love Productions"}
+ - {id: 140, cat: Audio, desc: "SAMPLE LIBRARIES Pound Audio"}
+ - {id: 110, cat: Audio, desc: "SAMPLE LIBRARIES Prime Loops"}
+ - {id: 180, cat: Audio, desc: "SAMPLE LIBRARIES Producer Loops"}
+ - {id: 50, cat: Audio, desc: "SAMPLE LIBRARIES Prominy"}
+ - {id: 171, cat: Audio, desc: "SAMPLE LIBRARIES Pulsed Records"}
+ - {id: 132, cat: Audio, desc: "SAMPLE LIBRARIES Puremagnetik"}
+ - {id: 49, cat: Audio, desc: "SAMPLE LIBRARIES Refills"}
+ - {id: 99, cat: Audio, desc: "SAMPLE LIBRARIES reFX Nexus"}
+ - {id: 125, cat: Audio, desc: "SAMPLE LIBRARIES Realsamples"}
+ - {id: 83, cat: Audio, desc: "SAMPLE LIBRARIES ROLAND format"}
+ - {id: 109, cat: Audio, desc: "SAMPLE LIBRARIES Sample Magic"}
+ - {id: 136, cat: Audio, desc: "SAMPLE LIBRARIES Samplephonics"}
+ - {id: 43, cat: Audio, desc: "SAMPLE LIBRARIES Sampletekk"}
+ - {id: 48, cat: Audio, desc: "SAMPLE LIBRARIES Scarbee"}
+ - {id: 178, cat: Audio, desc: "SAMPLE LIBRARIES SFX (Sound FX libraries)"}
+ - {id: 90, cat: Audio, desc: "SAMPLE LIBRARIES Smartsound"}
+ - {id: 172, cat: Audio, desc: "SAMPLE LIBRARIES Sonart Audio"}
+ - {id: 116, cat: Audio, desc: "SAMPLE LIBRARIES SonicCouture"}
+ - {id: 42, cat: Audio, desc: "SAMPLE LIBRARIES Sonic Implants"}
+ - {id: 115, cat: Audio, desc: "SAMPLE LIBRARIES Sonic Reality"}
+ - {id: 53, cat: Audio, desc: "SAMPLE LIBRARIES Sound Ideas"}
+ - {id: 56, cat: Audio, desc: "SAMPLE LIBRARIES Sony"}
+ - {id: 139, cat: Audio, desc: "SAMPLE LIBRARIES Sounds To Sample"}
+ - {id: 76, cat: Audio, desc: "SAMPLE LIBRARIES Spectrasonics"}
+ - {id: 162, cat: Audio, desc: "SAMPLE LIBRARIES Spitfire Audio"}
+ - {id: 193, cat: Audio, desc: "SAMPLE LIBRARIES studiolinked"}
+ - {id: 68, cat: Audio, desc: "SAMPLE LIBRARIES Synthogy"}
+ - {id: 179, cat: Audio, desc: "SAMPLE LIBRARIES The Loop Loft"}
+ - {id: 96, cat: Audio, desc: "SAMPLE LIBRARIES Tonehammer, 8dio, SoundIron"}
+ - {id: 67, cat: Audio, desc: "SAMPLE LIBRARIES Toontrack, Drumkit From Hell, DFHS"}
+ - {id: 69, cat: Audio, desc: "SAMPLE LIBRARIES Ueberschall"}
+ - {id: 157, cat: Audio, desc: "SAMPLE LIBRARIES USB Soundscan"}
+ - {id: 120, cat: Audio, desc: "SAMPLE LIBRARIES Valentino Production"}
+ - {id: 173, cat: Audio, desc: "SAMPLE LIBRARIES vandalism sounds"}
+ - {id: 170, cat: Audio, desc: "SAMPLE LIBRARIES Vanilla Groove Studios"}
+ - {id: 119, cat: Audio, desc: "SAMPLE LIBRARIES Vengeance Sound"}
+ - {id: 114, cat: Audio, desc: "SAMPLE LIBRARIES Video Helper"}
+ - {id: 44, cat: Audio, desc: "SAMPLE LIBRARIES Vienna"}
+ - {id: 77, cat: Audio, desc: "SAMPLE LIBRARIES Vipzone"}
+ - {id: 131, cat: Audio, desc: "SAMPLE LIBRARIES Wavesfactory"}
+ - {id: 89, cat: Audio, desc: "SAMPLE LIBRARIES West one"}
+ - {id: 113, cat: Audio, desc: "SAMPLE LIBRARIES Wusik.com"}
+ - {id: 78, cat: Audio, desc: "SAMPLE LIBRARIES Yellowtools"}
+ - {id: 138, cat: Audio, desc: "SAMPLE LIBRARIES YnK.Audio"}
+ - {id: 100, cat: Audio, desc: "SAMPLE LIBRARIES Zenhiser"}
+ - {id: 57, cat: Audio, desc: "SAMPLE LIBRARIES Zero-G"}
+ - {id: 15, cat: PC, desc: "VSTi + FX"}
+ - {id: 72, cat: PC, desc: "VSTi + FX FX"}
+ - {id: 181, cat: PC, desc: "VSTi + FX VSTi"}
+ - {id: 18, cat: PC/Mac, desc: "MAC"}
+ - {id: 186, cat: PC/Mac, desc: "MAC Apps"}
+ - {id: 188, cat: PC/Mac, desc: "MAC FX"}
+ - {id: 189, cat: PC/Mac, desc: "MAC Instruments"}
+ - {id: 190, cat: PC/Mac, desc: "MAC TUTORIAL"}
+ - {id: 187, cat: PC/Mac, desc: "MAC Samples"}
+ - {id: 19, cat: Other, desc: "MISC"}
+ - {id: 185, cat: Other, desc: "MISC Utilities"}
+ - {id: 84, cat: Books, desc: "SHEET MUSIC"}
+ - {id: 87, cat: Books, desc: "SHEET MUSIC Full Score"}
+ - {id: 86, cat: Books, desc: "SHEET MUSIC Guitar"}
+ - {id: 88, cat: Books, desc: "SHEET MUSIC Other instruments"}
+ - {id: 85, cat: Books, desc: "SHEET MUSIC Piano"}
+ - {id: 20, cat: Books, desc: "LEARNING"}
+ - {id: 197, cat: Books, desc: "LEARNING Academy.FM"}
+ - {id: 183, cat: Books, desc: "LEARNING ADSR"}
+ - {id: 141, cat: Books, desc: "LEARNING Alfred"}
+ - {id: 142, cat: Books, desc: "LEARNING Ask Video"}
+ - {id: 27, cat: Books, desc: "LEARNING Books"}
+ - {id: 143, cat: Books, desc: "LEARNING FaderPro"}
+ - {id: 144, cat: Books, desc: "LEARNING Groove3"}
+ - {id: 145, cat: Books, desc: "LEARNING Hal Leonard"}
+ - {id: 105, cat: Books, desc: "LEARNING Hardware manuals"}
+ - {id: 196, cat: Books, desc: "LEARNING Jam Track Central"}
+ - {id: 146, cat: Books, desc: "LEARNING Lick Library"}
+ - {id: 147, cat: Books, desc: "LEARNING Lynda.com"}
+ - {id: 148, cat: Books, desc: "LEARNING MacProVideo"}
+ - {id: 101, cat: Books, desc: "LEARNING Magazines"}
+ - {id: 93, cat: Books, desc: "LEARNING Music Video (Concerts, DVD, DVDrip)"}
+ - {id: 199, cat: Books, desc: "LEARNING PUREMIX"}
+ - {id: 149, cat: Books, desc: "LEARNING Riff Interactive"}
+ - {id: 194, cat: Books, desc: "LEARNING SkillShare"}
+ - {id: 150, cat: Books, desc: "LEARNING Sonic Academy"}
+ - {id: 151, cat: Books, desc: "LEARNING Total training"}
+ - {id: 152, cat: Books, desc: "LEARNING TrueFire"}
+ - {id: 182, cat: Books, desc: "LEARNING Udemy"}
+ - {id: 28, cat: Books, desc: "LEARNING Video"}
+ - {id: 153, cat: Books, desc: "LEARNING VTC"}
+ - {id: 29, cat: Audio/Other, desc: "PRESETS"}
+ - {id: 167, cat: Audio/Other, desc: "PRESETS Ableton Live"}
+ - {id: 184, cat: Audio/Other, desc: "PRESETS Impulse Responses"}
+ - {id: 166, cat: Audio/Other, desc: "PRESETS Massive"}
+ - {id: 163, cat: Audio/Other, desc: "PRESETS Nebula"}
+ - {id: 200, cat: Audio/Other, desc: "PRESETS Omnisphere"}
+ - {id: 165, cat: Audio/Other, desc: "PRESETS Reaktor"}
+ - {id: 201, cat: Audio/Other, desc: "PRESETS Xfer Serum"}
+ - {id: 164, cat: Audio/Other, desc: "PRESETS Sylenth"}
+ - {id: 168, cat: Audio/Other, desc: "PRESETS Toontrack"}
+ - {id: 21, cat: Other, desc: "UPDATE"}
+ - {id: 222, cat: Other, desc: "GFXNEWS 3D"}
+ - {id: 207, cat: Other, desc: "GFXNEWS APPS WIN"}
+ - {id: 215, cat: Other, desc: "GFXNEWS APPS LINUX"}
+ - {id: 214, cat: Other, desc: "GFXNEWS APPS MAC"}
+ - {id: 211, cat: Other, desc: "GFXNEWS BOOKS"}
+ - {id: 224, cat: Other, desc: "GFXNEWS CAD/CAM"}
+ - {id: 212, cat: Other, desc: "GFXNEWS FONTS"}
+ - {id: 213, cat: Other, desc: "GFXNEWS FOOTAGE"}
+ - {id: 226, cat: Other, desc: "GFXNEWS MAGAZINE"}
+ - {id: 216, cat: Other, desc: "GFXNEWS PHOTOSTOCK"}
+ - {id: 220, cat: Other, desc: "GFXNEWS PHOTOGRAPHY - ART"}
+ - {id: 227, cat: Other, desc: "GFXNEWS PHOTOSHOP"}
+ - {id: 228, cat: Other, desc: "GFXNEWS PHOTOSHOP Actions, Pattern & Styles"}
+ - {id: 229, cat: Other, desc: "GFXNEWS PHOTOSHOP Background & PSD Source"}
+ - {id: 230, cat: Other, desc: "GFXNEWS PHOTOSHOP Brushes & Gradient"}
+ - {id: 231, cat: Other, desc: "GFXNEWS PHOTOSHOP Toolkits, Papers & Objects"}
+ - {id: 225, cat: Other, desc: "GFXNEWS PLUGINS LINUX"}
+ - {id: 223, cat: Other, desc: "GFXNEWS PLUGINS MAC"}
+ - {id: 210, cat: Other, desc: "GFXNEWS PLUGINS WIN"}
+ - {id: 217, cat: Other, desc: "GFXNEWS SCRIPTS - WEB PROGRAMMING"}
+ - {id: 218, cat: Other, desc: "GFXNEWS TEMPLATES"}
+ - {id: 232, cat: Other, desc: "GFXNEWS TEXTURES"}
+ - {id: 219, cat: Other, desc: "GFXNEWS TUTORIALS"}
+ - {id: 221, cat: Other, desc: "GFXNEWS VIDEO PRODUCTION"}
- modes:
- search: [q]
+ modes:
+ search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "1"
- options:
- "1": "created"
- "10": "seeders"
- "7": "size"
- "2": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "2"
- options:
- "2": "desc"
- "1": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "1"
+ options:
+ "1": "created"
+ "10": "seeders"
+ "7": "size"
+ "2": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "2"
+ options:
+ "2": "desc"
+ "1": "asc"
- login:
- path: login.php
- method: post
- inputs:
- "login_username": "{{ .Config.username }}"
- "login_password": "{{ .Config.password }}"
- autologin: 1
- login: "Log in"
- redirect: "/"
- error:
- - selector: table.error
- message:
- selector: table.error tr td div.msg
- test:
- path: /
- selector: li a[href^="./login.php?logout=1"]
+login:
+ path: login.php
+ method: post
+ inputs:
+ "login_username": "{{ .Config.username }}"
+ "login_password": "{{ .Config.password }}"
+ autologin: 1
+ login: "Log in"
+ redirect: "/"
+ error:
+ - selector: table.error
+ message:
+ selector: table.error tr td div.msg
+ test:
+ path: /
+ selector: li a[href^="./login.php?logout=1"]
- search:
- paths:
- - path: tracker.php
- method: post
- inputs:
- $raw: "{{ if .Categories }}{{ range .Categories }}f[]={{.}}&{{end}}{{else}}f[]=-1{{end}}"
- prev_allw: 1
- prev_a: 0
- prev_dla: 0
- prev_dlc: 0
- prev_dld: 0
- prev_dlw: 0
- prev_my: 0
- prev_new: 0
- prev_sd: 0
- prev_da: 1
- prev_dc: 0
- prev_df: 1
- prev_ds: 0
- pre_tor_type: 0
- prev_date_from: ""
- prev_date_to: ""
- prev_hide_rereg: 0
- o: "{{ .Config.sort }}"
- s: "{{ .Config.type }}"
- df: 1
- da: 1
- nm: "{{ .Keywords }}"
- pn: ""
- submit: "Search"
+search:
+ paths:
+ - path: tracker.php
+ method: post
+ inputs:
+ $raw: "{{ if .Categories }}{{ range .Categories }}f[]={{.}}&{{end}}{{else}}f[]=-1{{end}}"
+ prev_allw: 1
+ prev_a: 0
+ prev_dla: 0
+ prev_dlc: 0
+ prev_dld: 0
+ prev_dlw: 0
+ prev_my: 0
+ prev_new: 0
+ prev_sd: 0
+ prev_da: 1
+ prev_dc: 0
+ prev_df: 1
+ prev_ds: 0
+ pre_tor_type: 0
+ prev_date_from: ""
+ prev_date_to: ""
+ prev_hide_rereg: 0
+ o: "{{ .Config.sort }}"
+ s: "{{ .Config.type }}"
+ df: 1
+ da: 1
+ nm: "{{ .Keywords }}"
+ pn: ""
+ submit: "Search"
- rows:
- selector: table.forumline > tbody > tr:has(a[href*="/dl.php?id="])
- dateheaders:
- selector: td[colspan="20"] > strong
- filters:
- - name: dateparse
- args: "01-02-2006"
+ rows:
+ selector: table.forumline > tbody > tr:has(a[href*="/dl.php?id="])
+ dateheaders:
+ selector: td[colspan="20"] > strong
+ filters:
+ - name: dateparse
+ args: "01-02-2006"
- fields:
- title:
- selector: td a[href*="/viewtopic.php?t="]
- details:
- selector: td a[href*="/viewtopic.php?t="]
- attribute: href
- download:
- selector: td a[href*="/dl.php?id="]
- attribute: href
- category:
- selector: td a[href*="/tracker.php?f="]
- attribute: href
- filters:
- - name: querystring
- args: f
- size:
- text: "0 B"
- size:
- optional: true
- selector: td:contains(\00a0GB)
- size:
- optional: true
- selector: td:contains(\00a0MB)
- size:
- optional: true
- selector: td:contains(\00a0kB)
- size:
- optional: true
- selector: td:contains(\00a0B)
- seeders:
- text: 0
- seeders:
- optional: true
- selector: td[title="Seeders"]
- leechers:
- text: 0
- leechers:
- optional: true
- selector: td[title="Leechers"]
- grabs:
- text: 0
- grabs:
- optional: true
- selector: td[title^="Replies:"]
- downloadvolumefactor:
- text: 1
- uploadvolumefactor:
- text: 1
+ fields:
+ title:
+ selector: td a[href*="/viewtopic.php?t="]
+ details:
+ selector: td a[href*="/viewtopic.php?t="]
+ attribute: href
+ download:
+ selector: td a[href*="/dl.php?id="]
+ attribute: href
+ category:
+ selector: td a[href*="/tracker.php?f="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: f
+ size:
+ text: "0 B"
+ size:
+ optional: true
+ selector: td:contains(\00a0GB)
+ size:
+ optional: true
+ selector: td:contains(\00a0MB)
+ size:
+ optional: true
+ selector: td:contains(\00a0kB)
+ size:
+ optional: true
+ selector: td:contains(\00a0B)
+ seeders:
+ text: 0
+ seeders:
+ optional: true
+ selector: td[title="Seeders"]
+ leechers:
+ text: 0
+ leechers:
+ optional: true
+ selector: td[title="Leechers"]
+ grabs:
+ text: 0
+ grabs:
+ optional: true
+ selector: td[title^="Replies:"]
+ downloadvolumefactor:
+ text: 1
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/backups.yml b/src/Jackett.Common/Definitions/backups.yml
index 12f724975..3748c5cf6 100644
--- a/src/Jackett.Common/Definitions/backups.yml
+++ b/src/Jackett.Common/Definitions/backups.yml
@@ -1,124 +1,124 @@
- site: backups
- name: Back-ups
- description: "Back-Ups is a Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - https://back-ups.me/
+site: backups
+name: Back-ups
+description: "Back-Ups is a Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - https://back-ups.me/
- caps:
- categorymappings:
- - {id: 12, cat: Console, desc: "XBOX360"}
- - {id: 9, cat: TV, desc: "TV-Boxsets"}
- - {id: 3, cat: PC, desc: "Apps"}
- - {id: 24, cat: PC, desc: "Apple"}
- - {id: 11, cat: TV, desc: "TV/x264"}
- - {id: 23, cat: Console, desc: "Visionary"}
- - {id: 14, cat: TV/Sport, desc: "WWE"}
- - {id: 26, cat: Console, desc: "Xbox"}
- - {id: 13, cat: Console, desc: "XBOX-JTAG"}
- - {id: 35, cat: Movies/Other, desc: "Anime"}
- - {id: 4, cat: Movies/BluRay, desc: "Blu-Ray"}
- - {id: 6, cat: Movies, desc: "Movies/XVID"}
- - {id: 10, cat: TV, desc: "TV/Xvid"}
- - {id: 29, cat: TV/Sport, desc: "Sport"}
- - {id: 40, cat: TV, desc: "Soaps"}
- - {id: 27, cat: Console, desc: "Roms and Emulators"}
- - {id: 30, cat: Console, desc: "Playstation"}
- - {id: 7, cat: Audio, desc: "Music"}
- - {id: 16, cat: TV/Documentary, desc: "Docu"}
- - {id: 5, cat: Books, desc: "EBooks"}
- - {id: 38, cat: Console, desc: "Hyperspin Bolt-on Edition"}
- - {id: 34, cat: TV, desc: "Kids"}
- - {id: 8, cat: PC/Games, desc: "PC Games"}
- - {id: 22, cat: PC/Games, desc: "CoinOPS"}
- - {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
- - {id: 32, cat: Movies, desc: "Movie Pack"}
- - {id: 31, cat: Console, desc: "Nintendo"}
+caps:
+ categorymappings:
+ - {id: 12, cat: Console, desc: "XBOX360"}
+ - {id: 9, cat: TV, desc: "TV-Boxsets"}
+ - {id: 3, cat: PC, desc: "Apps"}
+ - {id: 24, cat: PC, desc: "Apple"}
+ - {id: 11, cat: TV, desc: "TV/x264"}
+ - {id: 23, cat: Console, desc: "Visionary"}
+ - {id: 14, cat: TV/Sport, desc: "WWE"}
+ - {id: 26, cat: Console, desc: "Xbox"}
+ - {id: 13, cat: Console, desc: "XBOX-JTAG"}
+ - {id: 35, cat: Movies/Other, desc: "Anime"}
+ - {id: 4, cat: Movies/BluRay, desc: "Blu-Ray"}
+ - {id: 6, cat: Movies, desc: "Movies/XVID"}
+ - {id: 10, cat: TV, desc: "TV/Xvid"}
+ - {id: 29, cat: TV/Sport, desc: "Sport"}
+ - {id: 40, cat: TV, desc: "Soaps"}
+ - {id: 27, cat: Console, desc: "Roms and Emulators"}
+ - {id: 30, cat: Console, desc: "Playstation"}
+ - {id: 7, cat: Audio, desc: "Music"}
+ - {id: 16, cat: TV/Documentary, desc: "Docu"}
+ - {id: 5, cat: Books, desc: "EBooks"}
+ - {id: 38, cat: Console, desc: "Hyperspin Bolt-on Edition"}
+ - {id: 34, cat: TV, desc: "Kids"}
+ - {id: 8, cat: PC/Games, desc: "PC Games"}
+ - {id: 22, cat: PC/Games, desc: "CoinOPS"}
+ - {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
+ - {id: 32, cat: Movies, desc: "Movie Pack"}
+ - {id: 31, cat: Console, desc: "Nintendo"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: td:contains("remaining tries")
- test:
- path: browse.php
- selector: a[href*="/logout.php"]
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: td:contains("remaining tries")
+ test:
+ path: browse.php
+ selector: a[href*="/logout.php"]
- search:
- paths:
- - path: browse.php
- keywordsfilters:
- # remove words <= 3 characters and surrounding special characters
- - name: re_replace
- args: ["(?:^|\\s)[_\\+\\/\\.\\-\\(\\)]*[\\S]{0,3}[_\\+\\/\\.\\-\\(\\)]*(?:\\s|$)", " "]
- inputs:
- do: "search"
- keywords: "{{ .Keywords }}"
- search_type: "t_name"
- category: "0" # multi cat search not supported
- include_dead_torrents: "yes"
- rows:
- selector: table#sortabletable > tbody > tr:has(a[href*="/details.php?id="])
+search:
+ paths:
+ - path: browse.php
+ keywordsfilters:
+ # remove words <= 3 characters and surrounding special characters
+ - name: re_replace
+ args: ["(?:^|\\s)[_\\+\\/\\.\\-\\(\\)]*[\\S]{0,3}[_\\+\\/\\.\\-\\(\\)]*(?:\\s|$)", " "]
+ inputs:
+ do: "search"
+ keywords: "{{ .Keywords }}"
+ search_type: "t_name"
+ category: "0" # multi cat search not supported
+ include_dead_torrents: "yes"
+ rows:
+ selector: table#sortabletable > tbody > tr:has(a[href*="/details.php?id="])
+ filters:
+ - name: andmatch
+ args: 66
+ fields:
+ title:
+ selector: a[href*="/details.php?id="]
+ title:
+ optional: true
+ selector: div.tooltip-content > div
+ details:
+ selector: a[href*="/details.php?id="]
+ attribute: href
+ download:
+ selector: a[href*="/download.php?id="]
+ attribute: href
+ magnet:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
+ category:
+ selector: a[href*="/browse.php?category="]
+ attribute: href
filters:
- - name: andmatch
- args: 66
- fields:
- title:
- selector: a[href*="/details.php?id="]
- title:
- optional: true
- selector: div.tooltip-content > div
- details:
- selector: a[href*="/details.php?id="]
- attribute: href
- download:
- selector: a[href*="/download.php?id="]
- attribute: href
- magnet:
- selector: a[href^="magnet:?xt="]
- attribute: href
- category:
- selector: a[href*="/browse.php?category="]
- attribute: href
- filters:
- - name: querystring
- args: category
- size:
- selector: td:nth-child(5)
- grabs:
- selector: td:nth-child(6)
- seeders:
- selector: td:nth-child(7)
- leechers:
- selector: td:nth-child(8)
- date:
- selector: "td:nth-child(2) > div:has(span[style=\"float: right;\"])"
- remove: span
- filters:
- - name: append
- args: " +00:00"
- - name: dateparse
- args: "02-01-2006 15:04 -07:00"
- banner:
- optional: true
- selector: div.tooltip-content > img
- attribute: src
- downloadvolumefactor:
- case:
- img[alt^="Free Torrent "]: "0"
- img[alt^="Silver Torrent "]: "0.5"
- "*": "1"
- uploadvolumefactor:
- case:
- "*": "1"
+ - name: querystring
+ args: category
+ size:
+ selector: td:nth-child(5)
+ grabs:
+ selector: td:nth-child(6)
+ seeders:
+ selector: td:nth-child(7)
+ leechers:
+ selector: td:nth-child(8)
+ date:
+ selector: "td:nth-child(2) > div:has(span[style=\"float: right;\"])"
+ remove: span
+ filters:
+ - name: append
+ args: " +00:00"
+ - name: dateparse
+ args: "02-01-2006 15:04 -07:00"
+ banner:
+ optional: true
+ selector: div.tooltip-content > img
+ attribute: src
+ downloadvolumefactor:
+ case:
+ img[alt^="Free Torrent "]: "0"
+ img[alt^="Silver Torrent "]: "0.5"
+ "*": "1"
+ uploadvolumefactor:
+ case:
+ "*": "1"
diff --git a/src/Jackett.Common/Definitions/badasstorrents.yml b/src/Jackett.Common/Definitions/badasstorrents.yml
index 9c6308a20..eaab7c4c3 100644
--- a/src/Jackett.Common/Definitions/badasstorrents.yml
+++ b/src/Jackett.Common/Definitions/badasstorrents.yml
@@ -1,74 +1,74 @@
---
- site: badasstorrents
- name: Badass Torrents
- description: "Badass Torrents is a Public torrent site for MOVIES / TV / GENERAL"
- language: en-us
- type: public
- encoding: UTF-8
- links:
- - https://badasstorrents.com/
+site: badasstorrents
+name: Badass Torrents
+description: "Badass Torrents is a Public torrent site for MOVIES / TV / GENERAL"
+language: en-us
+type: public
+encoding: UTF-8
+links:
+ - https://badasstorrents.com/
- caps:
- categories:
- "Anime": TV/Anime
- "apps": PC
- "Books": Books
- "Games": PC/Games
- "Movies": Movies
- "Music": Audio
- "Other": Other
- "TV": TV
- "XXX": XXX
+caps:
+ categories:
+ "Anime": TV/Anime
+ "apps": PC
+ "Books": Books
+ "Games": PC/Games
+ "Movies": Movies
+ "Music": Audio
+ "Other": Other
+ "TV": TV
+ "XXX": XXX
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: downloadlink
- type: select
- label: Download link
- default: "magnet:?xt="
- options:
- "/download/" : ".torrent"
- "magnet:?xt=": "magnet"
+settings:
+ - name: downloadlink
+ type: select
+ label: Download link
+ default: "magnet:?xt="
+ options:
+ "/download/" : ".torrent"
+ "magnet:?xt=": "magnet"
- download:
- selector: a[href*="{{ .Config.downloadlink }}"]
- attribute: href
+download:
+ selector: a[href*="{{ .Config.downloadlink }}"]
+ attribute: href
- search:
- paths:
- - path: "torrents/search/{{ .Keywords }}"
+search:
+ paths:
+ - path: "torrents/search/{{ .Keywords }}"
- rows:
- selector: table.table-hover > tbody > tr:has(a[href*="/torrent/"])
+ rows:
+ selector: table.table-hover > tbody > tr:has(a[href*="/torrent/"])
- fields:
- category:
- selector: a[href*="/cat/"]
- title:
- selector: a[href*="/torrent/"]
- details:
- selector: a[href*="/torrent/"]
- attribute: href
- download:
- selector: a[href*="/torrent/"]
- attribute: href
- date:
- selector: td:nth-child(4)
- filters:
- - name: timeago
- size:
- selector: td:nth-child(5)
- seeders:
- selector: td:nth-child(6)
- leechers:
- selector: td:nth-child(7)
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ fields:
+ category:
+ selector: a[href*="/cat/"]
+ title:
+ selector: a[href*="/torrent/"]
+ details:
+ selector: a[href*="/torrent/"]
+ attribute: href
+ download:
+ selector: a[href*="/torrent/"]
+ attribute: href
+ date:
+ selector: td:nth-child(4)
+ filters:
+ - name: timeago
+ size:
+ selector: td:nth-child(5)
+ seeders:
+ selector: td:nth-child(6)
+ leechers:
+ selector: td:nth-child(7)
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/baibako.yml b/src/Jackett.Common/Definitions/baibako.yml
index 772c40748..620661aa6 100644
--- a/src/Jackett.Common/Definitions/baibako.yml
+++ b/src/Jackett.Common/Definitions/baibako.yml
@@ -1,170 +1,170 @@
---
- site: baibako
- name: BaibaKo
- description: "BaibaKo is a RUSSIAN Semi-Private Torrent Tracker for TV"
- language: ru-ru
- type: semi-private
- encoding: windows-1251
- links:
- - http://baibako.tv/ # site does not support https NET::ERR_CERT_AUTHORITY_INVALID
+site: baibako
+name: BaibaKo
+description: "BaibaKo is a RUSSIAN Semi-Private Torrent Tracker for TV"
+language: ru-ru
+type: semi-private
+encoding: windows-1251
+links:
+ - http://baibako.tv/ # site does not support https NET::ERR_CERT_AUTHORITY_INVALID
- caps:
- categorymappings:
- - {id: 1, cat: TV, desc: "TV"}
+caps:
+ categorymappings:
+ - {id: 1, cat: TV, desc: "TV"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: striprussian
- type: checkbox
- label: Strip Russian Letters
- default: false
- - name: sort
- type: select
- label: Sort requested from site
- default: "4"
- options:
- "4": "created"
- "7": "seeders"
- "5": "size"
- "1": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: striprussian
+ type: checkbox
+ label: Strip Russian Letters
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "4"
+ options:
+ "4": "created"
+ "7": "seeders"
+ "5": "size"
+ "1": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: div.login2
- test:
- path: /
- selector: a[href="logout.php"]
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: div.login2
+ test:
+ path: /
+ selector: a[href="logout.php"]
- search:
- paths:
- - path: browse.php
- inputs:
- search: "{{.Keywords }}"
- # 0 active 1 incldead 2 onlydead 3 gold 4 seedfree
- incldead: 1
- sort: "{{ .Config.sort }}"
- type: "{{ .Config.type }}"
- keywordsfilters:
- - name: re_replace
- args: ["[s|S](\\d+)[e|E][\\d]+", "/s$1"]
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ search: "{{.Keywords }}"
+ # 0 active 1 incldead 2 onlydead 3 gold 4 seedfree
+ incldead: 1
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
+ keywordsfilters:
+ - name: re_replace
+ args: ["[s|S](\\d+)[e|E][\\d]+", "/s$1"]
- rows:
- selector: table > tbody > tr:has(a[href^="details.php?id="])
+ rows:
+ selector: table > tbody > tr:has(a[href^="details.php?id="])
- fields:
- title:
- selector: a[href^="details.php?id="]
- filters:
- - name: re_replace
- args: ["[\\/]+", ""]
- - name: replace
- args: [" (Золото)", ""]
- - name: replace
- args: ["-Rip", "Rip"]
- - name: replace
- args: ["WEB-DL", "WEBDL"]
- - name: replace
- args: ["WEBRip", "WEBDL"]
- - name: re_replace
- args: ["WEBDLRip", "WEBDL"]
- - name: replace
- args: ["HD720p", "HD 720p"]
- - name: replace
- args: ["HDR720p", "HD 720p"]
- - name: replace
- args: ["HD1080p", "HD 1080p"]
- - name: replace
- args: ["HDR1080p", "HD 1080p"]
- - name: re_replace
- args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"]
- - name: append
- args: " - rus"
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- category:
- text: 1
- banner:
- selector: img[src^="/posters/"]
- attribute: src
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- date:
- selector: small
- filters:
- - name: replace
- args: ["Загружена: ", ""]
- - name: replace
- args: [" в ", " "]
- - name: replace
- args: ["января", "January"]
- - name: replace
- args: ["февраля", "February"]
- - name: replace
- args: ["марта ", "March"]
- - name: replace
- args: ["апреля", "April"]
- - name: replace
- args: ["мая", "May"]
- - name: replace
- args: ["июня", "June"]
- - name: replace
- args: ["июля", "July"]
- - name: replace
- args: ["августа", "August"]
- - name: replace
- args: ["сентября", "September"]
- - name: replace
- args: ["октября", "October"]
- - name: replace
- args: ["ноября", "November"]
- - name: replace
- args: ["декабря", "December"]
- - name: dateparse
- args: "2 January 2006 15:04:05"
- files:
- selector: td:nth-last-child(5)
- size:
- selector: td:nth-last-child(3)
- seeders:
- selector: td:nth-last-child(2)
- filters:
- - name: split
- args: ["|", 0]
- leechers:
- selector: td:nth-last-child(2)
- filters:
- - name: split
- args: ["|", 1]
- grabs:
- selector: td:nth-last-child(1)
- downloadvolumefactor:
- case:
- "a[href^=\"details.php?id=\"]:contains(\"(Золото)\")": 0
- "*": 1
- uploadvolumefactor:
- case:
- "*": 1
+ fields:
+ title:
+ selector: a[href^="details.php?id="]
+ filters:
+ - name: re_replace
+ args: ["[\\/]+", ""]
+ - name: replace
+ args: [" (Золото)", ""]
+ - name: replace
+ args: ["-Rip", "Rip"]
+ - name: replace
+ args: ["WEB-DL", "WEBDL"]
+ - name: replace
+ args: ["WEBRip", "WEBDL"]
+ - name: re_replace
+ args: ["WEBDLRip", "WEBDL"]
+ - name: replace
+ args: ["HD720p", "HD 720p"]
+ - name: replace
+ args: ["HDR720p", "HD 720p"]
+ - name: replace
+ args: ["HD1080p", "HD 1080p"]
+ - name: replace
+ args: ["HDR1080p", "HD 1080p"]
+ - name: re_replace
+ args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"]
+ - name: append
+ args: " - rus"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ category:
+ text: 1
+ banner:
+ selector: img[src^="/posters/"]
+ attribute: src
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ date:
+ selector: small
+ filters:
+ - name: replace
+ args: ["Загружена: ", ""]
+ - name: replace
+ args: [" в ", " "]
+ - name: replace
+ args: ["января", "January"]
+ - name: replace
+ args: ["февраля", "February"]
+ - name: replace
+ args: ["марта ", "March"]
+ - name: replace
+ args: ["апреля", "April"]
+ - name: replace
+ args: ["мая", "May"]
+ - name: replace
+ args: ["июня", "June"]
+ - name: replace
+ args: ["июля", "July"]
+ - name: replace
+ args: ["августа", "August"]
+ - name: replace
+ args: ["сентября", "September"]
+ - name: replace
+ args: ["октября", "October"]
+ - name: replace
+ args: ["ноября", "November"]
+ - name: replace
+ args: ["декабря", "December"]
+ - name: dateparse
+ args: "2 January 2006 15:04:05"
+ files:
+ selector: td:nth-last-child(5)
+ size:
+ selector: td:nth-last-child(3)
+ seeders:
+ selector: td:nth-last-child(2)
+ filters:
+ - name: split
+ args: ["|", 0]
+ leechers:
+ selector: td:nth-last-child(2)
+ filters:
+ - name: split
+ args: ["|", 1]
+ grabs:
+ selector: td:nth-last-child(1)
+ downloadvolumefactor:
+ case:
+ "a[href^=\"details.php?id=\"]:contains(\"(Золото)\")": 0
+ "*": 1
+ uploadvolumefactor:
+ case:
+ "*": 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/beitai.yml b/src/Jackett.Common/Definitions/beitai.yml
index e0e24845a..2feb00ac1 100644
--- a/src/Jackett.Common/Definitions/beitai.yml
+++ b/src/Jackett.Common/Definitions/beitai.yml
@@ -1,152 +1,152 @@
---
- site: beitai
- name: BeiTai
- description: "BeiTai is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
- language: zh-cn
- type: private
- encoding: UTF-8
- links:
- - https://www.beitai.pt/
+site: beitai
+name: BeiTai
+description: "BeiTai is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
+language: zh-cn
+type: private
+encoding: UTF-8
+links:
+ - https://www.beitai.pt/
- caps:
- categorymappings:
- - {id: 401, cat: Movies, desc: "Movies/电影"}
- - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
- - {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
- - {id: 402, cat: TV, desc: "TV Series/剧集"}
- - {id: 403, cat: TV, desc: "TV Shows/综艺"}
- - {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐MV"}
- - {id: 407, cat: TV/Sport, desc: "Sports/运体"}
- - {id: 409, cat: Other, desc: "Misc/其他"}
- - {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "Movies/电影"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
+ - {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
+ - {id: 402, cat: TV, desc: "TV Series/剧集"}
+ - {id: 403, cat: TV, desc: "TV Shows/综艺"}
+ - {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐MV"}
+ - {id: 407, cat: TV/Sport, desc: "Sports/运体"}
+ - {id: 409, cat: Other, desc: "Misc/其他"}
+ - {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "4"
- options:
- "4": "created"
- "7": "seeders"
- "5": "size"
- "1": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "4"
+ options:
+ "4": "created"
+ "7": "seeders"
+ "5": "size"
+ "1": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: td.embedded:has(h2:contains("登录失败"))
- test:
- path: index.php
- selector: a[href="logout.php"]
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: td.embedded:has(h2:contains("登录失败"))
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
- search:
- paths:
- - path: torrents.php
- inputs:
- $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
- search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- # 0 incldead 1 active 2 dead
- incldead: 0
- # 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x50% 7 30%
- spstate: 0
- # 0 title 1 descr 3 uploaded 4 imdburl (searching imdburl does not work with tt1234567, but descr is good)
- search_area: "{{ if .Query.IMDBID }}1{{else}}0{{end}}"
- # 0 AND 1 OR 2 exact
- search_mode: 0
- sort: "{{ .Config.sort }}"
- type: "{{ .Config.type }}"
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ # 0 incldead 1 active 2 dead
+ incldead: 0
+ # 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x50% 7 30%
+ spstate: 0
+ # 0 title 1 descr 3 uploaded 4 imdburl (searching imdburl does not work with tt1234567, but descr is good)
+ search_area: "{{ if .Query.IMDBID }}1{{else}}0{{end}}"
+ # 0 AND 1 OR 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
- rows:
- selector: table.torrents > tbody > tr:has(table.torrentname)
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname)
- fields:
- title:
- selector: a[href^="details.php?id="]
- title:
- optional: true
- selector: a[title][href^="details.php?id="]
- attribute: title
- category:
- selector: a[href^="?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- imdb:
- optional: true
- selector: div.imdb_100 > a
- attribute: href
- date:
- # time type: time elapsed (default)
- selector: td:nth-child(4) > span[title]
- attribute: title
- optional: true
- filters:
- - name: append
- args: " +08:00"
- - name: dateparse
- args: "2006-01-02 15:04:05 -07:00"
- date:
- # time added
- selector: td:nth-child(4):not(:has(span))
- optional: true
- filters:
- - name: append
- args: " +08:00"
- - name: dateparse
- args: "2006-01-0215:04:05 -07:00"
- size:
- selector: td:nth-child(5)
- seeders:
- selector: td:nth-child(6)
- leechers:
- selector: td:nth-child(7)
- grabs:
- selector: td:nth-child(8)
- downloadvolumefactor:
- case:
- img.pro_free: 0
- img.pro_free2up: 0
- img.pro_50pctdown: 0.5
- img.pro_50pctdown2up: 0.5
- img.pro_30pctdown: 0.3
- "*": 1
- uploadvolumefactor:
- case:
- img.pro_50pctdown2up: 2
- img.pro_free2up: 2
- img.pro_2up: 2
- "*": 1
- description:
- selector: td:nth-child(2)
- remove: a, img
+ fields:
+ title:
+ selector: a[href^="details.php?id="]
+ title:
+ optional: true
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ imdb:
+ optional: true
+ selector: div.imdb_100 > a
+ attribute: href
+ date:
+ # time type: time elapsed (default)
+ selector: td:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00"
+ - name: dateparse
+ args: "2006-01-02 15:04:05 -07:00"
+ date:
+ # time added
+ selector: td:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00"
+ - name: dateparse
+ args: "2006-01-0215:04:05 -07:00"
+ size:
+ selector: td:nth-child(5)
+ seeders:
+ selector: td:nth-child(6)
+ leechers:
+ selector: td:nth-child(7)
+ grabs:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ description:
+ selector: td:nth-child(2)
+ remove: a, img
# NexusPHP Standard v1.5 Beta 4
diff --git a/src/Jackett.Common/Definitions/beyond-hd-oneurl.yml b/src/Jackett.Common/Definitions/beyond-hd-oneurl.yml
index 96872e41c..f46eaf827 100644
--- a/src/Jackett.Common/Definitions/beyond-hd-oneurl.yml
+++ b/src/Jackett.Common/Definitions/beyond-hd-oneurl.yml
@@ -1,118 +1,118 @@
---
- site: beyond-hd-oneurl
- name: Beyond-HD (OneURL)
- description: "Without BeyondHD, your HDTV is just a TV"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - https://beyond-hd.me/
+site: beyond-hd-oneurl
+name: Beyond-HD (OneURL)
+description: "Without BeyondHD, your HDTV is just a TV"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - https://beyond-hd.me/
- settings:
- - name: oneurl
- type: text
- label: OneURL
- - name: sort
- type: select
- label: Sort requested from site
- default: "created_at"
- options:
- "created_at": "created"
- "seeders": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: oneurl
+ type: text
+ label: OneURL
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "created_at"
+ options:
+ "created_at": "created"
+ "seeders": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- caps:
- categorymappings:
- - {id: 1, cat: Movies, desc: "Movies"}
- - {id: 2, cat: TV, desc: "TV"}
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 2, cat: TV, desc: "TV"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
- login:
- method: oneurl
- inputs:
- oneurl: "{{ .Config.oneurl }}"
- test:
- path: torrents
+login:
+ method: oneurl
+ inputs:
+ oneurl: "{{ .Config.oneurl }}"
+ test:
+ path: torrents
- search:
- paths:
- - path: torrents
- inputs:
- $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
- search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- description: ""
- uploader: ""
- imdb: "{{ .Query.IMDBIDShort }}"
- tmdb: ""
- sorting: "{{ .Config.sort }}"
- direction: "{{ .Config.type }}"
- qty: 100
+search:
+ paths:
+ - path: torrents
+ inputs:
+ $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ description: ""
+ uploader: ""
+ imdb: "{{ .Query.IMDBIDShort }}"
+ tmdb: ""
+ sorting: "{{ .Config.sort }}"
+ direction: "{{ .Config.type }}"
+ qty: 100
- rows:
- selector: table > tbody > tr
- after: 1
+ rows:
+ selector: table > tbody > tr
+ after: 1
- fields:
- _category:
- selector: a[href*="/categories/"]
- optional: true
- attribute: href
- filters:
- - name: regexp
- args: "/categories/.*?\\.(\\d+)"
- category:
- text: "{{if .Result._category}}{{.Result._category}}{{else}}1{{end}}"
- title:
- selector: a.torrent-name
- download:
- selector: a[href*="/download/"]
- attribute: href
- details:
- selector: a.torrent-name
- attribute: href
- banner:
- optional: true
- selector: div.torrent-poster img
- attribute: src
- filters:
- - name: replace
- args: ["/img/person.png", ""]
- date:
- selector: td:not(a[href$="/history"]) span.text-orange
- filters:
- - name: timeago
- size:
- selector: td span.text-blue
- seeders:
- selector: a[href$="/peers"] span.text-green
- leechers:
- selector: a[href$="/peers"] span.text-red
- grabs:
- selector: a[href$="/history"]
- imdb:
- optional: true
- selector: a[href*="www.imdb.com/title/tt"]
- attribute: href
- downloadvolumefactor:
- case:
- i[data-original-title="100% Free"]: 0
- i[data-original-title="100% Free (Limited UL)"]: 0
- i[data-original-title="25% Promo"]: 0.75
- i[data-original-title="50% Promo"]: 0.5
- i[data-original-title="75% Promo"]: 0.25
- "*": 1
- uploadvolumefactor:
- text: 1
+ fields:
+ _category:
+ selector: a[href*="/categories/"]
+ optional: true
+ attribute: href
+ filters:
+ - name: regexp
+ args: "/categories/.*?\\.(\\d+)"
+ category:
+ text: "{{if .Result._category}}{{.Result._category}}{{else}}1{{end}}"
+ title:
+ selector: a.torrent-name
+ download:
+ selector: a[href*="/download/"]
+ attribute: href
+ details:
+ selector: a.torrent-name
+ attribute: href
+ banner:
+ optional: true
+ selector: div.torrent-poster img
+ attribute: src
+ filters:
+ - name: replace
+ args: ["/img/person.png", ""]
+ date:
+ selector: td:not(a[href$="/history"]) span.text-orange
+ filters:
+ - name: timeago
+ size:
+ selector: td span.text-blue
+ seeders:
+ selector: a[href$="/peers"] span.text-green
+ leechers:
+ selector: a[href$="/peers"] span.text-red
+ grabs:
+ selector: a[href$="/history"]
+ imdb:
+ optional: true
+ selector: a[href*="www.imdb.com/title/tt"]
+ attribute: href
+ downloadvolumefactor:
+ case:
+ i[data-original-title="100% Free"]: 0
+ i[data-original-title="100% Free (Limited UL)"]: 0
+ i[data-original-title="25% Promo"]: 0.75
+ i[data-original-title="50% Promo"]: 0.5
+ i[data-original-title="75% Promo"]: 0.25
+ "*": 1
+ uploadvolumefactor:
+ text: 1
# UNIT3D
diff --git a/src/Jackett.Common/Definitions/beyond-hd.yml b/src/Jackett.Common/Definitions/beyond-hd.yml
index 731bc2a68..2f9e1ee03 100644
--- a/src/Jackett.Common/Definitions/beyond-hd.yml
+++ b/src/Jackett.Common/Definitions/beyond-hd.yml
@@ -1,138 +1,138 @@
---
- site: beyond-hd
- name: Beyond-HD
- description: "Without BeyondHD, your HDTV is just a TV"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - https://beyond-hd.me/
+site: beyond-hd
+name: Beyond-HD
+description: "Without BeyondHD, your HDTV is just a TV"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - https://beyond-hd.me/
- caps:
- categorymappings:
- - {id: 1, cat: Movies, desc: "Movies"}
- - {id: 2, cat: TV, desc: "TV"}
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 2, cat: TV, desc: "TV"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "created_at"
- options:
- "created_at": "created"
- "seeders": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "created_at"
+ options:
+ "created_at": "created"
+ "seeders": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: login
- method: form
- form: form[action$="/login"]
- captcha:
- type: image
- selector: img[src^="/captcha?_CAPTCHA"]
- input: key
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- remember: on
- selectorinputs:
- _token:
- selector: input[name="_token"]
- attribute: value
- error:
- - selector: form[action$="/login"] .text-red
- - selector: script:contains("toastr.error")
- message:
- selector: script:contains("toastr.error")
+login:
+ path: login
+ method: form
+ form: form[action$="/login"]
+ captcha:
+ type: image
+ selector: img[src^="/captcha?_CAPTCHA"]
+ input: key
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ remember: on
+ selectorinputs:
+ _token:
+ selector: input[name="_token"]
+ attribute: value
+ error:
+ - selector: form[action$="/login"] .text-red
+ - selector: script:contains("toastr.error")
+ message:
+ selector: script:contains("toastr.error")
# test:
# path: torrents
- search:
- paths:
- - path: torrents
- inputs:
- $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
- search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- description: ""
- uploader: ""
- imdb: "{{ .Query.IMDBIDShort }}"
- tmdb: ""
- sorting: "{{ .Config.sort }}"
- direction: "{{ .Config.type }}"
- qty: 100
+search:
+ paths:
+ - path: torrents
+ inputs:
+ $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ description: ""
+ uploader: ""
+ imdb: "{{ .Query.IMDBIDShort }}"
+ tmdb: ""
+ sorting: "{{ .Config.sort }}"
+ direction: "{{ .Config.type }}"
+ qty: 100
- rows:
- selector: table > tbody > tr
- after: 1
+ rows:
+ selector: table > tbody > tr
+ after: 1
- fields:
- _category:
- selector: a[href*="/categories/"]
- optional: true
- attribute: href
- filters:
- - name: regexp
- args: "/categories/.*?\\.(\\d+)"
- category:
- text: "{{if .Result._category}}{{.Result._category}}{{else}}1{{end}}"
- title:
- selector: a.torrent-name
- download:
- selector: a[href*="/download/"]
- attribute: href
- details:
- selector: a.torrent-name
- attribute: href
- banner:
- optional: true
- selector: div.torrent-poster img
- attribute: src
- filters:
- - name: replace
- args: ["/img/person.png", ""]
- date:
- selector: td:not(a[href$="/history"]) span.text-orange
- filters:
- - name: timeago
- size:
- selector: td span.text-blue
- seeders:
- selector: a[href$="/peers"] span.text-green
- leechers:
- selector: a[href$="/peers"] span.text-red
- grabs:
- selector: a[href$="/history"]
- imdb:
- optional: true
- selector: a[href*="www.imdb.com/title/tt"]
- attribute: href
- downloadvolumefactor:
- case:
- i[data-original-title="100% Free"]: 0
- i[data-original-title="100% Free (Limited UL)"]: 0
- i[data-original-title="25% Promo"]: 0.75
- i[data-original-title="50% Promo"]: 0.5
- i[data-original-title="75% Promo"]: 0.25
- "*": 1
- uploadvolumefactor:
- text: 1
+ fields:
+ _category:
+ selector: a[href*="/categories/"]
+ optional: true
+ attribute: href
+ filters:
+ - name: regexp
+ args: "/categories/.*?\\.(\\d+)"
+ category:
+ text: "{{if .Result._category}}{{.Result._category}}{{else}}1{{end}}"
+ title:
+ selector: a.torrent-name
+ download:
+ selector: a[href*="/download/"]
+ attribute: href
+ details:
+ selector: a.torrent-name
+ attribute: href
+ banner:
+ optional: true
+ selector: div.torrent-poster img
+ attribute: src
+ filters:
+ - name: replace
+ args: ["/img/person.png", ""]
+ date:
+ selector: td:not(a[href$="/history"]) span.text-orange
+ filters:
+ - name: timeago
+ size:
+ selector: td span.text-blue
+ seeders:
+ selector: a[href$="/peers"] span.text-green
+ leechers:
+ selector: a[href$="/peers"] span.text-red
+ grabs:
+ selector: a[href$="/history"]
+ imdb:
+ optional: true
+ selector: a[href*="www.imdb.com/title/tt"]
+ attribute: href
+ downloadvolumefactor:
+ case:
+ i[data-original-title="100% Free"]: 0
+ i[data-original-title="100% Free (Limited UL)"]: 0
+ i[data-original-title="25% Promo"]: 0.75
+ i[data-original-title="50% Promo"]: 0.5
+ i[data-original-title="75% Promo"]: 0.25
+ "*": 1
+ uploadvolumefactor:
+ text: 1
# UNIT3D
diff --git a/src/Jackett.Common/Definitions/bibliotik.yml b/src/Jackett.Common/Definitions/bibliotik.yml
index e6147dbf5..9e8d63f0c 100644
--- a/src/Jackett.Common/Definitions/bibliotik.yml
+++ b/src/Jackett.Common/Definitions/bibliotik.yml
@@ -1,143 +1,143 @@
---
- site: bibliotik
- name: Bibliotik
- description: "Bibliotik is a private site for eBooks and audiobooks"
- language: en-US
- type: private
- encoding: UTF-8
- links:
- - https://bibliotik.me/
+site: bibliotik
+name: Bibliotik
+description: "Bibliotik is a private site for eBooks and audiobooks"
+language: en-US
+type: private
+encoding: UTF-8
+links:
+ - https://bibliotik.me/
- caps:
- categorymappings:
- - { id: 1, cat: PC, desc: "Applications" }
- - { id: 3, cat: Audio/Audiobook, desc: "Audiobooks" }
- - { id: 4, cat: Books/Comics, desc: "Comics" }
- - { id: 5, cat: Books/Ebook, desc: "eBooks" }
- - { id: 7, cat: Books/Magazines, desc: "Magazines" }
+caps:
+ categorymappings:
+ - { id: 1, cat: PC, desc: "Applications" }
+ - { id: 3, cat: Audio/Audiobook, desc: "Audiobooks" }
+ - { id: 4, cat: Books/Comics, desc: "Comics" }
+ - { id: 5, cat: Books/Ebook, desc: "eBooks" }
+ - { id: 7, cat: Books/Magazines, desc: "Magazines" }
- modes:
- search: [q]
+ modes:
+ search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: orderby
- type: select
- label: Sort requested from site
- default: "relevance"
- options:
- "relevance": "relevance"
- "year": "year"
- "size": "size"
- "duration": "duration"
- "added": "added"
- "leechers": "leechers"
- "seeders": "seeders"
- "snatches": "snatches"
- "comments": "comments"
- "files": "files"
- - name: order
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: orderby
+ type: select
+ label: Sort requested from site
+ default: "relevance"
+ options:
+ "relevance": "relevance"
+ "year": "year"
+ "size": "size"
+ "duration": "duration"
+ "added": "added"
+ "leechers": "leechers"
+ "seeders": "seeders"
+ "snatches": "snatches"
+ "comments": "comments"
+ "files": "files"
+ - name: order
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: /
- method: form
- form: form#loginform
- submitpath: /
- inputs:
- action: login
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- keeploggedin: 1
- error:
- - selector: center:first-of-type
- test:
- path: torrents/
- selector: div#pre_header
+login:
+ path: /
+ method: form
+ form: form#loginform
+ submitpath: /
+ inputs:
+ action: login
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ keeploggedin: 1
+ error:
+ - selector: center:first-of-type
+ test:
+ path: torrents/
+ selector: div#pre_header
- search:
- paths:
- - path: torrents/
- inputs:
- search: "{{ .Keywords }}"
- $raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
- orderby: "{{ .Config.orderby }}"
- order: "{{ .Config.order }}"
+search:
+ paths:
+ - path: torrents/
+ inputs:
+ search: "{{ .Keywords }}"
+ $raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
+ orderby: "{{ .Config.orderby }}"
+ order: "{{ .Config.order }}"
- rows:
- selector: table#torrents_table > tbody > tr:has(.title)
+ rows:
+ selector: table#torrents_table > tbody > tr:has(.title)
- fields:
- category:
- selector: td:first-child
- case:
- div[title="Applications"]: 1
- div[title="Audiobooks"]: 3
- div[title="Comics"]: 4
- div[title="Ebooks"]: 5
- div[title="Magazines"]: 7
- _year:
- selector: .torYear
- optional: true
- _filetype:
- selector: .torFormat
- optional: true
- title:
- selector: .title a
- filters:
- - name: append
- args: "{{ if .Result._year }} {{ .Result._year }}{{else}}{{end}}{{ if .Result._filetype }} {{ .Result._filetype }}{{else}}{{end}}"
- details:
- selector: .title a
- attribute: href
- date:
- optional: true
- selector: .t_files_size_added time
- filters:
- - name: timeago
- download:
- selector: a[title="Download"]
- attribute: href
+ fields:
+ category:
+ selector: td:first-child
+ case:
+ div[title="Applications"]: 1
+ div[title="Audiobooks"]: 3
+ div[title="Comics"]: 4
+ div[title="Ebooks"]: 5
+ div[title="Magazines"]: 7
+ _year:
+ selector: .torYear
+ optional: true
+ _filetype:
+ selector: .torFormat
+ optional: true
+ title:
+ selector: .title a
+ filters:
+ - name: append
+ args: "{{ if .Result._year }} {{ .Result._year }}{{else}}{{end}}{{ if .Result._filetype }} {{ .Result._filetype }}{{else}}{{end}}"
+ details:
+ selector: .title a
+ attribute: href
+ date:
+ optional: true
+ selector: .t_files_size_added time
+ filters:
+ - name: timeago
+ download:
+ selector: a[title="Download"]
+ attribute: href
# files:
# selector: .t_files_size_added
# filters:
# - name: regexp
# args: "^\\s*(\\d+)\\s*file"
- size:
- selector: .t_files_size_added
- filters:
- - name: split
- args: [",", 1]
- - name: trim
- seeders:
- text: 0
- seeders:
- optional: true
- selector: .seeders
- leechers:
- text: 0
- leechers:
- optional: true
- selector: .leechers
- grabs:
- text: 0
- grabs:
- optional: true
- selector: .snatches
- downloadvolumefactor:
- case:
- "*": 1
- uploadvolumefactor:
- case:
- "*": 1
+ size:
+ selector: .t_files_size_added
+ filters:
+ - name: split
+ args: [",", 1]
+ - name: trim
+ seeders:
+ text: 0
+ seeders:
+ optional: true
+ selector: .seeders
+ leechers:
+ text: 0
+ leechers:
+ optional: true
+ selector: .leechers
+ grabs:
+ text: 0
+ grabs:
+ optional: true
+ selector: .snatches
+ downloadvolumefactor:
+ case:
+ "*": 1
+ uploadvolumefactor:
+ case:
+ "*": 1
# engine tbc
diff --git a/src/Jackett.Common/Definitions/bigfangroup.yml b/src/Jackett.Common/Definitions/bigfangroup.yml
index 675132275..e1b825fda 100644
--- a/src/Jackett.Common/Definitions/bigfangroup.yml
+++ b/src/Jackett.Common/Definitions/bigfangroup.yml
@@ -1,192 +1,192 @@
---
- site: bigfangroup
- name: BigFANGroup
- description: "BigFANGroup is a RUSSIAN Public Torrent Tracker for MOVIES / TV"
- language: ru-ru
- type: public
- encoding: windows-1251
- links:
- - https://bigfangroup.org/
- - https://www.freebfg.org/
+site: bigfangroup
+name: BigFANGroup
+description: "BigFANGroup is a RUSSIAN Public Torrent Tracker for MOVIES / TV"
+language: ru-ru
+type: public
+encoding: windows-1251
+links:
+ - https://bigfangroup.org/
+ - https://www.freebfg.org/
- caps:
- categorymappings:
- # Movies
- - {id: 13, cat: Movies, desc: "Боевик"}
- - {id: 18, cat: Movies, desc: "Катастрофа"}
- - {id: 19, cat: Movies, desc: "Мелодрама"}
- - {id: 21, cat: Movies, desc: "Драма"}
- - {id: 22, cat: Movies, desc: "Триллер"}
- - {id: 23, cat: Movies, desc: "Фантастика"}
- - {id: 24, cat: Movies, desc: "Комедия"}
- - {id: 26, cat: Movies, desc: "Ужасы"}
- - {id: 27, cat: Movies, desc: "Приключения"}
- - {id: 28, cat: Movies, desc: "Исторический"}
- - {id: 29, cat: Movies/Foreign, desc: "Наше кино"}
- - {id: 30, cat: Movies, desc: "Фэнтази"}
- - {id: 31, cat: Movies, desc: "Мистика"}
- - {id: 33, cat: Movies, desc: "Военный"}
- - {id: 36, cat: Movies, desc: "Криминал"}
- - {id: 39, cat: Movies, desc: "Детектив"}
- - {id: 47, cat: Movies, desc: "Сказки"}
- - {id: 48, cat: Movies, desc: "Вестерн"}
- - {id: 52, cat: Movies, desc: "Биография"}
- - {id: 53, cat: Movies, desc: "Классика"}
- - {id: 14, cat: Movies/HD, desc: "HDTV"}
- - {id: 15, cat: Movies/DVD, desc: "DVD"}
- - {id: 51, cat: Movies/3D, desc: "3D"}
- - {id: 20, cat: Movies, desc: "Мультфильм"}
- # Audio
- - {id: 35, cat: Audio/Audiobook, desc: "Аудио-книги"}
- - {id: 43, cat: Audio/Foreign, desc: "Русская музыка"}
- - {id: 44, cat: Audio, desc: "Зарубежная музыка"}
- - {id: 45, cat: Audio/Video, desc: "Видеоклипы"}
- - {id: 46, cat: Audio, desc: "Муз. сборники"}
- - {id: 54, cat: Audio, desc: "Классическая музыка"}
- - {id: 55, cat: Audio, desc: "Саундтрек"}
- # TV
- - {id: 11, cat: TV, desc: "Сериалы"}
- - {id: 25, cat: TV, desc: "ТВ-шоу"}
- - {id: 37, cat: TV/Sport, desc: "Спорт"}
- - {id: 50, cat: TV, desc: "Новости"}
- - {id: 49, cat: TV, desc: "Научно-популярное"}
- - {id: 32, cat: TV/Documentary, desc: "Документальный"}
- - {id: 12, cat: TV, desc: "Анимация"}
- # PC
- - {id: 1, cat: PC, desc: "Софт"}
- - {id: 5, cat: PC/Games, desc: "Игры"}
- # Other
- - {id: 38, cat: Books, desc: "Книги и журналы"}
- - {id: 42, cat: XXX, desc: "Эротика"}
- - {id: 9, cat: Other, desc: "Разное"}
+caps:
+ categorymappings:
+ # Movies
+ - {id: 13, cat: Movies, desc: "Боевик"}
+ - {id: 18, cat: Movies, desc: "Катастрофа"}
+ - {id: 19, cat: Movies, desc: "Мелодрама"}
+ - {id: 21, cat: Movies, desc: "Драма"}
+ - {id: 22, cat: Movies, desc: "Триллер"}
+ - {id: 23, cat: Movies, desc: "Фантастика"}
+ - {id: 24, cat: Movies, desc: "Комедия"}
+ - {id: 26, cat: Movies, desc: "Ужасы"}
+ - {id: 27, cat: Movies, desc: "Приключения"}
+ - {id: 28, cat: Movies, desc: "Исторический"}
+ - {id: 29, cat: Movies/Foreign, desc: "Наше кино"}
+ - {id: 30, cat: Movies, desc: "Фэнтази"}
+ - {id: 31, cat: Movies, desc: "Мистика"}
+ - {id: 33, cat: Movies, desc: "Военный"}
+ - {id: 36, cat: Movies, desc: "Криминал"}
+ - {id: 39, cat: Movies, desc: "Детектив"}
+ - {id: 47, cat: Movies, desc: "Сказки"}
+ - {id: 48, cat: Movies, desc: "Вестерн"}
+ - {id: 52, cat: Movies, desc: "Биография"}
+ - {id: 53, cat: Movies, desc: "Классика"}
+ - {id: 14, cat: Movies/HD, desc: "HDTV"}
+ - {id: 15, cat: Movies/DVD, desc: "DVD"}
+ - {id: 51, cat: Movies/3D, desc: "3D"}
+ - {id: 20, cat: Movies, desc: "Мультфильм"}
+ # Audio
+ - {id: 35, cat: Audio/Audiobook, desc: "Аудио-книги"}
+ - {id: 43, cat: Audio/Foreign, desc: "Русская музыка"}
+ - {id: 44, cat: Audio, desc: "Зарубежная музыка"}
+ - {id: 45, cat: Audio/Video, desc: "Видеоклипы"}
+ - {id: 46, cat: Audio, desc: "Муз. сборники"}
+ - {id: 54, cat: Audio, desc: "Классическая музыка"}
+ - {id: 55, cat: Audio, desc: "Саундтрек"}
+ # TV
+ - {id: 11, cat: TV, desc: "Сериалы"}
+ - {id: 25, cat: TV, desc: "ТВ-шоу"}
+ - {id: 37, cat: TV/Sport, desc: "Спорт"}
+ - {id: 50, cat: TV, desc: "Новости"}
+ - {id: 49, cat: TV, desc: "Научно-популярное"}
+ - {id: 32, cat: TV/Documentary, desc: "Документальный"}
+ - {id: 12, cat: TV, desc: "Анимация"}
+ # PC
+ - {id: 1, cat: PC, desc: "Софт"}
+ - {id: 5, cat: PC/Games, desc: "Игры"}
+ # Other
+ - {id: 38, cat: Books, desc: "Книги и журналы"}
+ - {id: 42, cat: XXX, desc: "Эротика"}
+ - {id: 9, cat: Other, desc: "Разное"}
- modes:
- search: [q]
- tv-search: [q]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: striprussian
- type: checkbox
- label: Strip Russian Letters
- default: false
- - name: sort
- type: select
- label: Sort requested from site
- default: "added"
- options:
- "added": "created"
- "seed": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: striprussian
+ type: checkbox
+ label: Strip Russian Letters
+ default: false
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "added"
+ options:
+ "added": "created"
+ "seed": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- search:
- # https://bigfangroup.org/browse.php?search=black+lightning&cat=0&incldead=0&year=0&format=0
- #
- paths:
- - path: browse.php
- inputs:
- search: "{{ .Keywords }}"
- cat: 0
- # 0 active 1 incldead 2 onlydead 3 gold 4 noseed 5 silver 7 BFG
- incldead: 1
- ajax: 1
- year: 0
- format: 0
- s: "{{ .Config.sort }}"
- d: "{{ .Config.type }}"
+search:
+ # https://bigfangroup.org/browse.php?search=black+lightning&cat=0&incldead=0&year=0&format=0
+ #
+ paths:
+ - path: browse.php
+ inputs:
+ search: "{{ .Keywords }}"
+ cat: 0
+ # 0 active 1 incldead 2 onlydead 3 gold 4 noseed 5 silver 7 BFG
+ incldead: 1
+ ajax: 1
+ year: 0
+ format: 0
+ s: "{{ .Config.sort }}"
+ d: "{{ .Config.type }}"
- rows:
- selector: table > tbody#highlighted > tr:has(a[href^="browse.php?cat="])
+ rows:
+ selector: table > tbody#highlighted > tr:has(a[href^="browse.php?cat="])
- fields:
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- title:
- selector: a[href^="details.php?id="]
- filters:
- # normalize to SXXEYY format
- - name: re_replace
- args: ["[\\.\\,\\:\\-\\/\\|]", " "]
- - name: re_replace
- args: ["(.*)[CСcс]езон\\s+(\\d+).+[CСcс]ери[ия]\\s+(\\d+)\\s+(\\d+)\\s+из\\s+\\d+(.*)", "$1 S$2E$3-$4 rus $5"]
- - name: re_replace
- args: ["(.*)[CСcс]езон\\s+(\\d+).+[CСcс]ери[ия]\\s+(\\d+)\\s+из\\s+\\d+(.*)", "$1 S$2E$3 rus $4"]
- - name: re_replace
- args: ["(.*)[CСcс]езон\\s+(\\d+)(.*)", "$1 S$2 rus $3"]
- - name: re_replace
- args: ["(.*)[CСcс]]ери[ия]\\s+(\\d+)(.*)", "$1 E$2 rus $3"]
- - name: re_replace
- args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"]
- - name: replace
- args: ["WEBRip", "WEBDL"]
- - name: replace
- args: ["WEB DL", "WEBDL"]
- - name: replace
- args: ["WEBDLRip", "WEBDL"]
- - name: replace
- args: ["HDTVRip", "HDTV"]
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="details.php?id="]
- attribute: href
- filters:
- - name: replace
- args: ["details", "download"]
- size:
- selector: td:nth-child(6)
- seeders:
- selector: td:nth-child(7)
- leechers:
- selector: td:nth-child(8)
- date:
- selector: img[src="pic/time.png"]
- attribute: title
- filters:
- - name: replace
- args: [" в ", " "]
- - name: replace
- args: ["января", "January"]
- - name: replace
- args: ["февраля", "February"]
- - name: replace
- args: ["марта ", "March"]
- - name: replace
- args: ["апреля", "April"]
- - name: replace
- args: ["мая", "May"]
- - name: replace
- args: ["июня", "June"]
- - name: replace
- args: ["июля", "July"]
- - name: replace
- args: ["августа", "August"]
- - name: replace
- args: ["сентября", "September"]
- - name: replace
- args: ["октября", "October"]
- - name: replace
- args: ["ноября", "November"]
- - name: replace
- args: ["декабря", "December"]
- - name: dateparse
- args: "2 January 2006 15:04:05"
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ fields:
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title:
+ selector: a[href^="details.php?id="]
+ filters:
+ # normalize to SXXEYY format
+ - name: re_replace
+ args: ["[\\.\\,\\:\\-\\/\\|]", " "]
+ - name: re_replace
+ args: ["(.*)[CСcс]езон\\s+(\\d+).+[CСcс]ери[ия]\\s+(\\d+)\\s+(\\d+)\\s+из\\s+\\d+(.*)", "$1 S$2E$3-$4 rus $5"]
+ - name: re_replace
+ args: ["(.*)[CСcс]езон\\s+(\\d+).+[CСcс]ери[ия]\\s+(\\d+)\\s+из\\s+\\d+(.*)", "$1 S$2E$3 rus $4"]
+ - name: re_replace
+ args: ["(.*)[CСcс]езон\\s+(\\d+)(.*)", "$1 S$2 rus $3"]
+ - name: re_replace
+ args: ["(.*)[CСcс]]ери[ия]\\s+(\\d+)(.*)", "$1 E$2 rus $3"]
+ - name: re_replace
+ args: ["(\\([А-Яа-яЁё\\W]+\\))|(^[А-Яа-яЁё\\W\\d]+\\/ )|([а-яА-ЯЁё \\-]+,+)|([а-яА-ЯЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1$2$3$4{{ end }}"]
+ - name: replace
+ args: ["WEBRip", "WEBDL"]
+ - name: replace
+ args: ["WEB DL", "WEBDL"]
+ - name: replace
+ args: ["WEBDLRip", "WEBDL"]
+ - name: replace
+ args: ["HDTVRip", "HDTV"]
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ filters:
+ - name: replace
+ args: ["details", "download"]
+ size:
+ selector: td:nth-child(6)
+ seeders:
+ selector: td:nth-child(7)
+ leechers:
+ selector: td:nth-child(8)
+ date:
+ selector: img[src="pic/time.png"]
+ attribute: title
+ filters:
+ - name: replace
+ args: [" в ", " "]
+ - name: replace
+ args: ["января", "January"]
+ - name: replace
+ args: ["февраля", "February"]
+ - name: replace
+ args: ["марта ", "March"]
+ - name: replace
+ args: ["апреля", "April"]
+ - name: replace
+ args: ["мая", "May"]
+ - name: replace
+ args: ["июня", "June"]
+ - name: replace
+ args: ["июля", "July"]
+ - name: replace
+ args: ["августа", "August"]
+ - name: replace
+ args: ["сентября", "September"]
+ - name: replace
+ args: ["октября", "October"]
+ - name: replace
+ args: ["ноября", "November"]
+ - name: replace
+ args: ["декабря", "December"]
+ - name: dateparse
+ args: "2 January 2006 15:04:05"
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/bigtorrent.yml b/src/Jackett.Common/Definitions/bigtorrent.yml
index 2771dae60..f3452a1cb 100644
--- a/src/Jackett.Common/Definitions/bigtorrent.yml
+++ b/src/Jackett.Common/Definitions/bigtorrent.yml
@@ -1,104 +1,104 @@
---
- site: bigtorrent
- name: BIGTorrent
- description: "BIGTorrent is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: hu
- type: private
- encoding: UTF-8
- links:
- - https://www.bigtorrent.eu/
- legacylinks:
- - http://www.bigtorrent.eu/
+site: bigtorrent
+name: BIGTorrent
+description: "BIGTorrent is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: hu
+type: private
+encoding: UTF-8
+links:
+ - https://www.bigtorrent.eu/
+legacylinks:
+ - http://www.bigtorrent.eu/
- caps:
- categorymappings:
- - {id: 24533, cat: Movies/3D, desc: "3D"}
- - {id: 47, cat: Other, desc: "Other"}
- - {id: 24541, cat: Movies/DVD, desc: "Film DVD English"}
- - {id: 24540, cat: Movies/DVD, desc: "Film DVD Hungarian"}
- - {id: 24539, cat: Movies/HD, desc: "Film HD English"}
- - {id: 24538, cat: Movies/HD, desc: "Film HD Hungarian"}
- - {id: 24537, cat: Movies/SD, desc: "Film SD English"}
- - {id: 24536, cat: Movies/SD, desc: "Film SD Hungarian"}
- - {id: 69, cat: PC/Games, desc: "Games ISO"}
- - {id: 67, cat: PC/Games, desc: "Games Rip"}
- - {id: 24534, cat: Audio/Audiobook, desc: "Audiobooks"}
- - {id: 65, cat: Other, desc: "Picture"}
- - {id: 64, cat: Other, desc: "Video"}
- - {id: 68, cat: Console/Xbox360, desc: "Video Game Console"}
- - {id: 63, cat: Books, desc: "English Books"}
- - {id: 62, cat: Books, desc: "Hungarian Books"}
- - {id: 74, cat: Audio/Lossless, desc: "Lossless"}
- - {id: 56, cat: PC/Phone-Other, desc: "Mobile"}
- - {id: 57, cat: PC, desc: "Programs"}
- - {id: 24545, cat: TV/HD, desc: "English HD Series"}
- - {id: 24544, cat: TV/HD, desc: "Hungarian HD Series"}
- - {id: 24543, cat: TV/SD, desc: "English SD Series"}
- - {id: 24542, cat: TV/SD, desc: "Hungarian SD Series"}
- - {id: 24535, cat: XXX, desc: "XXX"}
- - {id: 59, cat: Audio, desc: "Music"}
- - {id: 58, cat: Audio, desc: "Hungarian Music"}
+caps:
+ categorymappings:
+ - {id: 24533, cat: Movies/3D, desc: "3D"}
+ - {id: 47, cat: Other, desc: "Other"}
+ - {id: 24541, cat: Movies/DVD, desc: "Film DVD English"}
+ - {id: 24540, cat: Movies/DVD, desc: "Film DVD Hungarian"}
+ - {id: 24539, cat: Movies/HD, desc: "Film HD English"}
+ - {id: 24538, cat: Movies/HD, desc: "Film HD Hungarian"}
+ - {id: 24537, cat: Movies/SD, desc: "Film SD English"}
+ - {id: 24536, cat: Movies/SD, desc: "Film SD Hungarian"}
+ - {id: 69, cat: PC/Games, desc: "Games ISO"}
+ - {id: 67, cat: PC/Games, desc: "Games Rip"}
+ - {id: 24534, cat: Audio/Audiobook, desc: "Audiobooks"}
+ - {id: 65, cat: Other, desc: "Picture"}
+ - {id: 64, cat: Other, desc: "Video"}
+ - {id: 68, cat: Console/Xbox360, desc: "Video Game Console"}
+ - {id: 63, cat: Books, desc: "English Books"}
+ - {id: 62, cat: Books, desc: "Hungarian Books"}
+ - {id: 74, cat: Audio/Lossless, desc: "Lossless"}
+ - {id: 56, cat: PC/Phone-Other, desc: "Mobile"}
+ - {id: 57, cat: PC, desc: "Programs"}
+ - {id: 24545, cat: TV/HD, desc: "English HD Series"}
+ - {id: 24544, cat: TV/HD, desc: "Hungarian HD Series"}
+ - {id: 24543, cat: TV/SD, desc: "English SD Series"}
+ - {id: 24542, cat: TV/SD, desc: "Hungarian SD Series"}
+ - {id: 24535, cat: XXX, desc: "XXX"}
+ - {id: 59, cat: Audio, desc: "Music"}
+ - {id: 58, cat: Audio, desc: "Hungarian Music"}
- modes:
- search: [q]
- tv-search: [q]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q]
+ movie-search: [q]
+ music-search: [q]
- login:
- path: login.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- sent: "yes"
- returnto: "/"
- error:
- - selector: div.error
- test:
- path: index.php
+login:
+ path: login.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ sent: "yes"
+ returnto: "/"
+ error:
+ - selector: div.error
+ test:
+ path: index.php
- download:
- selector: a[href^="download.php?id="]
- attribute: href
+download:
+ selector: a[href^="download.php?id="]
+ attribute: href
- search:
- paths:
- - path: browse.php
- inputs:
- $raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
- search: "{{if .Keywords}}{{ .Keywords }}{{else}} {{end}}"
- rows:
- selector: table#torrent_table > tbody > tr:has(a[href^="browse.php?cat="])
- fields:
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- title:
- selector: td:nth-child(2) a
- download:
- selector: a[href^="details.php?id="]
- attribute: href
- filters:
- - name: replace
- args: ["details.php?id=", "download.php?id="]
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- size:
- selector: td:nth-child(7)
- seeders:
- selector: td:nth-child(8)
- leechers:
- selector: td:nth-child(9)
- date:
- selector: td:nth-child(4)
- downloadvolumefactor:
- case:
- "*": "1"
- uploadvolumefactor:
- case:
- "*": "1"
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ $raw: "{{range .Categories}}filter_cat[{{.}}]=1&{{end}}"
+ search: "{{if .Keywords}}{{ .Keywords }}{{else}} {{end}}"
+ rows:
+ selector: table#torrent_table > tbody > tr:has(a[href^="browse.php?cat="])
+ fields:
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title:
+ selector: td:nth-child(2) a
+ download:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ filters:
+ - name: replace
+ args: ["details.php?id=", "download.php?id="]
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ size:
+ selector: td:nth-child(7)
+ seeders:
+ selector: td:nth-child(8)
+ leechers:
+ selector: td:nth-child(9)
+ date:
+ selector: td:nth-child(4)
+ downloadvolumefactor:
+ case:
+ "*": "1"
+ uploadvolumefactor:
+ case:
+ "*": "1"
diff --git a/src/Jackett.Common/Definitions/bigtower.yml b/src/Jackett.Common/Definitions/bigtower.yml
index a0ab5dd35..7c1c4ad1f 100644
--- a/src/Jackett.Common/Definitions/bigtower.yml
+++ b/src/Jackett.Common/Definitions/bigtower.yml
@@ -1,153 +1,153 @@
---
- site: bigtower
- name: BigTower
- description: "Big Tower is an ITALIAN Private site for TV / MOVIES / GENERAL"
- language: it-it
- type: private
- encoding: UTF-8
- links:
- - http://bigtower.info/ # site does not support https NET::ERR_CERT_DATE_INVALID
- legacylinks:
- - https://bigtower.info/
+site: bigtower
+name: BigTower
+description: "Big Tower is an ITALIAN Private site for TV / MOVIES / GENERAL"
+language: it-it
+type: private
+encoding: UTF-8
+links:
+ - http://bigtower.info/ # site does not support https NET::ERR_CERT_DATE_INVALID
+legacylinks:
+ - https://bigtower.info/
- caps:
- categorymappings:
+caps:
+ categorymappings:
- # Movies
- - {id: 11, cat: Movies/HD, desc: "DSS"}
- - {id: 1, cat: Movies, desc: "Screener"}
- - {id: 2, cat: Movies, desc: "DVDRip & BDRip"}
- - {id: 3, cat: Movies/BluRay, desc: "Bluray 1080p & 720p"}
- - {id: 5, cat: Movies/UHD, desc: "Ultra HD 4K"}
- - {id: 6, cat: TV, desc: "Serie TV"}
- - {id: 4, cat: TV/Anime, desc: "Cartoni"}
+ # Movies
+ - {id: 11, cat: Movies/HD, desc: "DSS"}
+ - {id: 1, cat: Movies, desc: "Screener"}
+ - {id: 2, cat: Movies, desc: "DVDRip & BDRip"}
+ - {id: 3, cat: Movies/BluRay, desc: "Bluray 1080p & 720p"}
+ - {id: 5, cat: Movies/UHD, desc: "Ultra HD 4K"}
+ - {id: 6, cat: TV, desc: "Serie TV"}
+ - {id: 4, cat: TV/Anime, desc: "Cartoni"}
- # GAMES
- - {id: 7, cat: PC/Games, desc: "Giochi"}
+ # GAMES
+ - {id: 7, cat: PC/Games, desc: "Giochi"}
- # MUSIC
- - {id: 8, cat: Audio, desc: "Musica"}
+ # MUSIC
+ - {id: 8, cat: Audio, desc: "Musica"}
- # SOFTWARE
- - {id: 9, cat: PC/0day, desc: "Software"}
+ # SOFTWARE
+ - {id: 9, cat: PC/0day, desc: "Software"}
- # PHONE
- - {id: 12, cat: PC/Phone-Other, desc: "Applicazioni"}
+ # PHONE
+ - {id: 12, cat: PC/Phone-Other, desc: "Applicazioni"}
- # OTHER
- - {id: 14, cat: Other, desc: "Varie & Altro"}
+ # OTHER
+ - {id: 14, cat: Other, desc: "Varie & Altro"}
- # EBOOK
- - {id: 13, cat: Books, desc: "Libri & Edicola"}
+ # EBOOK
+ - {id: 13, cat: Books, desc: "Libri & Edicola"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: donor
- type: checkbox
- label: Show donor torrent? (Enable if you're a donor)
- default: false
- - name: info
- type: info
- label: Results Per Page
- default: For best results, change the Torrents per page: setting to 100 on your account profile.
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: donor
+ type: checkbox
+ label: Show donor torrent? (Enable if you're a donor)
+ default: false
+ - name: info
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
- login:
- path: index.php?page=login
- method: post
- inputs:
- uid: "{{ .Config.username }}"
- pwd: "{{ .Config.password }}"
- error:
- - selector: span:contains("Nome Utente non corretto")
- test:
- path: index.php
- selector: a[href="logout.php"]
+login:
+ path: index.php?page=login
+ method: post
+ inputs:
+ uid: "{{ .Config.username }}"
+ pwd: "{{ .Config.password }}"
+ error:
+ - selector: span:contains("Nome Utente non corretto")
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
- search:
- paths:
- - path: index.php
- inputs:
- search: "{{ .Keywords }}"
- page: torrents
- category: "{{ range .Categories }}{{.}};{{end}}"
- options: 0
- active: 0
+search:
+ paths:
+ - path: index.php
+ inputs:
+ search: "{{ .Keywords }}"
+ page: torrents
+ category: "{{ range .Categories }}{{.}};{{end}}"
+ options: 0
+ active: 0
- rows:
- selector: table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="]){{if .Config.donor }}{{else}}:not(:has(img[src*="keditbookmarks.png"])){{end}}
+ rows:
+ selector: table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="]){{if .Config.donor }}{{else}}:not(:has(img[src*="keditbookmarks.png"])){{end}}
- fields:
- download:
- selector: a[href^="index.php?page=torrent-details&id="]
- attribute: href
- filters:
- - name: replace
- args: ["index.php?page=torrent-details&id=", "download.php?id="]
- title:
- selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
- filters:
- - name: re_replace # rimozioni varie
- args: ["(?i)(\\[Richiesta\\])", ""]
- banner:
- selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
- attribute: onmouseover
- filters:
- - name: regexp
- args: "src=(.*?) "
- category:
- selector: a[href^="index.php?page=torrents&category="]
- attribute: href
- filters:
- - name: querystring
- args: category
- details:
- selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
- attribute: href
- size:
- selector: td:nth-last-child(2)
- date:
- selector: td:nth-last-child(8)
- filters:
- - name: append
- args: " +01:00"
- - name: dateparse
- args: "02/01/2006 -07:00"
- grabs:
- selector: td:nth-last-child(5)
- filters:
- - name: replace
- args: ["---", "0"]
- seeders:
- selector: td:nth-last-child(7)
- leechers:
- selector: td:nth-last-child(6)
- downloadvolumefactor:
- case:
- img[alt="Gold 100% Free"]: 0
- img[alt="Silver 50% Free"]: 0.5
- img[alt="Bronze 25% Free"]: 0.75
- "*": 1
- uploadvolumefactor:
- case:
- img[alt="2x Upload Multiplier"]: 2
- img[alt="3x Upload Multiplier"]: 3
- img[alt="4x Upload Multiplier"]: 4
- img[alt="5x Upload Multiplier"]: 5
- img[alt="6x Upload Multiplier"]: 6
- img[alt="7x Upload Multiplier"]: 7
- img[alt="8x Upload Multiplier"]: 8
- img[alt="9x Upload Multiplier"]: 9
- img[alt="10x Upload Multiplier"]: 10
- "*": 1
+ fields:
+ download:
+ selector: a[href^="index.php?page=torrent-details&id="]
+ attribute: href
+ filters:
+ - name: replace
+ args: ["index.php?page=torrent-details&id=", "download.php?id="]
+ title:
+ selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
+ filters:
+ - name: re_replace # rimozioni varie
+ args: ["(?i)(\\[Richiesta\\])", ""]
+ banner:
+ selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: "src=(.*?) "
+ category:
+ selector: a[href^="index.php?page=torrents&category="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: category
+ details:
+ selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
+ attribute: href
+ size:
+ selector: td:nth-last-child(2)
+ date:
+ selector: td:nth-last-child(8)
+ filters:
+ - name: append
+ args: " +01:00"
+ - name: dateparse
+ args: "02/01/2006 -07:00"
+ grabs:
+ selector: td:nth-last-child(5)
+ filters:
+ - name: replace
+ args: ["---", "0"]
+ seeders:
+ selector: td:nth-last-child(7)
+ leechers:
+ selector: td:nth-last-child(6)
+ downloadvolumefactor:
+ case:
+ img[alt="Gold 100% Free"]: 0
+ img[alt="Silver 50% Free"]: 0.5
+ img[alt="Bronze 25% Free"]: 0.75
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img[alt="2x Upload Multiplier"]: 2
+ img[alt="3x Upload Multiplier"]: 3
+ img[alt="4x Upload Multiplier"]: 4
+ img[alt="5x Upload Multiplier"]: 5
+ img[alt="6x Upload Multiplier"]: 6
+ img[alt="7x Upload Multiplier"]: 7
+ img[alt="8x Upload Multiplier"]: 8
+ img[alt="9x Upload Multiplier"]: 9
+ img[alt="10x Upload Multiplier"]: 10
+ "*": 1
# xbtitFM v3.0.00
diff --git a/src/Jackett.Common/Definitions/bit-titan.yml b/src/Jackett.Common/Definitions/bit-titan.yml
index 03a6c0a4d..ef0aad769 100644
--- a/src/Jackett.Common/Definitions/bit-titan.yml
+++ b/src/Jackett.Common/Definitions/bit-titan.yml
@@ -1,230 +1,230 @@
---
- site: bit-titan
- name: BiT-TiTAN
- description: "BiT-TiTAN is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: de-de
- type: private
- encoding: iso-8859-1
- links:
- - https://bit-titan.net/
+site: bit-titan
+name: BiT-TiTAN
+description: "BiT-TiTAN is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: de-de
+type: private
+encoding: iso-8859-1
+links:
+ - https://bit-titan.net/
- caps:
- categorymappings:
- - {id: 1010, cat: Movies/UHD, desc: "Movies 2160p"}
- - {id: 1020, cat: Movies/HD, desc: "Movies 1080p"}
- - {id: 1030, cat: Movies/HD, desc: "Movies 720p"}
- - {id: 1040, cat: Movies/HD, desc: "Movies x264"}
- - {id: 1050, cat: Movies/HD, desc: "Movies x265"}
- - {id: 1060, cat: Movies/SD, desc: "Movies XviD"}
- - {id: 1070, cat: Movies/3D, desc: "Movies 3D"}
- - {id: 1080, cat: Movies/DVD, desc: "Movies DVD"}
- - {id: 1090, cat: Movies/BluRay, desc: "Movies BluRay"}
- - {id: 1100, cat: Movies/DVD, desc: "Movies HD2DVD"}
- - {id: 1110, cat: Movies/Foreign, desc: "Movies International"}
- - {id: 1120, cat: Movies/HD, desc: "Movies HD Packs"}
- - {id: 1130, cat: Movies/SD, desc: "Movies SD Packs"}
- - {id: 2010, cat: TV/UHD, desc: "TV 2160p"}
- - {id: 2020, cat: TV/HD, desc: "TV 1080p"}
- - {id: 2030, cat: TV/HD, desc: "TV 720p"}
- - {id: 2040, cat: TV/HD, desc: "TV x264"}
- - {id: 2050, cat: TV/HD, desc: "TV x265"}
- - {id: 2060, cat: TV/SD, desc: "TV XviD"}
- - {id: 2070, cat: TV/HD, desc: "TV HD Packs"}
- - {id: 2080, cat: TV/SD, desc: "TV SD Packs"}
- - {id: 2090, cat: TV/FOREIGN, desc: "TV International"}
- - {id: 3010, cat: TV/Documentary, desc: "Docu 2160p"}
- - {id: 3020, cat: TV/Documentary, desc: "Docu 1080p"}
- - {id: 3030, cat: TV/Documentary, desc: "Docu 720p"}
- - {id: 3040, cat: TV/Documentary, desc: "Docu x264"}
- - {id: 3050, cat: TV/Documentary, desc: "Docu x265"}
- - {id: 3060, cat: TV/Documentary, desc: "Docu XviD"}
- - {id: 3070, cat: TV/Documentary, desc: "Docu HD Packs"}
- - {id: 3080, cat: TV/Documentary, desc: "Docu SD Packs"}
- - {id: 3090, cat: TV/Documentary, desc: "Docu International"}
- - {id: 4010, cat: TV/Sport, desc: "Sport 2160p"}
- - {id: 4020, cat: TV/Sport, desc: "Sport 1080p"}
- - {id: 4030, cat: TV/Sport, desc: "Sport 720p"}
- - {id: 4040, cat: TV/Sport, desc: "Sport SD Sport"}
- - {id: 4050, cat: TV/Sport, desc: "Sport HD Packs"}
- - {id: 4060, cat: TV/Sport, desc: "Sport SD Packs"}
- - {id: 5010, cat: XXX, desc: "XXX 2160p"}
- - {id: 5020, cat: XXX, desc: "XXX 1080p"}
- - {id: 5030, cat: XXX, desc: "XXX 720p"}
- - {id: 5040, cat: XXX, desc: "XXX x264"}
- - {id: 5050, cat: XXX, desc: "XXX x265"}
- - {id: 5060, cat: XXX, desc: "XXX XviD"}
- - {id: 5070, cat: XXX, desc: "XXX HD Packs"}
- - {id: 5080, cat: XXX, desc: "XXX SD Packs"}
- - {id: 5090, cat: XXX, desc: "XXX Sonstiges"}
- - {id: 6010, cat: PC/Games, desc: "Games Windows"}
- - {id: 6020, cat: Console, desc: "Games Linux"}
- - {id: 6030, cat: PC/Mac, desc: "Games MacOS"}
- - {id: 6040, cat: PC/Phone-Android, desc: "Games Android"}
- - {id: 6050, cat: Console/Xbox, desc: "Games Xbox"}
- - {id: 6060, cat: Console/PSP, desc: "Games PlayStation"}
- - {id: 6070, cat: Console/NDS, desc: "Games Nintendo"}
- - {id: 6080, cat: Console, desc: "Games Sonstige"}
- - {id: 7010, cat: PC/0day, desc: "Software Windows"}
- - {id: 7020, cat: PC, desc: "Software Linux"}
- - {id: 7030, cat: PC/Mac, desc: "Software MacOS"}
- - {id: 7040, cat: PC/Phone-Android, desc: "Software Android"}
- - {id: 8010, cat: Audio/MP3, desc: "Music MP3-Album"}
- - {id: 8020, cat: Audio/MP3, desc: "Music MP3-Charts"}
- - {id: 8030, cat: Audio/MP3, desc: "Music MP3-Sampler"}
- - {id: 8040, cat: Audio/MP3, desc: "Music MP3-Single"}
- - {id: 8050, cat: Audio/Lossless, desc: "Music FLAC-Album"}
- - {id: 8060, cat: Audio/Lossless, desc: "Music FLAC-Charts"}
- - {id: 8070, cat: Audio/Lossless, desc: "Music FLAC-Sampler"}
- - {id: 8080, cat: Audio/Lossless, desc: "Music FLAC-Single"}
- - {id: 8090, cat: Audio/Video, desc: "Music Video"}
- - {id: 9010, cat: Audio/Audiobook, desc: "Books A-Book"}
- - {id: 9020, cat: Books/Ebook, desc: "Books E-Book"}
- - {id: 9030, cat: Books, desc: "Books E-Paper"}
- - {id: 9040, cat: Books, desc: "Books E-Learning"}
- - {id: 9050, cat: TV, desc: "TV Kids"}
- - {id: 9060, cat: TV/Anime, desc: "Anime HD"}
- - {id: 9070, cat: TV/Anime, desc: "Anime SD"}
- - {id: 9080, cat: TV/Anime, desc: "Anime Pack"}
- - {id: 9999, cat: Other, desc: "unsort"}
+caps:
+ categorymappings:
+ - {id: 1010, cat: Movies/UHD, desc: "Movies 2160p"}
+ - {id: 1020, cat: Movies/HD, desc: "Movies 1080p"}
+ - {id: 1030, cat: Movies/HD, desc: "Movies 720p"}
+ - {id: 1040, cat: Movies/HD, desc: "Movies x264"}
+ - {id: 1050, cat: Movies/HD, desc: "Movies x265"}
+ - {id: 1060, cat: Movies/SD, desc: "Movies XviD"}
+ - {id: 1070, cat: Movies/3D, desc: "Movies 3D"}
+ - {id: 1080, cat: Movies/DVD, desc: "Movies DVD"}
+ - {id: 1090, cat: Movies/BluRay, desc: "Movies BluRay"}
+ - {id: 1100, cat: Movies/DVD, desc: "Movies HD2DVD"}
+ - {id: 1110, cat: Movies/Foreign, desc: "Movies International"}
+ - {id: 1120, cat: Movies/HD, desc: "Movies HD Packs"}
+ - {id: 1130, cat: Movies/SD, desc: "Movies SD Packs"}
+ - {id: 2010, cat: TV/UHD, desc: "TV 2160p"}
+ - {id: 2020, cat: TV/HD, desc: "TV 1080p"}
+ - {id: 2030, cat: TV/HD, desc: "TV 720p"}
+ - {id: 2040, cat: TV/HD, desc: "TV x264"}
+ - {id: 2050, cat: TV/HD, desc: "TV x265"}
+ - {id: 2060, cat: TV/SD, desc: "TV XviD"}
+ - {id: 2070, cat: TV/HD, desc: "TV HD Packs"}
+ - {id: 2080, cat: TV/SD, desc: "TV SD Packs"}
+ - {id: 2090, cat: TV/FOREIGN, desc: "TV International"}
+ - {id: 3010, cat: TV/Documentary, desc: "Docu 2160p"}
+ - {id: 3020, cat: TV/Documentary, desc: "Docu 1080p"}
+ - {id: 3030, cat: TV/Documentary, desc: "Docu 720p"}
+ - {id: 3040, cat: TV/Documentary, desc: "Docu x264"}
+ - {id: 3050, cat: TV/Documentary, desc: "Docu x265"}
+ - {id: 3060, cat: TV/Documentary, desc: "Docu XviD"}
+ - {id: 3070, cat: TV/Documentary, desc: "Docu HD Packs"}
+ - {id: 3080, cat: TV/Documentary, desc: "Docu SD Packs"}
+ - {id: 3090, cat: TV/Documentary, desc: "Docu International"}
+ - {id: 4010, cat: TV/Sport, desc: "Sport 2160p"}
+ - {id: 4020, cat: TV/Sport, desc: "Sport 1080p"}
+ - {id: 4030, cat: TV/Sport, desc: "Sport 720p"}
+ - {id: 4040, cat: TV/Sport, desc: "Sport SD Sport"}
+ - {id: 4050, cat: TV/Sport, desc: "Sport HD Packs"}
+ - {id: 4060, cat: TV/Sport, desc: "Sport SD Packs"}
+ - {id: 5010, cat: XXX, desc: "XXX 2160p"}
+ - {id: 5020, cat: XXX, desc: "XXX 1080p"}
+ - {id: 5030, cat: XXX, desc: "XXX 720p"}
+ - {id: 5040, cat: XXX, desc: "XXX x264"}
+ - {id: 5050, cat: XXX, desc: "XXX x265"}
+ - {id: 5060, cat: XXX, desc: "XXX XviD"}
+ - {id: 5070, cat: XXX, desc: "XXX HD Packs"}
+ - {id: 5080, cat: XXX, desc: "XXX SD Packs"}
+ - {id: 5090, cat: XXX, desc: "XXX Sonstiges"}
+ - {id: 6010, cat: PC/Games, desc: "Games Windows"}
+ - {id: 6020, cat: Console, desc: "Games Linux"}
+ - {id: 6030, cat: PC/Mac, desc: "Games MacOS"}
+ - {id: 6040, cat: PC/Phone-Android, desc: "Games Android"}
+ - {id: 6050, cat: Console/Xbox, desc: "Games Xbox"}
+ - {id: 6060, cat: Console/PSP, desc: "Games PlayStation"}
+ - {id: 6070, cat: Console/NDS, desc: "Games Nintendo"}
+ - {id: 6080, cat: Console, desc: "Games Sonstige"}
+ - {id: 7010, cat: PC/0day, desc: "Software Windows"}
+ - {id: 7020, cat: PC, desc: "Software Linux"}
+ - {id: 7030, cat: PC/Mac, desc: "Software MacOS"}
+ - {id: 7040, cat: PC/Phone-Android, desc: "Software Android"}
+ - {id: 8010, cat: Audio/MP3, desc: "Music MP3-Album"}
+ - {id: 8020, cat: Audio/MP3, desc: "Music MP3-Charts"}
+ - {id: 8030, cat: Audio/MP3, desc: "Music MP3-Sampler"}
+ - {id: 8040, cat: Audio/MP3, desc: "Music MP3-Single"}
+ - {id: 8050, cat: Audio/Lossless, desc: "Music FLAC-Album"}
+ - {id: 8060, cat: Audio/Lossless, desc: "Music FLAC-Charts"}
+ - {id: 8070, cat: Audio/Lossless, desc: "Music FLAC-Sampler"}
+ - {id: 8080, cat: Audio/Lossless, desc: "Music FLAC-Single"}
+ - {id: 8090, cat: Audio/Video, desc: "Music Video"}
+ - {id: 9010, cat: Audio/Audiobook, desc: "Books A-Book"}
+ - {id: 9020, cat: Books/Ebook, desc: "Books E-Book"}
+ - {id: 9030, cat: Books, desc: "Books E-Paper"}
+ - {id: 9040, cat: Books, desc: "Books E-Learning"}
+ - {id: 9050, cat: TV, desc: "TV Kids"}
+ - {id: 9060, cat: TV/Anime, desc: "Anime HD"}
+ - {id: 9070, cat: TV/Anime, desc: "Anime SD"}
+ - {id: 9080, cat: TV/Anime, desc: "Anime Pack"}
+ - {id: 9999, cat: Other, desc: "unsort"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "1"
- options:
- "1": "created"
- "8": "seeders"
- "6": "size"
- "2": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "1"
- options:
- "1": "desc"
- "2": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "1"
+ options:
+ "1": "created"
+ "8": "seeders"
+ "6": "size"
+ "2": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "1"
+ options:
+ "1": "desc"
+ "2": "asc"
- login:
- path: login.php
- method: form
- form: form[action="takelogin.php"]
- cookies: ["JAVA=OK"] # avoid jscheck redirect
- captcha:
- type: image
- selector: img[src^="cap/captcha_math.php"]
- input: stringCaptcha
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: div#login_error
- test:
- path: browse.php
- selector: a[href="logout.php"]
-
- ratio:
+login:
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ cookies: ["JAVA=OK"] # avoid jscheck redirect
+ captcha:
+ type: image
+ selector: img[src^="cap/captcha_math.php"]
+ input: stringCaptcha
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: div#login_error
+ test:
path: browse.php
- selector: div#tom-b-t8
- filters:
- - name: replace
- args: [".", ""]
- - name: replace
- args: [",", "."]
+ selector: a[href="logout.php"]
- search:
- paths:
- - path: browse.php
- inputs:
- suchfeld: 2
- alleanzeigen: 1
- $raw: "{{ range .Categories }}kategorie[]={{.}}&{{end}}"
- suche: "{{ .Keywords }}"
- # searchin 1 name 2 descr 3 both
- durchsuche: 1
- # includedead 1 active 2 all 3 dead 4 highlight 5 bookmark 6 onlyups 7 freeleech 8 multi2 9 multi5 10 multi10 11 25%dl 12 50%dl 13 75%dl
- suchein: 2
- # cat 1 all 1000 film 2000 tv 3000 docs 4000 sport 5000 xxx 6000 games 7000 apps 8000 music 9000 other
- sucheaus: 1
- sortierenach: "{{ .Config.sort }}"
- sortierung: "{{ .Config.type }}"
+ratio:
+ path: browse.php
+ selector: div#tom-b-t8
+ filters:
+ - name: replace
+ args: [".", ""]
+ - name: replace
+ args: [",", "."]
- rows:
- selector: table.tableinborder[border="0"][cellspacing="0"][cellpadding="0"] tr
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ suchfeld: 2
+ alleanzeigen: 1
+ $raw: "{{ range .Categories }}kategorie[]={{.}}&{{end}}"
+ suche: "{{ .Keywords }}"
+ # searchin 1 name 2 descr 3 both
+ durchsuche: 1
+ # includedead 1 active 2 all 3 dead 4 highlight 5 bookmark 6 onlyups 7 freeleech 8 multi2 9 multi5 10 multi10 11 25%dl 12 50%dl 13 75%dl
+ suchein: 2
+ # cat 1 all 1000 film 2000 tv 3000 docs 4000 sport 5000 xxx 6000 games 7000 apps 8000 music 9000 other
+ sucheaus: 1
+ sortierenach: "{{ .Config.sort }}"
+ sortierung: "{{ .Config.type }}"
- fields:
- category:
- selector: a.bt-cat
- attribute: href
- filters:
- - name: regexp
- args: (\d+)$
- title:
- selector: a.tor-name
- details:
- selector: a.tor-name
- attribute: href
- download:
- selector: div.tor-metadl a
- attribute: href
- banner:
- selector: div[id^="details-"] img
- attribute: src
- seeders:
- selector: div.tor-seeder
- leechers:
- selector: div.tor-leecher
- grabs:
- selector: div.tor-snatcher
- # 2 flavours of dates
- date:
- # Heute 13:30:04
- # Gestern 09:10:10
- selector: div.tor-date:not(:contains("."))
- optional: true
- filters:
- - name: replace
- args: ["Heute", "Today"]
- - name: replace
- args: ["Gestern", "Yesterday"]
- date:
- # 27.05.2019 12:52:11
- selector: div.tor-date:contains(".")
- optional: true
- filters:
- - name: replace
- args: ["\u00a0", ""]
- - name: dateparse
- args: "02.01.2006 15:04:05"
- size:
- selector: div.tor-size
- filters:
- - name: replace
- args: [".", ""]
- - name: replace
- args: [",", "."]
- downloadvolumefactor:
- case:
- font.ou: 0 # only upload is counted
- font.fl: 0 # freeleech neither dl or ul is counted
- "*": 1
- uploadvolumefactor:
- case:
- "font.mu:contains(\"2x\")": 2
- "font.mu:contains(\"5x\")": 5
- "font.mu:contains(\"10x\")": 10
- font.fl: 0 # freeleech neither dl or ul is counted
- "*": 1
+ rows:
+ selector: table.tableinborder[border="0"][cellspacing="0"][cellpadding="0"] tr
+
+ fields:
+ category:
+ selector: a.bt-cat
+ attribute: href
+ filters:
+ - name: regexp
+ args: (\d+)$
+ title:
+ selector: a.tor-name
+ details:
+ selector: a.tor-name
+ attribute: href
+ download:
+ selector: div.tor-metadl a
+ attribute: href
+ banner:
+ selector: div[id^="details-"] img
+ attribute: src
+ seeders:
+ selector: div.tor-seeder
+ leechers:
+ selector: div.tor-leecher
+ grabs:
+ selector: div.tor-snatcher
+ # 2 flavours of dates
+ date:
+ # Heute 13:30:04
+ # Gestern 09:10:10
+ selector: div.tor-date:not(:contains("."))
+ optional: true
+ filters:
+ - name: replace
+ args: ["Heute", "Today"]
+ - name: replace
+ args: ["Gestern", "Yesterday"]
+ date:
+ # 27.05.2019 12:52:11
+ selector: div.tor-date:contains(".")
+ optional: true
+ filters:
+ - name: replace
+ args: ["\u00a0", ""]
+ - name: dateparse
+ args: "02.01.2006 15:04:05"
+ size:
+ selector: div.tor-size
+ filters:
+ - name: replace
+ args: [".", ""]
+ - name: replace
+ args: [",", "."]
+ downloadvolumefactor:
+ case:
+ font.ou: 0 # only upload is counted
+ font.fl: 0 # freeleech neither dl or ul is counted
+ "*": 1
+ uploadvolumefactor:
+ case:
+ "font.mu:contains(\"2x\")": 2
+ "font.mu:contains(\"5x\")": 5
+ "font.mu:contains(\"10x\")": 10
+ font.fl: 0 # freeleech neither dl or ul is counted
+ "*": 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/bithorlo.yml b/src/Jackett.Common/Definitions/bithorlo.yml
index f4e9f14d9..df4b2d3ef 100644
--- a/src/Jackett.Common/Definitions/bithorlo.yml
+++ b/src/Jackett.Common/Definitions/bithorlo.yml
@@ -1,148 +1,148 @@
---
- site: bithorlo
- name: Bithorlo
- description: "Bithorlo (BHO) is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
- language: hu-hu
- type: private
- encoding: ISO-8859-2
- links:
- - https://www.bithorlo.info/
+site: bithorlo
+name: Bithorlo
+description: "Bithorlo (BHO) is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
+language: hu-hu
+type: private
+encoding: ISO-8859-2
+links:
+ - https://www.bithorlo.info/
- caps:
- categorymappings:
- # E-book
- - {id: 40, cat: Books, desc: "E-book/Eng"}
- - {id: 19, cat: Books, desc: "E-book/Hun"}
+caps:
+ categorymappings:
+ # E-book
+ - {id: 40, cat: Books, desc: "E-book/Eng"}
+ - {id: 19, cat: Books, desc: "E-book/Hun"}
- # Játék
- - {id: 38, cat: Console, desc: "Játék/Consol"}
- - {id: 15, cat: PC/Games, desc: "Játék/ISO"}
- - {id: 37, cat: PC/Games, desc: "Játék/Rip"}
+ # Játék
+ - {id: 38, cat: Console, desc: "Játék/Consol"}
+ - {id: 15, cat: PC/Games, desc: "Játék/ISO"}
+ - {id: 37, cat: PC/Games, desc: "Játék/Rip"}
- # Filmek
- - {id: 51, cat: Movies/SD, desc: "Cam/Eng"}
- - {id: 50, cat: Movies/SD, desc: "Cam/Hun"}
- - {id: 2, cat: Movies/DVD, desc: "DVD/Eng"}
- - {id: 1, cat: Movies/DVD, desc: "DVD/Hun"}
- - {id: 42, cat: Movies/DVD, desc: "Dvd9/Eng"}
- - {id: 41, cat: Movies/DVD, desc: "Dvd9/Hun"}
- - {id: 29, cat: Movies/HD, desc: "HD/Eng"}
- - {id: 28, cat: Movies/HD, desc: "HD/Hun"}
- - {id: 33, cat: TV, desc: "Sorozat/Eng"}
- - {id: 5, cat: TV, desc: "Sorozat/Hun"}
- - {id: 4, cat: Movies/SD, desc: "Xvid/Eng"}
- - {id: 3, cat: Movies/SD, desc: "Xvid/Hun"}
+ # Filmek
+ - {id: 51, cat: Movies/SD, desc: "Cam/Eng"}
+ - {id: 50, cat: Movies/SD, desc: "Cam/Hun"}
+ - {id: 2, cat: Movies/DVD, desc: "DVD/Eng"}
+ - {id: 1, cat: Movies/DVD, desc: "DVD/Hun"}
+ - {id: 42, cat: Movies/DVD, desc: "Dvd9/Eng"}
+ - {id: 41, cat: Movies/DVD, desc: "Dvd9/Hun"}
+ - {id: 29, cat: Movies/HD, desc: "HD/Eng"}
+ - {id: 28, cat: Movies/HD, desc: "HD/Hun"}
+ - {id: 33, cat: TV, desc: "Sorozat/Eng"}
+ - {id: 5, cat: TV, desc: "Sorozat/Hun"}
+ - {id: 4, cat: Movies/SD, desc: "Xvid/Eng"}
+ - {id: 3, cat: Movies/SD, desc: "Xvid/Hun"}
- # Zene
- - {id: 12, cat: Audio, desc: "Zene/Eng"}
- - {id: 13, cat: Audio, desc: "Zene/Hun"}
+ # Zene
+ - {id: 12, cat: Audio, desc: "Zene/Eng"}
+ - {id: 13, cat: Audio, desc: "Zene/Hun"}
- # Egyéb
- - {id: 20, cat: Other, desc: "Képek"}
- - {id: 21, cat: PC/Phone-Other, desc: "Mobil"}
+ # Egyéb
+ - {id: 20, cat: Other, desc: "Képek"}
+ - {id: 21, cat: PC/Phone-Other, desc: "Mobil"}
- # Program
- - {id: 22, cat: PC/0day, desc: "Win/Program/ISO"}
- - {id: 23, cat: PC/0day, desc: "Win/Program/Rip"}
+ # Program
+ - {id: 22, cat: PC/0day, desc: "Win/Program/ISO"}
+ - {id: 23, cat: PC/0day, desc: "Win/Program/Rip"}
- # Felnőtt tartalom
- - {id: 9, cat: XXX, desc: "XXX/Film"}
- - {id: 10, cat: XXX, desc: "XXX/Kép"}
+ # Felnőtt tartalom
+ - {id: 9, cat: XXX, desc: "XXX/Film"}
+ - {id: 10, cat: XXX, desc: "XXX/Kép"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: info_alert
- type: info
- label: Alert about Cookie
- default: "If during your cookie save you get the following error:The 'Value'='xzlogin,xzrecover,xzsignup' part of the cookie is invalid.Then remove acopendivids=xzlogin,xzrecover,xzsignup; from the cookie string before proceeding to save."
- - name: cookie
- type: text
- label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "
"
- - name: sort
- type: select
- label: Sort requested from site
- default: "4"
- options:
- "4": "created"
- "7": "seeders"
- "5": "size"
- "1": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: info_alert
+ type: info
+ label: Alert about Cookie
+ default: "If during your cookie save you get the following error:The 'Value'='xzlogin,xzrecover,xzsignup' part of the cookie is invalid.Then remove acopendivids=xzlogin,xzrecover,xzsignup; from the cookie string before proceeding to save."
+ - name: cookie
+ type: text
+ label: Cookie
+ - name: info
+ type: info
+ label: How to get the Cookie
+ default: "
"
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "4"
+ options:
+ "4": "created"
+ "7": "seeders"
+ "5": "size"
+ "1": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- method: cookie
- test:
- path: browse.php
+login:
+ method: cookie
+ test:
+ path: browse.php
- search:
- paths:
- - path: browse.php
- inputs:
- $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
- search: "{{ .Keywords }}"
- sort: "{{ .Config.sort }}"
- type: "{{ .Config.type }}"
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ search: "{{ .Keywords }}"
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
- rows:
- selector: tr[class^="browse"]
+ rows:
+ selector: tr[class^="browse"]
- fields:
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- - name: trim # some torrents have an extra space
- title:
- selector: a[href^="torrent.php?id="]
- attribute: title
- details:
- selector: a[href^="torrent.php?id="]
- attribute: href
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- banner:
- optional: true
- selector: a[href^="torrent.php?id="][onmouseover]
- attribute: onmouseover
- filters:
- - name: regexp
- args: ", '(.*)'"
- size:
- selector: td:nth-child(4)
- grabs:
- selector: td:nth-child(5)
- seeders:
- selector: td:nth-child(6)
- leechers:
- selector: td:nth-child(7)
- date:
- selector: "a[style=\"font-size: 8pt;cursor: pointer;\"][title]"
- downloadvolumefactor:
- case:
- img[title="Ingyenes letöltés"]: 0
- "*": 1
- uploadvolumefactor:
- selector: span:contains("Feltöltési szorzó")
- filters:
- - name: replace
- args: ["Feltöltési szorzó × ", ""]
+ fields:
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ - name: trim # some torrents have an extra space
+ title:
+ selector: a[href^="torrent.php?id="]
+ attribute: title
+ details:
+ selector: a[href^="torrent.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ banner:
+ optional: true
+ selector: a[href^="torrent.php?id="][onmouseover]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: ", '(.*)'"
+ size:
+ selector: td:nth-child(4)
+ grabs:
+ selector: td:nth-child(5)
+ seeders:
+ selector: td:nth-child(6)
+ leechers:
+ selector: td:nth-child(7)
+ date:
+ selector: "a[style=\"font-size: 8pt;cursor: pointer;\"][title]"
+ downloadvolumefactor:
+ case:
+ img[title="Ingyenes letöltés"]: 0
+ "*": 1
+ uploadvolumefactor:
+ selector: span:contains("Feltöltési szorzó")
+ filters:
+ - name: replace
+ args: ["Feltöltési szorzó × ", ""]
# engine n/a
diff --git a/src/Jackett.Common/Definitions/bithumen.yml b/src/Jackett.Common/Definitions/bithumen.yml
index d19fe9603..cbe99d3bf 100644
--- a/src/Jackett.Common/Definitions/bithumen.yml
+++ b/src/Jackett.Common/Definitions/bithumen.yml
@@ -1,162 +1,162 @@
---
- site: bithumen
- name: BitHUmen
- description: "BitHUmen is a Hungarian Private site for TV / MOVIES / GENERAL"
- language: hu-hu
- type: private
- encoding: ISO-8859-2
- links:
- - https://bithumen.be/
+site: bithumen
+name: BitHUmen
+description: "BitHUmen is a Hungarian Private site for TV / MOVIES / GENERAL"
+language: hu-hu
+type: private
+encoding: ISO-8859-2
+links:
+ - https://bithumen.be/
- caps:
- categorymappings:
- - {id: 23, cat: Movies/SD, desc: "Film/Hun/SD"}
- - {id: 24, cat: Movies/DVD, desc: "Film/Hun/DVD-R"}
- - {id: 25, cat: Movies/HD, desc: "Film/Hun/720p"}
- - {id: 37, cat: Movies/HD, desc: "Film/Hun/1080p"}
- - {id: 33, cat: Movies/BluRay, desc: "Film/Hun/Blu-ray"}
- - {id: 30, cat: XXX, desc: "XXX/SD"}
- - {id: 19, cat: Movies/SD, desc: "Film/Eng/SD"}
- - {id: 20, cat: Movies/DVD, desc: "Film/Eng/DVD-R"}
- - {id: 5, cat: Movies/HD, desc: "Film/Eng/720p"}
- - {id: 39, cat: Movies/HD, desc: "Film/Eng/1080p"}
- - {id: 40, cat: Movies/BluRay, desc: "Film/Eng/Blu-ray"}
- - {id: 34, cat: XXX, desc: "XXX/HD"}
- - {id: 7, cat: TV/SD, desc: "Sorozat/Hun/SD"}
- - {id: 41, cat: TV/HD, desc: "Sorozat/Hun/HD"}
- - {id: 26, cat: TV/SD, desc: "Sorozat/Eng/SD"}
- - {id: 42, cat: TV/HD, desc: "Sorozat/Eng/HD"}
- - {id: 28, cat: Books, desc: "eBook/Hun"}
- - {id: 29, cat: Books, desc: "eBook/Eng"}
- - {id: 9, cat: Audio/MP3, desc: "Mp3/Hun"}
- - {id: 35, cat: Audio/Lossless, desc: "Lossless/Hun"}
- - {id: 1, cat: PC/0day, desc: "Programok/ISO"}
- - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
- - {id: 31, cat: Console/PS4, desc: "Játékok/PS"}
- - {id: 36, cat: Console/Wii, desc: "Játékok/Wii"}
- - {id: 6, cat: Audio/MP3, desc: "Mp3/Eng"}
- - {id: 38, cat: Audio/Lossless, desc: "Lossless/Eng"}
- - {id: 22, cat: PC, desc: "Programok/egyéb"}
- - {id: 21, cat: PC, desc: "Játékok/Rip/Dox"}
- - {id: 32, cat: Console/Xbox360, desc: "Játékok/Xbox360"}
- - {id: 27, cat: Other, desc: "Klipek"}
+caps:
+ categorymappings:
+ - {id: 23, cat: Movies/SD, desc: "Film/Hun/SD"}
+ - {id: 24, cat: Movies/DVD, desc: "Film/Hun/DVD-R"}
+ - {id: 25, cat: Movies/HD, desc: "Film/Hun/720p"}
+ - {id: 37, cat: Movies/HD, desc: "Film/Hun/1080p"}
+ - {id: 33, cat: Movies/BluRay, desc: "Film/Hun/Blu-ray"}
+ - {id: 30, cat: XXX, desc: "XXX/SD"}
+ - {id: 19, cat: Movies/SD, desc: "Film/Eng/SD"}
+ - {id: 20, cat: Movies/DVD, desc: "Film/Eng/DVD-R"}
+ - {id: 5, cat: Movies/HD, desc: "Film/Eng/720p"}
+ - {id: 39, cat: Movies/HD, desc: "Film/Eng/1080p"}
+ - {id: 40, cat: Movies/BluRay, desc: "Film/Eng/Blu-ray"}
+ - {id: 34, cat: XXX, desc: "XXX/HD"}
+ - {id: 7, cat: TV/SD, desc: "Sorozat/Hun/SD"}
+ - {id: 41, cat: TV/HD, desc: "Sorozat/Hun/HD"}
+ - {id: 26, cat: TV/SD, desc: "Sorozat/Eng/SD"}
+ - {id: 42, cat: TV/HD, desc: "Sorozat/Eng/HD"}
+ - {id: 28, cat: Books, desc: "eBook/Hun"}
+ - {id: 29, cat: Books, desc: "eBook/Eng"}
+ - {id: 9, cat: Audio/MP3, desc: "Mp3/Hun"}
+ - {id: 35, cat: Audio/Lossless, desc: "Lossless/Hun"}
+ - {id: 1, cat: PC/0day, desc: "Programok/ISO"}
+ - {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
+ - {id: 31, cat: Console/PS4, desc: "Játékok/PS"}
+ - {id: 36, cat: Console/Wii, desc: "Játékok/Wii"}
+ - {id: 6, cat: Audio/MP3, desc: "Mp3/Eng"}
+ - {id: 38, cat: Audio/Lossless, desc: "Lossless/Eng"}
+ - {id: 22, cat: PC, desc: "Programok/egyéb"}
+ - {id: 21, cat: PC, desc: "Játékok/Rip/Dox"}
+ - {id: 32, cat: Console/Xbox360, desc: "Játékok/Xbox360"}
+ - {id: 27, cat: Other, desc: "Klipek"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: td.embedded:has(h2:contains("bejelentkezés"))
- test:
- path: browse.php
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: td.embedded:has(h2:contains("bejelentkezés"))
+ test:
+ path: browse.php
- search:
- paths:
- - path: browse.php
- inputs:
- $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
- search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- incldead: 1
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ incldead: 1
- rows:
- selector: table#torrenttable > tbody > tr:has(a[href^="details.php?id="])
- filters:
- - name: andmatch
+ rows:
+ selector: table#torrenttable > tbody > tr:has(a[href^="details.php?id="])
+ filters:
+ - name: andmatch
- fields:
+ fields:
# download button can be disbled in the profile, use details link instead
# download:
# selector: a[href^="download.php/"]
# attribute: href
- download:
- selector: a[href^="details.php?id="]
- attribute: href
- filters:
- - name: replace
- args: ["details.php?id=", "download.php/"]
- - name: append
- args: "/invalid.torrent"
- title:
- selector: a[href^="details.php?id="]
- title:
- optional: true
- selector: a[href^="details.php?id="]
- attribute: title
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- imdb:
- selector: a[href*="www.imdb.com/title/tt"]
- attribute: href
- banner:
- selector: a[onmouseover^="bithumen.UI.images.coverShow"]
- attribute: onmouseover
- filters:
- - name: regexp
- args: "\"(.*?)\""
- category:
- selector: a[href^="?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- seeders:
- selector: td:nth-child(8)
- leechers:
- selector: td:nth-child(9)
- filters:
- - name: regexp
- args: /\s*([\d,]+)
- grabs:
- selector: td:nth-child(7)
- files:
- selector: td:nth-child(3)
- size:
- selector: td:nth-child(6) > u
- downloadvolumefactor:
- text: "1"
- downloadvolumefactor:
- optional: true
- selector: td:nth-child(6) > nobr > font:contains(" × ")
- filters:
- - name: replace
- args: ["×", ""]
- uploadvolumefactor:
- text: "1"
- uploadvolumefactor:
- optional: true
- selector: td:nth-child(5) > nobr > font:contains(" × ")
- filters:
- - name: replace
- args: ["×", ""]
- date:
- selector: td:nth-child(5):contains('.')
- optional: true
- remove: font
- filters:
- - name: replace
- args: [". ", " "]
- - name: prepend
- args: "{{ .Today.Year }}."
- - name: re_replace
- args: ["([0-9]{4}).([0-9]+).([0-9]+) (.*)", "$2.$3.$1 $4"]
- date:
- selector: td:nth-child(5):contains('ma'), td:nth-child(5):contains("tegnap"), td:nth-child(5):contains('-')
- optional: true
- remove: font
- filters:
- - name: replace
- args: ["ma", "today"]
- - name: replace
- args: ["tegnap", "yesterday"]
- description:
- selector: td:nth-child(2) > div
+ download:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ filters:
+ - name: replace
+ args: ["details.php?id=", "download.php/"]
+ - name: append
+ args: "/invalid.torrent"
+ title:
+ selector: a[href^="details.php?id="]
+ title:
+ optional: true
+ selector: a[href^="details.php?id="]
+ attribute: title
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ imdb:
+ selector: a[href*="www.imdb.com/title/tt"]
+ attribute: href
+ banner:
+ selector: a[onmouseover^="bithumen.UI.images.coverShow"]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: "\"(.*?)\""
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ seeders:
+ selector: td:nth-child(8)
+ leechers:
+ selector: td:nth-child(9)
+ filters:
+ - name: regexp
+ args: /\s*([\d,]+)
+ grabs:
+ selector: td:nth-child(7)
+ files:
+ selector: td:nth-child(3)
+ size:
+ selector: td:nth-child(6) > u
+ downloadvolumefactor:
+ text: "1"
+ downloadvolumefactor:
+ optional: true
+ selector: td:nth-child(6) > nobr > font:contains(" × ")
+ filters:
+ - name: replace
+ args: ["×", ""]
+ uploadvolumefactor:
+ text: "1"
+ uploadvolumefactor:
+ optional: true
+ selector: td:nth-child(5) > nobr > font:contains(" × ")
+ filters:
+ - name: replace
+ args: ["×", ""]
+ date:
+ selector: td:nth-child(5):contains('.')
+ optional: true
+ remove: font
+ filters:
+ - name: replace
+ args: [". ", " "]
+ - name: prepend
+ args: "{{ .Today.Year }}."
+ - name: re_replace
+ args: ["([0-9]{4}).([0-9]+).([0-9]+) (.*)", "$2.$3.$1 $4"]
+ date:
+ selector: td:nth-child(5):contains('ma'), td:nth-child(5):contains("tegnap"), td:nth-child(5):contains('-')
+ optional: true
+ remove: font
+ filters:
+ - name: replace
+ args: ["ma", "today"]
+ - name: replace
+ args: ["tegnap", "yesterday"]
+ description:
+ selector: td:nth-child(2) > div
# engine tbd
diff --git a/src/Jackett.Common/Definitions/bitru.yml b/src/Jackett.Common/Definitions/bitru.yml
index 1bd75be59..1f7ecd230 100644
--- a/src/Jackett.Common/Definitions/bitru.yml
+++ b/src/Jackett.Common/Definitions/bitru.yml
@@ -1,160 +1,160 @@
---
- site: bitru
- name: BitRu
- description: "BitRu is a RUSSIAN Public Torrent Tracker for MOVIES / TV / GENERAL"
- language: ru-ru
- type: public
- encoding: UTF-8
- links:
- - http://bitru.org/ # site forces http, https is not supported
+site: bitru
+name: BitRu
+description: "BitRu is a RUSSIAN Public Torrent Tracker for MOVIES / TV / GENERAL"
+language: ru-ru
+type: public
+encoding: UTF-8
+links:
+ - http://bitru.org/ # site forces http, https is not supported
- caps:
- categories:
- "movie": Movies
- "serial": TV
- "music": Audio
- "game": PC/Games
- "soft": PC
- "literature": Books
- "audiobook": Audio/Audiobook
- "video": Movies
- "image": Other
- "xxx": XXX
+caps:
+ categories:
+ "movie": Movies
+ "serial": TV
+ "music": Audio
+ "game": PC/Games
+ "soft": PC
+ "literature": Books
+ "audiobook": Audio/Audiobook
+ "video": Movies
+ "image": Other
+ "xxx": XXX
- modes:
- search: [q]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: adverts
- type: select
- label: Include Advertising
- default: "yes"
- options:
- "yes": "yes"
- "no": "no"
- - name: sort
- type: select
- label: Sort requested from site
- default: "_"
- options:
- "_": "created"
- "seeders": "seeders"
- "size": "size"
+settings:
+ - name: adverts
+ type: select
+ label: Include Advertising
+ default: "yes"
+ options:
+ "yes": "yes"
+ "no": "no"
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "_"
+ options:
+ "_": "created"
+ "seeders": "seeders"
+ "size": "size"
- search:
- paths:
- - path: browse.php
- inputs:
- s: "{{ .Keywords }}"
- rek: "{{ .Config.adverts }}"
- sort: "{{ re_replace .Config.sort \"_\" \"\"}}"
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ s: "{{ .Keywords }}"
+ rek: "{{ .Config.adverts }}"
+ sort: "{{ re_replace .Config.sort \"_\" \"\"}}"
- rows:
- selector: table.browse-list > tbody > tr
+ rows:
+ selector: table.browse-list > tbody > tr
- fields:
- category:
- selector: td:nth-child(1) a
- attribute: href
- filters:
- - name: querystring
- args: tmp
- title:
- selector: a[href^="details.php?id="]
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="details.php?id="]
- attribute: href
- filters:
- - name: replace
- args: ["details", "download"]
- description:
- selector: img[src="styles/images/adwarn.png"]
- optional: true
- attribute: title
- filters:
- - name: replace
- args: ["Присутствует реклама", "Contains Adverts"]
- banner:
- selector: a[href^="details.php?id="]
- attribute: onmouseover
- filters:
- - name: regexp
- args: "src=(.*?) "
- date:
- # Сегодня в 09:09 от
- # Вчера в 22:47 от
- selector: td:nth-child(2) div.b-info div span:nth-child(2):contains("Сегодня"), td:nth-child(2) div.b-info div span:nth-child(2):contains("Вчера")
- optional: true
- filters:
- - name: regexp
- args: "(.*?) от "
- - name: replace
- args: ["Сегодня в", "Today"]
- - name: replace
- args: ["Вчера в", "Yesterday"]
- date:
- # 08 ноября 2019 в 23:53 от
- selector: td:nth-child(2) div.b-info div span:nth-child(2):not(:contains("Сегодня")):not(:contains("Вчера"))
- optional: true
- filters:
- - name: regexp
- args: "(.*?) от "
- - name: replace
- args: [" в ", " "]
- - name: replace
- args: ["января", "January"]
- - name: replace
- args: ["февраля", "February"]
- - name: replace
- args: ["марта ", "March"]
- - name: replace
- args: ["апреля", "April"]
- - name: replace
- args: ["мая", "May"]
- - name: replace
- args: ["июня", "June"]
- - name: replace
- args: ["июля", "July"]
- - name: replace
- args: ["августа", "August"]
- - name: replace
- args: ["сентября", "September"]
- - name: replace
- args: ["октября", "October"]
- - name: replace
- args: ["ноября", "November"]
- - name: replace
- args: ["декабря", "December"]
- - name: dateparse
- args: "02 January 2006 15:04"
- size:
- selector: td:nth-child(3)
- filters:
- - name: replace
- args: ["ТБ", "TB"]
- - name: replace
- args: ["ГБ", "GB"]
- - name: replace
- args: ["МБ", "MB"]
- - name: replace
- args: ["КБ", "KB"]
- seeders:
- selector: td:nth-child(4)
- filters:
- - name: replace
- args: ["?", "1"]
- leechers:
- selector: td:nth-child(5)
- filters:
- - name: replace
- args: ["?", "0"]
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ fields:
+ category:
+ selector: td:nth-child(1) a
+ attribute: href
+ filters:
+ - name: querystring
+ args: tmp
+ title:
+ selector: a[href^="details.php?id="]
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ filters:
+ - name: replace
+ args: ["details", "download"]
+ description:
+ selector: img[src="styles/images/adwarn.png"]
+ optional: true
+ attribute: title
+ filters:
+ - name: replace
+ args: ["Присутствует реклама", "Contains Adverts"]
+ banner:
+ selector: a[href^="details.php?id="]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: "src=(.*?) "
+ date:
+ # Сегодня в 09:09 от
+ # Вчера в 22:47 от
+ selector: td:nth-child(2) div.b-info div span:nth-child(2):contains("Сегодня"), td:nth-child(2) div.b-info div span:nth-child(2):contains("Вчера")
+ optional: true
+ filters:
+ - name: regexp
+ args: "(.*?) от "
+ - name: replace
+ args: ["Сегодня в", "Today"]
+ - name: replace
+ args: ["Вчера в", "Yesterday"]
+ date:
+ # 08 ноября 2019 в 23:53 от
+ selector: td:nth-child(2) div.b-info div span:nth-child(2):not(:contains("Сегодня")):not(:contains("Вчера"))
+ optional: true
+ filters:
+ - name: regexp
+ args: "(.*?) от "
+ - name: replace
+ args: [" в ", " "]
+ - name: replace
+ args: ["января", "January"]
+ - name: replace
+ args: ["февраля", "February"]
+ - name: replace
+ args: ["марта ", "March"]
+ - name: replace
+ args: ["апреля", "April"]
+ - name: replace
+ args: ["мая", "May"]
+ - name: replace
+ args: ["июня", "June"]
+ - name: replace
+ args: ["июля", "July"]
+ - name: replace
+ args: ["августа", "August"]
+ - name: replace
+ args: ["сентября", "September"]
+ - name: replace
+ args: ["октября", "October"]
+ - name: replace
+ args: ["ноября", "November"]
+ - name: replace
+ args: ["декабря", "December"]
+ - name: dateparse
+ args: "02 January 2006 15:04"
+ size:
+ selector: td:nth-child(3)
+ filters:
+ - name: replace
+ args: ["ТБ", "TB"]
+ - name: replace
+ args: ["ГБ", "GB"]
+ - name: replace
+ args: ["МБ", "MB"]
+ - name: replace
+ args: ["КБ", "KB"]
+ seeders:
+ selector: td:nth-child(4)
+ filters:
+ - name: replace
+ args: ["?", "1"]
+ leechers:
+ selector: td:nth-child(5)
+ filters:
+ - name: replace
+ args: ["?", "0"]
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/bitspyder.yml b/src/Jackett.Common/Definitions/bitspyder.yml
index 5aeb0c588..5a6c4bea0 100644
--- a/src/Jackett.Common/Definitions/bitspyder.yml
+++ b/src/Jackett.Common/Definitions/bitspyder.yml
@@ -1,175 +1,175 @@
---
- site: bitspyder
- name: Bitspyder
- description: "Bitspyder is a Private site for Educational BOOKS / AUDIO"
- language: en-us
- type: private
- encoding: windows-1252
- links:
- - https://bitspyder.net/
- legacylinks:
- - http://bitspyder.net/
+site: bitspyder
+name: Bitspyder
+description: "Bitspyder is a Private site for Educational BOOKS / AUDIO"
+language: en-us
+type: private
+encoding: windows-1252
+links:
+ - https://bitspyder.net/
+legacylinks:
+ - http://bitspyder.net/
- caps:
- categorymappings:
- - {id: 61, cat: Books, desc: "3D"}
- - {id: 69, cat: Books, desc: "Anim|GFX"}
- - {id: 56, cat: Books, desc: "Art"}
- - {id: 40, cat: Audio/Audiobook, desc: "Audio Books"}
- - {id: 55, cat: Books, desc: "Business"}
- - {id: 46, cat: Books, desc: "Career"}
- - {id: 2, cat: Books, desc: "CBTs"}
- - {id: 39, cat: Books, desc: "Cert QA"}
- - {id: 63, cat: Books, desc: "College"}
- - {id: 53, cat: Books, desc: "Cooking"}
- - {id: 42, cat: Books, desc: "Documentary"}
- - {id: 37, cat: Books/Ebook, desc: "e-Books"}
- - {id: 65, cat: Books, desc: "Engineering"}
- - {id: 54, cat: Books, desc: "Health-Fitness"}
- - {id: 64, cat: Books, desc: "Kids"}
- - {id: 47, cat: Books, desc: "Languages"}
- - {id: 49, cat: Books, desc: "Linux CBTs"}
- - {id: 43, cat: Books, desc: "Lynda.com"}
- - {id: 57, cat: Books/Magazines, desc: "Magazines"}
- - {id: 71, cat: Books, desc: "Pluralsight"}
- - {id: 60, cat: Books, desc: "Medical"}
- - {id: 44, cat: Books, desc: "Misc Learning"}
- - {id: 51, cat: Books, desc: "Music Learning"}
- - {id: 41, cat: Books, desc: "Others"}
- - {id: 52, cat: Books, desc: "Photography"}
- - {id: 35, cat: Books, desc: "Developer"}
- - {id: 38, cat: Books, desc: "Udemy"}
- - {id: 68, cat: Books, desc: "Self Growth"}
- - {id: 72, cat: Books, desc: "Templates"}
- - {id: 58, cat: Books, desc: "Packt"}
- - {id: 45, cat: Books, desc: "Ethical hacking"}
- - {id: 59, cat: Books, desc: "WEB | SocialMedia"}
+caps:
+ categorymappings:
+ - {id: 61, cat: Books, desc: "3D"}
+ - {id: 69, cat: Books, desc: "Anim|GFX"}
+ - {id: 56, cat: Books, desc: "Art"}
+ - {id: 40, cat: Audio/Audiobook, desc: "Audio Books"}
+ - {id: 55, cat: Books, desc: "Business"}
+ - {id: 46, cat: Books, desc: "Career"}
+ - {id: 2, cat: Books, desc: "CBTs"}
+ - {id: 39, cat: Books, desc: "Cert QA"}
+ - {id: 63, cat: Books, desc: "College"}
+ - {id: 53, cat: Books, desc: "Cooking"}
+ - {id: 42, cat: Books, desc: "Documentary"}
+ - {id: 37, cat: Books/Ebook, desc: "e-Books"}
+ - {id: 65, cat: Books, desc: "Engineering"}
+ - {id: 54, cat: Books, desc: "Health-Fitness"}
+ - {id: 64, cat: Books, desc: "Kids"}
+ - {id: 47, cat: Books, desc: "Languages"}
+ - {id: 49, cat: Books, desc: "Linux CBTs"}
+ - {id: 43, cat: Books, desc: "Lynda.com"}
+ - {id: 57, cat: Books/Magazines, desc: "Magazines"}
+ - {id: 71, cat: Books, desc: "Pluralsight"}
+ - {id: 60, cat: Books, desc: "Medical"}
+ - {id: 44, cat: Books, desc: "Misc Learning"}
+ - {id: 51, cat: Books, desc: "Music Learning"}
+ - {id: 41, cat: Books, desc: "Others"}
+ - {id: 52, cat: Books, desc: "Photography"}
+ - {id: 35, cat: Books, desc: "Developer"}
+ - {id: 38, cat: Books, desc: "Udemy"}
+ - {id: 68, cat: Books, desc: "Self Growth"}
+ - {id: 72, cat: Books, desc: "Templates"}
+ - {id: 58, cat: Books, desc: "Packt"}
+ - {id: 45, cat: Books, desc: "Ethical hacking"}
+ - {id: 59, cat: Books, desc: "WEB | SocialMedia"}
- modes:
- search: [q]
+ modes:
+ search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "8"
- options:
- "8": "created"
- "6": "seeders"
- "4": "size"
- "1": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
- - name: info
- type: info
- label: Results Per Page
- default: For best results, change the Torrents per page: setting to 100 on your account profile.
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "8"
+ options:
+ "8": "created"
+ "6": "seeders"
+ "4": "size"
+ "1": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
+ - name: info
+ type: info
+ label: Results Per Page
+ default: For best results, change the Torrents per page: setting to 100 on your account profile.
- login:
- path: login.php
- method: form
- form: form
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: td.msg_info > font > b
- test:
- path: browse.php
+login:
+ path: login.php
+ method: form
+ form: form
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: td.msg_info > font > b
+ test:
+ path: browse.php
- search:
- paths:
- - path: browse.php
- inputs:
- search: "{{ .Keywords }}"
- # 0 active 1 incldead 2 onlydead
- incldead: 1
- # 0 title 1 default
- scope: 0
- sort: "{{ .Config.sort }}"
- type: "{{ .Config.type }}"
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ search: "{{ .Keywords }}"
+ # 0 active 1 incldead 2 onlydead
+ incldead: 1
+ # 0 title 1 default
+ scope: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
- rows:
- selector: table > tbody > tr[class]
+ rows:
+ selector: table > tbody > tr[class]
+ filters:
+ - name: andmatch
+
+ fields:
+ # there are two styles, we support both
+ title:
+ selector: a[href^="details.php?id="]
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
filters:
- - name: andmatch
-
- fields:
- # there are two styles, we support both
- title:
- selector: a[href^="details.php?id="]
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="details.php?id="]
- attribute: href
- filters:
- - name: replace
- args: ["details.php?id=", "download.php/"]
- - name: replace
- args: ["&hit=1", "/dummy.torrent"]
- size:
- selector: td.rowcol:nth-child(6):has(br), font:contains("Size:") + font
- files:
- selector: a[href*="&filelist=1"]
- grabs:
- selector: td.rowcol:nth-child(7):has(br), td.clear:nth-child(4)
- filters:
- - name: regexp
- args: (\d+)
- seeders:
- selector: td.rowcol:nth-last-child(3)
- leechers:
- selector: td.rowcol:nth-last-child(2)
- date:
- optional: true
- selector: font[color="5F5F5F"]
- filters:
- - name: split
- args: [" (", 0]
- - name: replace
- args: ["\xA0", " "]
- - name: append
- args: " +00:00"
- - name: dateparse
- args: "2006-01-02 15:04:05 -07:00"
- date:
- optional: true
- selector: a[title^="Upploaded at"]
- attribute: title
- filters:
- - name: replace
- args: ["Upploaded at - ", ""]
- - name: append
- args: " +00:00"
- - name: dateparse
- args: "2006-01-02 15:04:05 -07:00"
- downloadvolumefactor:
- case:
- "*": "1"
- uploadvolumefactor:
- case:
- "*": "1"
- description:
- optional: true
- selector: font[color="#990000"]
+ - name: querystring
+ args: cat
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ filters:
+ - name: replace
+ args: ["details.php?id=", "download.php/"]
+ - name: replace
+ args: ["&hit=1", "/dummy.torrent"]
+ size:
+ selector: td.rowcol:nth-child(6):has(br), font:contains("Size:") + font
+ files:
+ selector: a[href*="&filelist=1"]
+ grabs:
+ selector: td.rowcol:nth-child(7):has(br), td.clear:nth-child(4)
+ filters:
+ - name: regexp
+ args: (\d+)
+ seeders:
+ selector: td.rowcol:nth-last-child(3)
+ leechers:
+ selector: td.rowcol:nth-last-child(2)
+ date:
+ optional: true
+ selector: font[color="5F5F5F"]
+ filters:
+ - name: split
+ args: [" (", 0]
+ - name: replace
+ args: ["\xA0", " "]
+ - name: append
+ args: " +00:00"
+ - name: dateparse
+ args: "2006-01-02 15:04:05 -07:00"
+ date:
+ optional: true
+ selector: a[title^="Upploaded at"]
+ attribute: title
+ filters:
+ - name: replace
+ args: ["Upploaded at - ", ""]
+ - name: append
+ args: " +00:00"
+ - name: dateparse
+ args: "2006-01-02 15:04:05 -07:00"
+ downloadvolumefactor:
+ case:
+ "*": "1"
+ uploadvolumefactor:
+ case:
+ "*": "1"
+ description:
+ optional: true
+ selector: font[color="#990000"]
# custom v4
diff --git a/src/Jackett.Common/Definitions/bitturk.yml b/src/Jackett.Common/Definitions/bitturk.yml
index fadf53378..480170a9f 100644
--- a/src/Jackett.Common/Definitions/bitturk.yml
+++ b/src/Jackett.Common/Definitions/bitturk.yml
@@ -1,190 +1,190 @@
---
- site: bitturk
- name: BiTTuRK
- description: "BiTTuRK is a Turkish Private Torrent Tracker for HD MOVIES / TV / GENERAL. This Indexer is for English only."
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - http://bitturk.net/ # site does not support https ERR_CONNECTION_REFUSED
- legacylinks:
- - http://www.bitturk.net/
+site: bitturk
+name: BiTTuRK
+description: "BiTTuRK is a Turkish Private Torrent Tracker for HD MOVIES / TV / GENERAL. This Indexer is for English only."
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - http://bitturk.net/ # site does not support https ERR_CONNECTION_REFUSED
+legacylinks:
+ - http://www.bitturk.net/
- caps:
- categorymappings:
- - {id: 69, cat: Movies, desc: "BiTTuRK Altın"}
- - {id: 56, cat: Movies, desc: "BTRG"}
- - {id: 57, cat: Movies, desc: "Yerli Dizi"}
- - {id: 62, cat: Movies, desc: "Yab@ncı Dizi"}
- - {id: 63, cat: Movies, desc: "Türkçe Film"}
- - {id: 64, cat: Movies, desc: "Türk Filmi"}
- - {id: 66, cat: Movies/HD, desc: "x265"}
- - {id: 67, cat: XXX, desc: "XxX"}
- - {id: 68, cat: Movies, desc: "Dual (TR-~)"}
- - {id: 58, cat: Movies, desc: "Film"}
- - {id: 72, cat: Movies, desc: "Belgesel"}
- - {id: 60, cat: Movies/3D, desc: "3D"}
- - {id: 45, cat: Movies, desc: "Eğitim / Prog "}
- - {id: 1, cat: Movies, desc: "Filmler"}
- - {id: 14, cat: Movies/3D, desc: "3D Film"}
- - {id: 16, cat: Movies, desc: "Animasyon"}
- - {id: 17, cat: TV/Anime, desc: "Anime"}
- - {id: 31, cat: Movies, desc: "Belgesel"}
- - {id: 32, cat: Movies/BluRay, desc: "Bluray"}
- - {id: 33, cat: Movies/BluRay, desc: "BRRiP"}
- - {id: 34, cat: Movies, desc: "Çizgi Film"}
- - {id: 35, cat: Movies, desc: "D-Z0N3"}
- - {id: 36, cat: Movies/DVD, desc: "DVD"}
- - {id: 37, cat: Movies, desc: "MP4"}
- - {id: 38, cat: Movies, desc: "Türk Filmi"}
- - {id: 39, cat: Movies, desc: "Türkçe BoX"}
- - {id: 40, cat: Movies, desc: "Türkçe Film"}
- - {id: 41, cat: Movies, desc: "ViP"}
- - {id: 42, cat: Movies/SD, desc: "XviD"}
- - {id: 43, cat: Movies/SD, desc: "XviD BoX"}
- - {id: 55, cat: Movies/WEBDL, desc: "WEB-DL"}
- - {id: 7, cat: Audio, desc: "Müzik"}
- - {id: 20, cat: Audio, desc: "Türkçe MüziK"}
- - {id: 46, cat: Audio, desc: "Yab@ncı MüziK"}
- - {id: 21, cat: Audio/Video, desc: "Video Klipler"}
- - {id: 2, cat: Console, desc: "Oyun"}
- - {id: 6, cat: PC, desc: "Program / Misc "}
- - {id: 47, cat: Other, desc: "Resimler"}
- - {id: 48, cat: TV, desc: "Televizyon"}
- - {id: 49, cat: TV/HD, desc: "Tv HD"}
- - {id: 50, cat: TV, desc: "Yab@ncı Dizi"}
- - {id: 51, cat: TV, desc: "Yerli Dizi"}
- - {id: 44, cat: Books, desc: "E-BooK"}
+caps:
+ categorymappings:
+ - {id: 69, cat: Movies, desc: "BiTTuRK Altın"}
+ - {id: 56, cat: Movies, desc: "BTRG"}
+ - {id: 57, cat: Movies, desc: "Yerli Dizi"}
+ - {id: 62, cat: Movies, desc: "Yab@ncı Dizi"}
+ - {id: 63, cat: Movies, desc: "Türkçe Film"}
+ - {id: 64, cat: Movies, desc: "Türk Filmi"}
+ - {id: 66, cat: Movies/HD, desc: "x265"}
+ - {id: 67, cat: XXX, desc: "XxX"}
+ - {id: 68, cat: Movies, desc: "Dual (TR-~)"}
+ - {id: 58, cat: Movies, desc: "Film"}
+ - {id: 72, cat: Movies, desc: "Belgesel"}
+ - {id: 60, cat: Movies/3D, desc: "3D"}
+ - {id: 45, cat: Movies, desc: "Eğitim / Prog "}
+ - {id: 1, cat: Movies, desc: "Filmler"}
+ - {id: 14, cat: Movies/3D, desc: "3D Film"}
+ - {id: 16, cat: Movies, desc: "Animasyon"}
+ - {id: 17, cat: TV/Anime, desc: "Anime"}
+ - {id: 31, cat: Movies, desc: "Belgesel"}
+ - {id: 32, cat: Movies/BluRay, desc: "Bluray"}
+ - {id: 33, cat: Movies/BluRay, desc: "BRRiP"}
+ - {id: 34, cat: Movies, desc: "Çizgi Film"}
+ - {id: 35, cat: Movies, desc: "D-Z0N3"}
+ - {id: 36, cat: Movies/DVD, desc: "DVD"}
+ - {id: 37, cat: Movies, desc: "MP4"}
+ - {id: 38, cat: Movies, desc: "Türk Filmi"}
+ - {id: 39, cat: Movies, desc: "Türkçe BoX"}
+ - {id: 40, cat: Movies, desc: "Türkçe Film"}
+ - {id: 41, cat: Movies, desc: "ViP"}
+ - {id: 42, cat: Movies/SD, desc: "XviD"}
+ - {id: 43, cat: Movies/SD, desc: "XviD BoX"}
+ - {id: 55, cat: Movies/WEBDL, desc: "WEB-DL"}
+ - {id: 7, cat: Audio, desc: "Müzik"}
+ - {id: 20, cat: Audio, desc: "Türkçe MüziK"}
+ - {id: 46, cat: Audio, desc: "Yab@ncı MüziK"}
+ - {id: 21, cat: Audio/Video, desc: "Video Klipler"}
+ - {id: 2, cat: Console, desc: "Oyun"}
+ - {id: 6, cat: PC, desc: "Program / Misc "}
+ - {id: 47, cat: Other, desc: "Resimler"}
+ - {id: 48, cat: TV, desc: "Televizyon"}
+ - {id: 49, cat: TV/HD, desc: "Tv HD"}
+ - {id: 50, cat: TV, desc: "Yab@ncı Dizi"}
+ - {id: 51, cat: TV, desc: "Yerli Dizi"}
+ - {id: 44, cat: Books, desc: "E-BooK"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: info
- type: info
- label: Layout
- default: "
"
- - name: sort
- type: select
- label: Sort requested from site
- default: "added"
- options:
- "added": "created"
- "seeders": "seeders"
- "size": "size"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: info
+ type: info
+ label: Layout
+ default: "
"
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "added"
+ options:
+ "added": "created"
+ "seeders": "seeders"
+ "size": "size"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
+login:
+ path: ?p=home&pid=1
+ method: form
+ form: form#loginbox_form
+ submitpath: ajax/login.php
+ inputs:
+ action: login
+ loginbox_membername: "{{ .Config.username }}"
+ loginbox_password: "{{ .Config.password }}"
+ loginbox_remember: 1
+ selectorinputs:
+ securitytoken:
+ selector: "script:contains(\"stKey: \")"
+ filters:
+ - name: regexp
+ args: "stKey: \"(.+?)\","
+ error:
+ - selector: ":contains(\"-ERROR-\")"
+ test:
path: ?p=home&pid=1
- method: form
- form: form#loginbox_form
- submitpath: ajax/login.php
- inputs:
- action: login
- loginbox_membername: "{{ .Config.username }}"
- loginbox_password: "{{ .Config.password }}"
- loginbox_remember: 1
- selectorinputs:
- securitytoken:
- selector: "script:contains(\"stKey: \")"
- filters:
- - name: regexp
- args: "stKey: \"(.+?)\","
- error:
- - selector: ":contains(\"-ERROR-\")"
- test:
- path: ?p=home&pid=1
- selector: a[href*="/?p=logout&"]
+ selector: a[href*="/?p=logout&"]
- search:
- paths:
- - path: /
- keywordsfilters:
- - name: re_replace
- args: ["[^a-zA-Z0-9]+", "%25"]
- inputs:
- p: torrents
- pid: 32
- $raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
- keywords: "{{ .Keywords }}"
- search_type: name
- searchin: title
- "sortOptions[sortBy]": "{{ .Config.sort }}"
- "sortOptions[sortOrder]": "{{ .Config.type }}"
- error:
- - selector: div.error:not(:contains("Gösterilecek sonuç bulunamadı."))
+search:
+ paths:
+ - path: /
+ keywordsfilters:
+ - name: re_replace
+ args: ["[^a-zA-Z0-9]+", "%25"]
+ inputs:
+ p: torrents
+ pid: 32
+ $raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
+ keywords: "{{ .Keywords }}"
+ search_type: name
+ searchin: title
+ "sortOptions[sortBy]": "{{ .Config.sort }}"
+ "sortOptions[sortOrder]": "{{ .Config.type }}"
+ error:
+ - selector: div.error:not(:contains("Gösterilecek sonuç bulunamadı."))
- rows:
- selector: table#torrents_table_classic tr:has(td.torrent_name)
+ rows:
+ selector: table#torrents_table_classic tr:has(td.torrent_name)
- fields:
- title:
- selector: a[href*="?p=torrents&pid=10&action=details"]
- category:
- selector: div.category_image > a
- attribute: href
- filters:
- - name: querystring
- args: cid
- details:
- selector: a[href*="?p=torrents&pid=10&action=details"]
- attribute: href
- download:
- selector: a[href*="?p=torrents&pid=10&action=download"]
- attribute: href
- date:
- optional: true
- # Uploaded 30-01-2019 15:02 by
- selector: td.torrent_name:not(:contains(" at "))
- filters:
- - name: regexp
- args: "Uploaded (.+?) by"
- - name: dateparse
- args: "02-01-2006 15:04"
- date:
- optional: true
- # Uploaded Friday at 05:11 by
- # Uploaded Today at 00:48 by
- # Uploaded Yesterday at 23:57 by
- selector: td.torrent_name:contains(" at ")
- filters:
- - name: regexp
- args: "Uploaded (.+?) by"
- - name: replace
- args: [" at ", " "]
- size:
- selector: a[rel="torrent_size"]
- seeders:
- selector: a[rel="torrent_seeders"]
- leechers:
- selector: a[rel="torrent_leechers"]
- grabs:
- selector: a[rel="times_completed"]
- banner:
- selector: a[rel="fancybox"]
- optional: true
- attribute: href
- downloadvolumefactor:
- case:
- "img[src$=\"/torrent_free.png\"]": 0.5
- "*": 1
- uploadvolumefactor:
- case:
- "img[src$=\"/torrent_multiple_upload.png\"]": 2
- "*": 1
+ fields:
+ title:
+ selector: a[href*="?p=torrents&pid=10&action=details"]
+ category:
+ selector: div.category_image > a
+ attribute: href
+ filters:
+ - name: querystring
+ args: cid
+ details:
+ selector: a[href*="?p=torrents&pid=10&action=details"]
+ attribute: href
+ download:
+ selector: a[href*="?p=torrents&pid=10&action=download"]
+ attribute: href
+ date:
+ optional: true
+ # Uploaded 30-01-2019 15:02 by
+ selector: td.torrent_name:not(:contains(" at "))
+ filters:
+ - name: regexp
+ args: "Uploaded (.+?) by"
+ - name: dateparse
+ args: "02-01-2006 15:04"
+ date:
+ optional: true
+ # Uploaded Friday at 05:11 by
+ # Uploaded Today at 00:48 by
+ # Uploaded Yesterday at 23:57 by
+ selector: td.torrent_name:contains(" at ")
+ filters:
+ - name: regexp
+ args: "Uploaded (.+?) by"
+ - name: replace
+ args: [" at ", " "]
+ size:
+ selector: a[rel="torrent_size"]
+ seeders:
+ selector: a[rel="torrent_seeders"]
+ leechers:
+ selector: a[rel="torrent_leechers"]
+ grabs:
+ selector: a[rel="times_completed"]
+ banner:
+ selector: a[rel="fancybox"]
+ optional: true
+ attribute: href
+ downloadvolumefactor:
+ case:
+ "img[src$=\"/torrent_free.png\"]": 0.5
+ "*": 1
+ uploadvolumefactor:
+ case:
+ "img[src$=\"/torrent_multiple_upload.png\"]": 2
+ "*": 1
# TSUE 2.2
diff --git a/src/Jackett.Common/Definitions/bluebird.yml b/src/Jackett.Common/Definitions/bluebird.yml
index 077064500..0d2ad8f4a 100644
--- a/src/Jackett.Common/Definitions/bluebird.yml
+++ b/src/Jackett.Common/Definitions/bluebird.yml
@@ -1,93 +1,93 @@
---
- site: bluebirdhd
- name: BlueBird
- description: "BlueBird is a RUSSIAN Private Torrent Tracker for HD MOVIES"
- language: ru-ru
- type: private
- encoding: windows-1251
- links:
- - https://bluebird-hd.org/
+site: bluebirdhd
+name: BlueBird
+description: "BlueBird is a RUSSIAN Private Torrent Tracker for HD MOVIES"
+language: ru-ru
+type: private
+encoding: windows-1251
+links:
+ - https://bluebird-hd.org/
- caps:
- categorymappings:
- - {id: 1, cat: Movies, desc: "Films"}
- - {id: 2, cat: TV/Anime, desc: "Cartoons"}
- - {id: 3, cat: TV/Documentary, desc: "documentary"}
- - {id: 4, cat: Audio, desc: "Show / Music"}
- - {id: 5, cat: TV/Sport, desc: "Sport"}
- - {id: 6, cat: TV, desc: "TV series"}
- - {id: 7, cat: XXX, desc: "erotica"}
- - {id: 8, cat: Other, desc: "Demo / Misc"}
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Films"}
+ - {id: 2, cat: TV/Anime, desc: "Cartoons"}
+ - {id: 3, cat: TV/Documentary, desc: "documentary"}
+ - {id: 4, cat: Audio, desc: "Show / Music"}
+ - {id: 5, cat: TV/Sport, desc: "Sport"}
+ - {id: 6, cat: TV, desc: "TV series"}
+ - {id: 7, cat: XXX, desc: "erotica"}
+ - {id: 8, cat: Other, desc: "Demo / Misc"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: div.error
- test:
- path: browse.php
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: div.error
+ test:
+ path: browse.php
- search:
- paths:
- - path: browse.php
- inputs:
- $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
- search: "{{ .Query.Keywords }}"
- incldead: "1"
- rows:
- selector: table > tbody > tr:has(a[href^="details.php?id="])
- fields:
- title:
- selector: a[href^="details.php?id="]
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- grabs:
- selector: a[href*="&snatched=1#snatched"]
- filters:
- - name: regexp
- args: (\d+)
- size:
- selector: td:nth-child(7)
- remove: a
- date:
- selector: div#cleft > font
- seeders:
- selector: td:nth-child(5)
- leechers:
- selector: td:nth-child(6)
- banner:
- selector: a.tname
- attribute: onmouseover
- filters:
- - name: regexp
- args: src=([^\s]+)
- downloadvolumefactor:
- case:
- img[src="pic/diamond.png"]: "0"
- img[src="pic/freedownload.gif"]: "0"
- img[src="pic/silver.gif"]: "0.5"
- img[src="pic/bronze.gif"]: "0.75"
- "*": "1"
- uploadvolumefactor:
- case:
- img[src="pic/diamond.png"]: "2"
- "*": "1"
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
+ search: "{{ .Query.Keywords }}"
+ incldead: "1"
+ rows:
+ selector: table > tbody > tr:has(a[href^="details.php?id="])
+ fields:
+ title:
+ selector: a[href^="details.php?id="]
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ grabs:
+ selector: a[href*="&snatched=1#snatched"]
+ filters:
+ - name: regexp
+ args: (\d+)
+ size:
+ selector: td:nth-child(7)
+ remove: a
+ date:
+ selector: div#cleft > font
+ seeders:
+ selector: td:nth-child(5)
+ leechers:
+ selector: td:nth-child(6)
+ banner:
+ selector: a.tname
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: src=([^\s]+)
+ downloadvolumefactor:
+ case:
+ img[src="pic/diamond.png"]: "0"
+ img[src="pic/freedownload.gif"]: "0"
+ img[src="pic/silver.gif"]: "0.5"
+ img[src="pic/bronze.gif"]: "0.75"
+ "*": "1"
+ uploadvolumefactor:
+ case:
+ img[src="pic/diamond.png"]: "2"
+ "*": "1"
diff --git a/src/Jackett.Common/Definitions/blutopia.yml b/src/Jackett.Common/Definitions/blutopia.yml
index 2c63dff7c..6cb3f12b1 100644
--- a/src/Jackett.Common/Definitions/blutopia.yml
+++ b/src/Jackett.Common/Definitions/blutopia.yml
@@ -1,184 +1,184 @@
---
- site: blutopia
- name: Blutopia
- description: "Blutopia (BLU) is a Private Torrent Tracker for HD MOVIES / TV"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - https://blutopia.xyz/
+site: blutopia
+name: Blutopia
+description: "Blutopia (BLU) is a Private Torrent Tracker for HD MOVIES / TV"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - https://blutopia.xyz/
- caps:
- categorymappings:
- - {id: 1, cat: Movies, desc: "Movies"}
- - {id: 2, cat: TV, desc: "TV"}
- - {id: 3, cat: Movies, desc: "FANRES"}
- - {id: 6, cat: TV/Anime, desc: "Anime"}
- - {id: 7, cat: Movies/Other, desc: "Trailer"}
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 2, cat: TV, desc: "TV"}
+ - {id: 3, cat: Movies, desc: "FANRES"}
+ - {id: 6, cat: TV/Anime, desc: "Anime"}
+ - {id: 7, cat: Movies/Other, desc: "Trailer"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "created_at"
- options:
- "created_at": "created"
- "seeders": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "created_at"
+ options:
+ "created_at": "created"
+ "seeders": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: login
- method: form
- form: form[action$="/login"]
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- remember: on
- selectorinputs:
- _token:
- selector: input[name="_token"]
- attribute: value
- error:
- - selector: div#ERROR_COPY
+login:
+ path: login
+ method: form
+ form: form[action$="/login"]
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ remember: on
+ selectorinputs:
+ _token:
+ selector: input[name="_token"]
+ attribute: value
+ error:
+ - selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
- ratio:
- path: /
- selector: li:has(i.fa-sync-alt)
- filters:
- - name: regexp
- args: "Ratio : (\\d+)"
+ratio:
+ path: /
+ selector: li:has(i.fa-sync-alt)
+ filters:
+ - name: regexp
+ args: "Ratio : (\\d+)"
- search:
- paths:
- - path: torrents/filter
- inputs:
- $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
- search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- description: ""
- uploader: ""
- imdb: "{{ .Query.IMDBIDShort }}"
- tvdb: ""
- tmdb: ""
- mal: ""
- igdb: ""
- sorting: "{{ .Config.sort }}"
- sort: "{{ .Config.sort }}"
- direction: "{{ .Config.type }}"
- qty: 100
+search:
+ paths:
+ - path: torrents/filter
+ inputs:
+ $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ description: ""
+ uploader: ""
+ imdb: "{{ .Query.IMDBIDShort }}"
+ tvdb: ""
+ tmdb: ""
+ mal: ""
+ igdb: ""
+ sorting: "{{ .Config.sort }}"
+ sort: "{{ .Config.sort }}"
+ direction: "{{ .Config.type }}"
+ qty: 100
- rows:
- selector: table > tbody > tr
+ rows:
+ selector: table > tbody > tr
- fields:
- category:
- selector: a[href*="/categories/"]
- attribute: href
- filters:
- - name: regexp
- args: "/categories/(\\d+)"
- title:
- selector: a.view-torrent
- download:
- selector: a[href*="/download/"]
- attribute: href
- details:
- selector: a.view-torrent
- attribute: href
- banner:
- optional: true
- selector: div.torrent-poster img
- attribute: src
- filters:
- - name: replace
- args: ["https://via.placeholder.com/600x900", ""]
- comments:
- selector: a[href*="#comments"]
- attribute: href
- size:
- selector: td:nth-last-child(4)
- seeders:
- selector: td:nth-last-child(3)
- leechers:
- selector: td:nth-last-child(2)
- grabs:
- selector: td:nth-last-child(1)
- filters:
- - name: regexp
- args: (\d+)
- imdb:
- optional: true
- selector: a[href*="www.imdb.com/title/tt"]
- attribute: href
- date:
- selector: time
- filters:
- # translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese
- - name: re_replace
- args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
- - name: re_replace
- args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
- - name: re_replace
- args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟)", " minute"]
- - name: re_replace
- args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden)", "hours"]
- - name: re_replace
- args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时)", " hour"]
- - name: re_replace
- args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen)", "days"]
- - name: re_replace
- args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天)", " day"]
- - name: re_replace
- args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
- - name: re_replace
- args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周)", " week"]
- - name: re_replace
- args: ["(?i) (ay)", "month"]
- - name: re_replace
- args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
- - name: re_replace
- args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月)", " month"]
- - name: re_replace
- args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- - name: re_replace
- args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- - name: re_replace
- args: ["(?i) (an)", "year"]
- downloadvolumefactor:
- case:
- i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
- i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
- i[class*="fa-star text-bold"]: 0 # Freeleech From Token
- i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
- i[class*="fa-globe text-blue"]: 0 # Global Freeleech
- i[class*="fa-star text-gold"]: 0 # Freeleech
- i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
- "*": 1
- uploadvolumefactor:
- case:
- i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
- i[class*="fa-globe text-green"]: 2 # Global Double Upload
- i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
- "*": 1
+ fields:
+ category:
+ selector: a[href*="/categories/"]
+ attribute: href
+ filters:
+ - name: regexp
+ args: "/categories/(\\d+)"
+ title:
+ selector: a.view-torrent
+ download:
+ selector: a[href*="/download/"]
+ attribute: href
+ details:
+ selector: a.view-torrent
+ attribute: href
+ banner:
+ optional: true
+ selector: div.torrent-poster img
+ attribute: src
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/600x900", ""]
+ comments:
+ selector: a[href*="#comments"]
+ attribute: href
+ size:
+ selector: td:nth-last-child(4)
+ seeders:
+ selector: td:nth-last-child(3)
+ leechers:
+ selector: td:nth-last-child(2)
+ grabs:
+ selector: td:nth-last-child(1)
+ filters:
+ - name: regexp
+ args: (\d+)
+ imdb:
+ optional: true
+ selector: a[href*="www.imdb.com/title/tt"]
+ attribute: href
+ date:
+ selector: time
+ filters:
+ # translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese
+ - name: re_replace
+ args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
+ - name: re_replace
+ args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
+ - name: re_replace
+ args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟)", " minute"]
+ - name: re_replace
+ args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden)", "hours"]
+ - name: re_replace
+ args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时)", " hour"]
+ - name: re_replace
+ args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen)", "days"]
+ - name: re_replace
+ args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天)", " day"]
+ - name: re_replace
+ args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
+ - name: re_replace
+ args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周)", " week"]
+ - name: re_replace
+ args: ["(?i) (ay)", "month"]
+ - name: re_replace
+ args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
+ - name: re_replace
+ args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月)", " month"]
+ - name: re_replace
+ args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
+ - name: re_replace
+ args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
+ - name: re_replace
+ args: ["(?i) (an)", "year"]
+ downloadvolumefactor:
+ case:
+ i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
+ i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
+ i[class*="fa-star text-bold"]: 0 # Freeleech From Token
+ i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
+ i[class*="fa-globe text-blue"]: 0 # Global Freeleech
+ i[class*="fa-star text-gold"]: 0 # Freeleech
+ i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
+ "*": 1
+ uploadvolumefactor:
+ case:
+ i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
+ i[class*="fa-globe text-green"]: 2 # Global Double Upload
+ i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
+ "*": 1
# UNIT3D 2.3.0
diff --git a/src/Jackett.Common/Definitions/booktracker.yml b/src/Jackett.Common/Definitions/booktracker.yml
index 722e1c8cb..9cfd4873f 100644
--- a/src/Jackett.Common/Definitions/booktracker.yml
+++ b/src/Jackett.Common/Definitions/booktracker.yml
@@ -1,99 +1,99 @@
---
- site: booktracker
- name: BookTracker
- description: "BookTracker is a RUSSIAN Semi-Private Torrent Tracker for EBOOKS"
- language: ru-ru
- type: semi-private
- encoding: UTF-8
- links:
- - https://booktracker.org/
+site: booktracker
+name: BookTracker
+description: "BookTracker is a RUSSIAN Semi-Private Torrent Tracker for EBOOKS"
+language: ru-ru
+type: semi-private
+encoding: UTF-8
+links:
+ - https://booktracker.org/
- caps:
- categorymappings:
- - {id: 1, cat: Books/Ebook, desc: "Ebooks"}
+caps:
+ categorymappings:
+ - {id: 1, cat: Books/Ebook, desc: "Ebooks"}
- modes:
- search: [q]
+ modes:
+ search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "1"
- options:
- "1": "created"
- "10": "seeders"
- "7": "size"
- "2": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "1"
+ options:
+ "1": "created"
+ "10": "seeders"
+ "7": "size"
+ "2": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: login.php
- method: form
- form: form[action$="/login.php"]
- inputs:
- login_username: "{{ .Config.username }}"
- login_password: "{{ .Config.password }}"
- redirect: "index.php"
- autologin: 1
- selectorinputs:
- cookie_test:
- selector: input[name="cookie_test"]
- attribute: value
- error:
- - selector: h4.warnColor1
- test:
- path: index.php
- selector: a[href="./login.php?logout=1"]
+login:
+ path: login.php
+ method: form
+ form: form[action$="/login.php"]
+ inputs:
+ login_username: "{{ .Config.username }}"
+ login_password: "{{ .Config.password }}"
+ redirect: "index.php"
+ autologin: 1
+ selectorinputs:
+ cookie_test:
+ selector: input[name="cookie_test"]
+ attribute: value
+ error:
+ - selector: h4.warnColor1
+ test:
+ path: index.php
+ selector: a[href="./login.php?logout=1"]
- search:
- paths:
- - path: tracker.php
- inputs:
- nm: "{{ .Keywords }}"
- o: "{{ .Config.sort }}"
- s: "{{ .Config.type }}"
- tm: -1
- sns: -1
+search:
+ paths:
+ - path: tracker.php
+ inputs:
+ nm: "{{ .Keywords }}"
+ o: "{{ .Config.sort }}"
+ s: "{{ .Config.type }}"
+ tm: -1
+ sns: -1
- rows:
- selector: tr[id^="tor_"]:has(a[href^="./download.php?id="])
+ rows:
+ selector: tr[id^="tor_"]:has(a[href^="./download.php?id="])
- fields:
- title:
- selector: a.tLink
- details:
- selector: a.tLink
- attribute: href
- download:
- selector: a[href^="./download.php?id="]
- attribute: href
- category:
- text: 1
- size:
- selector: td:nth-child(6) > u
- seeders:
- selector: td.seedmed > b
- leechers:
- selector: td.leechmed > b
- grabs:
- selector: td:nth-child(9)
- date:
- selector: td:last-child > u
- downloadvolumefactor:
- text: 1
- uploadvolumefactor:
- text: 1
+ fields:
+ title:
+ selector: a.tLink
+ details:
+ selector: a.tLink
+ attribute: href
+ download:
+ selector: a[href^="./download.php?id="]
+ attribute: href
+ category:
+ text: 1
+ size:
+ selector: td:nth-child(6) > u
+ seeders:
+ selector: td.seedmed > b
+ leechers:
+ selector: td.leechmed > b
+ grabs:
+ selector: td:nth-child(9)
+ date:
+ selector: td:last-child > u
+ downloadvolumefactor:
+ text: 1
+ uploadvolumefactor:
+ text: 1
# TorrentPier
diff --git a/src/Jackett.Common/Definitions/boxingtorrents.yml b/src/Jackett.Common/Definitions/boxingtorrents.yml
index 644090746..a0197b4a6 100644
--- a/src/Jackett.Common/Definitions/boxingtorrents.yml
+++ b/src/Jackett.Common/Definitions/boxingtorrents.yml
@@ -1,133 +1,133 @@
---
- site: boxingtorrents
- name: Boxing Torrents
- description: "Boxing Torrents is a Private Torrent Tracker for BOXING"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - https://tc-boxing.com/
+site: boxingtorrents
+name: Boxing Torrents
+description: "Boxing Torrents is a Private Torrent Tracker for BOXING"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - https://tc-boxing.com/
- caps:
- categorymappings:
- - {id: 15, cat: TV/Sport, desc: "3D"}
- - {id: 9, cat: TV/Sport, desc: "Amateur - Full"}
- - {id: 16, cat: TV/Sport, desc: "Blu-ray"}
- - {id: 13, cat: TV/Sport, desc: "Career Set"}
- - {id: 8, cat: TV/Sport, desc: "DVD"}
- - {id: 10, cat: TV/Sport, desc: "Foreign - Excellent"}
- - {id: 11, cat: TV/Sport, desc: "Foreign - Fair"}
- - {id: 6, cat: TV/Sport, desc: "Foreign - Good"}
- - {id: 12, cat: TV/Sport, desc: "Foreign - Poor"}
- - {id: 1, cat: TV/Sport, desc: "Full - Excellent"}
- - {id: 3, cat: TV/Sport, desc: "Full - Fair"}
- - {id: 2, cat: TV/Sport, desc: "Full - Good"}
- - {id: 4, cat: TV/Sport, desc: "Full - Poor"}
- - {id: 14, cat: TV/Sport, desc: "HD"}
- - {id: 7, cat: TV/Sport, desc: "Misc"}
+caps:
+ categorymappings:
+ - {id: 15, cat: TV/Sport, desc: "3D"}
+ - {id: 9, cat: TV/Sport, desc: "Amateur - Full"}
+ - {id: 16, cat: TV/Sport, desc: "Blu-ray"}
+ - {id: 13, cat: TV/Sport, desc: "Career Set"}
+ - {id: 8, cat: TV/Sport, desc: "DVD"}
+ - {id: 10, cat: TV/Sport, desc: "Foreign - Excellent"}
+ - {id: 11, cat: TV/Sport, desc: "Foreign - Fair"}
+ - {id: 6, cat: TV/Sport, desc: "Foreign - Good"}
+ - {id: 12, cat: TV/Sport, desc: "Foreign - Poor"}
+ - {id: 1, cat: TV/Sport, desc: "Full - Excellent"}
+ - {id: 3, cat: TV/Sport, desc: "Full - Fair"}
+ - {id: 2, cat: TV/Sport, desc: "Full - Good"}
+ - {id: 4, cat: TV/Sport, desc: "Full - Poor"}
+ - {id: 14, cat: TV/Sport, desc: "HD"}
+ - {id: 7, cat: TV/Sport, desc: "Misc"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "added"
- options:
- "added": "created"
- "seeders": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "DESC"
- options:
- "DESC": "desc"
- "ASC": "asc"
- - name: info_download
- type: info
- label: "Download Restrictions"
- default: "You must have uploaded at least 10GB before you are able to access all torrent sizes. Until then, you are restricted to torrents no larger than 2.5GB."
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "added"
+ options:
+ "added": "created"
+ "seeders": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "DESC"
+ options:
+ "DESC": "desc"
+ "ASC": "asc"
+ - name: info_download
+ type: info
+ label: "Download Restrictions"
+ default: "You must have uploaded at least 10GB before you are able to access all torrent sizes. Until then, you are restricted to torrents no larger than 2.5GB."
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: td.embedded:contains("Login failed!")
- test:
- path: browse.php
- selector: a[href="logout.php"]
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: td.embedded:contains("Login failed!")
+ test:
+ path: browse.php
+ selector: a[href="logout.php"]
- download:
- selector: a[href^="download.php"]
- attribute: href
+download:
+ selector: a[href^="download.php"]
+ attribute: href
- search:
- paths:
- # https://tc-boxing.com/browse.php?c16=1&c8=1&c14=1&incldead=1
- # https://tc-boxing.com/browse.php?search=tyson&cat=0&incldead=1
- - path: browse.php
- inputs:
- $raw: "{{ if .Categories }}{{ range .Categories }}c{{.}}=1&{{end}}{{else}}cat=0{{end}}"
- # 0 active 1 incldead 2 onlydead
- incldead: 1
- search: "{{ .Keywords }}"
- sort: "{{ .Config.sort }}"
- d: "{{ .Config.type }}"
+search:
+ paths:
+ # https://tc-boxing.com/browse.php?c16=1&c8=1&c14=1&incldead=1
+ # https://tc-boxing.com/browse.php?search=tyson&cat=0&incldead=1
+ - path: browse.php
+ inputs:
+ $raw: "{{ if .Categories }}{{ range .Categories }}c{{.}}=1&{{end}}{{else}}cat=0{{end}}"
+ # 0 active 1 incldead 2 onlydead
+ incldead: 1
+ search: "{{ .Keywords }}"
+ sort: "{{ .Config.sort }}"
+ d: "{{ .Config.type }}"
- rows:
- selector: table[border="1"][cellspacing="0"][cellpadding="5"] tr:has(a[href^="details.php?id="])
+ rows:
+ selector: table[border="1"][cellspacing="0"][cellpadding="5"] tr:has(a[href^="details.php?id="])
- fields:
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- title:
- selector: a[href^="details.php?id="]
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="details.php?id="]
- attribute: href
- files:
- selector: td:nth-last-child(8)
- date:
- selector: td:nth-last-child(6)
- filters:
- - name: dateparse
- args: "2006-01-0215:04:05"
- size:
- selector: td:nth-last-child(5)
- grabs:
- selector: td:nth-last-child(4)
- filters:
- - name: regexp
- args: (\d+)
- seeders:
- selector: td:nth-last-child(3)
- leechers:
- selector: td:nth-last-child(2)
- downloadvolumefactor:
- case:
- "b:contains(\"FreeLeech\")": 0
- "*": 1
- uploadvolumefactor:
- text: 1
+ fields:
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title:
+ selector: a[href^="details.php?id="]
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ files:
+ selector: td:nth-last-child(8)
+ date:
+ selector: td:nth-last-child(6)
+ filters:
+ - name: dateparse
+ args: "2006-01-0215:04:05"
+ size:
+ selector: td:nth-last-child(5)
+ grabs:
+ selector: td:nth-last-child(4)
+ filters:
+ - name: regexp
+ args: (\d+)
+ seeders:
+ selector: td:nth-last-child(3)
+ leechers:
+ selector: td:nth-last-child(2)
+ downloadvolumefactor:
+ case:
+ "b:contains(\"FreeLeech\")": 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/brasiltracker.yml b/src/Jackett.Common/Definitions/brasiltracker.yml
index 44080bffd..bdbed65f4 100644
--- a/src/Jackett.Common/Definitions/brasiltracker.yml
+++ b/src/Jackett.Common/Definitions/brasiltracker.yml
@@ -1,118 +1,118 @@
---
- site: brasiltracker
- name: BrasilTracker
- description: "BrasilTracker is a BRAZILIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: en-us
- encoding: UTF-8
- type: private
- links:
- - https://brasiltracker.org/
+site: brasiltracker
+name: BrasilTracker
+description: "BrasilTracker is a BRAZILIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: en-us
+encoding: UTF-8
+type: private
+links:
+ - https://brasiltracker.org/
- caps:
- categorymappings:
- - {id: 1, cat: Other, desc: "Filmes/Series/Música"}
+caps:
+ categorymappings:
+ - {id: 1, cat: Other, desc: "Filmes/Series/Música"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "time"
- options:
- "time": "created"
- "seeders": "seeders"
- "size": "size"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
- - name: info_results
- type: info
- label: "Search results"
- default: "This indexer does not support Torrent Groups
Un-tick the Torrent grouping (Habilitar Grupo de Torrents) checkbox in your Configurações."
- - name: info_categories
- type: info
- label: "About categories"
- default: "BrasilTracker does not show Categories in its Search Results.
To use this indexer with Sonarr/Radarr set your indexer category to 7000."
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "time"
+ options:
+ "time": "created"
+ "seeders": "seeders"
+ "size": "size"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
+ - name: info_results
+ type: info
+ label: "Search results"
+ default: "This indexer does not support Torrent Groups
Un-tick the Torrent grouping (Habilitar Grupo de Torrents) checkbox in your Configurações."
+ - name: info_categories
+ type: info
+ label: "About categories"
+ default: "BrasilTracker does not show Categories in its Search Results.
To use this indexer with Sonarr/Radarr set your indexer category to 7000."
- login:
- path: login.php
- method: form
- form: form#loginform
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- keeplogged: 1
- error:
- - selector: form#loginform:contains("incorretos")
- test:
- path: index.php
- selector: a[href^="logout.php?auth="]
+login:
+ path: login.php
+ method: form
+ form: form#loginform
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ keeplogged: 1
+ error:
+ - selector: form#loginform:contains("incorretos")
+ test:
+ path: index.php
+ selector: a[href^="logout.php?auth="]
- search:
- paths:
- - path: torrents.php
- inputs:
- # torrents.php?searchstr=mandalorain&order_by=size&order_way=desc&action=basic&searchsubmit=1
- searchstr: "{{ .Keywords }}"
- order_by: "{{ .Config.sort }}"
- order_way: "{{ .Config.type }}"
- action: basic
- searchsubmit: 1
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ # torrents.php?searchstr=mandalorain&order_by=size&order_way=desc&action=basic&searchsubmit=1
+ searchstr: "{{ .Keywords }}"
+ order_by: "{{ .Config.sort }}"
+ order_way: "{{ .Config.type }}"
+ action: basic
+ searchsubmit: 1
- rows:
- selector: table#torrent_table > tbody > tr.torrent
+ rows:
+ selector: table#torrent_table > tbody > tr.torrent
- fields:
- category:
- text: 1
- title:
- selector: a[href^="torrents.php?id="]
- details:
- selector: a[href^="torrents.php?id="]
- attribute: href
- download:
- selector: a[href^="torrents.php?action=download&id="]
- attribute: href
- description:
- selector: div.tags
- banner:
- selector: img[alt="Cover"]
- attribute: src
- files:
- selector: td:nth-child(3)
- date:
- selector: span.time
- attribute: title
- filters:
- - name: dateparse
- args: "Jan 2 2006, 15:04"
- size:
- selector: td:nth-child(5)
- grabs:
- selector: td:nth-child(6)
- seeders:
- selector: td:nth-child(7)
- leechers:
- selector: td:nth-child(8)
- downloadvolumefactor:
- case:
- strong.tl_free: 0
- "*": 1
- uploadvolumefactor:
- case:
- "*": 1
+ fields:
+ category:
+ text: 1
+ title:
+ selector: a[href^="torrents.php?id="]
+ details:
+ selector: a[href^="torrents.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="torrents.php?action=download&id="]
+ attribute: href
+ description:
+ selector: div.tags
+ banner:
+ selector: img[alt="Cover"]
+ attribute: src
+ files:
+ selector: td:nth-child(3)
+ date:
+ selector: span.time
+ attribute: title
+ filters:
+ - name: dateparse
+ args: "Jan 2 2006, 15:04"
+ size:
+ selector: td:nth-child(5)
+ grabs:
+ selector: td:nth-child(6)
+ seeders:
+ selector: td:nth-child(7)
+ leechers:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ strong.tl_free: 0
+ "*": 1
+ uploadvolumefactor:
+ case:
+ "*": 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/broadcity.yml b/src/Jackett.Common/Definitions/broadcity.yml
index 7862481f7..a04dcaf0a 100644
--- a/src/Jackett.Common/Definitions/broadcity.yml
+++ b/src/Jackett.Common/Definitions/broadcity.yml
@@ -1,147 +1,147 @@
---
- site: broadcity
- name: BroadCity
- description: "BroadCity is a TURKISH Private Torrent Tracker for MOVIES and TV"
- language: tr
- type: private
- encoding: UTF-8
- links:
- - https://broadcity.in/
- legacylinks:
- - http://broadcity.in/
+site: broadcity
+name: BroadCity
+description: "BroadCity is a TURKISH Private Torrent Tracker for MOVIES and TV"
+language: tr
+type: private
+encoding: UTF-8
+links:
+ - https://broadcity.in/
+legacylinks:
+ - http://broadcity.in/
- caps:
- categorymappings:
- - {id: 1, cat: Movies/UHD, desc: "UHD"}
- - {id: 2, cat: Movies/HD, desc: "BluRay"}
- - {id: 8, cat: Movies/HD, desc: "TV"}
- - {id: 6, cat: Movies/HD, desc: "WEB-DL"}
- - {id: 16, cat: Movies/HD, desc: "WEBRip"}
- - {id: 3, cat: Movies/HD, desc: "Movies HD"}
- - {id: 25, cat: Movies/3D, desc: "Movies 3D"}
- - {id: 4, cat: Movies/HD, desc: "BluRay"}
- - {id: 7, cat: Movies/HD, desc: "TV"}
- - {id: 5, cat: Movies/HD, desc: "WEB-DL"}
- - {id: 14, cat: Movies/HD, desc: "WEBRip"}
- - {id: 27, cat: Movies/HD, desc: "LORD Rips"}
- - {id: 9, cat: Movies/SD, desc: "SD"}
- - {id: 23, cat: Movies/SD, desc: "BluRay"}
- - {id: 10, cat: Movies/SD, desc: "DVD"}
- - {id: 12, cat: Movies/SD, desc: "TV"}
- - {id: 13, cat: Movies/SD, desc: "WEB-DL"}
- - {id: 15, cat: Movies/SD, desc: "WEBRip"}
- - {id: 17, cat: TV, desc: "TV"}
- - {id: 26, cat: TV/Other, desc: "TV Program"}
- - {id: 19, cat: TV, desc: "Yabanci Dizi"}
- - {id: 18, cat: TV, desc: "Yerli Dizi"}
- - {id: 20, cat: Movies/HD, desc: "VIP"}
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies/UHD, desc: "UHD"}
+ - {id: 2, cat: Movies/HD, desc: "BluRay"}
+ - {id: 8, cat: Movies/HD, desc: "TV"}
+ - {id: 6, cat: Movies/HD, desc: "WEB-DL"}
+ - {id: 16, cat: Movies/HD, desc: "WEBRip"}
+ - {id: 3, cat: Movies/HD, desc: "Movies HD"}
+ - {id: 25, cat: Movies/3D, desc: "Movies 3D"}
+ - {id: 4, cat: Movies/HD, desc: "BluRay"}
+ - {id: 7, cat: Movies/HD, desc: "TV"}
+ - {id: 5, cat: Movies/HD, desc: "WEB-DL"}
+ - {id: 14, cat: Movies/HD, desc: "WEBRip"}
+ - {id: 27, cat: Movies/HD, desc: "LORD Rips"}
+ - {id: 9, cat: Movies/SD, desc: "SD"}
+ - {id: 23, cat: Movies/SD, desc: "BluRay"}
+ - {id: 10, cat: Movies/SD, desc: "DVD"}
+ - {id: 12, cat: Movies/SD, desc: "TV"}
+ - {id: 13, cat: Movies/SD, desc: "WEB-DL"}
+ - {id: 15, cat: Movies/SD, desc: "WEBRip"}
+ - {id: 17, cat: TV, desc: "TV"}
+ - {id: 26, cat: TV/Other, desc: "TV Program"}
+ - {id: 19, cat: TV, desc: "Yabanci Dizi"}
+ - {id: 18, cat: TV, desc: "Yerli Dizi"}
+ - {id: 20, cat: Movies/HD, desc: "VIP"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: info
- type: info
- label: Captcha Text Note
- default: The Captcha Text code is case sensitive.
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: info
+ type: info
+ label: Captcha Text Note
+ default: The Captcha Text code is case sensitive.
- login:
- path: login.php
- method: form
- form: form[action$="takelogin.php"]
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- captcha:
- type: image
- selector: img#regimage
- input: imagestring
- error:
- - selector: table:contains("Bir Hata oluştu!")
- - selector: table:contains("Bir Hata Oluştu!")
- - selector: table:contains("Login Giriş Kilitlendi!")
- test:
- path: index.php
- selector: a[href*="/logout.php?logouthash="]
-
- ratio:
+login:
+ path: login.php
+ method: form
+ form: form[action$="takelogin.php"]
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ captcha:
+ type: image
+ selector: img#regimage
+ input: imagestring
+ error:
+ - selector: table:contains("Bir Hata oluştu!")
+ - selector: table:contains("Bir Hata Oluştu!")
+ - selector: table:contains("Login Giriş Kilitlendi!")
+ test:
path: index.php
- selector: div#top div:nth-child(2) span:nth-child(2)
- filters:
- - name: regexp
- args: "Ratio: (.+?) Bonus:"
+ selector: a[href*="/logout.php?logouthash="]
- search:
- paths:
- - path: browse.php
- keywordsfilters:
- - name: re_replace # E01 to BL01
- args: ["(?i)\\bE(\\d+)\\b", "E$1"]
- inputs:
- # does not support multi categories so defaulting to ALL
- do: search
- keywords: "{{ .Keywords }}"
- category: 0
- search_type: t_name
- include_dead_torrents: yes
+ratio:
+ path: index.php
+ selector: div#top div:nth-child(2) span:nth-child(2)
+ filters:
+ - name: regexp
+ args: "Ratio: (.+?) Bonus:"
- rows:
- selector: table#sortabletable tbody tr:has(div[id^="port-target-"])
+search:
+ paths:
+ - path: browse.php
+ keywordsfilters:
+ - name: re_replace # E01 to BL01
+ args: ["(?i)\\bE(\\d+)\\b", "E$1"]
+ inputs:
+ # does not support multi categories so defaulting to ALL
+ do: search
+ keywords: "{{ .Keywords }}"
+ category: 0
+ search_type: t_name
+ include_dead_torrents: yes
- fields:
- title:
- selector: div[id^="port-target-"] a
- filters:
- - name: re_replace # BL01 to E01
- args: ["(?i)\\bBL(\\d+)\\b", " E$1 "]
- details:
- selector: div[id^="port-target-"] a
- attribute: href
- category:
- selector: a[href*="browse.php?category="]
- attribute: href
- filters:
- - name: querystring
- args: category
- banner:
- selector: div[id^="port-content-"] img
- attribute: src
- date:
- selector: td:nth-child(2)
- filters:
- - name: regexp
- args: (\d{2}-\d{2}-\d{4} \d{2}:\d{2})
- filters:
- - name: dateparse
- args: "02-01-2006 15:04"
- download:
- selector: a[href*="download.php?id="]
- attribute: href
- comments:
- selector: td:nth-child(4) a
- attribute: href
- size:
- selector: td:nth-child(5)
- grabs:
- selector: td:nth-child(6)
- seeders:
- selector: td:nth-child(7)
- leechers:
- selector: td:nth-child(8)
- downloadvolumefactor:
- case:
- img[src$="/freedownload.gif"]: 0
- img[src$="/silverdownload.gif"]: 0.5
- "*": 1
- uploadvolumefactor:
- case:
- img[src$="/x2.gif"]: 2
- "*": 1
+ rows:
+ selector: table#sortabletable tbody tr:has(div[id^="port-target-"])
+
+ fields:
+ title:
+ selector: div[id^="port-target-"] a
+ filters:
+ - name: re_replace # BL01 to E01
+ args: ["(?i)\\bBL(\\d+)\\b", " E$1 "]
+ details:
+ selector: div[id^="port-target-"] a
+ attribute: href
+ category:
+ selector: a[href*="browse.php?category="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: category
+ banner:
+ selector: div[id^="port-content-"] img
+ attribute: src
+ date:
+ selector: td:nth-child(2)
+ filters:
+ - name: regexp
+ args: (\d{2}-\d{2}-\d{4} \d{2}:\d{2})
+ filters:
+ - name: dateparse
+ args: "02-01-2006 15:04"
+ download:
+ selector: a[href*="download.php?id="]
+ attribute: href
+ comments:
+ selector: td:nth-child(4) a
+ attribute: href
+ size:
+ selector: td:nth-child(5)
+ grabs:
+ selector: td:nth-child(6)
+ seeders:
+ selector: td:nth-child(7)
+ leechers:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img[src$="/freedownload.gif"]: 0
+ img[src$="/silverdownload.gif"]: 0.5
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img[src$="/x2.gif"]: 2
+ "*": 1
diff --git a/src/Jackett.Common/Definitions/brobits.yml b/src/Jackett.Common/Definitions/brobits.yml
index f81928eb3..41aa868fd 100644
--- a/src/Jackett.Common/Definitions/brobits.yml
+++ b/src/Jackett.Common/Definitions/brobits.yml
@@ -1,141 +1,141 @@
---
- site: brobits
- name: BRObits
- description: "BRObits is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
- language: zh-cn
- type: private
- encoding: UTF-8
- links:
- - https://brobits.cc/
+site: brobits
+name: BRObits
+description: "BRObits is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
+language: zh-cn
+type: private
+encoding: UTF-8
+links:
+ - https://brobits.cc/
- caps:
- categorymappings:
- - {id: 401, cat: Movies, desc: "Movies/电影"}
- - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
- - {id: 410, cat: TV, desc: "TV Series/剧集"}
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "Movies/电影"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
+ - {id: 410, cat: TV, desc: "TV Series/剧集"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
- settings:
- - name: cookie
- type: text
- label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "
"
- - name: sort
- type: select
- label: Sort requested from site
- default: "4"
- options:
- "4": "created"
- "7": "seeders"
- "5": "size"
- "1": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: cookie
+ type: text
+ label: Cookie
+ - name: info
+ type: info
+ label: How to get the Cookie
+ default: "
"
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "4"
+ options:
+ "4": "created"
+ "7": "seeders"
+ "5": "size"
+ "1": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- method: cookie
- inputs:
- cookie: "{{ .Config.cookie }}"
- test:
- path: index.php
+login:
+ method: cookie
+ inputs:
+ cookie: "{{ .Config.cookie }}"
+ test:
+ path: index.php
- search:
- paths:
- - path: torrents.php
- inputs:
- $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
- search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- # 0 incldead 1 active 2 dead
- incldead: 0
- # 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x50% 7 30%
- spstate: 0
- # 0 title 1 descr 3 uploader 4 imdburl
- search_area: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
- # 0 AND 1 OR 2 exact
- search_mode: 0
- sort: "{{ .Config.sort }}"
- type: "{{ .Config.type }}"
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ # 0 incldead 1 active 2 dead
+ incldead: 0
+ # 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x50% 7 30%
+ spstate: 0
+ # 0 title 1 descr 3 uploader 4 imdburl
+ search_area: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
+ # 0 AND 1 OR 2 exact
+ search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
- rows:
- selector: table.torrents > tbody > tr:has(table.torrentname)
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname)
- fields:
- title:
- selector: a[href^="details.php?id="]
- title:
- optional: true
- selector: a[title][href^="details.php?id="]
- attribute: title
- category:
- selector: a[href^="?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- imdb:
- optional: true
- selector: div.imdb_100 > a
- attribute: href
- date:
- # time type: time elapsed (default)
- selector: td:nth-child(4) > span[title]
- attribute: title
- optional: true
- filters:
- - name: append
- args: " +08:00"
- - name: dateparse
- args: "2006-01-02 15:04:05 -07:00"
- date:
- # time added
- selector: td:nth-child(4):not(:has(span))
- optional: true
- filters:
- - name: append
- args: " +08:00"
- - name: dateparse
- args: "2006-01-0215:04:05 -07:00"
- size:
- selector: td:nth-child(5)
- seeders:
- selector: td:nth-child(6)
- leechers:
- selector: td:nth-child(7)
- grabs:
- selector: td:nth-child(8)
- downloadvolumefactor:
- case:
- img.pro_free: 0
- img.pro_free2up: 0
- img.pro_50pctdown: 0.5
- img.pro_50pctdown2up: 0.5
- img.pro_30pctdown: 0.3
- "*": 1
- uploadvolumefactor:
- case:
- img.pro_50pctdown2up: 2
- img.pro_free2up: 2
- img.pro_2up: 2
- "*": 1
- description:
- selector: td:nth-child(2)
- remove: a, img
+ fields:
+ title:
+ selector: a[href^="details.php?id="]
+ title:
+ optional: true
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ imdb:
+ optional: true
+ selector: div.imdb_100 > a
+ attribute: href
+ date:
+ # time type: time elapsed (default)
+ selector: td:nth-child(4) > span[title]
+ attribute: title
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00"
+ - name: dateparse
+ args: "2006-01-02 15:04:05 -07:00"
+ date:
+ # time added
+ selector: td:nth-child(4):not(:has(span))
+ optional: true
+ filters:
+ - name: append
+ args: " +08:00"
+ - name: dateparse
+ args: "2006-01-0215:04:05 -07:00"
+ size:
+ selector: td:nth-child(5)
+ seeders:
+ selector: td:nth-child(6)
+ leechers:
+ selector: td:nth-child(7)
+ grabs:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ description:
+ selector: td:nth-child(2)
+ remove: a, img
# NexusPHP Standard v1.5 Beta 4
diff --git a/src/Jackett.Common/Definitions/btdb.yml b/src/Jackett.Common/Definitions/btdb.yml
index 9f3674d6c..42f64ea19 100644
--- a/src/Jackett.Common/Definitions/btdb.yml
+++ b/src/Jackett.Common/Definitions/btdb.yml
@@ -1,102 +1,102 @@
---
- site: btdb
- name: BTDB
- description: "BTDB is a Public BitTorrent DHT search engine."
- language: en-us
- type: public
- encoding: UTF-8
- followredirect: true
- links:
- - https://btdb.io/
- - https://btdb.unblockit.me/ # redirects to btdb.io in browser but appears to have no issue in Jackett
- legacylinks:
- - https://btdb.to/
- - https://btdb.unblocked.app/
- - https://btdb.eu/
- - https://btdb.unblockit.pro/
- - https://btdb.unblockit.one/
- - https://btdb.black-mirror.xyz/ # removed from black-mirror.xyz
- - https://btdb.unblocked.casa/ # removed from black-mirror.xyz
- - https://btdb.proxyportal.fun/ # removed from black-mirror.xyz
- - https://btdb.uk-unblock.xyz/ # removed from black-mirror.xyz
- - https://btdb.ind-unblock.xyz/ # removed from black-mirror.xyz
+site: btdb
+name: BTDB
+description: "BTDB is a Public BitTorrent DHT search engine."
+language: en-us
+type: public
+encoding: UTF-8
+followredirect: true
+links:
+ - https://btdb.io/
+ - https://btdb.unblockit.me/ # redirects to btdb.io in browser but appears to have no issue in Jackett
+legacylinks:
+ - https://btdb.to/
+ - https://btdb.unblocked.app/
+ - https://btdb.eu/
+ - https://btdb.unblockit.pro/
+ - https://btdb.unblockit.one/
+ - https://btdb.black-mirror.xyz/ # removed from black-mirror.xyz
+ - https://btdb.unblocked.casa/ # removed from black-mirror.xyz
+ - https://btdb.proxyportal.fun/ # removed from black-mirror.xyz
+ - https://btdb.uk-unblock.xyz/ # removed from black-mirror.xyz
+ - https://btdb.ind-unblock.xyz/ # removed from black-mirror.xyz
- caps:
- categorymappings:
- - {id: 1, cat: Other, desc: "Other"}
+caps:
+ categorymappings:
+ - {id: 1, cat: Other, desc: "Other"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
- settings:
- - name: info
- type: info
- label: Category for Sonarr and Radarr
- default: BTDB does not use categories. In your Sonarr or Radarr Torznab Indexer settings, set the category to 100001.
- - name: sort
- type: select
- label: Sort requested from site
- default: "time"
- options:
- "time": "created"
- "length": "size"
- "seeders": "seeders"
+settings:
+ - name: info
+ type: info
+ label: Category for Sonarr and Radarr
+ default: BTDB does not use categories. In your Sonarr or Radarr Torznab Indexer settings, set the category to 100001.
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "time"
+ options:
+ "time": "created"
+ "length": "size"
+ "seeders": "seeders"
- search:
- paths:
- - path: "{{ if .Keywords }}search/{{ .Keywords }}/{{else}}recent{{end}}?sort={{ .Config.sort }}"
- - path: "{{ if .Keywords }}search/{{ .Keywords }}/{{else}}recent{{end}}?sort={{ .Config.sort }}&page=2"
- - path: "{{ if .Keywords }}search/{{ .Keywords }}/{{else}}recent{{end}}?sort={{ .Config.sort }}&page=3"
- - path: "{{ if .Keywords }}search/{{ .Keywords }}/{{else}}recent{{end}}?sort={{ .Config.sort }}&page=4"
- - path: "{{ if .Keywords }}search/{{ .Keywords }}/{{else}}recent{{end}}?sort={{ .Config.sort }}&page=5"
+search:
+ paths:
+ - path: "{{ if .Keywords }}search/{{ .Keywords }}/{{else}}recent{{end}}?sort={{ .Config.sort }}"
+ - path: "{{ if .Keywords }}search/{{ .Keywords }}/{{else}}recent{{end}}?sort={{ .Config.sort }}&page=2"
+ - path: "{{ if .Keywords }}search/{{ .Keywords }}/{{else}}recent{{end}}?sort={{ .Config.sort }}&page=3"
+ - path: "{{ if .Keywords }}search/{{ .Keywords }}/{{else}}recent{{end}}?sort={{ .Config.sort }}&page=4"
+ - path: "{{ if .Keywords }}search/{{ .Keywords }}/{{else}}recent{{end}}?sort={{ .Config.sort }}&page=5"
- rows:
- selector: div.media
+ rows:
+ selector: div.media
- fields:
- category:
- text: 1
- title:
- selector: a[href*="/torrent/"]
- details:
- selector: a[href*="/torrent/"]
- attribute: href
- download:
- # download can be missing despite icon being present. Fortunately the magnet is always there
- selector: a[href$=".torrent"]
- attribute: href
- optional: true
- magnet:
- selector: a[href^="magnet:?xt="]
- attribute: href
- banner:
- selector: a.img-thumbnail img
- attribute: src
- filters:
- - name: replace
- args: ["https://btdb.io/assets/img/placeholder.png", ""]
- size:
- selector: small:nth-of-type(1) strong
- files:
- selector: small:nth-of-type(2) strong
- seeders:
- selector: small:nth-of-type(3) strong
- filters:
- - name: replace
- args: [",", ""]
- leechers:
- selector: small:nth-of-type(4) strong
- filters:
- - name: replace
- args: [",", ""]
- date:
- selector: small:nth-of-type(5) strong
- filters:
- - name: timeago
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ fields:
+ category:
+ text: 1
+ title:
+ selector: a[href*="/torrent/"]
+ details:
+ selector: a[href*="/torrent/"]
+ attribute: href
+ download:
+ # download can be missing despite icon being present. Fortunately the magnet is always there
+ selector: a[href$=".torrent"]
+ attribute: href
+ optional: true
+ magnet:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
+ banner:
+ selector: a.img-thumbnail img
+ attribute: src
+ filters:
+ - name: replace
+ args: ["https://btdb.io/assets/img/placeholder.png", ""]
+ size:
+ selector: small:nth-of-type(1) strong
+ files:
+ selector: small:nth-of-type(2) strong
+ seeders:
+ selector: small:nth-of-type(3) strong
+ filters:
+ - name: replace
+ args: [",", ""]
+ leechers:
+ selector: small:nth-of-type(4) strong
+ filters:
+ - name: replace
+ args: [",", ""]
+ date:
+ selector: small:nth-of-type(5) strong
+ filters:
+ - name: timeago
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/btdigg.yml b/src/Jackett.Common/Definitions/btdigg.yml
index ae36170f0..90ffc5854 100644
--- a/src/Jackett.Common/Definitions/btdigg.yml
+++ b/src/Jackett.Common/Definitions/btdigg.yml
@@ -1,78 +1,78 @@
---
- site: btdigg
- name: BTDigg
- description: "BTDigg is a Public BitTorrent DHT search engine."
- language: en-us
- type: public
- encoding: UTF-8
- links:
- - https://btdig.com/
+site: btdigg
+name: BTDigg
+description: "BTDigg is a Public BitTorrent DHT search engine."
+language: en-us
+type: public
+encoding: UTF-8
+links:
+ - https://btdig.com/
- caps:
- categories:
- 1: Other
+caps:
+ categories:
+ 1: Other
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
- settings:
- - name: info
- type: info
- default: BTDigg does not use categories. In your software Indexer settings, set the category to 7000.
- - name: sort
- type: select
- label: Sort requested from site
- default: "2"
- options:
- "2": "created"
- "3": "size"
+settings:
+ - name: info
+ type: info
+ default: BTDigg does not use categories. In your software Indexer settings, set the category to 7000.
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "2"
+ options:
+ "2": "created"
+ "3": "size"
- search:
- # https://btdig.com/search?q=test&order=2
- # only 10 results per page
- paths:
- - path: search
- inputs:
- q: "{{ if .Keywords }}{{ .Keywords }}{{else}}test{{end}}"
- # 0 relevance 2 age 3 size 4 files
- order: "{{ .Config.sort }}"
+search:
+ # https://btdig.com/search?q=test&order=2
+ # only 10 results per page
+ paths:
+ - path: search
+ inputs:
+ q: "{{ if .Keywords }}{{ .Keywords }}{{else}}test{{end}}"
+ # 0 relevance 2 age 3 size 4 files
+ order: "{{ .Config.sort }}"
- rows:
- selector: div.one_result
+ rows:
+ selector: div.one_result
+ filters:
+ - name: andmatch
+
+ fields:
+ title:
+ selector: div.torrent_name a
+ category:
+ text: 1
+ details:
+ selector: div.torrent_name a
+ attribute: href
+ download:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
+ date:
+ selector: span.torrent_age
filters:
- - name: andmatch
-
- fields:
- title:
- selector: div.torrent_name a
- category:
- text: 1
- details:
- selector: div.torrent_name a
- attribute: href
- download:
- selector: a[href^="magnet:?xt="]
- attribute: href
- date:
- selector: span.torrent_age
- filters:
- - name: replace
- args: ["found ", ""]
- files:
- text: 1
- files:
- selector: span.torrent_files
- optional: true
- size:
- selector: span.torrent_size
- seeders:
- text: 1
- leechers:
- text: 1
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ - name: replace
+ args: ["found ", ""]
+ files:
+ text: 1
+ files:
+ selector: span.torrent_files
+ optional: true
+ size:
+ selector: span.torrent_size
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# dhtcrawler2
diff --git a/src/Jackett.Common/Definitions/btetree.yml b/src/Jackett.Common/Definitions/btetree.yml
index a8335610d..4b284a905 100644
--- a/src/Jackett.Common/Definitions/btetree.yml
+++ b/src/Jackett.Common/Definitions/btetree.yml
@@ -1,81 +1,81 @@
---
- site: btetree
- name: BT.etree
- description: "BT.etree is a Public Tracker dedicated to Bootleg FLAC MUSIC"
- language: en-us
- type: public
- encoding: UTF-8
- links:
- - https://bt.etree.org/
- legacylinks:
- - http://bt.etree.org/
+site: btetree
+name: BT.etree
+description: "BT.etree is a Public Tracker dedicated to Bootleg FLAC MUSIC"
+language: en-us
+type: public
+encoding: UTF-8
+links:
+ - https://bt.etree.org/
+legacylinks:
+ - http://bt.etree.org/
- caps:
- categories:
- "Music": Audio/Lossless
+caps:
+ categories:
+ "Music": Audio/Lossless
- modes:
- search: [q]
- music-search: [q, album, artist, label, year]
+ modes:
+ search: [q]
+ music-search: [q, album, artist, label, year]
- settings:
- - name: sort
- type: select
- label: Sort requested from site
- default: "added"
- options:
- "added": "created"
- "seeders": "seeders"
- "name": "title"
+settings:
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "added"
+ options:
+ "added": "created"
+ "seeders": "seeders"
+ "name": "title"
- search:
- paths:
- # http://bt.etree.org/?searchzzzz=&cat=0
- - path: /
- inputs:
- searchzzzz: "{{ if .Query.Artist }}{{ .Query.Artist }}{{else}}{{ .Keywords }}{{end}}"
- cat: 0
- sort: "{{ .Config.sort }}"
+search:
+ paths:
+ # http://bt.etree.org/?searchzzzz=&cat=0
+ - path: /
+ inputs:
+ searchzzzz: "{{ if .Query.Artist }}{{ .Query.Artist }}{{else}}{{ .Keywords }}{{end}}"
+ cat: 0
+ sort: "{{ .Config.sort }}"
- rows:
- selector: table[bgcolor="#CCCCCC"] tbody tr:has(a[href^="download.php"])
+ rows:
+ selector: table[bgcolor="#CCCCCC"] tbody tr:has(a[href^="download.php"])
+ filters:
+ - name: andmatch
+
+ fields:
+ category:
+ text: "Music"
+ title:
+ selector: a.details_link
+ details:
+ selector: a.details_link
+ attribute: href
+ download:
+ selector: a[href^="download.php"]
+ attribute: href
+ files:
+ selector: td:nth-child(4)
+ comments:
+ selector: td:nth-child(5) a
+ attribute: href
+ date:
+ selector: td:nth-child(6)
filters:
- - name: andmatch
-
- fields:
- category:
- text: "Music"
- title:
- selector: a.details_link
- details:
- selector: a.details_link
- attribute: href
- download:
- selector: a[href^="download.php"]
- attribute: href
- files:
- selector: td:nth-child(4)
- comments:
- selector: td:nth-child(5) a
- attribute: href
- date:
- selector: td:nth-child(6)
- filters:
- - name: dateparse
- args: "01/02 15:04"
- size:
- selector: td:nth-child(7)
- grabs:
- selector: td:nth-child(8)
- filters:
- - name: regexp
- args: (\d+)
- seeders:
- selector: td:nth-child(9)
- leechers:
- selector: td:nth-child(10)
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ - name: dateparse
+ args: "01/02 15:04"
+ size:
+ selector: td:nth-child(7)
+ grabs:
+ selector: td:nth-child(8)
+ filters:
+ - name: regexp
+ args: (\d+)
+ seeders:
+ selector: td:nth-child(9)
+ leechers:
+ selector: td:nth-child(10)
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/bteye.yml b/src/Jackett.Common/Definitions/bteye.yml
index b3412979e..f6b971a37 100644
--- a/src/Jackett.Common/Definitions/bteye.yml
+++ b/src/Jackett.Common/Definitions/bteye.yml
@@ -1,68 +1,68 @@
---
- site: bteye
- name: BTeye
- description: "BTeye is a Public BitTorrent DHT search engine."
- language: en-us
- type: public
- encoding: UTF-8
- links:
- - https://www.bteye.org/
+site: bteye
+name: BTeye
+description: "BTeye is a Public BitTorrent DHT search engine."
+language: en-us
+type: public
+encoding: UTF-8
+links:
+ - https://www.bteye.org/
- caps:
- categories:
- 1: Other
+caps:
+ categories:
+ 1: Other
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
- settings:
- - name: info
- type: info
- default: BTeye does not use categories. In your software Indexer settings, set the category to 7000.
+settings:
+ - name: info
+ type: info
+ default: BTeye does not use categories. In your software Indexer settings, set the category to 7000.
- download:
- selector: a[href^="magnet:?xt="]
- attribute: href
+download:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
- search:
- # https://www.bteye.org/q/2020
- paths:
- - path: "q/{{ if .Keywords }}{{ .Keywords }}{{else}}{{ .Today.Year }}{{end}}"
+search:
+ # https://www.bteye.org/q/2020
+ paths:
+ - path: "q/{{ if .Keywords }}{{ .Keywords }}{{else}}{{ .Today.Year }}{{end}}"
- rows:
- selector: div.plist
+ rows:
+ selector: div.plist
+ filters:
+ - name: andmatch
+
+ fields:
+ category:
+ text: 1
+ title:
+ selector: div.pname a
+ attribute: title
+ details:
+ selector: div.pname a
+ attribute: href
+ download:
+ selector: div.pname a
+ attribute: href
+ date:
+ selector: div.plink b:nth-of-type(3)
filters:
- - name: andmatch
-
- fields:
- category:
- text: 1
- title:
- selector: div.pname a
- attribute: title
- details:
- selector: div.pname a
- attribute: href
- download:
- selector: div.pname a
- attribute: href
- date:
- selector: div.plink b:nth-of-type(3)
- filters:
- - name: dateparse
- args: "2006-01-02"
- files:
- selector: div.plink b:nth-of-type(2)
- size:
- selector: div.plink b:nth-of-type(1)
- seeders:
- text: 1
- leechers:
- text: 1
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ - name: dateparse
+ args: "2006-01-02"
+ files:
+ selector: div.plink b:nth-of-type(2)
+ size:
+ selector: div.plink b:nth-of-type(1)
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/btgigs.yml b/src/Jackett.Common/Definitions/btgigs.yml
index ed6990937..e15872632 100644
--- a/src/Jackett.Common/Definitions/btgigs.yml
+++ b/src/Jackett.Common/Definitions/btgigs.yml
@@ -1,145 +1,145 @@
---
- site: btgigs
- name: BTGigs
- description: "BTGigs (TG) is a POLISH Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: pl-pl
- type: private
- encoding: ISO-8859-2
- links:
- - https://btgigs.info/
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: lang
- type: checkbox
- label: Add POLISH to title if is in polish category
- default: false
+site: btgigs
+name: BTGigs
+description: "BTGigs (TG) is a POLISH Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: pl-pl
+type: private
+encoding: ISO-8859-2
+links:
+ - https://btgigs.info/
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: lang
+ type: checkbox
+ label: Add POLISH to title if is in polish category
+ default: false
- caps:
- categorymappings:
- - {id: 36, cat: Audio/Audiobook, desc: "aBooki"}
- - {id: 27, cat: TV/Anime, desc: "Anime"}
- - {id: 1, cat: PC, desc: "Aplikacje PC"}
- - {id: 10, cat: Books/EBook, desc: "eBooki"}
- - {id: 34, cat: Movies/BluRay, desc: "Filmy/BR"}
- - {id: 4, cat: Movies/SD, desc: "Filmy/DVD-R"}
- - {id: 31, cat: Movies/HD, desc: "Filmy/HD Rip"}
- - {id: 17, cat: Movies/Other, desc: "Filmy/Inne"}
- - {id: 35, cat: Movies/UHD, desc: "Filmy/UHD"}
- - {id: 20, cat: Movies/SD, desc: "Filmy/XviD"}
- - {id: 21, cat: Console, desc: "Gry/konsole"}
- - {id: 7, cat: PC/Games, desc: "Gry/PC ISO"}
- - {id: 12, cat: PC/Games, desc: "Gry/PC Rips"}
- - {id: 28, cat: Other, desc: "GSM/PDA"}
- - {id: 19, cat: Audio/Video, desc: "Koncerty/Teledyski"}
- - {id: 32, cat: Audio/Lossless, desc: "musicDVD/DTS/FLAC"}
- - {id: 5, cat: Audio/MP3, desc: "Muzyka/MP3"}
- - {id: 26, cat: Other, desc: "Rozne"}
- - {id: 30, cat: TV/Sport, desc: "Sport"}
- - {id: 6, cat: TV, desc: "TV/Seriale"}
- - {id: 37, cat: TV/UHD, desc: "TV/UHD"}
- - {id: 29, cat: PC, desc: "Witaminki"}
- - {id: 9, cat: XXX, desc: "XXX"}
+caps:
+ categorymappings:
+ - {id: 36, cat: Audio/Audiobook, desc: "aBooki"}
+ - {id: 27, cat: TV/Anime, desc: "Anime"}
+ - {id: 1, cat: PC, desc: "Aplikacje PC"}
+ - {id: 10, cat: Books/EBook, desc: "eBooki"}
+ - {id: 34, cat: Movies/BluRay, desc: "Filmy/BR"}
+ - {id: 4, cat: Movies/SD, desc: "Filmy/DVD-R"}
+ - {id: 31, cat: Movies/HD, desc: "Filmy/HD Rip"}
+ - {id: 17, cat: Movies/Other, desc: "Filmy/Inne"}
+ - {id: 35, cat: Movies/UHD, desc: "Filmy/UHD"}
+ - {id: 20, cat: Movies/SD, desc: "Filmy/XviD"}
+ - {id: 21, cat: Console, desc: "Gry/konsole"}
+ - {id: 7, cat: PC/Games, desc: "Gry/PC ISO"}
+ - {id: 12, cat: PC/Games, desc: "Gry/PC Rips"}
+ - {id: 28, cat: Other, desc: "GSM/PDA"}
+ - {id: 19, cat: Audio/Video, desc: "Koncerty/Teledyski"}
+ - {id: 32, cat: Audio/Lossless, desc: "musicDVD/DTS/FLAC"}
+ - {id: 5, cat: Audio/MP3, desc: "Muzyka/MP3"}
+ - {id: 26, cat: Other, desc: "Rozne"}
+ - {id: 30, cat: TV/Sport, desc: "Sport"}
+ - {id: 6, cat: TV, desc: "TV/Seriale"}
+ - {id: 37, cat: TV/UHD, desc: "TV/UHD"}
+ - {id: 29, cat: PC, desc: "Witaminki"}
+ - {id: 9, cat: XXX, desc: "XXX"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- login:
- path: takelogin_action.php
- method: post
- inputs:
- username_dupa: "{{ .Config.username }}"
- password__dupa: "{{ .Config.password }}"
- error:
- - selector: td.embedded:has(h2:contains("failed"))
- - selector: td.embedded:has(h2:contains("Error"))
- test:
- selector: a[href^="logout.php"]
- path: index.php?news=1
+login:
+ path: takelogin_action.php
+ method: post
+ inputs:
+ username_dupa: "{{ .Config.username }}"
+ password__dupa: "{{ .Config.password }}"
+ error:
+ - selector: td.embedded:has(h2:contains("failed"))
+ - selector: td.embedded:has(h2:contains("Error"))
+ test:
+ selector: a[href^="logout.php"]
+ path: index.php?news=1
- search:
- paths:
- - path: browse.php
- error:
- - selector: a.altlink
- inputs:
- $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
- search: "{{ .Query.Keywords }}"
- incldead: 1
- tyt: 0
- lang: 0
- subcat: 0
- rows:
- selector: table[border="1"][cellpadding=5] > tbody > tr:has(a[href^="details.php?id="])
- fields:
- is_polish: #Workaround: https://github.com/Jackett/Jackett/issues/8068#issuecomment-610222414
- text: ""
- is_polish:
- optional: true
- selector: img[src*="cat_pl"]
- attribute: src
- title_phase1:
- selector: a[href^="details.php?id="]
- title_polish:
- text: "{{ .Result.title_phase1 }}"
- filters:
- - name: append
- args: " POLISH"
- title:
- text: "{{ if and (.Config.lang) (.Result.is_polish) }}{{ .Result.title_polish }}{{else}}{{ .Result.title_phase1 }}{{end}}"
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- download:
- selector: a[href^="download.php/"]
- attribute: href
- description:
- optional: true
- selector: img[src^="/pic/cat_pl/"]
- attribute: src
- filters:
- - name: append
- args: "Language: polish\n
"
- - name: prepend
- args: "{{ .Result.description }}"
- imdb:
- optional: true
- selector: a[href*="www.imdb.com/title/tt"]
- date:
- selector: td:nth-child(5)
- filters:
- - name: append
- args: " +00:00"
- - name: dateparse
- args: "2006-01-0215:04:05 -07:00"
- grabs:
- selector: td:nth-child(7)
- filters:
- - name: regexp
- args: (\d+)
- size:
- selector: td:nth-child(6)
- seeders:
- selector: td:nth-child(8)
- leechers:
- selector: td:nth-child(9)
- downloadvolumefactor:
- case:
- "img[src=\"pic/ico_disk1.png\"]": 0
- "img[src=\"pic/ico_disk2.png\"]": 1
- "*": 1
- uploadvolumefactor:
- text: "1"
+search:
+ paths:
+ - path: browse.php
+ error:
+ - selector: a.altlink
+ inputs:
+ $raw: "{{range .Categories}}c{{.}}=1&{{end}}"
+ search: "{{ .Query.Keywords }}"
+ incldead: 1
+ tyt: 0
+ lang: 0
+ subcat: 0
+ rows:
+ selector: table[border="1"][cellpadding=5] > tbody > tr:has(a[href^="details.php?id="])
+ fields:
+ is_polish: #Workaround: https://github.com/Jackett/Jackett/issues/8068#issuecomment-610222414
+ text: ""
+ is_polish:
+ optional: true
+ selector: img[src*="cat_pl"]
+ attribute: src
+ title_phase1:
+ selector: a[href^="details.php?id="]
+ title_polish:
+ text: "{{ .Result.title_phase1 }}"
+ filters:
+ - name: append
+ args: " POLISH"
+ title:
+ text: "{{ if and (.Config.lang) (.Result.is_polish) }}{{ .Result.title_polish }}{{else}}{{ .Result.title_phase1 }}{{end}}"
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ download:
+ selector: a[href^="download.php/"]
+ attribute: href
+ description:
+ optional: true
+ selector: img[src^="/pic/cat_pl/"]
+ attribute: src
+ filters:
+ - name: append
+ args: "Language: polish\n
"
+ - name: prepend
+ args: "{{ .Result.description }}"
+ imdb:
+ optional: true
+ selector: a[href*="www.imdb.com/title/tt"]
+ date:
+ selector: td:nth-child(5)
+ filters:
+ - name: append
+ args: " +00:00"
+ - name: dateparse
+ args: "2006-01-0215:04:05 -07:00"
+ grabs:
+ selector: td:nth-child(7)
+ filters:
+ - name: regexp
+ args: (\d+)
+ size:
+ selector: td:nth-child(6)
+ seeders:
+ selector: td:nth-child(8)
+ leechers:
+ selector: td:nth-child(9)
+ downloadvolumefactor:
+ case:
+ "img[src=\"pic/ico_disk1.png\"]": 0
+ "img[src=\"pic/ico_disk2.png\"]": 1
+ "*": 1
+ uploadvolumefactor:
+ text: "1"
diff --git a/src/Jackett.Common/Definitions/btnext.yml b/src/Jackett.Common/Definitions/btnext.yml
index a4ed26610..65959111b 100644
--- a/src/Jackett.Common/Definitions/btnext.yml
+++ b/src/Jackett.Common/Definitions/btnext.yml
@@ -1,280 +1,280 @@
---
- site: btnext
- name: BTNext
- description: "BTNext (BTNT) is a PORTUGUESE Private Torrent Tracker for 0DAY / GENERAL"
- language: pt-pt
- type: private
- encoding: UTF-8
- links:
- - http://tracker.btnext.com/ # site forces http, https is not supported
+site: btnext
+name: BTNext
+description: "BTNext (BTNT) is a PORTUGUESE Private Torrent Tracker for 0DAY / GENERAL"
+language: pt-pt
+type: private
+encoding: UTF-8
+links:
+ - http://tracker.btnext.com/ # site forces http, https is not supported
- caps:
- categorymappings:
- - {id: 86, cat: Other, desc: "Freeleech"}
- - {id: 88, cat: Movies, desc: "Movies"}
- - {id: 89, cat: Console, desc: "Games"}
- - {id: 87, cat: TV, desc: "Series"}
- - {id: 93, cat: Audio, desc: "Musica"}
- - {id: 108, cat: Movies, desc: "ViP"}
- - {id: 1, cat: Movies, desc: "Movies"}
- - {id: 70, cat: Movies/3D, desc: "Movies 3D"}
- - {id: 71, cat: Movies/SD, desc: "Movies 480p"}
- - {id: 72, cat: Movies/BluRay, desc: "Movies BD-R"}
- - {id: 31, cat: Movies/HD, desc: "Movies BDRIP/BRRip"}
- - {id: 16, cat: Movies/SD, desc: "Movies CAM"}
- - {id: 74, cat: Movies/DVD, desc: "Movies DvD-R"}
- - {id: 76, cat: Movies, desc: "Movies Packs"}
- - {id: 115, cat: Movies/Other, desc: "Movies Kids"}
- - {id: 91, cat: Movies/Other, desc: "Movies Kids Inglês"}
- - {id: 113, cat: Movies/Other, desc: "Movies Kids PT-BR"}
- - {id: 114, cat: Movies/Other, desc: "Movies Kids PT-PT"}
- - {id: 77, cat: Movies/WEBDL, desc: "Movies WEB-DL"}
- - {id: 85, cat: Movies/DVD, desc: "Movies Custom-DVDR"}
- - {id: 14, cat: Movies/SD, desc: "Movies DVDRip/XViD"}
- - {id: 98, cat: Movies/Other, desc: "Movies Juvenil"}
- - {id: 104, cat: Movies/UHD, desc: "Movies Bluray-UHD"}
- - {id: 102, cat: Movies/HD, desc: "Movies HD-720p"}
- - {id: 101, cat: Movies/HD, desc: "Movies HD-1080p"}
- - {id: 103, cat: Movies/UHD, desc: "Movies HD-2160p"}
- - {id: 42, cat: TV, desc: "TV Series"}
- - {id: 45, cat: TV/Documentary, desc: "Documentaries"}
- - {id: 46, cat: TV/Sport, desc: "Sports"}
- - {id: 47, cat: TV/HD, desc: "TV Bluray"}
- - {id: 48, cat: TV/SD, desc: "TV Dvd-R"}
- - {id: 49, cat: TV/SD, desc: "TV DVDRiP"}
- - {id: 50, cat: TV, desc: "TV Packs"}
- - {id: 92, cat: TV, desc: "TV Kids"}
- - {id: 112, cat: TV, desc: "TV Juvenil"}
- - {id: 52, cat: TV/SD, desc: "TV SDx264"}
- - {id: 53, cat: TV/WEB-DL, desc: "TV WEB-DL"}
- - {id: 55, cat: TV/HD, desc: "TV X264"}
- - {id: 56, cat: TV/SD, desc: "TV-XViD"}
- - {id: 7, cat: Audio, desc: "Music"}
- - {id: 20, cat: Audio/Video, desc: "Music MVideo"}
- - {id: 21, cat: Audio/MP3, desc: "Music MP3"}
- - {id: 33, cat: Audio/Video, desc: "Music MP4"}
- - {id: 32, cat: Audio/Lossless, desc: "Music FLAC"}
- - {id: 2, cat: Console, desc: "Games"}
- - {id: 78, cat: PC/Games, desc: "Games Linux"}
- - {id: 79, cat: PC/Mac, desc: "Games MacOSX"}
- - {id: 28, cat: Console/NDS, desc: "Games Nintendo DS"}
- - {id: 27, cat: PC/Games, desc: "Games PC/Windows"}
- - {id: 111, cat: Console, desc: "Games Nintendo Sw"}
- - {id: 80, cat: Console/PS3, desc: "Games PS2"}
- - {id: 81, cat: Console/PS3, desc: "Games PS3"}
- - {id: 82, cat: Console/PS4, desc: "Games PS4"}
- - {id: 83, cat: Console/PSP, desc: "Games PSP"}
- - {id: 95, cat: Console/PSVita, desc: "Games PSVITA"}
- - {id: 4, cat: Console/Wii, desc: "Games Wii"}
- - {id: 26, cat: Console/Xbox360, desc: "Games XBOX360"}
- - {id: 84, cat: Console/Xbox, desc: "Games XONE"}
- - {id: 6, cat: PC, desc: "Applications"}
- - {id: 18, cat: PC/ISO, desc: "Applications PC"}
- - {id: 19, cat: PC/Mac, desc: "Applications Macintosh"}
- - {id: 34, cat: PC/ISO, desc: "Applications Linux"}
- - {id: 44, cat: Other, desc: "Miscellaneous"}
- - {id: 54, cat: Audio/Audiobook, desc: "Books Audiobook"}
- - {id: 57, cat: Books/Ebook, desc: "Books E-Books"}
- - {id: 58, cat: Books/Comics, desc: "Books Comics"}
- - {id: 59, cat: Books, desc: "Books Educational"}
- - {id: 60, cat: Books/Magazines, desc: "Books Magazines/Journals"}
- - {id: 61, cat: Other, desc: "Pics/Wallpapers"}
- - {id: 62, cat: PC/Phone-Android, desc: "Android"}
- - {id: 63, cat: PC/Phone-IOS, desc: "iOS"}
- - {id: 66, cat: PC/Phone-Other, desc: "WindowsPhone"}
- - {id: 90, cat: Other, desc: "GPS"}
- - {id: 68, cat: Other, desc: "Others"}
- - {id: 100, cat: Other, desc: "Revistas"}
- - {id: 109, cat: TV/Anime, desc: "Anime"}
- - {id: 51, cat: TV/Anime, desc: "Anime Filmes"}
- - {id: 99, cat: TV/Anime, desc: "Anime Hentai"}
- - {id: 110, cat: TV/Anime, desc: "Anime TV Séries"}
- - {id: 41, cat: XXX, desc: "XXX"}
- - {id: 64, cat: XXX, desc: "XXX-Magazines"}
- - {id: 65, cat: XXX, desc: "XXX-Movies"}
- - {id: 67, cat: XXX/Packs, desc: "XXX-Packs"}
- - {id: 69, cat: XXX/Imageset, desc: "XXX-Pics/Wallpapers"}
+caps:
+ categorymappings:
+ - {id: 86, cat: Other, desc: "Freeleech"}
+ - {id: 88, cat: Movies, desc: "Movies"}
+ - {id: 89, cat: Console, desc: "Games"}
+ - {id: 87, cat: TV, desc: "Series"}
+ - {id: 93, cat: Audio, desc: "Musica"}
+ - {id: 108, cat: Movies, desc: "ViP"}
+ - {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 70, cat: Movies/3D, desc: "Movies 3D"}
+ - {id: 71, cat: Movies/SD, desc: "Movies 480p"}
+ - {id: 72, cat: Movies/BluRay, desc: "Movies BD-R"}
+ - {id: 31, cat: Movies/HD, desc: "Movies BDRIP/BRRip"}
+ - {id: 16, cat: Movies/SD, desc: "Movies CAM"}
+ - {id: 74, cat: Movies/DVD, desc: "Movies DvD-R"}
+ - {id: 76, cat: Movies, desc: "Movies Packs"}
+ - {id: 115, cat: Movies/Other, desc: "Movies Kids"}
+ - {id: 91, cat: Movies/Other, desc: "Movies Kids Inglês"}
+ - {id: 113, cat: Movies/Other, desc: "Movies Kids PT-BR"}
+ - {id: 114, cat: Movies/Other, desc: "Movies Kids PT-PT"}
+ - {id: 77, cat: Movies/WEBDL, desc: "Movies WEB-DL"}
+ - {id: 85, cat: Movies/DVD, desc: "Movies Custom-DVDR"}
+ - {id: 14, cat: Movies/SD, desc: "Movies DVDRip/XViD"}
+ - {id: 98, cat: Movies/Other, desc: "Movies Juvenil"}
+ - {id: 104, cat: Movies/UHD, desc: "Movies Bluray-UHD"}
+ - {id: 102, cat: Movies/HD, desc: "Movies HD-720p"}
+ - {id: 101, cat: Movies/HD, desc: "Movies HD-1080p"}
+ - {id: 103, cat: Movies/UHD, desc: "Movies HD-2160p"}
+ - {id: 42, cat: TV, desc: "TV Series"}
+ - {id: 45, cat: TV/Documentary, desc: "Documentaries"}
+ - {id: 46, cat: TV/Sport, desc: "Sports"}
+ - {id: 47, cat: TV/HD, desc: "TV Bluray"}
+ - {id: 48, cat: TV/SD, desc: "TV Dvd-R"}
+ - {id: 49, cat: TV/SD, desc: "TV DVDRiP"}
+ - {id: 50, cat: TV, desc: "TV Packs"}
+ - {id: 92, cat: TV, desc: "TV Kids"}
+ - {id: 112, cat: TV, desc: "TV Juvenil"}
+ - {id: 52, cat: TV/SD, desc: "TV SDx264"}
+ - {id: 53, cat: TV/WEB-DL, desc: "TV WEB-DL"}
+ - {id: 55, cat: TV/HD, desc: "TV X264"}
+ - {id: 56, cat: TV/SD, desc: "TV-XViD"}
+ - {id: 7, cat: Audio, desc: "Music"}
+ - {id: 20, cat: Audio/Video, desc: "Music MVideo"}
+ - {id: 21, cat: Audio/MP3, desc: "Music MP3"}
+ - {id: 33, cat: Audio/Video, desc: "Music MP4"}
+ - {id: 32, cat: Audio/Lossless, desc: "Music FLAC"}
+ - {id: 2, cat: Console, desc: "Games"}
+ - {id: 78, cat: PC/Games, desc: "Games Linux"}
+ - {id: 79, cat: PC/Mac, desc: "Games MacOSX"}
+ - {id: 28, cat: Console/NDS, desc: "Games Nintendo DS"}
+ - {id: 27, cat: PC/Games, desc: "Games PC/Windows"}
+ - {id: 111, cat: Console, desc: "Games Nintendo Sw"}
+ - {id: 80, cat: Console/PS3, desc: "Games PS2"}
+ - {id: 81, cat: Console/PS3, desc: "Games PS3"}
+ - {id: 82, cat: Console/PS4, desc: "Games PS4"}
+ - {id: 83, cat: Console/PSP, desc: "Games PSP"}
+ - {id: 95, cat: Console/PSVita, desc: "Games PSVITA"}
+ - {id: 4, cat: Console/Wii, desc: "Games Wii"}
+ - {id: 26, cat: Console/Xbox360, desc: "Games XBOX360"}
+ - {id: 84, cat: Console/Xbox, desc: "Games XONE"}
+ - {id: 6, cat: PC, desc: "Applications"}
+ - {id: 18, cat: PC/ISO, desc: "Applications PC"}
+ - {id: 19, cat: PC/Mac, desc: "Applications Macintosh"}
+ - {id: 34, cat: PC/ISO, desc: "Applications Linux"}
+ - {id: 44, cat: Other, desc: "Miscellaneous"}
+ - {id: 54, cat: Audio/Audiobook, desc: "Books Audiobook"}
+ - {id: 57, cat: Books/Ebook, desc: "Books E-Books"}
+ - {id: 58, cat: Books/Comics, desc: "Books Comics"}
+ - {id: 59, cat: Books, desc: "Books Educational"}
+ - {id: 60, cat: Books/Magazines, desc: "Books Magazines/Journals"}
+ - {id: 61, cat: Other, desc: "Pics/Wallpapers"}
+ - {id: 62, cat: PC/Phone-Android, desc: "Android"}
+ - {id: 63, cat: PC/Phone-IOS, desc: "iOS"}
+ - {id: 66, cat: PC/Phone-Other, desc: "WindowsPhone"}
+ - {id: 90, cat: Other, desc: "GPS"}
+ - {id: 68, cat: Other, desc: "Others"}
+ - {id: 100, cat: Other, desc: "Revistas"}
+ - {id: 109, cat: TV/Anime, desc: "Anime"}
+ - {id: 51, cat: TV/Anime, desc: "Anime Filmes"}
+ - {id: 99, cat: TV/Anime, desc: "Anime Hentai"}
+ - {id: 110, cat: TV/Anime, desc: "Anime TV Séries"}
+ - {id: 41, cat: XXX, desc: "XXX"}
+ - {id: 64, cat: XXX, desc: "XXX-Magazines"}
+ - {id: 65, cat: XXX, desc: "XXX-Movies"}
+ - {id: 67, cat: XXX/Packs, desc: "XXX-Packs"}
+ - {id: 69, cat: XXX/Imageset, desc: "XXX-Pics/Wallpapers"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: info
- type: info
- label: Layout
- default: "
"
- - name: sort
- type: select
- label: Sort requested from site
- default: "added"
- options:
- "added": "created"
- "seeders": "seeders"
- "size": "size"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
- - name: info_results
- type: info
- label: Search results
- default: "If you get 0 results check the log for error: An error has occurred!You can't view this page unless you read all your unread messages, then access the site with your browser and mark as read all PMs."
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: info
+ type: info
+ label: Layout
+ default: "
"
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "added"
+ options:
+ "added": "created"
+ "seeders": "seeders"
+ "size": "size"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
+ - name: info_results
+ type: info
+ label: Search results
+ default: "If you get 0 results check the log for error: An error has occurred!You can't view this page unless you read all your unread messages, then access the site with your browser and mark as read all PMs."
- login:
- path: ?p=home&pid=1
- method: form
- form: form#loginbox_form
- submitpath: /ajax/login.php
- inputs:
- action: login
- loginbox_membername: "{{ .Config.username }}"
- loginbox_password: "{{ .Config.password }}"
- loginbox_remember: 1
- selectorinputs:
- securitytoken:
- selector: "script:contains(\"stKey: \")"
- filters:
- - name: regexp
- args: "stKey: \"(.+?)\","
- error:
- - selector: ":contains(\"-ERROR-\")"
- test:
- path: ?p=torrents&pid=32
- selector: a#logout
+login:
+ path: ?p=home&pid=1
+ method: form
+ form: form#loginbox_form
+ submitpath: /ajax/login.php
+ inputs:
+ action: login
+ loginbox_membername: "{{ .Config.username }}"
+ loginbox_password: "{{ .Config.password }}"
+ loginbox_remember: 1
+ selectorinputs:
+ securitytoken:
+ selector: "script:contains(\"stKey: \")"
+ filters:
+ - name: regexp
+ args: "stKey: \"(.+?)\","
+ error:
+ - selector: ":contains(\"-ERROR-\")"
+ test:
+ path: ?p=torrents&pid=32
+ selector: a#logout
- search:
- paths:
- - path: /
- keywordsfilters:
- - name: re_replace
- args: ["[^a-zA-Z0-9]+", "%25"]
- inputs:
- p: torrents
- pid: 32
- $raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
- keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- # name , description , both , uploader
- search_type: "{{ if .Query.IMDBID }}description{{else}}name{{end}}"
- "sortOptions[sortBy]": "{{ .Config.sort }}"
- "sortOptions[sortOrder]": "{{ .Config.type }}"
- error:
- - selector: div.error:not(:contains("Não existem resultados encontrados.")):not(:contains("There are no results found."))
+search:
+ paths:
+ - path: /
+ keywordsfilters:
+ - name: re_replace
+ args: ["[^a-zA-Z0-9]+", "%25"]
+ inputs:
+ p: torrents
+ pid: 32
+ $raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
+ keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ # name , description , both , uploader
+ search_type: "{{ if .Query.IMDBID }}description{{else}}name{{end}}"
+ "sortOptions[sortBy]": "{{ .Config.sort }}"
+ "sortOptions[sortOrder]": "{{ .Config.type }}"
+ error:
+ - selector: div.error:not(:contains("Não existem resultados encontrados.")):not(:contains("There are no results found."))
- rows:
- selector: table#torrents_table_classic > tbody > tr:has(td.torrent_name)
+ rows:
+ selector: table#torrents_table_classic > tbody > tr:has(td.torrent_name)
- fields:
- title:
- selector: a[href*="?p=torrents&pid=10&action=details"]
- category:
- selector: div.category_image > a
- attribute: href
- filters:
- - name: querystring
- args: cid
- details:
- selector: a[href*="?p=torrents&pid=10&action=details"]
- attribute: href
- download:
- selector: a[href*="?p=torrents&pid=10&action=download"]
- attribute: href
- size:
- selector: a[rel="torrent_size"]
- seeders:
- selector: a[rel="torrent_seeders"]
- leechers:
- selector: a[rel="torrent_leechers"]
- grabs:
- selector: a[rel="times_completed"]
- banner:
- selector: a[rel="fancybox"]
- optional: true
- attribute: href
- imdb:
- # a href="http://tracker.btnext.com/data/torrents/imdb/tt0249677.jpg"
- optional: true
- selector: a[href*="/imdb/tt"]
- attribute: href
- filters:
- - name: regexp
- args: "imdb/(.+?).jpg"
- - name: prepend
- args: "https://www.imdb.com/title/"
- downloadvolumefactor:
- case:
- "img[title=\"FREE!\"]": 0
- "*": 1
- uploadvolumefactor:
- text: 1
- date:
- selector: td.torrent_name > abbr.timeago
- optional: true
- attribute: data-time
- date:
- selector: td.torrent_name:not(:has(abbr.timeago)):not(:contains("day")):not(:contains("Domingo")):not(:contains("Sábado")):not(:contains("Sexta")):not(:contains("Quinta")):not(:contains("Quarta")):not(:contains("Terça")):not(:contains("Segunda")):not(:contains("ontem")):not(:contains("Hoje"))
- optional: true
- remove: span, a, br
- filters:
- - name: replace
- args: ["Enviado ", ""] # Uploaded
- - name: replace
- args: ["Uploaded ", ""]
- - name: replace
- args: [" por", ""] # by
- - name: replace
- args: [" by", ""]
- - name: replace
- args: ["às ", ""] # at
- - name: replace
- args: ["at ", ""]
- - name: dateparse
- args: "02-01-2006 15:04"
- date:
- selector: td.torrent_name:not(:has(abbr.timeago)):contains("day"), td.torrent_name:not(:has(abbr.timeago)):contains("Domingo"), td.torrent_name:not(:has(abbr.timeago)):contains("Sábado"), td.torrent_name:not(:has(abbr.timeago)):contains("Quinta"), td.torrent_name:not(:has(abbr.timeago)):contains("Sexta"), td.torrent_name:not(:has(abbr.timeago)):contains("Quarta"), td.torrent_name:not(:has(abbr.timeago)):contains("Terça"), td.torrent_name:not(:has(abbr.timeago)):contains("Segunda"), td.torrent_name:not(:has(abbr.timeago)):contains("ontem"), td.torrent_name:not(:has(abbr.timeago)):contains("Hoje")
- optional: true
- remove: span, a, br
- filters:
- - name: replace
- args: ["Enviado ", ""] # Uploaded
- - name: replace
- args: ["Uploaded ", ""]
- - name: replace
- args: [" por", ""] # by
- - name: replace
- args: [" by", ""]
- - name: replace
- args: ["às ", ""] # at
- - name: replace
- args: ["at ", ""]
- - name: replace
- args: ["Hoje", "Today"]
- - name: replace
- args: ["ontem", "Yesterday"]
- - name: replace
- args: ["Segunda", "Monday"]
- - name: replace
- args: ["Terça", "Tuesday"]
- - name: replace
- args: ["Quarta", "Wednesday"]
- - name: replace
- args: ["Quinta", "Thursday"]
- - name: replace
- args: ["Sexta", "Friday"]
- - name: replace
- args: ["Sábado", "Saturday"]
- - name: replace
- args: ["Domingo", "Sunday"]
- - name: fuzzytime
+ fields:
+ title:
+ selector: a[href*="?p=torrents&pid=10&action=details"]
+ category:
+ selector: div.category_image > a
+ attribute: href
+ filters:
+ - name: querystring
+ args: cid
+ details:
+ selector: a[href*="?p=torrents&pid=10&action=details"]
+ attribute: href
+ download:
+ selector: a[href*="?p=torrents&pid=10&action=download"]
+ attribute: href
+ size:
+ selector: a[rel="torrent_size"]
+ seeders:
+ selector: a[rel="torrent_seeders"]
+ leechers:
+ selector: a[rel="torrent_leechers"]
+ grabs:
+ selector: a[rel="times_completed"]
+ banner:
+ selector: a[rel="fancybox"]
+ optional: true
+ attribute: href
+ imdb:
+ # a href="http://tracker.btnext.com/data/torrents/imdb/tt0249677.jpg"
+ optional: true
+ selector: a[href*="/imdb/tt"]
+ attribute: href
+ filters:
+ - name: regexp
+ args: "imdb/(.+?).jpg"
+ - name: prepend
+ args: "https://www.imdb.com/title/"
+ downloadvolumefactor:
+ case:
+ "img[title=\"FREE!\"]": 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
+ date:
+ selector: td.torrent_name > abbr.timeago
+ optional: true
+ attribute: data-time
+ date:
+ selector: td.torrent_name:not(:has(abbr.timeago)):not(:contains("day")):not(:contains("Domingo")):not(:contains("Sábado")):not(:contains("Sexta")):not(:contains("Quinta")):not(:contains("Quarta")):not(:contains("Terça")):not(:contains("Segunda")):not(:contains("ontem")):not(:contains("Hoje"))
+ optional: true
+ remove: span, a, br
+ filters:
+ - name: replace
+ args: ["Enviado ", ""] # Uploaded
+ - name: replace
+ args: ["Uploaded ", ""]
+ - name: replace
+ args: [" por", ""] # by
+ - name: replace
+ args: [" by", ""]
+ - name: replace
+ args: ["às ", ""] # at
+ - name: replace
+ args: ["at ", ""]
+ - name: dateparse
+ args: "02-01-2006 15:04"
+ date:
+ selector: td.torrent_name:not(:has(abbr.timeago)):contains("day"), td.torrent_name:not(:has(abbr.timeago)):contains("Domingo"), td.torrent_name:not(:has(abbr.timeago)):contains("Sábado"), td.torrent_name:not(:has(abbr.timeago)):contains("Quinta"), td.torrent_name:not(:has(abbr.timeago)):contains("Sexta"), td.torrent_name:not(:has(abbr.timeago)):contains("Quarta"), td.torrent_name:not(:has(abbr.timeago)):contains("Terça"), td.torrent_name:not(:has(abbr.timeago)):contains("Segunda"), td.torrent_name:not(:has(abbr.timeago)):contains("ontem"), td.torrent_name:not(:has(abbr.timeago)):contains("Hoje")
+ optional: true
+ remove: span, a, br
+ filters:
+ - name: replace
+ args: ["Enviado ", ""] # Uploaded
+ - name: replace
+ args: ["Uploaded ", ""]
+ - name: replace
+ args: [" por", ""] # by
+ - name: replace
+ args: [" by", ""]
+ - name: replace
+ args: ["às ", ""] # at
+ - name: replace
+ args: ["at ", ""]
+ - name: replace
+ args: ["Hoje", "Today"]
+ - name: replace
+ args: ["ontem", "Yesterday"]
+ - name: replace
+ args: ["Segunda", "Monday"]
+ - name: replace
+ args: ["Terça", "Tuesday"]
+ - name: replace
+ args: ["Quarta", "Wednesday"]
+ - name: replace
+ args: ["Quinta", "Thursday"]
+ - name: replace
+ args: ["Sexta", "Friday"]
+ - name: replace
+ args: ["Sábado", "Saturday"]
+ - name: replace
+ args: ["Domingo", "Sunday"]
+ - name: fuzzytime
# TSUE 2.2
diff --git a/src/Jackett.Common/Definitions/btschool.yml b/src/Jackett.Common/Definitions/btschool.yml
index cc1c1b466..d626d3d7e 100644
--- a/src/Jackett.Common/Definitions/btschool.yml
+++ b/src/Jackett.Common/Definitions/btschool.yml
@@ -1,119 +1,119 @@
---
- site: btschool
- name: BTSCHOOL
- description: "BTSCHOOL is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: zh-cn
- type: private
- encoding: UTF-8
- links:
- - https://pt.btschool.club/
+site: btschool
+name: BTSCHOOL
+description: "BTSCHOOL is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: zh-cn
+type: private
+encoding: UTF-8
+links:
+ - https://pt.btschool.club/
- caps:
- categorymappings:
- - {id: 405, cat: Movies, desc: "电影/Movies"}
- - {id: 406, cat: TV, desc: "连续剧/TV-Series"}
- - {id: 407, cat: TV/Anime, desc: "动漫/Anime"}
- - {id: 408, cat: TV/Documentary, desc: "纪录片/Documentary"}
- - {id: 412, cat: TV, desc: "综艺/TV-Show"}
- - {id: 404, cat: PC, desc: "软件/Software"}
- - {id: 402, cat: TV, desc: "资料/Education"}
- - {id: 411, cat: PC/Games, desc: "游戏/Game"}
- - {id: 409, cat: Audio, desc: "音乐/Music"}
- - {id: 410, cat: TV/Sport, desc: "体育/Sports"}
- - {id: 415, cat: Other, desc: "其他/Other"}
+caps:
+ categorymappings:
+ - {id: 405, cat: Movies, desc: "电影/Movies"}
+ - {id: 406, cat: TV, desc: "连续剧/TV-Series"}
+ - {id: 407, cat: TV/Anime, desc: "动漫/Anime"}
+ - {id: 408, cat: TV/Documentary, desc: "纪录片/Documentary"}
+ - {id: 412, cat: TV, desc: "综艺/TV-Show"}
+ - {id: 404, cat: PC, desc: "软件/Software"}
+ - {id: 402, cat: TV, desc: "资料/Education"}
+ - {id: 411, cat: PC/Games, desc: "游戏/Game"}
+ - {id: 409, cat: Audio, desc: "音乐/Music"}
+ - {id: 410, cat: TV/Sport, desc: "体育/Sports"}
+ - {id: 415, cat: Other, desc: "其他/Other"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- settings:
- - name: cookie
- type: text
- label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "
"
+settings:
+ - name: cookie
+ type: text
+ label: Cookie
+ - name: info
+ type: info
+ label: How to get the Cookie
+ default: "
"
- login:
- method: cookie
- inputs:
- cookie: "{{ .Config.cookie }}"
- test:
- path: index.php
- selector: a[href="logout.php"]
+login:
+ method: cookie
+ inputs:
+ cookie: "{{ .Config.cookie }}"
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
- search:
- paths:
- - path: torrents.php
- inputs:
- $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
- search: "{{if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- # 0 incldead 1 active 2 justdead
- incldead: 0
- # promotion: 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x 50% 7 30%
- spstate: 0
- # 0 all 1 bookmarked 2 not
- inclbookmarked: 0
- # 0 title 1 descr 3 uploaded 4 imdb
- search_area: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
- # 0 and 1 or 2 exact
- search_mode: 0
- sort: 4
- type: desc
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
+ search: "{{if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ # 0 incldead 1 active 2 justdead
+ incldead: 0
+ # promotion: 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x 50% 7 30%
+ spstate: 0
+ # 0 all 1 bookmarked 2 not
+ inclbookmarked: 0
+ # 0 title 1 descr 3 uploaded 4 imdb
+ search_area: "{{ if .Query.IMDBID }}4{{else}}0{{end}}"
+ # 0 and 1 or 2 exact
+ search_mode: 0
+ sort: 4
+ type: desc
- rows:
- selector: table.torrents > tbody > tr:has(table.torrentname)
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname)
- fields:
- category:
- selector: a[href^="?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- title:
- selector: a[title][href^="details.php?id="]
- attribute: title
- details:
- selector: a[title][href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- date:
- selector: td:nth-child(4) > span[title]
- attribute: title
- filters:
- - name: append
- args: " +08:00"
- - name: dateparse
- args: "2006-01-02 15:04:05 -07:00"
- size:
- selector: td.rowfollow:nth-child(5)
- seeders:
- selector: td.rowfollow:nth-child(6)
- leechers:
- selector: td.rowfollow:nth-child(7)
- grabs:
- selector: td.rowfollow:nth-child(8)
- downloadvolumefactor:
- case:
- img.pro_free: 0
- img.pro_free2up: 0
- img.pro_50pctdown: 0.5
- img.pro_50pctdown2up: 0.5
- img.pro_30pctdown: 0.3
- "*": 1
- uploadvolumefactor:
- case:
- img.pro_50pctdown2up: 2
- img.pro_free2up: 2
- img.pro_2up: 2
- "*": 1
- description:
- selector: td:nth-child(2)
- remove: a, img
+ fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ details:
+ selector: a[title][href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ date:
+ selector: td:nth-child(4) > span[title]
+ attribute: title
+ filters:
+ - name: append
+ args: " +08:00"
+ - name: dateparse
+ args: "2006-01-02 15:04:05 -07:00"
+ size:
+ selector: td.rowfollow:nth-child(5)
+ seeders:
+ selector: td.rowfollow:nth-child(6)
+ leechers:
+ selector: td.rowfollow:nth-child(7)
+ grabs:
+ selector: td.rowfollow:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img.pro_free: 0
+ img.pro_free2up: 0
+ img.pro_50pctdown: 0.5
+ img.pro_50pctdown2up: 0.5
+ img.pro_30pctdown: 0.3
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: 2
+ img.pro_free2up: 2
+ img.pro_2up: 2
+ "*": 1
+ description:
+ selector: td:nth-child(2)
+ remove: a, img
# NexusPHP Standard v1.5 Beta 4
diff --git a/src/Jackett.Common/Definitions/btsow.yml b/src/Jackett.Common/Definitions/btsow.yml
index 9286f8820..75c1e271c 100644
--- a/src/Jackett.Common/Definitions/btsow.yml
+++ b/src/Jackett.Common/Definitions/btsow.yml
@@ -1,61 +1,61 @@
---
- site: btsow
- name: BTSOW
- description: "BTSOW is a Public torrent indexer"
- language: en-us
- type: public
- encoding: UTF-8
- links:
- - https://btsow.club/
- legacylinks:
- - https://btos.pw/
- - https://btio.pw/
+site: btsow
+name: BTSOW
+description: "BTSOW is a Public torrent indexer"
+language: en-us
+type: public
+encoding: UTF-8
+links:
+ - https://btsow.club/
+legacylinks:
+ - https://btos.pw/
+ - https://btio.pw/
- caps:
- categories:
- "other": Other
+caps:
+ categories:
+ "other": Other
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
- settings: []
+settings: []
- download:
- selector: a#magnetOpen
- attribute: href
+download:
+ selector: a#magnetOpen
+ attribute: href
- search:
- paths:
- - path: "search/{{ if .Keywords }}{{ .Keywords }}{{else}}{{ .Today.Year }}{{end}}"
- rows:
- selector: div.row:has(a[href*="/detail/hash/"])
- fields:
- category:
- text: other
- title:
- selector: a[href*="/detail/hash/"]
- attribute: title
- details:
- selector: a[href*="/detail/hash/"]
- attribute: href
- download:
- selector: a[href*="/detail/hash/"]
- attribute: href
- date:
- selector: div.date
- filters:
- - name: dateparse
- args: "2006-01-02"
- size:
- selector: div.size
- seeders:
- text: 1
- leechers:
- text: 1
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+search:
+ paths:
+ - path: "search/{{ if .Keywords }}{{ .Keywords }}{{else}}{{ .Today.Year }}{{end}}"
+ rows:
+ selector: div.row:has(a[href*="/detail/hash/"])
+ fields:
+ category:
+ text: other
+ title:
+ selector: a[href*="/detail/hash/"]
+ attribute: title
+ details:
+ selector: a[href*="/detail/hash/"]
+ attribute: href
+ download:
+ selector: a[href*="/detail/hash/"]
+ attribute: href
+ date:
+ selector: div.date
+ filters:
+ - name: dateparse
+ args: "2006-01-02"
+ size:
+ selector: div.size
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/carpathians.yml b/src/Jackett.Common/Definitions/carpathians.yml
index 3b43d6998..f37880e53 100644
--- a/src/Jackett.Common/Definitions/carpathians.yml
+++ b/src/Jackett.Common/Definitions/carpathians.yml
@@ -1,162 +1,162 @@
---
- site: carpathians
- name: Carpathians
- description: "Carpathians is a HUNGARIAN Private Torrent Tracker for 0DAY / GENERAL"
- language: hu-hu
- type: private
- encoding: UTF-8
- links:
- - https://mycarpathians.net/
+site: carpathians
+name: Carpathians
+description: "Carpathians is a HUNGARIAN Private Torrent Tracker for 0DAY / GENERAL"
+language: hu-hu
+type: private
+encoding: UTF-8
+links:
+ - https://mycarpathians.net/
- caps:
- categorymappings:
- - {id: 186, cat: Books, desc: "E-book"}
- - {id: 194, cat: Movies/SD, desc: "Film/CAM/Hun"}
- - {id: 60, cat: Movies/DVD, desc: "Film/DVD-R/Eng"}
- - {id: 10, cat: Movies/DVD, desc: "Film/DVD-R/Hun"}
- - {id: 20, cat: Movies/DVD, desc: "Film/DVD9/Hun"}
- - {id: 181, cat: Movies/HD, desc: "Film/HD/Eng"}
- - {id: 183, cat: Movies/HD, desc: "Film/HD/Hun"}
- - {id: 192, cat: Movies/HD, desc: "Film/x264/Eng"}
- - {id: 190, cat: Movies/HD, desc: "Film/x264/Hun"}
- - {id: 70, cat: Movies/SD, desc: "Film/XviD/Eng"}
- - {id: 30, cat: Movies/SD, desc: "Film/XviD/Hun"}
- - {id: 140, cat: PC/Games, desc: "Játék/DOX"}
- - {id: 130, cat: PC/Games, desc: "Játék/PCiso"}
- - {id: 160, cat: Console/PS3, desc: "Játék/PS2-PS3"}
- - {id: 189, cat: Console/PSP, desc: "Játék/PSP"}
- - {id: 184, cat: Console/Wii, desc: "Játék/Wii"}
- - {id: 150, cat: Console/Xbox, desc: "Játék/XBOX (XBOX360)"}
- - {id: 182, cat: Audio/Lossless, desc: "Lossless"}
- - {id: 90, cat: Audio/MP3, desc: "Mp3/Eng"}
- - {id: 50, cat: Audio/MP3, desc: "Mp3/Hun"}
- - {id: 100, cat: Audio/Video, desc: "Music-Video"}
- - {id: 180, cat: PC/Phone-Other, desc: "Program/Mobil"}
- - {id: 170, cat: PC/0day, desc: "Program/PC"}
- - {id: 80, cat: TV, desc: "Sorozat/Eng"}
- - {id: 40, cat: TV, desc: "Sorozat/Hun"}
- - {id: 110, cat: XXX, desc: "XXX"}
+caps:
+ categorymappings:
+ - {id: 186, cat: Books, desc: "E-book"}
+ - {id: 194, cat: Movies/SD, desc: "Film/CAM/Hun"}
+ - {id: 60, cat: Movies/DVD, desc: "Film/DVD-R/Eng"}
+ - {id: 10, cat: Movies/DVD, desc: "Film/DVD-R/Hun"}
+ - {id: 20, cat: Movies/DVD, desc: "Film/DVD9/Hun"}
+ - {id: 181, cat: Movies/HD, desc: "Film/HD/Eng"}
+ - {id: 183, cat: Movies/HD, desc: "Film/HD/Hun"}
+ - {id: 192, cat: Movies/HD, desc: "Film/x264/Eng"}
+ - {id: 190, cat: Movies/HD, desc: "Film/x264/Hun"}
+ - {id: 70, cat: Movies/SD, desc: "Film/XviD/Eng"}
+ - {id: 30, cat: Movies/SD, desc: "Film/XviD/Hun"}
+ - {id: 140, cat: PC/Games, desc: "Játék/DOX"}
+ - {id: 130, cat: PC/Games, desc: "Játék/PCiso"}
+ - {id: 160, cat: Console/PS3, desc: "Játék/PS2-PS3"}
+ - {id: 189, cat: Console/PSP, desc: "Játék/PSP"}
+ - {id: 184, cat: Console/Wii, desc: "Játék/Wii"}
+ - {id: 150, cat: Console/Xbox, desc: "Játék/XBOX (XBOX360)"}
+ - {id: 182, cat: Audio/Lossless, desc: "Lossless"}
+ - {id: 90, cat: Audio/MP3, desc: "Mp3/Eng"}
+ - {id: 50, cat: Audio/MP3, desc: "Mp3/Hun"}
+ - {id: 100, cat: Audio/Video, desc: "Music-Video"}
+ - {id: 180, cat: PC/Phone-Other, desc: "Program/Mobil"}
+ - {id: 170, cat: PC/0day, desc: "Program/PC"}
+ - {id: 80, cat: TV, desc: "Sorozat/Eng"}
+ - {id: 40, cat: TV, desc: "Sorozat/Hun"}
+ - {id: 110, cat: XXX, desc: "XXX"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "5"
- options:
- "5": "created"
- "8": "seeders"
- "6": "size"
- "2": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "5"
+ options:
+ "5": "created"
+ "8": "seeders"
+ "6": "size"
+ "2": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- test:
- path: browse.php
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ test:
+ path: browse.php
- search:
- paths:
- - path: browse.php
- inputs:
- $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
- search: "{{ if .Query.IMDBID }}https://www.imdb.com/title/{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- # 0 both 1 only active 2 only dead
- incldead: 0
- onlyname: 1
- onlyname2: true
- sort: "{{ .Config.sort }}"
- type: "{{ .Config.type }}"
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}https://www.imdb.com/title/{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ # 0 both 1 only active 2 only dead
+ incldead: 0
+ onlyname: 1
+ onlyname2: true
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
- rows:
- selector: table[id!="torrent_ajanlo"] > tbody > tr[id]
+ rows:
+ selector: table[id!="torrent_ajanlo"] > tbody > tr[id]
- fields:
- download:
- selector: a[href^="download.php/"]
- attribute: href
- title:
- selector: a[id][href^="details.php?"]
- attribute: title
- description:
- selector: font.line
- filters:
- - name: regexp
- args: .*?\|\s*(.*)
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- details:
- selector: a[id][href^="details.php?"]
- attribute: href
- imdb:
- selector: a[href*="www.imdb.com/title/tt"]
- optional: true
- attribute: href
- banner:
- selector: a[rel^="prettyPhoto["]
- optional: true
- attribute: href
- files:
- selector: td:nth-child(4)
- size:
- selector: td:nth-child(6)
- grabs:
- selector: td:nth-child(7)
- filters:
- - name: regexp
- args: (\d+)
- seeders:
- selector: td:nth-child(8)
- leechers:
- selector: td:nth-child(9)
- date:
- selector: font.line
- filters:
- - name: split
- args: ["|", 0]
- - name: replace
- args: ["Feltöltve: ", ""]
- - name: replace
- args: ["Feltöltve : ", ""]
- - name: replace
- args: ["perce", "minute"]
- - name: replace
- args: ["órája", "hour"]
- - name: replace
- args: ["napja", "day"]
- - name: replace
- args: ["hete", "week"]
- - name: timeago
- downloadvolumefactor:
- text: 1
- uploadvolumefactor:
- case:
- img[src="pic/double.png"]: 2
- img[src="pic/doubledouble2.png"]: 4
- "*": 1
+ fields:
+ download:
+ selector: a[href^="download.php/"]
+ attribute: href
+ title:
+ selector: a[id][href^="details.php?"]
+ attribute: title
+ description:
+ selector: font.line
+ filters:
+ - name: regexp
+ args: .*?\|\s*(.*)
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ details:
+ selector: a[id][href^="details.php?"]
+ attribute: href
+ imdb:
+ selector: a[href*="www.imdb.com/title/tt"]
+ optional: true
+ attribute: href
+ banner:
+ selector: a[rel^="prettyPhoto["]
+ optional: true
+ attribute: href
+ files:
+ selector: td:nth-child(4)
+ size:
+ selector: td:nth-child(6)
+ grabs:
+ selector: td:nth-child(7)
+ filters:
+ - name: regexp
+ args: (\d+)
+ seeders:
+ selector: td:nth-child(8)
+ leechers:
+ selector: td:nth-child(9)
+ date:
+ selector: font.line
+ filters:
+ - name: split
+ args: ["|", 0]
+ - name: replace
+ args: ["Feltöltve: ", ""]
+ - name: replace
+ args: ["Feltöltve : ", ""]
+ - name: replace
+ args: ["perce", "minute"]
+ - name: replace
+ args: ["órája", "hour"]
+ - name: replace
+ args: ["napja", "day"]
+ - name: replace
+ args: ["hete", "week"]
+ - name: timeago
+ downloadvolumefactor:
+ text: 1
+ uploadvolumefactor:
+ case:
+ img[src="pic/double.png"]: 2
+ img[src="pic/doubledouble2.png"]: 4
+ "*": 1
# TBDev & XBTT
diff --git a/src/Jackett.Common/Definitions/cartoonchaos.yml b/src/Jackett.Common/Definitions/cartoonchaos.yml
index 0ebb9624d..028087024 100644
--- a/src/Jackett.Common/Definitions/cartoonchaos.yml
+++ b/src/Jackett.Common/Definitions/cartoonchaos.yml
@@ -1,159 +1,159 @@
---
- site: cartoonchaos
- name: CartoonChaos
- description: "CartoonChaos (CC) is a Private Torrent Tracker for ANIMATED MOVIES / TV"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - http://www.cartoonchaos.org/ # site does not support https NET::ERR_CERT_AUTHORITY_INVALID
+site: cartoonchaos
+name: CartoonChaos
+description: "CartoonChaos (CC) is a Private Torrent Tracker for ANIMATED MOVIES / TV"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - http://www.cartoonchaos.org/ # site does not support https NET::ERR_CERT_AUTHORITY_INVALID
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: info_results
- type: info
- label: "Search results"
- default: "Only the xBtit_Default style is supported with this indexer.
For best results, increase the torrents number in your profile to 100.
Default is 15."
- - name: sort
- type: select
- label: Sort requested from site
- default: "3"
- options:
- "3": "created"
- "5": "seeders"
- "4": "size"
- "2": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "2"
- options:
- "2": "desc"
- "1": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: info_results
+ type: info
+ label: "Search results"
+ default: "Only the xBtit_Default style is supported with this indexer.
For best results, increase the torrents number in your profile to 100.
Default is 15."
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "3"
+ options:
+ "3": "created"
+ "5": "seeders"
+ "4": "size"
+ "2": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "2"
+ options:
+ "2": "desc"
+ "1": "asc"
- caps:
- categorymappings:
- - {id: 30, cat: TV, desc: "Complete Sets"}
- - {id: 15, cat: TV, desc: "Educational"}
- - {id: 16, cat: TV, desc: "Kids"}
- - {id: 17, cat: TV, desc: "Mature Cartoons"}
- - {id: 41, cat: TV, desc: "Shorts"}
- - {id: 20, cat: TV/Anime, desc: "Anime Movies"}
- - {id: 21, cat: TV/Anime, desc: "Anime Series"}
- - {id: 26, cat: Movies, desc: "Animated Movies"}
- - {id: 23, cat: Audio, desc: "Sound Tracks"}
- - {id: 24, cat: Audio, desc: "Theme Tunes"}
- - {id: 43, cat: Audio/Other, desc: "Misc Audio"}
- - {id: 14, cat: TV, desc: "Banned"}
- - {id: 29, cat: TV, desc: "Public Domain"}
- - {id: 42, cat: TV/FOREIGN, desc: "Foreign Language"}
- - {id: 28, cat: TV, desc: "Animated Adverts"}
- - {id: 45, cat: TV/Documentary, desc: "Documentaries"}
+caps:
+ categorymappings:
+ - {id: 30, cat: TV, desc: "Complete Sets"}
+ - {id: 15, cat: TV, desc: "Educational"}
+ - {id: 16, cat: TV, desc: "Kids"}
+ - {id: 17, cat: TV, desc: "Mature Cartoons"}
+ - {id: 41, cat: TV, desc: "Shorts"}
+ - {id: 20, cat: TV/Anime, desc: "Anime Movies"}
+ - {id: 21, cat: TV/Anime, desc: "Anime Series"}
+ - {id: 26, cat: Movies, desc: "Animated Movies"}
+ - {id: 23, cat: Audio, desc: "Sound Tracks"}
+ - {id: 24, cat: Audio, desc: "Theme Tunes"}
+ - {id: 43, cat: Audio/Other, desc: "Misc Audio"}
+ - {id: 14, cat: TV, desc: "Banned"}
+ - {id: 29, cat: TV, desc: "Public Domain"}
+ - {id: 42, cat: TV/FOREIGN, desc: "Foreign Language"}
+ - {id: 28, cat: TV, desc: "Animated Adverts"}
+ - {id: 45, cat: TV/Documentary, desc: "Documentaries"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- login:
- path: index.php?page=login
- method: form
- form: form[action^="index.php?page=login"]
- inputs:
- uid: "{{ .Config.username }}"
- pwd: "{{ .Config.password }}"
- error:
- - selector: tr td span[style="color:#FF0000;"]
- test:
- path: index.php
- selector: a[href="logout.php"]
+login:
+ path: index.php?page=login
+ method: form
+ form: form[action^="index.php?page=login"]
+ inputs:
+ uid: "{{ .Config.username }}"
+ pwd: "{{ .Config.password }}"
+ error:
+ - selector: tr td span[style="color:#FF0000;"]
+ test:
+ path: index.php
+ selector: a[href="logout.php"]
- search:
- paths:
- # http://www.cartoonchaos.org/index.php?page=torrents&search=transformers&category=30;21;20;26;15;16;17&options=0&active=0
- - path: index.php
- inputs:
- page: torrents
- search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{else}}0{{end}}"
- # 0=title, 1=title&descr, 2=descr
- options: "{{ if .Query.IMDBID }}2{{else}}0{{end}}"
- # 0 all 1 activeonly 2 deadonly
- active: 0
- order: "{{ .Config.sort }}"
- by: "{{ .Config.type }}"
+search:
+ paths:
+ # http://www.cartoonchaos.org/index.php?page=torrents&search=transformers&category=30;21;20;26;15;16;17&options=0&active=0
+ - path: index.php
+ inputs:
+ page: torrents
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{else}}0{{end}}"
+ # 0=title, 1=title&descr, 2=descr
+ options: "{{ if .Query.IMDBID }}2{{else}}0{{end}}"
+ # 0 all 1 activeonly 2 deadonly
+ active: 0
+ order: "{{ .Config.sort }}"
+ by: "{{ .Config.type }}"
- rows:
- selector: table.lista tr td table.lista tr:has(a[href^="index.php?page=torrent-details"])
+ rows:
+ selector: table.lista tr td table.lista tr:has(a[href^="index.php?page=torrent-details"])
- fields:
- title:
- selector: td a[href^="index.php?page=torrent-details"]
- details:
- selector: td a[href^="index.php?page=torrent-details"]
- attribute: href
- category:
- selector: td a[href^="index.php?page=torrents&category="]
- attribute: href
- filters:
- - name: querystring
- args: category
- download:
- selector: td a[href^="download.php"]
- attribute: href
- imdb:
- optional: true
- selector: a[href*="www.imdb.com/title/tt"]
- attribute: href
- filters:
- # http://anonym.to?javascript:popdetails('http://www.imdb.com/title/tt0086817');
- - name: replace
- args: [" http://anonym.to?javascript:popdetails('", ""]
- - name: replace
- args: ["');", ""]
- banner:
- selector: td a[href^="index.php?page=torrent-details"]
- attribute: onmouseover
- filters:
- - name: regexp
- args: "src=(.+?) width"
- - name: replace
- args: ["torrentimg/nocover.jpg", ""]
- size:
- selector: td:nth-child(10)
- # two flavours of dates
- date:
- # Yesterday at 10:03:30 PM
- selector: td:nth-child(5):contains("day")
- optional: true
- filters:
- - name: re_replace
- args: ["[ ]at|[\\s+]|[//\xa0],\\/g", " "]
- date:
- # February 09, 2019, 06:35:08 AM
- selector: td:nth-child(5):not(:contains("day"))
- optional: true
- filters:
- - name: re_replace
- args: ["[,]|[\\s+]|[//\xa0],\\/g", " "]
- - name: dateparse
- args: "January 02 2006 03:04:05 PM"
- seeders:
- selector: td:nth-child(6)
- leechers:
- selector: td:nth-child(7)
- grabs:
- selector: td:nth-child(8)
- downloadvolumefactor:
- case:
- img[src="gold/gold.gif"]: 0
- "*": 1
- uploadvolumefactor:
- text: 1
+ fields:
+ title:
+ selector: td a[href^="index.php?page=torrent-details"]
+ details:
+ selector: td a[href^="index.php?page=torrent-details"]
+ attribute: href
+ category:
+ selector: td a[href^="index.php?page=torrents&category="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: category
+ download:
+ selector: td a[href^="download.php"]
+ attribute: href
+ imdb:
+ optional: true
+ selector: a[href*="www.imdb.com/title/tt"]
+ attribute: href
+ filters:
+ # http://anonym.to?javascript:popdetails('http://www.imdb.com/title/tt0086817');
+ - name: replace
+ args: [" http://anonym.to?javascript:popdetails('", ""]
+ - name: replace
+ args: ["');", ""]
+ banner:
+ selector: td a[href^="index.php?page=torrent-details"]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: "src=(.+?) width"
+ - name: replace
+ args: ["torrentimg/nocover.jpg", ""]
+ size:
+ selector: td:nth-child(10)
+ # two flavours of dates
+ date:
+ # Yesterday at 10:03:30 PM
+ selector: td:nth-child(5):contains("day")
+ optional: true
+ filters:
+ - name: re_replace
+ args: ["[ ]at|[\\s+]|[//\xa0],\\/g", " "]
+ date:
+ # February 09, 2019, 06:35:08 AM
+ selector: td:nth-child(5):not(:contains("day"))
+ optional: true
+ filters:
+ - name: re_replace
+ args: ["[,]|[\\s+]|[//\xa0],\\/g", " "]
+ - name: dateparse
+ args: "January 02 2006 03:04:05 PM"
+ seeders:
+ selector: td:nth-child(6)
+ leechers:
+ selector: td:nth-child(7)
+ grabs:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img[src="gold/gold.gif"]: 0
+ "*": 1
+ uploadvolumefactor:
+ text: 1
# xbtit 2.0.0
diff --git a/src/Jackett.Common/Definitions/casatorrent.yml b/src/Jackett.Common/Definitions/casatorrent.yml
index de9586a7a..64d1f8e8a 100644
--- a/src/Jackett.Common/Definitions/casatorrent.yml
+++ b/src/Jackett.Common/Definitions/casatorrent.yml
@@ -1,176 +1,176 @@
---
- site: casatorrent
- name: Casa-Torrent
- description: "Casa-Torrent is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: fr-fr
- type: private
- encoding: UTF-8
- links:
- - https://tctg.in/
- legacylinks:
- - https://teamctgame.co/
- - http://teamctgame.xyz/
- - https://teamctgame.xyz/
+site: casatorrent
+name: Casa-Torrent
+description: "Casa-Torrent is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: fr-fr
+type: private
+encoding: UTF-8
+links:
+ - https://tctg.in/
+legacylinks:
+ - https://teamctgame.co/
+ - http://teamctgame.xyz/
+ - https://teamctgame.xyz/
- caps:
- categorymappings:
- - {id: 65, cat: Movies/HD, desc: "BD: BD"}
- - {id: 68, cat: Books/Magazines, desc: "Ebooks: Presse"}
- - {id: 90, cat: Audio/Audiobook, desc: "Ebooks: Audio books"}
- - {id: 56, cat: Books/Ebook, desc: "Ebooks: Ebooks"}
- - {id: 95, cat: Books/Comics, desc: "Ebooks: Mangas"}
- - {id: 84, cat: XXX, desc: "Ebooks: XXX"}
- - {id: 54, cat: Movies/3D, desc: "Films: 3D"}
- - {id: 53, cat: Movies/HD, desc: "Films: 4K"}
- - {id: 77, cat: Movies/UHD, desc: "Films: 4K-HDR"}
- - {id: 82, cat: Movies/UHD, desc: "Films: 4K-light"}
- - {id: 50, cat: Movies/UHD, desc: "Films: 4K-Remux"}
- - {id: 61, cat: Movies, desc: "Films: Animation"}
- - {id: 48, cat: Movies/BluRay, desc: "Films: BDRip / BRRip"}
- - {id: 78, cat: Movies/DVD, desc: "Films: DVD-R"}
- - {id: 47, cat: Movies/DVD, desc: "Films: DVDRip"}
- - {id: 71, cat: Movies/BluRay, desc: "Films: Full Bluray"}
- - {id: 63, cat: Movies/HD, desc: "Films: HD TV"}
- - {id: 52, cat: Movies/HD, desc: "Films: HD.1080p"}
- - {id: 51, cat: Movies/HD, desc: "Films: HD.720p"}
- - {id: 80, cat: Movies/HD, desc: "Films: HDLiGHT / M-HD"}
- - {id: 87, cat: Movies/HD, desc: "Films: HDRiP"}
- - {id: 60, cat: Movies, desc: "Films: Pack"}
- - {id: 96, cat: Movies, desc: "Films: Remux"}
- - {id: 75, cat: TV, desc: "Films: TVRiP"}
- - {id: 98, cat: Movies, desc: "Films: VFSTFR"}
- - {id: 89, cat: Movies, desc: "Films: VO"}
- - {id: 55, cat: Movies, desc: "Films: VOSTFR"}
- - {id: 58, cat: Movies/WEBDL, desc: "Films: Web - DL"}
- - {id: 57, cat: Movies/WEBDL, desc: "Films: WebRip"}
- - {id: 72, cat: Movies/HD, desc: "Films: x265"}
- - {id: 1, cat: XXX, desc: "Films: XXX"}
- - {id: 97, cat: Console, desc: "Jeux : Android"}
- - {id: 81, cat: Console, desc: "Jeux : Consoles"}
- - {id: 66, cat: PC/Games, desc: "Jeux: PC"}
- - {id: 62, cat: PC/0day, desc: "Logiciels: Windows"}
- - {id: 99, cat: Other, desc: "Logiciels: Graph / Wallpaper"}
- - {id: 94, cat: TV/HD, desc: "Series: 4K HDR"}
- - {id: 93, cat: TV/Anime, desc: "Series: Animés"}
- - {id: 86, cat: TV/HD, desc: "Series: Episode HD"}
- - {id: 101, cat: TV/HD, desc: "Series: Episode HD Vostfr"}
- - {id: 85, cat: TV/SD, desc: "Series: Episode SD"}
- - {id: 102, cat: TV/SD, desc: "Series: Episode SD Vostfr"}
- - {id: 100, cat: TV/HD, desc: "Series: Tv - Pack HD"}
- - {id: 103, cat: TV/HD, desc: "Series: Tv - Pack HD Vostfr"}
- - {id: 59, cat: TV/SD, desc: "Series: Tv - Pack SD"}
- - {id: 104, cat: TV/SD, desc: "Series: Tv - Pack SD Vostfr"}
- - {id: 88, cat: TV, desc: "Spectacles: Tous"}
- - {id: 83, cat: TV, desc: "TV: Emissions"}
- - {id: 73, cat: TV/Documentary, desc: "TV: Documentaires"}
- - {id: 74, cat: TV/Sport, desc: "TV: Sports"}
+caps:
+ categorymappings:
+ - {id: 65, cat: Movies/HD, desc: "BD: BD"}
+ - {id: 68, cat: Books/Magazines, desc: "Ebooks: Presse"}
+ - {id: 90, cat: Audio/Audiobook, desc: "Ebooks: Audio books"}
+ - {id: 56, cat: Books/Ebook, desc: "Ebooks: Ebooks"}
+ - {id: 95, cat: Books/Comics, desc: "Ebooks: Mangas"}
+ - {id: 84, cat: XXX, desc: "Ebooks: XXX"}
+ - {id: 54, cat: Movies/3D, desc: "Films: 3D"}
+ - {id: 53, cat: Movies/HD, desc: "Films: 4K"}
+ - {id: 77, cat: Movies/UHD, desc: "Films: 4K-HDR"}
+ - {id: 82, cat: Movies/UHD, desc: "Films: 4K-light"}
+ - {id: 50, cat: Movies/UHD, desc: "Films: 4K-Remux"}
+ - {id: 61, cat: Movies, desc: "Films: Animation"}
+ - {id: 48, cat: Movies/BluRay, desc: "Films: BDRip / BRRip"}
+ - {id: 78, cat: Movies/DVD, desc: "Films: DVD-R"}
+ - {id: 47, cat: Movies/DVD, desc: "Films: DVDRip"}
+ - {id: 71, cat: Movies/BluRay, desc: "Films: Full Bluray"}
+ - {id: 63, cat: Movies/HD, desc: "Films: HD TV"}
+ - {id: 52, cat: Movies/HD, desc: "Films: HD.1080p"}
+ - {id: 51, cat: Movies/HD, desc: "Films: HD.720p"}
+ - {id: 80, cat: Movies/HD, desc: "Films: HDLiGHT / M-HD"}
+ - {id: 87, cat: Movies/HD, desc: "Films: HDRiP"}
+ - {id: 60, cat: Movies, desc: "Films: Pack"}
+ - {id: 96, cat: Movies, desc: "Films: Remux"}
+ - {id: 75, cat: TV, desc: "Films: TVRiP"}
+ - {id: 98, cat: Movies, desc: "Films: VFSTFR"}
+ - {id: 89, cat: Movies, desc: "Films: VO"}
+ - {id: 55, cat: Movies, desc: "Films: VOSTFR"}
+ - {id: 58, cat: Movies/WEBDL, desc: "Films: Web - DL"}
+ - {id: 57, cat: Movies/WEBDL, desc: "Films: WebRip"}
+ - {id: 72, cat: Movies/HD, desc: "Films: x265"}
+ - {id: 1, cat: XXX, desc: "Films: XXX"}
+ - {id: 97, cat: Console, desc: "Jeux : Android"}
+ - {id: 81, cat: Console, desc: "Jeux : Consoles"}
+ - {id: 66, cat: PC/Games, desc: "Jeux: PC"}
+ - {id: 62, cat: PC/0day, desc: "Logiciels: Windows"}
+ - {id: 99, cat: Other, desc: "Logiciels: Graph / Wallpaper"}
+ - {id: 94, cat: TV/HD, desc: "Series: 4K HDR"}
+ - {id: 93, cat: TV/Anime, desc: "Series: Animés"}
+ - {id: 86, cat: TV/HD, desc: "Series: Episode HD"}
+ - {id: 101, cat: TV/HD, desc: "Series: Episode HD Vostfr"}
+ - {id: 85, cat: TV/SD, desc: "Series: Episode SD"}
+ - {id: 102, cat: TV/SD, desc: "Series: Episode SD Vostfr"}
+ - {id: 100, cat: TV/HD, desc: "Series: Tv - Pack HD"}
+ - {id: 103, cat: TV/HD, desc: "Series: Tv - Pack HD Vostfr"}
+ - {id: 59, cat: TV/SD, desc: "Series: Tv - Pack SD"}
+ - {id: 104, cat: TV/SD, desc: "Series: Tv - Pack SD Vostfr"}
+ - {id: 88, cat: TV, desc: "Spectacles: Tous"}
+ - {id: 83, cat: TV, desc: "TV: Emissions"}
+ - {id: 73, cat: TV/Documentary, desc: "TV: Documentaires"}
+ - {id: 74, cat: TV/Sport, desc: "TV: Sports"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "id"
- options:
- "id": "created"
- "seeders": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "id"
+ options:
+ "id": "created"
+ "seeders": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: account-login.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: p#msgError
- test:
- path: torrents-search.php
- selector: a[href="account-logout.php"]
-
- ratio:
+login:
+ path: account-login.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: p#msgError
+ test:
path: torrents-search.php
- selector: div#infobar b
+ selector: a[href="account-logout.php"]
- search:
- paths:
- - path: torrents-search.php
- inputs:
- $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
- search: "{{ .Keywords }}"
- incldead: 1
- freeleech: 0
- lang: 0
- sort: "{{ .Config.sort }}"
- order: "{{ .Config.type }}"
- keywordsfilters:
- - name: re_replace
- args: ["(\\w+)", " +$1"] # prepend + to each word
+ratio:
+ path: torrents-search.php
+ selector: div#infobar b
- rows:
- selector: table.ttable_headinner > tbody > tr.t-row
+search:
+ paths:
+ - path: torrents-search.php
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ search: "{{ .Keywords }}"
+ incldead: 1
+ freeleech: 0
+ lang: 0
+ sort: "{{ .Config.sort }}"
+ order: "{{ .Config.type }}"
+ keywordsfilters:
+ - name: re_replace
+ args: ["(\\w+)", " +$1"] # prepend + to each word
- fields:
- title:
- selector: a[href^="torrents-details.php?id="] b
- category:
- selector: a[href^="torrents.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- details:
- selector: a[href^="torrents-details.php?id="]
- attribute: href
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- banner:
- selector: img[src*="/uploads/images/"]
- attribute: src
- grabs:
- selector: a[onmouseover][href^="torrents-details.php?id="]
- attribute: onmouseover
- filters:
- - name: regexp
- args: "Snatched: (\\d+)
(.*?)
tbody > tr.t-row
+
+ fields:
+ title:
+ selector: a[href^="torrents-details.php?id="] b
+ category:
+ selector: a[href^="torrents.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ details:
+ selector: a[href^="torrents-details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ banner:
+ selector: img[src*="/uploads/images/"]
+ attribute: src
+ grabs:
+ selector: a[onmouseover][href^="torrents-details.php?id="]
+ attribute: onmouseover
+ filters:
+ - name: regexp
+ args: "Snatched: (\\d+)
(.*?)
tbody > tr:has(a[href^="details.php?id="])
+ rows:
+ selector: table[border="1"][cellpadding="5"] > tbody > tr:has(a[href^="details.php?id="])
- fields:
- title:
- selector: a[title][href^="details.php?id="]
- attribute: title
- filters:
- - name: split
- args: ["\n", 0]
- category:
- selector: a[href^="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="download.php/"]
- attribute: href
- imdb:
- optional: true
- selector: a[href*="www.imdb.com/title/tt"]
- attribute: href
- files:
- selector: a[href$="&filelist=1"]
- grabs:
- selector: a[href^="snatches.php?id"]
- filters:
- - name: replace
- args: ["次", ""]
- size:
- selector: td:nth-child(7)
- remove: a
- seeders:
- selector: td:nth-child(8)
- leechers:
- selector: td:nth-child(9)
- date:
- selector: td:nth-child(5)
- filters:
- - name: append
- args: " +08:00"
- - name: dateparse
- args: "2006-01-0215:04:05 -07:00"
- downloadvolumefactor:
- case:
- "font[color=\"#C20603\"]:contains(\"免费\")": 0
- "font:has([src=\"/pic/arrowdown1.gif\"]):contains(\"0.5x\")": 0.5
- "*": 1
- uploadvolumefactor:
- case:
- "font:has([src=\"/pic/arrowup1.gif\"]):contains(\"1.5x\")": 1.5
- "font:has([src=\"/pic/arrowup1.gif\"]):contains(\"2x\")": 2
- "*": 1
- description:
- selector: td:nth-child(2) > table > tbody > tr:nth-child(2)
- remove: a, img
+ fields:
+ title:
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ filters:
+ - name: split
+ args: ["\n", 0]
+ category:
+ selector: a[href^="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php/"]
+ attribute: href
+ imdb:
+ optional: true
+ selector: a[href*="www.imdb.com/title/tt"]
+ attribute: href
+ files:
+ selector: a[href$="&filelist=1"]
+ grabs:
+ selector: a[href^="snatches.php?id"]
+ filters:
+ - name: replace
+ args: ["次", ""]
+ size:
+ selector: td:nth-child(7)
+ remove: a
+ seeders:
+ selector: td:nth-child(8)
+ leechers:
+ selector: td:nth-child(9)
+ date:
+ selector: td:nth-child(5)
+ filters:
+ - name: append
+ args: " +08:00"
+ - name: dateparse
+ args: "2006-01-0215:04:05 -07:00"
+ downloadvolumefactor:
+ case:
+ "font[color=\"#C20603\"]:contains(\"免费\")": 0
+ "font:has([src=\"/pic/arrowdown1.gif\"]):contains(\"0.5x\")": 0.5
+ "*": 1
+ uploadvolumefactor:
+ case:
+ "font:has([src=\"/pic/arrowup1.gif\"]):contains(\"1.5x\")": 1.5
+ "font:has([src=\"/pic/arrowup1.gif\"]):contains(\"2x\")": 2
+ "*": 1
+ description:
+ selector: td:nth-child(2) > table > tbody > tr:nth-child(2)
+ remove: a, img
# Discuz! 7.2
diff --git a/src/Jackett.Common/Definitions/channelx.yml b/src/Jackett.Common/Definitions/channelx.yml
index cc0fe1276..509ee37d8 100644
--- a/src/Jackett.Common/Definitions/channelx.yml
+++ b/src/Jackett.Common/Definitions/channelx.yml
@@ -1,185 +1,185 @@
---
- site: Channelx
- name: ChannelX
- description: "ChannelX is a Private Torrent Tracker for High Quality Optimized HD MOVIES / TV"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - https://channelx.xyz/
- legacylinks:
- - https://channelx.online/
+site: Channelx
+name: ChannelX
+description: "ChannelX is a Private Torrent Tracker for High Quality Optimized HD MOVIES / TV"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - https://channelx.xyz/
+legacylinks:
+ - https://channelx.online/
- caps:
- categorymappings:
- - {id: 1, cat: Movies, desc: "Movies"}
- - {id: 2, cat: TV, desc: "TV"}
- - {id: 3, cat: Audio, desc: "Audiotracks"}
- - {id: 4, cat: TV/Sport, desc: "Sports"}
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Movies"}
+ - {id: 2, cat: TV, desc: "TV"}
+ - {id: 3, cat: Audio, desc: "Audiotracks"}
+ - {id: 4, cat: TV/Sport, desc: "Sports"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "created_at"
- options:
- "created_at": "created"
- "seeders": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "created_at"
+ options:
+ "created_at": "created"
+ "seeders": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: login
- method: form
- form: form[action$="/login"]
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- remember: on
- selectorinputs:
- _token:
- selector: input[name="_token"]
- attribute: value
- error:
- - selector: div#ERROR_COPY
+login:
+ path: login
+ method: form
+ form: form[action$="/login"]
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ remember: on
+ selectorinputs:
+ _token:
+ selector: input[name="_token"]
+ attribute: value
+ error:
+ - selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
- ratio:
- path: /
- selector: li:has(i.fa-sync-alt)
- filters:
- - name: regexp
- args: "Ratio : (\\d+)"
+ratio:
+ path: /
+ selector: li:has(i.fa-sync-alt)
+ filters:
+ - name: regexp
+ args: "Ratio : (\\d+)"
- search:
- paths:
- - path: torrents/filter
- inputs:
- $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
- search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- description: ""
- uploader: ""
- imdb: "{{ .Query.IMDBIDShort }}"
- tvdb: ""
- tmdb: ""
- mal: ""
- igdb: ""
- sorting: "{{ .Config.sort }}"
- sort: "{{ .Config.sort }}"
- direction: "{{ .Config.type }}"
- qty: 100
+search:
+ paths:
+ - path: torrents/filter
+ inputs:
+ $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ description: ""
+ uploader: ""
+ imdb: "{{ .Query.IMDBIDShort }}"
+ tvdb: ""
+ tmdb: ""
+ mal: ""
+ igdb: ""
+ sorting: "{{ .Config.sort }}"
+ sort: "{{ .Config.sort }}"
+ direction: "{{ .Config.type }}"
+ qty: 100
- rows:
- selector: table > tbody > tr
+ rows:
+ selector: table > tbody > tr
- fields:
- category:
- selector: a[href*="/categories/"]
- attribute: href
- filters:
- - name: regexp
- args: "/categories/(\\d+)"
- title:
- selector: a.view-torrent
- download:
- selector: a[href*="/download/"]
- attribute: href
- details:
- selector: a.view-torrent
- attribute: href
- banner:
- optional: true
- selector: div.torrent-poster img
- attribute: src
- filters:
- - name: replace
- args: ["https://via.placeholder.com/600x900", ""]
- comments:
- selector: a[href*="#comments"]
- attribute: href
- size:
- selector: td:nth-last-child(4)
- seeders:
- selector: td:nth-last-child(3)
- leechers:
- selector: td:nth-last-child(2)
- grabs:
- selector: td:nth-last-child(1)
- filters:
- - name: regexp
- args: (\d+)
- imdb:
- optional: true
- selector: a[href*="www.imdb.com/title/tt"]
- attribute: href
- date:
- selector: time
- filters:
- # translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese
- - name: re_replace
- args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
- - name: re_replace
- args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
- - name: re_replace
- args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟)", " minute"]
- - name: re_replace
- args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden)", "hours"]
- - name: re_replace
- args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时)", " hour"]
- - name: re_replace
- args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen)", "days"]
- - name: re_replace
- args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天)", " day"]
- - name: re_replace
- args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
- - name: re_replace
- args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周)", " week"]
- - name: re_replace
- args: ["(?i) (ay)", "month"]
- - name: re_replace
- args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
- - name: re_replace
- args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月)", " month"]
- - name: re_replace
- args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- - name: re_replace
- args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- - name: re_replace
- args: ["(?i) (an)", "year"]
- downloadvolumefactor:
- case:
- i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
- i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
- i[class*="fa-star text-bold"]: 0 # Freeleech From Token
- i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
- i[class*="fa-globe text-blue"]: 0 # Global Freeleech
- i[class*="fa-star text-gold"]: 0 # Freeleech
- i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
- "*": 1
- uploadvolumefactor:
- case:
- i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
- i[class*="fa-globe text-green"]: 2 # Global Double Upload
- i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
- "*": 1
+ fields:
+ category:
+ selector: a[href*="/categories/"]
+ attribute: href
+ filters:
+ - name: regexp
+ args: "/categories/(\\d+)"
+ title:
+ selector: a.view-torrent
+ download:
+ selector: a[href*="/download/"]
+ attribute: href
+ details:
+ selector: a.view-torrent
+ attribute: href
+ banner:
+ optional: true
+ selector: div.torrent-poster img
+ attribute: src
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/600x900", ""]
+ comments:
+ selector: a[href*="#comments"]
+ attribute: href
+ size:
+ selector: td:nth-last-child(4)
+ seeders:
+ selector: td:nth-last-child(3)
+ leechers:
+ selector: td:nth-last-child(2)
+ grabs:
+ selector: td:nth-last-child(1)
+ filters:
+ - name: regexp
+ args: (\d+)
+ imdb:
+ optional: true
+ selector: a[href*="www.imdb.com/title/tt"]
+ attribute: href
+ date:
+ selector: time
+ filters:
+ # translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese
+ - name: re_replace
+ args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
+ - name: re_replace
+ args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
+ - name: re_replace
+ args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟)", " minute"]
+ - name: re_replace
+ args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden)", "hours"]
+ - name: re_replace
+ args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时)", " hour"]
+ - name: re_replace
+ args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen)", "days"]
+ - name: re_replace
+ args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天)", " day"]
+ - name: re_replace
+ args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
+ - name: re_replace
+ args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周)", " week"]
+ - name: re_replace
+ args: ["(?i) (ay)", "month"]
+ - name: re_replace
+ args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
+ - name: re_replace
+ args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月)", " month"]
+ - name: re_replace
+ args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
+ - name: re_replace
+ args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
+ - name: re_replace
+ args: ["(?i) (an)", "year"]
+ downloadvolumefactor:
+ case:
+ i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
+ i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
+ i[class*="fa-star text-bold"]: 0 # Freeleech From Token
+ i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
+ i[class*="fa-globe text-blue"]: 0 # Global Freeleech
+ i[class*="fa-star text-gold"]: 0 # Freeleech
+ i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
+ "*": 1
+ uploadvolumefactor:
+ case:
+ i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
+ i[class*="fa-globe text-green"]: 2 # Global Double Upload
+ i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
+ "*": 1
# UNIT3D 2.2.7
diff --git a/src/Jackett.Common/Definitions/chdbits.yml b/src/Jackett.Common/Definitions/chdbits.yml
index 21deec6cd..72d133ad2 100644
--- a/src/Jackett.Common/Definitions/chdbits.yml
+++ b/src/Jackett.Common/Definitions/chdbits.yml
@@ -1,107 +1,107 @@
---
- site: chdbits
- name: CHDBits
- description: "CHDBits is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
- language: zh-cn
- type: private
- encoding: UTF-8
- links:
- - https://chdbits.co/
+site: chdbits
+name: CHDBits
+description: "CHDBits is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
+language: zh-cn
+type: private
+encoding: UTF-8
+links:
+ - https://chdbits.co/
- caps:
- categorymappings:
- - {id: 401, cat: Movies, desc: "Movies"}
- - {id: 404, cat: TV/Documentary, desc: "Documentaries"}
- - {id: 405, cat: TV/Anime, desc: "Animations"}
- - {id: 402, cat: TV, desc: "TV Series"}
- - {id: 403, cat: TV, desc: "TV Shows"}
- - {id: 406, cat: Audio/Video, desc: "Music Videos"}
- - {id: 407, cat: TV/Sport, desc: "Sports"}
- - {id: 409, cat: Other, desc: "Misc"}
- - {id: 408, cat: Audio, desc: "HQ Audio"}
+caps:
+ categorymappings:
+ - {id: 401, cat: Movies, desc: "Movies"}
+ - {id: 404, cat: TV/Documentary, desc: "Documentaries"}
+ - {id: 405, cat: TV/Anime, desc: "Animations"}
+ - {id: 402, cat: TV, desc: "TV Series"}
+ - {id: 403, cat: TV, desc: "TV Shows"}
+ - {id: 406, cat: Audio/Video, desc: "Music Videos"}
+ - {id: 407, cat: TV/Sport, desc: "Sports"}
+ - {id: 409, cat: Other, desc: "Misc"}
+ - {id: 408, cat: Audio, desc: "HQ Audio"}
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
- music-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: td.embedded:has(h2:contains("failed"))
- test:
- path: torrents.php
-
- ratio:
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: td.embedded:has(h2:contains("failed"))
+ test:
path: torrents.php
- selector: table#info_block
- filters:
- - name: regexp
- args: "Ratio:\\s(.*?)\\s\\s"
- search:
- paths:
- - path: torrents.php
- inputs:
- $raw: "{{range .Categories}}cat{{.}}=1&{{end}}"
- search: "{{ .Query.Keywords }}"
- incldead: "1"
- rows:
- selector: table.torrents > tbody > tr:has(table.torrentname)
- fields:
- title:
- selector: a[href^="details.php?id="]
- title:
- optional: true
- selector: a[title][href^="details.php?id="]
- attribute: title
- category:
- selector: a[href^="?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- details:
- selector: a[href^="details.php?id="]
- attribute: href
- download:
- selector: a[href^="download.php?id="]
- attribute: href
- size:
- selector: td:nth-child(5)
- grabs:
- selector: td:nth-child(8)
- seeders:
- selector: td:nth-child(6)
- leechers:
- selector: td:nth-child(7)
- date:
- selector: td:nth-child(4) > span[title]
- attribute: title
- filters:
- - name: append
- args: " +08:00"
- - name: dateparse
- args: "2006-01-02 15:04:05 -07:00"
- downloadvolumefactor:
- case:
- img.pro_free: "0"
- img.pro_free2up: "0"
- img.pro_50pctdown: "0.5"
- img.pro_50pctdown2up: "0.5"
- img.pro_30pctdown: "0.3"
- "*": "1"
- uploadvolumefactor:
- case:
- img.pro_50pctdown2up: "2"
- img.pro_free2up: "2"
- img.pro_2up: "2"
- "*": "1"
- description:
- selector: td:nth-child(2)
- remove: a, img
+ratio:
+ path: torrents.php
+ selector: table#info_block
+ filters:
+ - name: regexp
+ args: "Ratio:\\s(.*?)\\s\\s"
+
+search:
+ paths:
+ - path: torrents.php
+ inputs:
+ $raw: "{{range .Categories}}cat{{.}}=1&{{end}}"
+ search: "{{ .Query.Keywords }}"
+ incldead: "1"
+ rows:
+ selector: table.torrents > tbody > tr:has(table.torrentname)
+ fields:
+ title:
+ selector: a[href^="details.php?id="]
+ title:
+ optional: true
+ selector: a[title][href^="details.php?id="]
+ attribute: title
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ details:
+ selector: a[href^="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href^="download.php?id="]
+ attribute: href
+ size:
+ selector: td:nth-child(5)
+ grabs:
+ selector: td:nth-child(8)
+ seeders:
+ selector: td:nth-child(6)
+ leechers:
+ selector: td:nth-child(7)
+ date:
+ selector: td:nth-child(4) > span[title]
+ attribute: title
+ filters:
+ - name: append
+ args: " +08:00"
+ - name: dateparse
+ args: "2006-01-02 15:04:05 -07:00"
+ downloadvolumefactor:
+ case:
+ img.pro_free: "0"
+ img.pro_free2up: "0"
+ img.pro_50pctdown: "0.5"
+ img.pro_50pctdown2up: "0.5"
+ img.pro_30pctdown: "0.3"
+ "*": "1"
+ uploadvolumefactor:
+ case:
+ img.pro_50pctdown2up: "2"
+ img.pro_free2up: "2"
+ img.pro_2up: "2"
+ "*": "1"
+ description:
+ selector: td:nth-child(2)
+ remove: a, img
diff --git a/src/Jackett.Common/Definitions/chilebt.yml b/src/Jackett.Common/Definitions/chilebt.yml
index 211717b1b..2a10ac2b5 100644
--- a/src/Jackett.Common/Definitions/chilebt.yml
+++ b/src/Jackett.Common/Definitions/chilebt.yml
@@ -1,192 +1,192 @@
---
- site: chilebt
- name: ChileBT
- description: "ChileBT is a CHILEAN Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: es-419
- type: private
- encoding: UTF-8
- links:
- - https://chilebt.com/
+site: chilebt
+name: ChileBT
+description: "ChileBT is a CHILEAN Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: es-419
+type: private
+encoding: UTF-8
+links:
+ - https://chilebt.com/
- caps:
- categorymappings:
- - {id: 10, cat: Movies, desc: "Movies"}
- - {id: 11, cat: TV, desc: "TV"}
- - {id: 9, cat: Audio, desc: "Music"}
- - {id: 7, cat: Other, desc: "Cultura / Educativos"}
- - {id: 8, cat: PC/Games, desc: "Juegos"}
- - {id: 6, cat: Books, desc: "EBook"}
- - {id: 4, cat: TV/Anime, desc: "Anime"}
- - {id: 5, cat: PC/0day, desc: "Aplicaciones / Programas"}
- - {id: 14, cat: Movies, desc: "Infantil"}
- - {id: 12, cat: Other/Misc, desc: "VIP"}
- - {id: 13, cat: XXX, desc: "XXX"}
+caps:
+ categorymappings:
+ - {id: 10, cat: Movies, desc: "Movies"}
+ - {id: 11, cat: TV, desc: "TV"}
+ - {id: 9, cat: Audio, desc: "Music"}
+ - {id: 7, cat: Other, desc: "Cultura / Educativos"}
+ - {id: 8, cat: PC/Games, desc: "Juegos"}
+ - {id: 6, cat: Books, desc: "EBook"}
+ - {id: 4, cat: TV/Anime, desc: "Anime"}
+ - {id: 5, cat: PC/0day, desc: "Aplicaciones / Programas"}
+ - {id: 14, cat: Movies, desc: "Infantil"}
+ - {id: 12, cat: Other/Misc, desc: "VIP"}
+ - {id: 13, cat: XXX, desc: "XXX"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- settings:
- - name: username
- type: text
- label: Username
- - name: password
- type: password
- label: Password
- - name: sort
- type: select
- label: Sort requested from site
- default: "created_at"
- options:
- "created_at": "created"
- "seeders": "seeders"
- "size": "size"
- "name": "title"
- - name: type
- type: select
- label: Order requested from site
- default: "desc"
- options:
- "desc": "desc"
- "asc": "asc"
+settings:
+ - name: username
+ type: text
+ label: Username
+ - name: password
+ type: password
+ label: Password
+ - name: sort
+ type: select
+ label: Sort requested from site
+ default: "created_at"
+ options:
+ "created_at": "created"
+ "seeders": "seeders"
+ "size": "size"
+ "name": "title"
+ - name: type
+ type: select
+ label: Order requested from site
+ default: "desc"
+ options:
+ "desc": "desc"
+ "asc": "asc"
- login:
- path: login
- method: form
- form: form[action$="/login"]
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- remember: on
- selectorinputs:
- _token:
- selector: input[name="_token"]
- attribute: value
- error:
- - selector: script[nonce]:contains("Error")
- message:
- selector: script[nonce]:contains("Error")
+login:
+ path: login
+ method: form
+ form: form[action$="/login"]
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ remember: on
+ selectorinputs:
+ _token:
+ selector: input[name="_token"]
+ attribute: value
+ error:
+ - selector: script[nonce]:contains("Error")
+ message:
+ selector: script[nonce]:contains("Error")
# test:
# path: /
# selector: a[href$="/logout"]
- ratio:
- path: /
- selector: li:has(i.fa-sync-alt)
- filters:
- - name: regexp
- args: "Ratio : (\\d+)"
+ratio:
+ path: /
+ selector: li:has(i.fa-sync-alt)
+ filters:
+ - name: regexp
+ args: "Ratio : (\\d+)"
- search:
- paths:
- - path: filterTorrents
- inputs:
- $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
- search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- description: ""
- uploader: ""
- imdb: "{{ .Query.IMDBIDShort }}"
- tvdb: ""
- tmdb: ""
- mal: ""
- sorting: "{{ .Config.sort }}"
- sort: "{{ .Config.sort }}"
- direction: "{{ .Config.type }}"
- qty: 100
+search:
+ paths:
+ - path: filterTorrents
+ inputs:
+ $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+ description: ""
+ uploader: ""
+ imdb: "{{ .Query.IMDBIDShort }}"
+ tvdb: ""
+ tmdb: ""
+ mal: ""
+ sorting: "{{ .Config.sort }}"
+ sort: "{{ .Config.sort }}"
+ direction: "{{ .Config.type }}"
+ qty: 100
- rows:
- selector: table > tbody > tr
+ rows:
+ selector: table > tbody > tr
- fields:
- category:
- selector: a[href*="/categories/"]
- attribute: href
- filters:
- - name: regexp
- args: "/categories/.*?\\.(\\d+)"
- title:
- selector: a.view-torrent
- download:
- selector: a[href*="/download/"]
- attribute: href
- details:
- selector: a.view-torrent
- attribute: href
- banner:
- optional: true
- selector: div.torrent-poster img
- attribute: src
- filters:
- - name: replace
- args: ["https://via.placeholder.com/600x900", ""]
- comments:
- selector: a[href*="#comments"]
- attribute: href
- size:
- selector: td:nth-last-child(4)
- seeders:
- selector: td:nth-last-child(3)
- leechers:
- selector: td:nth-last-child(2)
- grabs:
- selector: td:nth-last-child(1)
- filters:
- - name: regexp
- args: (\d+)
- imdb:
- optional: true
- selector: a[href*="www.imdb.com/title/tt"]
- attribute: href
- date:
- selector: time
- filters:
- # translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese
- - name: re_replace
- args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
- - name: re_replace
- args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
- - name: re_replace
- args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟)", " minute"]
- - name: re_replace
- args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden)", "hours"]
- - name: re_replace
- args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时)", " hour"]
- - name: re_replace
- args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen)", "days"]
- - name: re_replace
- args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天)", " day"]
- - name: re_replace
- args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
- - name: re_replace
- args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周)", " week"]
- - name: re_replace
- args: ["(?i) (ay)", "month"]
- - name: re_replace
- args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
- - name: re_replace
- args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月)", " month"]
- - name: re_replace
- args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- - name: re_replace
- args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- - name: re_replace
- args: ["(?i) (an)", "year"]
- downloadvolumefactor:
- case:
- i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
- i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
- i[class*="fa-star text-bold"]: 0 # Freeleech From Token
- i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
- i[class*="fa-globe text-blue"]: 0 # Global Freeleech
- i[class*="fa-star text-gold"]: 0 # Freeleech
- i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
- "*": 1
- uploadvolumefactor:
- case:
- i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
- i[class*="fa-globe text-green"]: 2 # Global Double Upload
- i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
- "*": 1
+ fields:
+ category:
+ selector: a[href*="/categories/"]
+ attribute: href
+ filters:
+ - name: regexp
+ args: "/categories/.*?\\.(\\d+)"
+ title:
+ selector: a.view-torrent
+ download:
+ selector: a[href*="/download/"]
+ attribute: href
+ details:
+ selector: a.view-torrent
+ attribute: href
+ banner:
+ optional: true
+ selector: div.torrent-poster img
+ attribute: src
+ filters:
+ - name: replace
+ args: ["https://via.placeholder.com/600x900", ""]
+ comments:
+ selector: a[href*="#comments"]
+ attribute: href
+ size:
+ selector: td:nth-last-child(4)
+ seeders:
+ selector: td:nth-last-child(3)
+ leechers:
+ selector: td:nth-last-child(2)
+ grabs:
+ selector: td:nth-last-child(1)
+ filters:
+ - name: regexp
+ args: (\d+)
+ imdb:
+ optional: true
+ selector: a[href*="www.imdb.com/title/tt"]
+ attribute: href
+ date:
+ selector: time
+ filters:
+ # translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese
+ - name: re_replace
+ args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前)", " ago"]
+ - name: re_replace
+ args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten)", "minutes"]
+ - name: re_replace
+ args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟)", " minute"]
+ - name: re_replace
+ args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden)", "hours"]
+ - name: re_replace
+ args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时)", " hour"]
+ - name: re_replace
+ args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen)", "days"]
+ - name: re_replace
+ args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天)", " day"]
+ - name: re_replace
+ args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken)", "weeks"]
+ - name: re_replace
+ args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周)", " week"]
+ - name: re_replace
+ args: ["(?i) (ay)", "month"]
+ - name: re_replace
+ args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden)", "months"]
+ - name: re_replace
+ args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月)", " month"]
+ - name: re_replace
+ args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
+ - name: re_replace
+ args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
+ - name: re_replace
+ args: ["(?i) (an)", "year"]
+ downloadvolumefactor:
+ case:
+ i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
+ i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
+ i[class*="fa-star text-bold"]: 0 # Freeleech From Token
+ i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
+ i[class*="fa-globe text-blue"]: 0 # Global Freeleech
+ i[class*="fa-star text-gold"]: 0 # Freeleech
+ i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
+ "*": 1
+ uploadvolumefactor:
+ case:
+ i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
+ i[class*="fa-globe text-green"]: 2 # Global Double Upload
+ i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
+ "*": 1
# UNIT3D 1.9.3
diff --git a/src/Jackett.Common/Definitions/cili180.yml b/src/Jackett.Common/Definitions/cili180.yml
index 2e760017c..e5ac42d94 100644
--- a/src/Jackett.Common/Definitions/cili180.yml
+++ b/src/Jackett.Common/Definitions/cili180.yml
@@ -1,74 +1,74 @@
---
- site: cili180
- name: Cili180
- description: "Cili180 is a Public BitTorrent DHT search engine."
- language: en-us
- type: public
- encoding: UTF-8
- links:
- - https://www.cilijj.xyz/
- - https://www.liaorenso11.xyz/
- - https://www.liaorenso12.xyz/
- - https://www.liaorenso13.xyz/
- - https://www.liaorenso14.xyz/
- - https://www.liaorenso15.xyz/
- - https://www.liaorenso16.xyz/
- - https://www.liaorenso17.xyz/
- - https://www.liaorenso18.xyz/
- legacylinks:
- - http://www.cili180.com/
- - http://www.cilijj.xyz/
- - https://www.liaorenso.xyz/ # proxy list only
- - https://www.liaorenso19.xyz/ # proxy list only
+site: cili180
+name: Cili180
+description: "Cili180 is a Public BitTorrent DHT search engine."
+language: en-us
+type: public
+encoding: UTF-8
+links:
+ - https://www.cilijj.xyz/
+ - https://www.liaorenso11.xyz/
+ - https://www.liaorenso12.xyz/
+ - https://www.liaorenso13.xyz/
+ - https://www.liaorenso14.xyz/
+ - https://www.liaorenso15.xyz/
+ - https://www.liaorenso16.xyz/
+ - https://www.liaorenso17.xyz/
+ - https://www.liaorenso18.xyz/
+legacylinks:
+ - http://www.cili180.com/
+ - http://www.cilijj.xyz/
+ - https://www.liaorenso.xyz/ # proxy list only
+ - https://www.liaorenso19.xyz/ # proxy list only
- caps:
- categories:
- 1: Other
+caps:
+ categories:
+ 1: Other
- modes:
- search: [q]
- tv-search: [q, season, ep]
- movie-search: [q]
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
- settings: []
+settings: []
- search:
- paths:
- - path: search/
- method: post
- followredirect: true
- inputs:
- keyword: "{{ if .Keywords }}{{ .Keywords }}{{else}}{{ .Today.Year }}{{end}}"
+search:
+ paths:
+ - path: search/
+ method: post
+ followredirect: true
+ inputs:
+ keyword: "{{ if .Keywords }}{{ .Keywords }}{{else}}{{ .Today.Year }}{{end}}"
- rows:
- selector: div.list-area > dl.item
+ rows:
+ selector: div.list-area > dl.item
+ filters:
+ - name: andmatch
+
+ fields:
+ category:
+ text: 1
+ title:
+ selector: dt a
+ details:
+ selector: dt a
+ attribute: href
+ download:
+ selector: a[href^="magnet:?xt="]
+ attribute: href
+ date:
+ selector: dd.attr span:nth-child(1) b
filters:
- - name: andmatch
-
- fields:
- category:
- text: 1
- title:
- selector: dt a
- details:
- selector: dt a
- attribute: href
- download:
- selector: a[href^="magnet:?xt="]
- attribute: href
- date:
- selector: dd.attr span:nth-child(1) b
- filters:
- - name: dateparse
- args: "2006-01-02"
- size:
- selector: dd.attr span:nth-child(2) b
- seeders:
- text: 1
- leechers:
- text: 1
- downloadvolumefactor:
- text: 0
- uploadvolumefactor:
- text: 1
+ - name: dateparse
+ args: "2006-01-02"
+ size:
+ selector: dd.attr span:nth-child(2) b
+ seeders:
+ text: 1
+ leechers:
+ text: 1
+ downloadvolumefactor:
+ text: 0
+ uploadvolumefactor:
+ text: 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/cinemageddon.yml b/src/Jackett.Common/Definitions/cinemageddon.yml
index 6fa570a60..740bb340a 100644
--- a/src/Jackett.Common/Definitions/cinemageddon.yml
+++ b/src/Jackett.Common/Definitions/cinemageddon.yml
@@ -1,119 +1,119 @@
---
- site: cinemageddon
- name: Cinemageddon
- description: "B-movie tracker"
- language: en-us
- type: private
- encoding: UTF-8
- links:
- - https://cinemageddon.net/
- legacylinks:
- - http://cinemageddon.net/
+site: cinemageddon
+name: Cinemageddon
+description: "B-movie tracker"
+language: en-us
+type: private
+encoding: UTF-8
+links:
+ - https://cinemageddon.net/
+legacylinks:
+ - http://cinemageddon.net/
- caps:
- categorymappings:
- - {id: 1, cat: Movies, desc: "Action"}
- - {id: 2, cat: Movies, desc: "Horror"}
- - {id: 3, cat: Movies, desc: "Martial Arts"}
- - {id: 4, cat: Movies, desc: "Comedy"}
- - {id: 5, cat: Movies, desc: "Other"}
- - {id: 6, cat: Movies, desc: "Hidden Gems"}
- - {id: 7, cat: Movies, desc: "Sci-Fi"}
- - {id: 8, cat: Movies, desc: "Gore"}
- - {id: 9, cat: Movies, desc: "Exploitation"}
- - {id: 11, cat: Movies, desc: "OST"}
- - {id: 12, cat: Movies, desc: "XXX"}
- - {id: 13, cat: Movies, desc: "Thriller"}
- - {id: 14, cat: Movies, desc: "Adventure"}
- - {id: 15, cat: Movies, desc: "Documentary"}
- - {id: 16, cat: Movies, desc: "Western"}
- - {id: 17, cat: Movies, desc: "Family"}
- - {id: 18, cat: Movies, desc: "Drama"}
- - {id: 19, cat: Movies, desc: "Ebooks"}
- - {id: 20, cat: Movies, desc: "Softcore"}
- - {id: 21, cat: Movies, desc: "Tinfoil Hat"}
- - {id: 22, cat: Movies, desc: "Trailers"}
+caps:
+ categorymappings:
+ - {id: 1, cat: Movies, desc: "Action"}
+ - {id: 2, cat: Movies, desc: "Horror"}
+ - {id: 3, cat: Movies, desc: "Martial Arts"}
+ - {id: 4, cat: Movies, desc: "Comedy"}
+ - {id: 5, cat: Movies, desc: "Other"}
+ - {id: 6, cat: Movies, desc: "Hidden Gems"}
+ - {id: 7, cat: Movies, desc: "Sci-Fi"}
+ - {id: 8, cat: Movies, desc: "Gore"}
+ - {id: 9, cat: Movies, desc: "Exploitation"}
+ - {id: 11, cat: Movies, desc: "OST"}
+ - {id: 12, cat: Movies, desc: "XXX"}
+ - {id: 13, cat: Movies, desc: "Thriller"}
+ - {id: 14, cat: Movies, desc: "Adventure"}
+ - {id: 15, cat: Movies, desc: "Documentary"}
+ - {id: 16, cat: Movies, desc: "Western"}
+ - {id: 17, cat: Movies, desc: "Family"}
+ - {id: 18, cat: Movies, desc: "Drama"}
+ - {id: 19, cat: Movies, desc: "Ebooks"}
+ - {id: 20, cat: Movies, desc: "Softcore"}
+ - {id: 21, cat: Movies, desc: "Tinfoil Hat"}
+ - {id: 22, cat: Movies, desc: "Trailers"}
- modes:
- search: [q, imdbid]
- movie-search: [q, imdbid]
+ modes:
+ search: [q, imdbid]
+ movie-search: [q, imdbid]
- login:
- path: takelogin.php
- method: post
- inputs:
- username: "{{ .Config.username }}"
- password: "{{ .Config.password }}"
- error:
- - selector: table:contains("Login failed!")
- test:
- path: index.php
- selector: a[href$="/logout.php"]
+login:
+ path: takelogin.php
+ method: post
+ inputs:
+ username: "{{ .Config.username }}"
+ password: "{{ .Config.password }}"
+ error:
+ - selector: table:contains("Login failed!")
+ test:
+ path: index.php
+ selector: a[href$="/logout.php"]
- search:
- paths:
- - path: browse.php
- inputs:
- $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
- search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
+search:
+ paths:
+ - path: browse.php
+ inputs:
+ $raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{else}}{{ .Keywords }}{{end}}"
- rows:
- selector: table.torrenttable > tbody > tr:has(a[href*="browse.php?cat="])
+ rows:
+ selector: table.torrenttable > tbody > tr:has(a[href*="browse.php?cat="])
- fields:
- category:
- selector: a[href*="browse.php?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
- title:
- selector: a[href*="details.php?id="]
- details:
- selector: a[href*="details.php?id="]
- attribute: href
- download:
- selector: a[href*="download.php?id="]
- attribute: href
- imdb:
- optional: true
- selector: a[href*="www.imdb.com/title/"]
- attribute: href
- date:
- selector: td:nth-child(4)
- filters:
- - name: dateparse
- args: "2006-01-0215:04:05"
- size:
- selector: td:nth-child(5)
- filters:
- - name: regexp
- args: (\d+.*(MB|GB)+)
- files:
- selector: td:nth-child(5)
- filters:
- - name: regexp
- args: (\d+)\s+file
- grabs:
- selector: td:nth-child(6)
- seeders:
- selector: td:nth-child(7)
- leechers:
- selector: td:nth-child(8)
- downloadvolumefactor:
- case:
- img[src$="/golden10.gif"]: 0 # freeleech
- img[src$="/golden1.gif"]: 0.9 # grey coin possibly 10% discount
- img[src$="/golden2.gif"]: 0.8 # bronze coin 20% discount
- img[src$="/golden3.gif"]: 0.7 # siver coin 30% discount
- img[src$="/golden4.gif"]: 0.6 # gold coin 40% discount
- "*": 1
- uploadvolumefactor:
- case:
- img[src$="/golden10.gif"]: 2 # freeleech 2x bonus
- img[src$="/golden1.gif"]: 1.1 # gray coin possibly 10% bonus
- img[src$="/golden2.gif"]: 1.2 # bronze coin 20% bonus
- img[src$="/golden3.gif"]: 1.3 # silver coin 30% bonus
- img[src$="/golden4.gif"]: 1.4 # gold coin 40% bonus
- "*": 1
+ fields:
+ category:
+ selector: a[href*="browse.php?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
+ title:
+ selector: a[href*="details.php?id="]
+ details:
+ selector: a[href*="details.php?id="]
+ attribute: href
+ download:
+ selector: a[href*="download.php?id="]
+ attribute: href
+ imdb:
+ optional: true
+ selector: a[href*="www.imdb.com/title/"]
+ attribute: href
+ date:
+ selector: td:nth-child(4)
+ filters:
+ - name: dateparse
+ args: "2006-01-0215:04:05"
+ size:
+ selector: td:nth-child(5)
+ filters:
+ - name: regexp
+ args: (\d+.*(MB|GB)+)
+ files:
+ selector: td:nth-child(5)
+ filters:
+ - name: regexp
+ args: (\d+)\s+file
+ grabs:
+ selector: td:nth-child(6)
+ seeders:
+ selector: td:nth-child(7)
+ leechers:
+ selector: td:nth-child(8)
+ downloadvolumefactor:
+ case:
+ img[src$="/golden10.gif"]: 0 # freeleech
+ img[src$="/golden1.gif"]: 0.9 # grey coin possibly 10% discount
+ img[src$="/golden2.gif"]: 0.8 # bronze coin 20% discount
+ img[src$="/golden3.gif"]: 0.7 # siver coin 30% discount
+ img[src$="/golden4.gif"]: 0.6 # gold coin 40% discount
+ "*": 1
+ uploadvolumefactor:
+ case:
+ img[src$="/golden10.gif"]: 2 # freeleech 2x bonus
+ img[src$="/golden1.gif"]: 1.1 # gray coin possibly 10% bonus
+ img[src$="/golden2.gif"]: 1.2 # bronze coin 20% bonus
+ img[src$="/golden3.gif"]: 1.3 # silver coin 30% bonus
+ img[src$="/golden4.gif"]: 1.4 # gold coin 40% bonus
+ "*": 1
# engine n/a
diff --git a/src/Jackett.Common/Definitions/cinemamovies.yml b/src/Jackett.Common/Definitions/cinemamovies.yml
index 688bb6d67..c18887bf2 100644
--- a/src/Jackett.Common/Definitions/cinemamovies.yml
+++ b/src/Jackett.Common/Definitions/cinemamovies.yml
@@ -1,145 +1,145 @@
---
- site: cinemamovies
- name: CinemaMovies
- description: "CinemaMovies is a POLISH Private Torrent Tracker for MOVIES / TV / GENERAL"
- language: pl-pl
- type: private
- encoding: ISO-8859-2
- links:
- - https://cinemamovies.pl/
+site: cinemamovies
+name: CinemaMovies
+description: "CinemaMovies is a POLISH Private Torrent Tracker for MOVIES / TV / GENERAL"
+language: pl-pl
+type: private
+encoding: ISO-8859-2
+links:
+ - https://cinemamovies.pl/
- caps:
- categorymappings:
- - {id: 3, cat: Movies/BluRay, desc: "Filmy BD25/50_5/9"}
- - {id: 5, cat: Movies/3D, desc: "Filmy 3D"}
- - {id: 6, cat: Movies/DVD, desc: "Filmy DVD5/9"}
- - {id: 8, cat: Movies/HD, desc: "Filmy HD"}
- - {id: 11, cat: Movies/SD, desc: "Filmy SD"}
- - {id: 12, cat: Movies/Other, desc: "Filmy Inne"}
- - {id: 32, cat: Movies/UHD, desc: "Filmy UHD"}
- - {id: 2, cat: TV/Anime, desc: "Anime"}
- - {id: 2, cat: TV/Documentary, desc: "TV Dokumentalne"}
- - {id: 20, cat: TV, desc: "TV Paczki"}
- - {id: 22, cat: TV/Sport, desc: "TV Sport"}
- - {id: 24, cat: TV/HD, desc: "TV HD"}
- - {id: 25, cat: TV/SD, desc: "TV SD"}
- - {id: 1, cat: PC, desc: "Aplikacje"}
- - {id: 15, cat: PC/Games, desc: "Gry"}
- - {id: 16, cat: PC/Phone-Other, desc: "Mobile"}
- - {id: 17, cat: Other, desc: "Inne"}
- - {id: 19, cat: Audio, desc: "Muzyka"}
- - {id: 21, cat: Books, desc: "Book"}
+caps:
+ categorymappings:
+ - {id: 3, cat: Movies/BluRay, desc: "Filmy BD25/50_5/9"}
+ - {id: 5, cat: Movies/3D, desc: "Filmy 3D"}
+ - {id: 6, cat: Movies/DVD, desc: "Filmy DVD5/9"}
+ - {id: 8, cat: Movies/HD, desc: "Filmy HD"}
+ - {id: 11, cat: Movies/SD, desc: "Filmy SD"}
+ - {id: 12, cat: Movies/Other, desc: "Filmy Inne"}
+ - {id: 32, cat: Movies/UHD, desc: "Filmy UHD"}
+ - {id: 2, cat: TV/Anime, desc: "Anime"}
+ - {id: 2, cat: TV/Documentary, desc: "TV Dokumentalne"}
+ - {id: 20, cat: TV, desc: "TV Paczki"}
+ - {id: 22, cat: TV/Sport, desc: "TV Sport"}
+ - {id: 24, cat: TV/HD, desc: "TV HD"}
+ - {id: 25, cat: TV/SD, desc: "TV SD"}
+ - {id: 1, cat: PC, desc: "Aplikacje"}
+ - {id: 15, cat: PC/Games, desc: "Gry"}
+ - {id: 16, cat: PC/Phone-Other, desc: "Mobile"}
+ - {id: 17, cat: Other, desc: "Inne"}
+ - {id: 19, cat: Audio, desc: "Muzyka"}
+ - {id: 21, cat: Books, desc: "Book"}
- modes:
- search: [q, imdbid]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
- music-search: [q]
+ modes:
+ search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid]
+ movie-search: [q, imdbid]
+ music-search: [q]
- settings:
- - name: cookie
- type: text
- label: Cookie
- - name: info
- type: info
- label: How to get the Cookie
- default: "