diff --git a/definitions/v7/leech24.yml b/definitions/v7/leech24.yml index 4c85a5fda..ea3d95a40 100644 --- a/definitions/v7/leech24.yml +++ b/definitions/v7/leech24.yml @@ -19,6 +19,7 @@ caps: - {id: 45, cat: Console/NDS, desc: "Games: DS"} - {id: 16, cat: Console/Other, desc: "Games: Dreamcast"} - {id: 46, cat: Console/Other, desc: "Games: GameCube"} + - {id: 49, cat: Console/NDS, desc: "Games: Nintendo"} - {id: 17, cat: Console/Other, desc: "Games: Other"} - {id: 10, cat: PC/Games, desc: "Games: PC"} - {id: 15, cat: Console/PSP, desc: "Games: PS"} diff --git a/definitions/v7/piratbit.yml b/definitions/v7/piratbit.yml index df765ab34..72e28c504 100644 --- a/definitions/v7/piratbit.yml +++ b/definitions/v7/piratbit.yml @@ -668,7 +668,7 @@ search: df: 1 da: 1 ss: "{{ .Keywords }}" - submit: "Поиск" + submit: Поиск keywordsfilters: - name: diacritics @@ -685,13 +685,13 @@ search: fields: category: - selector: td a.gen + selector: a.gen attribute: href filters: - name: querystring args: f title: - selector: td a.genmed + selector: a.title filters: # normalize to SXXEYY format - name: re_replace @@ -757,26 +757,42 @@ search: - name: append args: "{{ if .Config.addrussiantotitle }} RUS{{ else }}{{ end }}" details: - selector: td a.genmed + selector: a.title attribute: href download: - selector: td a.genmed + selector: a.title attribute: href description: selector: td:first-child span attribute: title size: - selector: td > u + selector: td:nth-child(4) + date_day: + # 23:18 + selector: td:last-child > p:first-child:not(:contains("-")) + optional: true + filters: + - name: append + args: " +00:00" # UTC + - name: dateparse + args: "HH:mm zzz" + date_year: + # 13:44 25-09-23 + selector: td:last-child > p:first-child:contains("-") + optional: true + filters: + - name: append + args: " +00:00" # UTC + - name: dateparse + args: "HH:mm d-MM-yy zzz" date: - # unix - selector: td[title="Добавлен"] > u, td[title="Added"] > u - # Russian and Ukranian and English languages are supported - grabs: - selector: td[title^="Ответов"], td[title^="Відповідей"], td[title^="Replies"] + text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}" seeders: - selector: td.seedmed + selector: td:nth-child(5) leechers: - selector: td.leechmed + selector: td:nth-child(6) + grabs: + selector: td:nth-child(7) downloadvolumefactor: text: 0 uploadvolumefactor: diff --git a/definitions/v7/piratbitl.yml b/definitions/v7/piratbitl.yml index 8ee710c64..d7805d402 100644 --- a/definitions/v7/piratbitl.yml +++ b/definitions/v7/piratbitl.yml @@ -680,7 +680,7 @@ search: da: 1 ss: "{{ .Keywords }}" gold: "{{ if .Config.freeleech }}1{{ else }}{{ end }}" - submit: "Поиск" + submit: Поиск keywordsfilters: - name: diacritics @@ -693,17 +693,17 @@ search: args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "сезон $1 сери $2"] rows: - selector: tr[id^="tor_"]:not(:has(span[title="закрыто"])):not(:has(span[title="неоформлено"])) + selector: tr[id^="tor_"]:has(a[href^="/dl.php?id="]) fields: category: - selector: td a.gen + selector: a.gen attribute: href filters: - name: querystring args: f title: - selector: td a.genmed + selector: a.title filters: # normalize to SXXEYY format - name: re_replace @@ -769,30 +769,46 @@ search: - name: append args: "{{ if .Config.addrussiantotitle }} RUS{{ else }}{{ end }}" details: - selector: td a.genmed + selector: a.title attribute: href download: - selector: td div a.dLink + selector: a[href^="/dl.php?id="] attribute: href description: - selector: td:first-child span + selector: td:first-child b span attribute: title size: - selector: td > u + selector: a[href^="/dl.php?id="] + date_day: + # 23:18 + selector: td:last-child > p:first-child:not(:contains("-")) + optional: true + filters: + - name: append + args: " +00:00" # UTC + - name: dateparse + args: "HH:mm zzz" + date_year: + # 13:44 25-09-23 + selector: td:last-child > p:first-child:contains("-") + optional: true + filters: + - name: append + args: " +00:00" # UTC + - name: dateparse + args: "HH:mm d-MM-yy zzz" date: - # unix - selector: td[title="Добавлен"] > u, td[title="Added"] > u - # Russian and Ukranian and English languages are supported - grabs: - selector: td[title^="Ответов"], td[title^="Відповідей"], td[title^="Replies"] + text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}" seeders: - selector: td.seedmed + selector: td:nth-child(5) leechers: - selector: td.leechmed + selector: td:nth-child(6) + grabs: + selector: td:nth-child(7) downloadvolumefactor: case: - img[src="/images/gold.png"]: 0 - img[src="/images/silver.png"]: 0.5 + img.goldrelise: 0 + img.silverrelise: 0.5 "*": 1 uploadvolumefactor: text: 1 diff --git a/definitions/v7/torrentsir.yml b/definitions/v7/torrentsir.yml index 4eb052cf5..fcba3b314 100644 --- a/definitions/v7/torrentsir.yml +++ b/definitions/v7/torrentsir.yml @@ -7,10 +7,8 @@ type: public encoding: UTF-8 followredirect: true links: - - https://torrentsir119.com/ + - https://torrentsir120.com/ legacylinks: - - http://torrentsir103.com/ - - https://torrentsir103.com/ - http://torrentsir104.com/ - https://torrentsir104.com/ - http://torrentsir105.com/ @@ -40,6 +38,8 @@ legacylinks: - http://torrentsir118.com/ - https://torrentsir118.com/ - http://torrentsir119.com/ + - https://torrentsir119.com/ + - http://torrentsir120.com/ caps: categorymappings: diff --git a/definitions/v7/wdt.yml b/definitions/v7/wdt.yml new file mode 100644 index 000000000..18c04a2a8 --- /dev/null +++ b/definitions/v7/wdt.yml @@ -0,0 +1,182 @@ +--- +id: wdt +name: WDT +description: "Wrestling Desires Torrents (Ultimate Wrestling Torrents) is a Private Torrent Tracker for PROFESSIONAL WRESTLING / MMA" +language: en-US +type: private +encoding: UTF-8 +links: + - http://ultimatewrestlingtorrents.com/ +legacylinks: + - https://ultimatewrestlingtorrents.com/ + +caps: + categorymappings: + # note: when refreshing categories also update $raw + - {id: 14, cat: Audio/Audiobook, desc: "Audiobooks"} + - {id: 16, cat: Audio, desc: "Music Audio"} + - {id: 13, cat: Audio, desc: "Podcasts"} + - {id: 15, cat: Audio, desc: "Wrestling Themes"} + - {id: 29, cat: Books/EBook, desc: "Ebooks"} + - {id: 28, cat: Books/Mags, desc: "Magazines"} + - {id: 30, cat: Books/Other, desc: "Misc"} + - {id: 18, cat: Books/Other, desc: "Wrestling Newsletters"} + - {id: 34, cat: TV/Sport, desc: "Impact Wrestling PPV / One Nig"} + - {id: 9, cat: TV/Sport, desc: "Weekly"} + - {id: 33, cat: TV/Sport, desc: "Xplosion"} + - {id: 32, cat: TV/Sport, desc: "DVDRips"} + - {id: 31, cat: TV/Sport, desc: "DVDs"} + - {id: 20, cat: TV/Sport, desc: "Packs"} + - {id: 19, cat: PC, desc: "Computer Programs"} + - {id: 35, cat: PC/Games, desc: "Games"} + - {id: 36, cat: PC/Mobile-Other, desc: "Mobile Apps"} + - {id: 37, cat: TV/Sport, desc: "Boxing"} + - {id: 38, cat: TV/Sport, desc: "Classics"} + - {id: 12, cat: TV/Documentary, desc: "Documentary"} + - {id: 40, cat: TV, desc: "Indy Other Promotions"} + - {id: 44, cat: TV, desc: "Other MMA"} + - {id: 11, cat: TV, desc: "Other Videos"} + - {id: 42, cat: TV, desc: "Puro NJPW"} + - {id: 43, cat: TV, desc: "Self Defense Tutorials"} + - {id: 21, cat: TV, desc: "Shoots"} + - {id: 22, cat: TV, desc: "TV Episodes"} + - {id: 41, cat: TV/Sport, desc: "UFC"} + - {id: 10, cat: Movies, desc: "Wrestlers Movies"} + - {id: 26, cat: TV/Sport, desc: "Network"} + - {id: 24, cat: TV/Sport, desc: "NXT"} + - {id: 27, cat: TV/Sport, desc: "Other WWE Shows"} + - {id: 17, cat: TV/Sport, desc: "Raw"} + - {id: 23, cat: TV/Sport, desc: "Smackdown"} + - {id: 25, cat: TV/Sport, desc: "WWE PPV"} + + modes: + search: [q] + tv-search: [q, season, ep] + movie-search: [q] + music-search: [q] + book-search: [q] + +settings: + - name: username + type: text + label: Username + - name: password + type: password + label: Password + - name: freeleech + type: checkbox + label: Search freeleech only + 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 + - 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: login.php + method: form + form: form[action="takelogin.php"] + inputs: + username: "{{ .Config.username }}" + password: "{{ .Config.password }}" + use_ssl: "" + perm_ssl: "" + returnto: / + error: + - selector: table.main:contains("Login failed!") + message: + selector: table tr td.colhead2 + test: + path: / + selector: a[href*="logout.php?hash_please="] + +search: + paths: + # https://ultimatewrestlingtorrents.com/browse.php?search=&searchin=title&incldead=0&only_free=1 + # note: site uses the catsX[]=nn method which cardigann does not support. without the cats the site returns nothing. so we hardcode all cats. + # https://ultimatewrestlingtorrents.com/browse.php?cats3[]=14&cats3[]=16&cats3[]=13&cats3[]=15&cats5[]=29&cats5[]=28&cats5[]=30&cats5[]=18&cats1[]=34&cats1[]=9&cats1[]=33&cats6[]=32&cats6[]=31&cats6[]=20&cats7[]=19&cats7[]=35&cats7[]=36&cats2[]=37&cats2[]=38&cats2[]=12&cats2[]=40&cats2[]=44&cats2[]=11&cats2[]=42&cats2[]=43&cats2[]=21&cats2[]=22&cats2[]=41&cats2[]=10&cats4[]=26&cats4[]=24&cats4[]=27&cats4[]=17&cats4[]=23&cats4[]=25&search=&searchin=title&incldead=1 + - path: browse.php + inputs: + $raw: "cats3[]=14&cats3[]=16&cats3[]=13&cats3[]=15&cats5[]=29&cats5[]=28&cats5[]=30&cats5[]=18&cats1[]=34&cats1[]=9&cats1[]=33&cats6[]=32&cats6[]=31&cats6[]=20&cats7[]=19&cats7[]=35&cats7[]=36&cats2[]=37&cats2[]=38&cats2[]=12&cats2[]=40&cats2[]=44&cats2[]=11&cats2[]=42&cats2[]=43&cats2[]=21&cats2[]=22&cats2[]=41&cats2[]=10&cats4[]=26&cats4[]=24&cats4[]=27&cats4[]=17&cats4[]=23&cats4[]=25" + search: "{{ .Keywords }}" + # title, descr, genre, all + searchin: title + # 0 active, 1 incldead, 2 onlydead + incldead: 1 + only_free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}" + sort: "{{ .Config.sort }}" + type: "{{ .Config.type }}" + + keywordsfilters: + - name: re_replace + args: ["(\\w+)", "+$1"] # prepend + to each word + + rows: + selector: table.table-bordered tr:has(a[href^="download.php?torrent="]) + filters: + - name: andmatch + + fields: + category: + selector: a[href^="browse.php?cat="] + attribute: href + filters: + - name: querystring + args: cat + title: + selector: a[href^="details.php?id="] + attribute: onmouseover + filters: + - name: regexp + args: "Tip\\('(.+?)" + download: + selector: a[href^="download.php?torrent="] + attribute: href + details: + selector: a[href^="details.php?id="] + attribute: href + files: + selector: td:nth-child(5) + date: + selector: td:nth-child(7) + # auto adjusted by site account profile + filters: + - name: dateparse + args: "MMM d yyyy hh:mm tt" + size: + selector: td:nth-child(8) + grabs: + selector: td:nth-child(9) + seeders: + selector: td:nth-child(10) + leechers: + selector: td:nth-child(11) + downloadvolumefactor: + case: + "a.info:contains(\"[FREE]\")": 0 + "a.info:contains(\"[SILVER]\")": 0.5 + "*": 1 + uploadvolumefactor: + text: 1 + minimumratio: + text: 1.0 + minimumseedtime: + # 12 hours (as seconds = 12 x 60 x 60) + text: 43200 +# U-232 V5