From ea330c65e019b9b49db8a3d15b26647174bbee77 Mon Sep 17 00:00:00 2001 From: ineednewpajamas <73252768+ineednewpajamas@users.noreply.github.com> Date: Thu, 8 Jan 2026 15:17:16 -0600 Subject: [PATCH] jackett indexers as of bc8300ec5ae99462fc16fb039bab101aadaa88a7 [2026-01-08T21:17:16Z] Added Indexers: definitions/v11/dubhe.yml definitions/v11/jptv4us-api.yml definitions/v11/march.yml Removed Indexers: definitions/v11/exttorrents.yml Modified Indexers: definitions/v11/mactorrentsdownload.yml definitions/v11/tmghub.yml definitions/v11/tocashare.yml --- definitions/v11/dubhe.yml | 187 ++++++++++++++++++++++ definitions/v11/exttorrents.yml | 179 --------------------- definitions/v11/jptv4us-api.yml | 197 ++++++++++++++++++++++++ definitions/v11/mactorrentsdownload.yml | 4 +- definitions/v11/march.yml | 176 +++++++++++++++++++++ definitions/v11/tmghub.yml | 39 +++-- definitions/v11/tocashare.yml | 10 +- 7 files changed, 595 insertions(+), 197 deletions(-) create mode 100644 definitions/v11/dubhe.yml delete mode 100644 definitions/v11/exttorrents.yml create mode 100644 definitions/v11/jptv4us-api.yml create mode 100644 definitions/v11/march.yml diff --git a/definitions/v11/dubhe.yml b/definitions/v11/dubhe.yml new file mode 100644 index 000000000..fc956b1a3 --- /dev/null +++ b/definitions/v11/dubhe.yml @@ -0,0 +1,187 @@ +--- +id: dubhe +name: dubhe (天枢) +description: "dubhe (天枢) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL" +language: zh-CN +type: private +encoding: UTF-8 +links: + - https://dubhe.site/ + +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: "动漫/Anime"} + - {id: 406, cat: Audio/Video, desc: "音乐视频/Music Videos"} + - {id: 407, cat: TV/Sport, desc: "体育运动/Sports"} + - {id: 408, cat: Audio, desc: "高品质音频/HQ Audio"} + - {id: 409, cat: Other/Misc, desc: "其他/Other"} + - {id: 410, cat: Books, desc: "书籍/Books"} + - {id: 411, cat: Other, desc: "照片/Photo"} + + modes: + search: [q] + tv-search: [q, season, ep, imdbid, doubanid] + movie-search: [q, imdbid, doubanid] + music-search: [q] + book-search: [q] + +settings: + - name: cookie + type: text + label: Cookie + - name: info_cookie + type: info_cookie + - 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_tpp + type: info + label: Results Per Page + default: For best results, change the Torrents per page: setting to 100 on your account profile. + - name: info_activity + type: info + label: Account Inactivity + default: "Account retention rules:
  1. Veteran User and above will be retained forever
  2. Elite User and above will not have their account deleted after parking (in the control panel)
  3. Users with a parked account will be deleted if they do not log in for 400 consecutive days
  4. Users with a non-parked account will be deleted if they do not log in for 150 consecutive days
  5. Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.
" + +login: + # using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php + 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 }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ 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: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}" + # 0 title, 1 descr, 3 uploader, 4 imdburl + search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}" + # 0 AND, 2 exact + search_mode: 0 + sort: "{{ .Config.sort }}" + type: "{{ .Config.type }}" + notnewword: 1 + + rows: + selector: table.torrents > tbody > tr:has(a[href^="download.php?id="]) + + fields: + category: + selector: a[href^="?cat="] + attribute: href + filters: + - name: querystring + args: cat + title_default: + selector: a[href^="details.php?id="] + title: + selector: a[title][href^="details.php?id="] + attribute: title + optional: true + default: "{{ .Result.title_default }}" + details: + selector: a[href^="details.php?id="] + attribute: href + download: + selector: a[href^="download.php?id="] + attribute: href + poster: + selector: img[data-src] + attribute: data-src + imdbid: + # site currently only has a badge and rating, the id is not present. just in case a future update. + selector: a[href*="imdb.com/title/tt"] + attribute: href + doubanid: + # site currently only has a badge and rating, the id is not present. just in case a future update. + selector: a[href*="movie.douban.com/subject/"] + attribute: href + date_elapsed: + # time type: time elapsed (default) + selector: td.rowfollow:nth-child(4) > span[title] + attribute: title + optional: true + filters: + - name: append + args: " +08:00" # CST + - name: dateparse + args: "yyyy-MM-dd HH:mm:ss zzz" + date_added: + # time added + selector: td.rowfollow:nth-child(4):not(:has(span)) + optional: true + filters: + - name: append + args: " +08:00" # CST + - name: dateparse + args: "yyyy-MM-ddHH:mm:ss zzz" + date: + text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}" + size: + selector: td.rowfollow:nth-child(5) + optional: true + default: 512MB + seeders: + selector: td.rowfollow:nth-child(6) + optional: true + default: 0 + leechers: + selector: td.rowfollow:nth-child(7) + optional: true + default: 0 + grabs: + selector: td.rowfollow:nth-child(8) + optional: true + default: 0 + 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 + minimumratio: + text: 2.0 + minimumseedtime: + # 1 day (as seconds = 24 x 60 x 60) + text: 86400 + description: + selector: td.rowfollow:nth-child(2) + remove: a, b, font, img, span +# NexusPHP v1.9.11 2025-11-02 diff --git a/definitions/v11/exttorrents.yml b/definitions/v11/exttorrents.yml deleted file mode 100644 index 8aff9770d..000000000 --- a/definitions/v11/exttorrents.yml +++ /dev/null @@ -1,179 +0,0 @@ ---- -id: exttorrents -name: EXT Torrents -description: "EXT Torrents is a Public torrent site for MOVIES / TV / GENERAL" -language: en-US -type: public -encoding: UTF-8 -requestDelay: 5 -links: - - https://ext.to/ - - https://search.extto.com/ - - https://extranet.torrentbay.st/ -legacylinks: - - https://ext.unblockninja.com/ - - https://t.extto.com/ - - https://torrent.extto.com/ - - https://site.extto.com/ - - https://ext.torrentbay.to/ - - https://extranet.torrentbay.to/ - - https://extranet.torrentbay.net/ - -caps: - categorymappings: - - {id: "/anime/", cat: TV/Anime, desc: Anime} - - {id: "/anime//anime/audio-lossy/", cat: Audio, desc: Anime Audio Lossy} - - {id: "/anime//anime/audio-lossless/", cat: Audio/Lossless, desc: Anime Audio Lossless} - - {id: "/anime//anime/english-translated/", cat: TV/Anime, desc: Anime English Translated} - - {id: "/anime//anime/live-action-english/", cat: TV/Anime, desc: Anime Live Action English} - - {id: "/anime//anime/live-action-raw/", cat: TV/Anime, desc: Anime Live Action Raw} - - {id: "/anime//anime/raw/", cat: TV/Anime, desc: Anime Raw} - - {id: "/anime//anime/subs/", cat: TV/Anime, desc: Anime Subs} - - {id: "/anime//raw/", cat: TV/Anime, desc: Anime Raw} - - {id: "/applications/", cat: PC, desc: Apps} - - {id: "/applications//applications/android/", cat: PC/Mobile-Android, desc: Apps Android} - - {id: "/applications//applications/ios/", cat: PC/Mobile-iOS, desc: Apps iOS} - - {id: "/applications//applications/linux/", cat: PC, desc: Apps Linux} - - {id: "/applications//applications/mac/", cat: PC/Mac, desc: Apps Mac} - - {id: "/applications//applications/other-applications/", cat: PC/Mobile-Other, desc: Apps Other} - - {id: "/applications//applications/windows/", cat: PC/0day, desc: Apps Windows} - - {id: "/books/", cat: Books, desc: Books} - - {id: "/books//books/audio-books/", cat: Audio/Audiobook, desc: Books Audiobooks} - - {id: "/books//books/comics/", cat: Books/Comics, desc: Books Comics} - - {id: "/books//books/ebooks/", cat: Books/EBook, desc: Books Ebooks} - - {id: "/books//books/manga-english/", cat: Books/Comics, desc: Books Manga English} - - {id: "/books//books/manga-raw/", cat: Books/Comics, desc: Books Manga Raw} - - {id: "/games/", cat: PC/Games, desc: Games} - - {id: "/games//games/mac/", cat: PC/Mac, desc: Games Mac} - - {id: "/games//games/nds/", cat: Console/NDS, desc: Games NDS} - - {id: "/games//games/other-games/", cat: Console/Other, desc: Games Other} - - {id: "/games//games/pc-games/", cat: PC/Games, desc: Games PC} - - {id: "/games//games/ps3/", cat: Console/PS3, desc: Games PS3} - - {id: "/games//games/ps4/", cat: Console/PS4, desc: Games PS4} - - {id: "/games//games/psp/", cat: Console/PSP, desc: Games PSP} - - {id: "/games//games/switch/", cat: Console/Other, desc: Games Switch} - - {id: "/games//games/wii/", cat: Console/Wii, desc: Games Wii} - - {id: "/games//games/xbox360/", cat: Console/XBox 360, desc: Games Xbox360} - - {id: "/movies/", cat: Movies, desc: Movies} - - {id: "/movies//movies/3d-movies/", cat: Movies/3D, desc: Movies 3D} - - {id: "/movies//movies/bollywood/", cat: Movies, desc: Movies Bollywood} - - {id: "/movies//movies/documentary/", cat: Movies, desc: Movies Documentary} - - {id: "/movies//movies/dubbed-movies/", cat: Movies, desc: Movies Dubbed} - - {id: "/movies//movies/dvd/", cat: Movies/DVD, desc: Movies DVD} - - {id: "/movies//movies/highres-movies/", cat: Movies/HD, desc: Movies Highres} - - {id: "/movies//movies/movie-clips/", cat: Movies/Other, desc: Movies Movie clips} - - {id: "/movies//movies/mp4/", cat: Movies, desc: Movies MP4} - - {id: "/movies//movies/music-videos/", cat: Audio/Video, desc: Movies Music videos} - - {id: "/movies//movies/other-movies/", cat: Movies, desc: Movies Other Movies} - - {id: "/movies//movies/ultrahd/", cat: Movies/UHD, desc: Movies UltraHD} - - {id: "/music/", cat: Audio, desc: Music} - - {id: "/music//music/aac/", cat: Audio, desc: Music AAC} - - {id: "/music//music/lossless/", cat: Audio/Lossless, desc: Music Lossless} - - {id: "/music//music/mp3/", cat: Audio/MP3, desc: Music MP3} - - {id: "/music//music/other-music/", cat: Audio/Other, desc: Music Other} - - {id: "/music//music/radio-shows/", cat: Audio, desc: Music Radio Shows} - - {id: "/other/", cat: Other, desc: Other} - - {id: "/tv/", cat: TV, desc: TV} - - {id: "/tv//tv/episodes-hd/", cat: TV/HD, desc: TV Episodes HD} - - {id: "/tv//tv/episodes-sd/", cat: TV/SD, desc: TV Episodes SD} - - {id: "/tv//tv/episodes-4k-uhd/", cat: TV/UHD, desc: TV Episodes 4K} - - {id: "/tv//tv/big-season-packs/", cat: TV, desc: TV Big Season Packs} - - {id: "/tv//tv/season-packs/", cat: TV, desc: TV Season Packs} - - {id: "/tv//tv/sports/", cat: TV/Sport, desc: TV Sports} - - {id: "/video/", cat: XXX, desc: XXX Video} - - {id: "/xxx/", cat: XXX, desc: XXX} - - {id: "/xxx//xxx/games/", cat: XXX/Other, desc: XXX Games} - - {id: "/xxx//xxx/hentai/", cat: XXX/Other, desc: XXX Hentai} - - {id: "/xxx//xxx/magazines/", cat: XXX/Other, desc: XXX Magazines} - - {id: "/xxx//xxx/pictures/", cat: XXX/ImageSet, desc: XXX Pictures} - - {id: "/xxx//xxx/video/", cat: XXX, desc: XXX Video} - - modes: - search: [q] - tv-search: [q, season, ep, imdbid] - movie-search: [q, imdbid] - music-search: [q] - book-search: [q] - -settings: - - name: sort - type: select - label: Sort requested from site - default: age - options: - age: created - seed: seeders - size: size - - name: type - type: select - label: Order requested from site - default: desc - options: - desc: desc - asc: asc - - name: info_flaresolverr - type: info_flaresolverr - -search: - paths: - # https://ext.to/browse/?sort=age&order=desc&age=4&user_sort=1&with_adult=1 - # https://ext.to/browse/?sort=age&order=desc&user_sort=1&q=wipeout&with_adult=1 - # https://ext.to/browse/?imdb_id=tt2693776 - - path: browse/ - - path: browse/ - inputs: - page: 2 - followredirect: true - inputs: - q: "{{ .Keywords }}" - sort: "{{ .Config.sort }}" - order: "{{ .Config.type }}" - # 0=last 24 hours, 1=last 3 days, 2=last week, 3=last 2 weeks, 4=last month - age: "{{ if or .Keywords .Query.IMDBID }}{{ else }}0{{ end }}" - # familysafe 0=enabled, 1=disabled - with_adult: "{{ if .Query.IMDBID }}{{ else }}1{{ end }}" - imdb_id: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}" - user_sort: 1 - - rows: - selector: table.table-striped > tbody > tr - - fields: - category_part1: - selector: td:nth-child(1) div div a:nth-child(2) - attribute: href - optional: true - category_part2: - selector: td:nth-child(1) div div a:nth-child(3) - attribute: href - optional: true - category_combined: - text: "{{ .Result.category_part1 }}{{ .Result.category_part2 }}" - optional: true - category: - text: "{{ if .Result.category_combined }}{{ .Result.category_combined }}{{ else }}/other/{{ end }}" - title: - selector: td:nth-child(1) div a - details: - selector: td:nth-child(1) div a - attribute: href - infohash: - selector: a.search-magnet-btn - attribute: data-hash - size: - selector: td:nth-child(2) - files: - selector: td:nth-child(3) - optional: true - default: 1 - date: - selector: td:nth-child(4) - seeders: - selector: td:nth-child(5) - leechers: - selector: td:nth-child(6) - downloadvolumefactor: - text: 0 - uploadvolumefactor: - text: 1 -# engine n/a diff --git a/definitions/v11/jptv4us-api.yml b/definitions/v11/jptv4us-api.yml new file mode 100644 index 000000000..f68470417 --- /dev/null +++ b/definitions/v11/jptv4us-api.yml @@ -0,0 +1,197 @@ +--- +id: jptv4us-api +name: JPTV4us (API) +description: "JPTV4us is a JAPANESE Private Torrent Tracker for MOVIES / TV / MUSIC / GENERAL" +language: en-US +type: private +encoding: UTF-8 +links: + - https://jptv4.us/ + +caps: + categorymappings: + - {id: 1, cat: TV/Anime, desc: "Anime Movie"} + - {id: 2, cat: TV/Anime, desc: "Anime Series"} + - {id: 3, cat: TV/Documentary, desc: "Documentary"} + - {id: 4, cat: TV, desc: "Drama"} + - {id: 5, cat: TV/Other, desc: "Informational"} + - {id: 6, cat: Movies, desc: "Movie"} + - {id: 7, cat: Audio/Video, desc: "Music"} + - {id: 8, cat: TV/Other, desc: "News"} + - {id: 9, cat: TV/Other, desc: "Variety"} + - {id: 10, cat: Other, desc: "Other"} + - {id: 11, cat: Audio, desc: "Audio Only"} + + modes: + search: [q] + tv-search: [q, season, ep, imdbid, tvdbid, tmdbid] + movie-search: [q, imdbid, tmdbid] + music-search: [q] + book-search: [q] + +settings: + - name: apikey + type: text + label: APIKey + - name: info_key + type: info + label: About your API key + default: "Find or Generate a new API Token by accessing your JPTV4us account My Settings page and clicking on the API Key tab." + - name: freeleech + type: checkbox + label: Search freeleech only + default: false + - name: single_file_release_use_filename + type: checkbox + label: Use filename as title for single file releases + default: true + - 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: /api/torrents + method: get + error: + - selector: a[href*="/login"] + message: + text: "The API key was not accepted by {{ .Config.sitelink }}." + - selector: :root:contains("Account is Banned") + +search: + paths: + # https://hdinnovations.github.io/UNIT3D/torrent_api.html + # https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657 + - path: api/torrents/filter + response: + type: json + + headers: + Authorization: ["Bearer {{ .Config.apikey }}"] + + inputs: + # if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6 + $raw: "{{ range .Categories }}&categories[]={{.}}{{end}}" + name: "{{ .Keywords }}" + seasonNumber: "{{ .Query.Season }}" + episodeNumber: "{{ .Query.Ep }}" + imdbId: "{{ .Query.IMDBIDShort }}" + tmdbId: "{{ .Query.TMDBID }}" + tvdbId: "{{ .Query.TVDBID }}" + "free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}" + sortField: "{{ .Config.sort }}" + sortDirection: "{{ .Config.type }}" + perPage: 100 + + keywordsfilters: + - name: re_replace + args: ["\\.", " "] + + rows: + selector: data + attribute: attributes + + fields: + category: + selector: category_id + title_optional: + selector: name + title_filename: + selector: "files[0].name" + optional: true + files: + selector: num_file + title: + text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}" + details: + selector: details_link + download: + selector: download_link + poster: + selector: meta.poster + filters: + - name: replace + args: ["https://via.placeholder.com/90x135", ""] + imdbid: + selector: imdb_id + tmdbid: + selector: tmdb_id + tvdbid: + selector: tvdb_id + genre: + selector: meta.genres + filters: + - name: re_replace + args: ["(?i)(Science Fiction)", "Science_Fiction"] + - name: re_replace + args: ["(?i)(TV Movie)", "TV_Movie"] + - name: replace + args: [" & ", "_&_"] + _internal: + selector: internal + case: + False: "{{ .False }}" + True: "{{ .True }}" + description: + text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}" + seeders: + selector: seeders + leechers: + selector: leechers + grabs: + selector: times_completed + date: + # "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50 + selector: created_at + filters: + - name: append + args: " +00:00" # GMT + - name: dateparse + args: "MM/dd/yyyy HH:mm:ss zzz" + size: + selector: size + _featured: + selector: featured + case: + False: "{{ .False }}" + True: "{{ .True }}" + downloadvolumefactor_freeleech: + # api returns 0%, 25%, 50%, 75%, 100% + selector: freeleech + case: + 0%: 1 # not free + 25%: 0.75 + 50%: 0.5 + 75%: 0.25 + 100%: 0 # freeleech + "*": 0 # catch errors + downloadvolumefactor: + text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}" + uploadvolumefactor_double_upload: + # api returns False, True + selector: double_upload + case: + False: 1 # normal + True: 2 # double + uploadvolumefactor: + text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}" +# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio +# minimumratio: +# text: 0.4 + minimumseedtime: + # 7 days (as seconds = 7 x 24 x 60 x 60) + text: 604800 +# json UNIT3D 9.1.7 diff --git a/definitions/v11/mactorrentsdownload.yml b/definitions/v11/mactorrentsdownload.yml index d3c13cc38..0c23d0383 100644 --- a/definitions/v11/mactorrentsdownload.yml +++ b/definitions/v11/mactorrentsdownload.yml @@ -31,11 +31,11 @@ download: - name: replace args: ["/download?", "/download/?"] selectors: - - selector: script:contains("downloadLink") + - selector: script:contains("torrentLink") usebeforeresponse: true filters: - name: regexp - args: "downloadLink = '(.+?)';" + args: "torrentLink = '(.+?)';" search: paths: diff --git a/definitions/v11/march.yml b/definitions/v11/march.yml new file mode 100644 index 000000000..6b0832be9 --- /dev/null +++ b/definitions/v11/march.yml @@ -0,0 +1,176 @@ +--- +id: march +name: March +description: "March is a CHINESE Private Torrent Tracker for MOVIES / TV" +language: zh-CN +type: private +encoding: UTF-8 +links: + - https://duckboobee.org/ + +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: "Documentary/纪录片"} + - {id: 405, cat: TV/Anime, desc: "Animations/动画"} + - {id: 406, cat: Audio/Video, desc: "MV/演唱会"} + - {id: 407, cat: TV/Sport, desc: "Sports/体育"} + - {id: 408, cat: Audio, desc: "Music/音乐"} + - {id: 409, cat: Other/Misc, desc: "Misc/其他"} + + modes: + search: [q] + tv-search: [q, season, ep, imdbid, doubanid] + movie-search: [q, imdbid, doubanid] + music-search: [q] + +settings: + - name: cookie + type: text + label: Cookie + - name: info_cookie + type: info_cookie + - 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_tpp + type: info + label: Results Per Page + default: For best results, change the Torrents per page: setting to 100 on your account profile. + - name: info_activity + type: info + label: Account Inactivity + default: "Account retention rules:
  1. Veteran User and above will be retained forever
  2. Elite User and above will not have their account deleted after parking (in the control panel)
  3. Users with a parked account will be deleted if they do not log in for 400 consecutive days
  4. Users with a non-parked account will be deleted if they do not log in for 150 consecutive days
  5. Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.
" + +login: + # using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php + 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 }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ 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: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}" + # 0 title, 1 descr, 3 uploader, 4 imdburl + search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}" + # 0 AND, 2 exact + search_mode: 0 + sort: "{{ .Config.sort }}" + type: "{{ .Config.type }}" + notnewword: 1 + + rows: + selector: table.torrents > tbody > tr:has(table.torrentname) + + fields: + category: + selector: a[href^="?cat="] + attribute: href + filters: + - name: querystring + args: cat + title_default: + selector: a[href^="details.php?id="] + title: + selector: a[title][href^="details.php?id="] + attribute: title + optional: true + default: "{{ .Result.title_default }}" + details: + selector: a[href^="details.php?id="] + attribute: href + download: + selector: a[href^="download.php?id="] + attribute: href + poster: + selector: img[data-src] + attribute: data-src + imdbid: + # site currently only has a badge and rating, the id is not present. just in case a future update. + selector: a[href*="imdb.com/title/tt"] + attribute: href + doubanid: + # site currently only has a badge and rating, the id is not present. just in case a future update. + selector: a[href*="movie.douban.com/subject/"] + attribute: href + date_elapsed: + # time type: time elapsed (default) + selector: td.rowfollow:nth-child(4) > span[title] + attribute: title + optional: true + filters: + - name: append + args: " +08:00" # CST + - name: dateparse + args: "yyyy-MM-dd HH:mm:ss zzz" + date_added: + # time added + selector: td.rowfollow:nth-child(4):not(:has(span)) + optional: true + filters: + - name: append + args: " +08:00" # CST + - name: dateparse + args: "yyyy-MM-ddHH:mm:ss zzz" + date: + text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}" + size: + selector: td.rowfollow:nth-child(5) + seeders: + selector: td.rowfollow.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 + minimumratio: + text: 2.0 + minimumseedtime: + # 2 days (as seconds = 2 x 24 x 60 x 60) + text: 172800 + description: + selector: td.rowfollow:nth-child(2) + remove: a, b, font, img, span +# NexusPHP v1.9.9 2025-10-02 diff --git a/definitions/v11/tmghub.yml b/definitions/v11/tmghub.yml index fc2eb4a6d..cabae7f46 100644 --- a/definitions/v11/tmghub.yml +++ b/definitions/v11/tmghub.yml @@ -21,6 +21,7 @@ caps: - {id: 17, cat: Movies/WEB-DL, desc: "WEB-DL/DTH"} - {id: 14, cat: Movies/DVD, desc: "DVD-Rips"} - {id: 15, cat: Movies/HD, desc: "DTH/HD-Rip"} + - {id: 45, cat: Movies/Other, desc: "AI Encodes"} - {id: 20, cat: Movies/SD, desc: "VHS/TV-Rip"} - {id: 21, cat: Movies, desc: "Video CDs"} - {id: 19, cat: Movies, desc: "Pre Releases "} @@ -138,48 +139,56 @@ search: by: "{{ .Config.type }}" rows: - selector: "table#tottest[width=\"100%\"] tr:has(a[href^=\"index.php?page=torrent-details\"]):not(:has(img[title=\"Allready Grabbed !!\"]))" + selector: "table.torrents tr:has(a[href^=\"index.php?page=torrent-details\"]):not(:has(img[title=\"Allready Grabbed !!\"]))" fields: category: - selector: td a[href^="index.php?page=torrents&category="] + selector: td.category > a attribute: href filters: - name: querystring args: category title: - selector: td a[href^="index.php?page=torrent-details"] + selector: td.torrent-first a details: - selector: td a[href^="index.php?page=torrent-details"] + selector: td.torrent-first a attribute: href download: - selector: td a[href^="index.php?page=torrent-details"] - attribute: href - imdbid: - selector: a[href*="imdb.com/title/tt"] + selector: td.download > a attribute: href poster: - selector: td a[href^="index.php?page=torrent-details"] + selector: td.torrent-first a attribute: onmouseover filters: - name: regexp - args: "src=(.+?) width" + args: "src=(.+?) border" date: # 6 weeks ago - selector: td a[href^="index.php?page=torrent-details"] + selector: td.torrent-first a attribute: onmouseover filters: - name: regexp args: "Added\\:(\\d+ \\w+ \\w+)<" - name: timeago size: - selector: td:nth-child(5) + selector: td.size grabs: - selector: td:nth-child(6) + selector: td.torrent-first div div + filters: + - name: regexp + args: "^\\d+\\s+\\d+\\s+(.+)" + - name: replace + args: ["---", "0"] seeders: - selector: td:nth-child(7) + selector: td.torrent-first div div + filters: + - name: regexp + args: "^(\\d+)\\s+\\d+\\s+.+" leechers: - selector: td:nth-child(8) + selector: td.torrent-first div div + filters: + - name: regexp + args: "^\\d+\\s+(\\d+)\\s+.+" downloadvolumefactor: case: img[src="gold/gold.gif"]: 0 diff --git a/definitions/v11/tocashare.yml b/definitions/v11/tocashare.yml index 5ce39c07e..2ad8315b5 100644 --- a/definitions/v11/tocashare.yml +++ b/definitions/v11/tocashare.yml @@ -12,9 +12,17 @@ legacylinks: caps: categorymappings: + - {id: 1, cat: Books/Mags, desc: "Revistas"} + - {id: 2, cat: TV, desc: "Seriado"} + - {id: 3, cat: Audio/Audiobook, desc: "Música"} + - {id: 4, cat: Console, desc: "Jogo"} + - {id: 5, cat: PC, desc: "Aplicativo"} - {id: 6, cat: Books/EBook, desc: "E-Books"} - {id: 7, cat: Other, desc: "Cursos"} - - {id: 9, cat: Audio/Audiobook, desc: "Audio E-Book"} + - {id: 8, cat: XXX/ImageSet, desc: "Fotos Adultas"} + - {id: 9, cat: Audio/Audiobook, desc: "Audio livro"} + - {id: 10, cat: Books/Comics, desc: "HQs/Mangas"} + - {id: 11, cat: TV, desc: "Shows"} modes: search: [q]