From 0d12bd6191136663bfa90c031f70ace9762187e6 Mon Sep 17 00:00:00 2001 From: Servarr Date: Sun, 8 Dec 2024 21:23:48 +0200 Subject: [PATCH] jackett indexers as of ab120c2f9f4d3ed913e1b8896b21bcba5993035d [2024-12-08T19:23:48Z] --- definitions/v10/hdonly.yml | 2 +- definitions/v10/kickasstorrents-to.yml | 12 ++ definitions/v10/lastfiles.yml | 178 +++++++++++++------------ definitions/v10/rudub.yml | 4 +- 4 files changed, 105 insertions(+), 91 deletions(-) diff --git a/definitions/v10/hdonly.yml b/definitions/v10/hdonly.yml index 1f4ee0e76..c873534e3 100644 --- a/definitions/v10/hdonly.yml +++ b/definitions/v10/hdonly.yml @@ -254,7 +254,7 @@ search: - name: append args: ".{{ .Result.year }}.{{ .Result._episode_info }}.{{ .Result._format }}.{{ .Result._encoding }}.{{ .Result._media }}{{ if eq .Result._hdr \"True\" }}.HDR{{ else }}{{ end }}.{{ if eq .Result._hdr10plus \"True\" }}.HDR10+{{ else }}{{ end }}.{{ if eq .Result._dovi \"True\" }}.DoVi{{ else }}{{ end }}" - name: append - args: "{{ if or (eq .Result._vf2 \"True\") (eq .Result._vff \"True\") (eq .Result._vfq \"True\") (eq .Result._vfi \"True\") (eq .Result._vf \"True\") }}.MULTI{{ else }}{{ end }}" + args: "{{ if eq .Result._vf2 \"True\" }}.MULTI{{ else }}{{ end }}{{ if or (eq .Result._vff \"True\") (eq .Result._vfq \"True\") }}.MULTI{{ else }}{{ end }}{{ if or (eq .Result._vfi \"True\") (eq .Result._vf \"True\") }}.MULTI{{ else }}{{ end }}" - name: re_replace args: ["(\\.MULTI)\\1", ".MULTI"] - name: append diff --git a/definitions/v10/kickasstorrents-to.yml b/definitions/v10/kickasstorrents-to.yml index 55dc34cd8..faa65c39b 100644 --- a/definitions/v10/kickasstorrents-to.yml +++ b/definitions/v10/kickasstorrents-to.yml @@ -41,6 +41,13 @@ caps: book-search: [q] settings: + - name: useragent + type: text + label: User-Agent + - name: info_useragent + type: info + label: How to get the User-Agent + default: "
  1. Access this tracker with your browser
  2. Open the DevTools panel by pressing F12
  3. Select the Network tab
  4. Click on the Doc button (Chrome Browser) or HTML button (FireFox)
  5. Refresh the page by pressing F5
  6. Click on the first row entry
  7. Select the Headers tab on the Right panel
  8. Find 'user-agent:' in the Request Headers section
  9. Select and Copy the whole user-agent string (everything after 'user-agent: ') and Paste here.
" - name: sort type: select label: Sort requested from site @@ -63,6 +70,9 @@ download: attribute: href search: + headers: + User-Agent: ["{{ .Config.useragent }}"] + paths: # 20 rows per page - path: "{{ if .Keywords }}usearch/{{ .Keywords }}/{{ else }}new/{{ end }}?sortby={{ .Config.sort }}&sort={{ .Config.type }}" @@ -73,6 +83,8 @@ search: error: - selector: h1:contains("403 Forbidden") + message: + text: "Site returned 403 Forbidden. Try updating your indexer config with a new/different user-agent." rows: selector: table.data tr.odd:has(a[class="cellMainLink"]), table.data tr.even:has(a[class="cellMainLink"]) diff --git a/definitions/v10/lastfiles.yml b/definitions/v10/lastfiles.yml index 14cae056b..d75e4166e 100644 --- a/definitions/v10/lastfiles.yml +++ b/definitions/v10/lastfiles.yml @@ -1,17 +1,17 @@ --- id: lastfiles name: LastFiles -description: "LastFiles (LF) is a ROMANIAN Private Torrent Tracker for 0DAY / GENERAL" +description: "LastFiles (LF) is a ROMANIAN Private Torrent Tracker for MOVIES / TV / GENERAL" language: ro-RO type: private encoding: UTF-8 followredirect: true requestDelay: 2 links: + - https://last-torrents.org/ - https://www.last-torrents.org/ legacylinks: - http://last-torrents.org/ - - https://last-torrents.org/ - https://www.lastfiles.ro/ - http://www.lastfiles.ro/ - http://www.last-torrents.org/ @@ -38,12 +38,13 @@ caps: - {id: 24, cat: Movies/SD, desc: "Movies: XVID", default: true} - {id: 25, cat: Movies/SD, desc: "Movies: XVID-Ro", default: true} - {id: 26, cat: PC/0day, desc: "Software", default: true} - - {id: 27, cat: XXX, desc: "Movies: XXX", default: false} + - {id: 27, cat: XXX/x264, desc: "Movies: XXX", default: false} - {id: 28, cat: Audio, desc: "Music", default: true} - {id: 30, cat: PC/Games, desc: "Games: PC-ISO", default: true} - {id: 31, cat: Movies/UHD, desc: "Movies: 4K", default: true} - - {id: 32, cat: Movies/UHD, desc: "Movies: 4K-Ro", default: true} + - {id: 32, cat: Movies/UHD, desc: "Movies: 4KRo", default: true} - {id: 33, cat: PC/Games, desc: "Games: Packs", default: true} + - {id: 34, cat: XXX/Pack, desc: "XXX Pack", default: false} - {id: 42, cat: TV/Sport, desc: "Sport", default: true} - {id: 43, cat: Books, desc: "Documents", default: true} - {id: 44, cat: Other, desc: "Images", default: true} @@ -53,10 +54,7 @@ caps: - {id: 55, cat: Movies/WEB-DL, desc: "Movies: WEB-DL Ro", default: true} - {id: 56, cat: TV/Documentary, desc: "Documentary", default: true} - {id: 57, cat: TV/Documentary, desc: "Documentary-Ro", default: true} - - {id: 58, cat: Movies/SD, desc: "Movies: Cam", default: true} - - {id: 59, cat: Movies/SD, desc: "Movies: Cam-Ro", default: true} - - {id: 61, cat: Movies/3D, desc: "Movies: 3D", default: true} - - {id: 62, cat: Movies/3D, desc: "Movies: 3D-Ro", default: true} + - {id: 60, cat: XXX/ImageSet, desc: "ImagesXXX", default: false} - {id: 81, cat: Movies/HD, desc: "Movies: x265-Ro", default: true} - {id: 82, cat: Movies/HD, desc: "Movies: x265", default: true} @@ -84,81 +82,99 @@ settings: type: info label: Account Inactivity default: "Accounts inactive for more than 42 days are automatically deleted." -# - name: sort -# type: select -# label: Sort requested from site -# default: 3 -# options: -# 3: 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 + path: login + method: form + form: form[action$="/login"] inputs: - username: "{{ .Config.username }}" + name: "{{ .Config.username }}" password: "{{ .Config.password }}" - submitme: Login! - use_ssl: 1 - perm_ssl: 1 + remember: on + selectorinputs: + _token: + selector: input[name="_token"] + attribute: value error: - - selector: td.embedded:contains("Login failed") + - selector: div.alert-danger:contains("Invalid credentials") test: - path: index.php - selector: a[href*="/logout.php?hash_please="] + path: / + selector: a[href$="/logout"] search: paths: - # https://www.last-torrents.org/browse.php?search=the+nun+ii&searchin=title&type=0&cat=+ - # cannot support imdbid or tmdbid searches while using path category filters - - path: browse.php - categories: [1, 2, 5, 6, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 30, 31, 32, 33, 42, 43, 44, 49, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 81, 82] - - path: browseadult.php - categories: [27] + # https://www.last-torrents.org/torrents?keyword=tt8337290&category=32&genre=&torrent_status=free + - path: torrents + categories: [1, 2, 5, 6, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 30, 31, 32, 33, 42, 43, 44, 49, 51, 54, 55, 56, 57, 81, 82] + - path: torrents/adult + categories: [27, 34, 60] inputs: - $raw: "{{ range .Categories }}c{{.}}=1&{{end}}" - search: "{{ if .Query.Genre }}{{ .Query.Genre }} {{ else }}{{ end }}{{ .Keywords }}" - # title, genre, all - searchin: "{{ if .Query.Genre }}all{{ else }}title{{ end }}" - # 0 active, 1 incldead, 2 onlydead, 3 free, 4 silver, 5 seedbox - type: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}" -# sort and type can only be used in a non-search query due to conflicting parameters -# sort: "{{ .Config.sort }}" -# type: "{{ .Config.type }}" + # does not support multi categories, leaving out category keyword defaults to all + keyword: "{{ .Keywords }}" + # active, dead, free, double, seedbox + torrent_status: "{{ if .Config.freeleech }}free{{ else }}active{{ end }}" + # has sort for size and seeders but not for title or date rows: - selector: div.py-3 - filters: - - name: andmatch + selector: table.table-responsive > tbody > tr fields: category: - selector: a[href*="cat="] - attribute: href - filters: - - name: querystring - args: cat + selector: img[src^="images/categories/"] + attribute: src + case: + # not all categories are available at the moment, so some are deduced and unconfirmed + img[src$="/anime.png"]: 1 + img[src$="/anime-ro.png"]: 2 + img[src$="/bluray.png"]: 5 + img[src$="/bluray-ro.png"]: 6 + img[src$="/dvd.png"]: 9 + img[src$="/dvd-ro.png"]: 10 + img[src$="/hd.png"]: 11 + img[src$="/hd-ro.png"]: 12 + img[src$="/hdtve.png"]: 13 + img[src$="/hdtve-ro.png"]: 14 + img[src$="/oldies.png"]: 16 + img[src$="/oldies-ro.png"]: 17 + img[src$="/pack.png"]: 18 + img[src$="/pack-ro.png"]: 19 + img[src$="/tvepisode.png"]: 20 + img[src$="/tvepisode-ro.png"]: 21 + img[src$="/rocontent.png"]: 22 + img[src$="/xvid.png"]: 24 + img[src$="/xvid-ro.png"]: 25 + img[src$="/soft.png"]: 26 + img[src$="/xxx.png"]: 27 + img[src$="/music.png"]: 28 + img[src$="/pciso.png"]: 30 + img[src$="/4k.png"]: 31 + img[src$="/4kRO.png"]: 32 + img[src$="/packs.png"]: 33 + img[src$="/xxxpacks.png"]: 34 + img[src$="/sport.png"]: 42 + img[src$="/documents.png"]: 43 + img[src$="/images.png"]: 44 + img[src$="/misc.png"]: 49 + img[src$="/android.png"]: 51 + img[src$="/web-DL.png"]: 54 + img[src$="/web-DLRO.png"]: 55 + img[src$="/doc.png"]: 56 + img[src$="/doc-ro.png"]: 57 + img[src$="/imagesxxx.png"]: 60 + img[src$="/x265ro.png"]: 81 + img[src$="/x265.png"]: 82 title: - selector: a[href^="t"] + selector: a.torrent-name details: - selector: a[href^="t"] + selector: a.torrent-name attribute: href poster: - selector: a[href^="t"] - attribute: title + selector: a.torrent-name + attribute: data-bs-title filters: - name: regexp - args: "src=(.+?) " + args: "src='(.+?)'" genre: selector: i:has(a[href$="searchin=genre"]), font[size] filters: @@ -171,46 +187,32 @@ search: description: text: "{{ .Result.genre }}" download: - selector: a[href^="download.php"] + selector: a[href*="/download/"] attribute: href - date_day: - selector: div.col-sm-4:nth-of-type(3):contains("day") - # auto adjusted by site account profile - optional: true - filters: - - name: fuzzytime - date_year: - selector: div.col-sm-4:nth-of-type(3):contains(":"):not(:contains("day")) - # auto adjusted by site account profile - optional: true + date: + selector: td:nth-of-type(4) filters: - name: dateparse - args: "MMM d yyyy, hh:mm tt" - date: - text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}" + args: "dd-MMM-yyyy" size: - selector: div.col-sm-4:nth-of-type(4) + selector: td:nth-of-type(5) grabs: - selector: div.col-sm-3:contains("Completed") b + selector: td:nth-of-type(6) seeders: - selector: div.col-sm-3:contains("Seeders") b + selector: td:nth-of-type(7) leechers: - selector: div.col-sm-2:contains("Leechers") b + selector: td:nth-of-type(8) downloadvolumefactor: case: - img[src$="half2.png"]: 0.5 - a#free-btn: 0 + div.free-btn: 0 "*": 1 uploadvolumefactor: case: - a#double-btn: 2 + div.double-btn: 2 "*": 1 minimumratio: text: 1.0 minimumseedtime: - # freeleech 2 days (as seconds = 2 x 24 x 60 x 60) - # notfree 1.5 days (as seconds = 1.5 x 24 x 60 x 60) - case: - a#free-btn: 172800 - "*": 129600 -# U-232 V5 + # 3 days (as seconds = 3 x 24 x 60 x 60) + text: 259200 +# Last Files V1 diff --git a/definitions/v10/rudub.yml b/definitions/v10/rudub.yml index 179132abf..dae6af948 100644 --- a/definitions/v10/rudub.yml +++ b/definitions/v10/rudub.yml @@ -9,9 +9,8 @@ type: semi-private encoding: windows-1251 followredirect: true links: - - https://08december.rudub.online/ + - https://09december.rudub.online/ legacylinks: - - https://08november.rudub.online/ - https://09november.rudub.online/ - https://10november.rudub.online/ - https://11november.rudub.online/ @@ -41,6 +40,7 @@ legacylinks: - https://05december.rudub.online/ - https://06december.rudub.online/ - https://07december.rudub.online/ + - https://08december.rudub.online/ caps: categorymappings: