diff --git a/definitions/v10/1337x.yml b/definitions/v10/1337x.yml new file mode 100644 index 000000000..478a2e148 --- /dev/null +++ b/definitions/v10/1337x.yml @@ -0,0 +1,296 @@ +--- +id: 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 +requestDelay: 2 +links: + - https://1337x.to/ + - https://1337x.st/ + - https://x1337x.ws/ + - https://x1337x.eu/ + - https://x1337x.se/ + - https://1337x.unblockit.click/ + - https://1337x.mrunblock.guru/ + - https://1337x.unblockninja.com/ +legacylinks: + - https://1337x.is/ + - https://1337x.nocensor.work/ + - https://1337x.unblockit.how/ + - https://1337x.unblockit.cam/ + - https://1337x.nocensor.biz/ + - https://1337x.gd/ + - https://1337x.unblockit.day/ + - https://1337x.unblockit.llc/ + - https://1337x.unblockit.blue/ + - https://1337x.unblockit.name/ + - https://1337x.nocensor.sbs/ + - https://1337x.unblockit.ist/ + - https://1337x.unblockit.bet/ + - https://1337x.unblockit.cat/ + - https://1337x.unblockit.nz/ + - https://1337x.nocensor.world/ + - https://1337x.unblockit.page/ + - https://1337x.unblockit.pet/ + - https://1337x.nocensor.lol/ + - https://1337x.unblockit.ink/ + - https://1337x.nocensor.art/ + - https://1337x.unblockit.bio/ + - https://1337x.unblockit.boo/ + +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"} + # 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"} + # 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/Mobile-Android, desc: "Apps/Android"} + - {id: 57, cat: PC/Mobile-iOS, desc: "Apps/iOS"} + # Games + - {id: 10, cat: PC/Games, desc: "Games/PC Game"} + - {id: 11, cat: Console/PS3, 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/PS3, desc: "Games/PS1"} + - {id: 16, cat: Console/Other, desc: "Games/Dreamcast"} + - {id: 17, cat: PC/Mobile-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/Other, 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"} + # 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] + book-search: [q] + allowrawsearch: true + limitsDefault: 80 + limitsMax: 80 + +settings: + - name: flaresolverr + type: info + label: FlareSolverr + default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it. + - name: downloadlink + type: select + label: Download link + default: "http://itorrents.org/" + options: + "http://itorrents.org/": iTorrents.org + "magnet:": magnet + - name: downloadlink2 + type: select + label: Download link (fallback) + default: "magnet:" + options: + "http://itorrents.org/": iTorrents.org + "magnet:": magnet + - name: info_download + type: info + label: About the Download links + default: As the iTorrents .torrent download link on this site is known to fail from time to time, we suggest using the magnet link as a fallback. The BTCache and Torrage services are not supported because they require additional user interaction (a captcha for BTCache and a download button on Torrage.) + - 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 and magnet URI are on the details page + selectors: + - selector: ul li a[href^="{{ .Config.downloadlink }}"] + attribute: href + - selector: ul li a[href^="{{ .Config.downloadlink2 }}"] + attribute: href + +search: + pageSize: 20 + pageable: "{{ if or .Query.Album .Query.Artist .Keywords }}true{{ else }}false{{ end }}" + + 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 }}/" + - path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/Other{{ 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 }}4{{ else }}1{{ end }}/" + + rows: + selector: tr:has(a[href^="/torrent/"]) + + fields: + title_default: + # the movies, tv and music pages abbreviate the title + selector: td[class^="coll-1"] a[href^="/torrent/"] + title_optional: + # the movies, tv and music pages abbreviate the title so we process the href instead. #8137 + optional: true + selector: td[class^="coll-1"] a[href^="/torrent/"]:contains("...") + attribute: href + filters: + - name: urldecode + - name: split + args: ["/", 3] + title: + # title_optional can be empty so use the title_default instead #8586 + text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}" + filters: + - name: re_replace + args: ["-([\\w]+(?:[\\[\\]\\(\\)\\w]+)?)$", "~$1"] + - name: replace + args: ["-", " "] + - name: re_replace + args: ["~([\\w]+(?:[\\[\\]\\(\\)\\w]+)?)$", "-$1"] + - name: replace + args: ["\u000f", ""] # get rid of unwanted character #6582 + # cleanup for Sonarr + - name: re_replace # EP 3 4 to E3-4 + args: ["(?i)\\sEP\\s(\\d{1,2})\\s(E?\\s?\\d{1,2})\\s", " E$1-$2 "] + - name: re_replace # S02E04 05 to S02E04-05 + args: ["(?i)\\sS(\\d{1,2})\\s?E\\s?(\\d{1,2})\\s(E?\\s?\\d{1,2})\\s", " S$1E$2-$3 "] + - name: re_replace + args: ["(?i)AC3\\s?(\\d)\\s(\\d)", "AC3 $1.$2"] + - name: re_replace + args: ["(?i) DD\\s?(\\d)\\s(\\d)", " DD $1.$2"] + - name: re_replace + args: ["(?i) DDP\\s?(\\d)\\s(\\d)", " DDP $1.$2"] + - name: re_replace + args: ["(?i)\\sE\\s?AC3", " EAC3"] + - name: re_replace + args: ["(?i)WEB\\sDL", "WEB-DL"] + - name: re_replace + args: ["(?i)HDTVRIP", "HDTV"] + category_sub: + optional: true + selector: td[class^="coll-1"] a[href^="/sub/"] + attribute: href + filters: + # extract the third part + - name: split + args: ["/", 2] + category: + text: "{{ if .Result.category_sub }}{{ .Result.category_sub }}{{ else }}40{{ end }}" + 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_year: + # (within this year) 7am Sep. 14th + optional: true + selector: td[class^="coll-date"]:not(:contains(":")):not(:contains("'")) + filters: + - name: re_replace + args: ["st|nd|rd|th", ""] + - name: dateparse + args: "htt MMM. d" + date_years: + # (more than a year ago) Apr. 18th '11 + optional: true + selector: td[class^="coll-date"]:contains("'") + filters: + - name: replace + args: ["'", ""] + - name: re_replace + args: ["st|nd|rd|th", ""] + - name: dateparse + args: "MMM. d yy" + date_today: + # (today) 12:25am + optional: true + selector: td[class^="coll-date"]:contains(":") + filters: + - name: fuzzytime + date: + text: "{{ if or .Result.date_year .Result.date_years .Result.date_today }}{{ or .Result.date_year .Result.date_years .Result.date_today }}{{ else }}now{{ end }}" + 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/definitions/v10/anthelion-api.yml b/definitions/v10/anthelion-api.yml new file mode 100644 index 000000000..05cf4455f --- /dev/null +++ b/definitions/v10/anthelion-api.yml @@ -0,0 +1,160 @@ +--- +id: anthelion-api +name: Anthelion (API) +description: "Anthelion is a Private MOVIES tracker" +language: en-US +type: private +encoding: UTF-8 +links: + - https://anthelion.me/ + +caps: + categorymappings: + - {id: 2000, cat: Movies} + - {id: 2030, cat: Movies/SD} + - {id: 2040, cat: Movies/HD} + - {id: 2045, cat: Movies/UHD} + - {id: 2050, cat: Movies/BluRay} + - {id: 2080, cat: Movies/WEB-DL} + - {id: 8000, cat: Other} + + modes: + search: [q] + movie-search: [q, imdbid, tmdbid] + # note: the api any supports movie search so there is no tv season/episode support. + # not using year search because torznab adds it to the q= which results in &q=keyword+2022&year=2022 sent to api !?! + +settings: + - name: apikey + type: text + label: APIKey + - name: info_key + type: info + label: About your API key + default: "Find or Generate a new API Key by accessing your Anthelion account Settings page and scrolling down to the API Key section.
Tick the Search and Download checkboxes and click the save profile button to generate the key." + +login: + path: api.php + method: get + inputs: + api_key: "{{ .Config.apikey }}" + error: + - selector: ":root:contains(\"Unrecognized key\")" + message: + text: "The API key was not accepted by {{ .Config.sitelink }}." + - selector: ":root:contains(\"No API_KEY provided\")" + message: + text: "You did not enter an API key." + +search: + pageSize: 100 + + paths: + # docs: https://anthelion.me/forums.php?action=viewthread&threadid=1026 + - path: api.php + response: + type: json + + inputs: + api_key: "{{ .Config.apikey }}" + o: json + t: movie + q: "{{ .Keywords }}" + tmdb: "{{ .Query.TMDBID }}" + imdb: "{{ .Query.IMDBIDShort }}" + cat: "{{ join .Categories \",\" }}" + limit: "{{ .Query.Limit }}" + offset: "{{ .Query.Offset }}" + + rows: + selector: item + count: + selector: response.total + + fields: + category: + selector: category + filters: + - name: split + args: [",", -1] + year: + selector: year + optional: true + _codec: + selector: codec + _container: + selector: container + _media: + selector: media + filters: + - name: replace + args: ["WEB", "WEB-DL"] + _resolution: + selector: resolution + _audioFormat: + selector: audioFormat + _subbing: + selector: subbing + optional: true + _flags: + selector: flags + optional: true + filters: + - name: replace + args: [",", " "] + _language: + selector: language + optional: true + _releaseGroup: + selector: releaseGroup + optional: true + filters: + - name: trim + title: + selector: title + filters: + - name: htmldecode + - name: append + args: " {{ .Result.year }} {{ .Result._codec }} {{ .Result._container }} {{ .Result._media }} {{ .Result._resolution }} {{ .Result._audioFormat }}{{ if .Result._subbing }} Subs{{ else }}{{ end }}{{ if .Result._flags }} {{ .Result._flags }}{{ else }}{{ end }}{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}{{ if and (.Result._releaseGroup) (ne .Result._releaseGroup \"NULL\") }} -{{ .Result._releaseGroup }}{{ else }}{{ end }}" + details: + selector: guid + download: + selector: link + filters: + - name: htmldecode + infohash: + selector: infohash + imdbid: + selector: imdb + tmdbid: + selector: tmdb + genre: + selector: tags + filters: + - name: replace + args: [".", "_"] + description: + text: "{{ .Result.genre }}" + files: + selector: fileCount + seeders: + selector: seeders + leechers: + selector: leechers + grabs: + selector: grabs + date: + # 2022-08-07T20:56:06+0200 + selector: pubDate + size: + selector: size + downloadvolumefactor: + text: 1 + uploadvolumefactor: + text: 1 + minimumratio: + text: 1.0 + minimumseedtime: + # 3 day (as seconds = 3 x 24 x 60 x 60) + text: 259200 +# json api diff --git a/definitions/v10/bitsearch.yml b/definitions/v10/bitsearch.yml new file mode 100644 index 000000000..5014b881e --- /dev/null +++ b/definitions/v10/bitsearch.yml @@ -0,0 +1,151 @@ +--- +id: bitsearch +name: BitSearch +description: "BitSearch is a Public torrent meta-search engine" +language: en-US +type: public +encoding: UTF-8 +requestDelay: 2 +links: + - https://bitsearch.to/ + - https://bitsearch.mrunblock.guru/ +legacylinks: + - https://bitsearch.nocensor.biz/ + - https://bitsearch.nocensor.sbs/ + - https://bitsearch.nocensor.world/ + - https://bitsearch.nocensor.lol/ + +caps: + categories: + AudioBook: Audio/Audiobook + eBook: Books/EBook + "Ebook/Course": Books/EBook + Games: PC/Games + "Games/PC": PC/Games + Movies: Movies + Music: Audio + "Music/Album": Audio + "Music/mp3": Audio/MP3 + "Music/Lossless": Audio/Lossless + "Music/Video": Audio/Video + Other: Other + "Other/Android": PC/Mobile-Android + "Other/Archive": Other + "Other/Audio": Audio + "Other/Database": PC + "Other/DiskImage": PC/ISO + "Other/Document": Books/Comics + "Other/Image": Other/Misc + "Other/Program": PC/0day + "Other/Sourcecode": PC + "Other/Source Code": PC + "Other/Video": TV + Softwares: PC/0day + "Softwares/Windows": PC/0day + TV: TV + Unknown: Other + XXX: XXX + + modes: + search: [q] + tv-search: [q, season, ep] + movie-search: [q] + music-search: [q] + book-search: [q] + limitsDefault: 50 + limitsMax: 50 + +settings: + - name: sort + type: select + label: Sort requested from site + default: date + options: + date: created + seeders: seeders + size: size + - name: type + type: select + label: Order requested from site + default: desc + options: + desc: desc + asc: asc + +search: + pageSize: 50 + firstPageNumber: 1 + + paths: + # https://bitsearch.to/search?q=&sort=date&order=desc + - path: search + inputs: + q: "{{ .Keywords }}" + sort: "{{ .Config.sort }}" + order: "{{ .Config.type }}" + limit: "{{ .Query.Limit }}" + page: "{{ .Query.Page }}" + + keywordsfilters: + - name: re_replace + args: ["\\.", " "] + + rows: + selector: div.search-result:has(a.dl-torrent), li.search-result:has(a.dl-torrent) + + fields: + category: + selector: a.category + title: + selector: h5 a + details: + selector: h5 a + attribute: href + download: + selector: a.dl-torrent + attribute: href + infohash: + selector: a[href^="magnet:?xt"] + attribute: href + filters: + - name: regexp + args: ([A-F|a-f|0-9]{40}) + grabs: + selector: div.stats div:has(img[alt="Download"]) + filters: + - name: replace + args: [".", ""] + - name: replace + args: ["K", "00"] + - name: replace + args: ["M", "00000"] + size: + selector: div.stats div:has(img[alt="Size"]) + seeders: + selector: div.stats div:has(img[alt="Seeder"]) + filters: + - name: replace + args: [".", ""] + - name: replace + args: ["K", "00"] + - name: replace + args: ["M", "00000"] + leechers: + selector: div.stats div:has(img[alt="Leecher"]) + filters: + - name: replace + args: [".", ""] + - name: replace + args: ["K", "00"] + - name: replace + args: ["M", "00000"] + date: + selector: div.stats div:has(img[alt="Date"]) + filters: + - name: dateparse + args: "MMM d, yyyy" + downloadvolumefactor: + text: 0 + uploadvolumefactor: + text: 1 +# engine n/a diff --git a/definitions/v10/digitalcore.yml b/definitions/v10/digitalcore.yml new file mode 100644 index 000000000..ddc5784b3 --- /dev/null +++ b/definitions/v10/digitalcore.yml @@ -0,0 +1,230 @@ +--- +id: digitalcore +name: DigitalCore +description: "DigitalCore is a Private Torrent Tracker for MOVIES / TV / GENERAL" +language: en-US +type: private +encoding: UTF-8 +links: + - https://digitalcore.club/ + +caps: + categorymappings: + - {id: 2, cat: Movies/SD, desc: Movies/SD} + - {id: 1, cat: Movies/DVD, desc: Movies/DVDR} + - {id: 5, cat: Movies/HD, desc: Movies/720p} + - {id: 6, cat: Movies/HD, desc: Movies/1080p} + - {id: 4, cat: Movies/UHD, desc: Movies/2160p} + - {id: 3, cat: Movies/BluRay, desc: Movies/BluRay} + - {id: 38, cat: Movies/UHD, desc: Movies/Bluray/UHD} + - {id: 7, cat: Movies/HD, desc: Movies/PACKS} + - {id: 10, cat: TV/SD, desc: Tv/SD} + - {id: 11, cat: TV/SD, desc: Tv/DVDR} + - {id: 8, cat: TV/HD, desc: Tv/720p} + - {id: 9, cat: TV/HD, desc: Tv/1080p} + - {id: 13, cat: TV/UHD, desc: Tv/2160p} + - {id: 14, cat: TV/HD, desc: Tv/BluRay} + - {id: 12, cat: TV/HD, desc: Tv/PACKS} + - {id: 17, cat: Other, desc: Unknown} + - {id: 18, cat: PC/0day, desc: Apps/0DAY} + - {id: 20, cat: PC/ISO, desc: Apps/PC} + - {id: 21, cat: PC/Mac, desc: Apps/Mac} + - {id: 33, cat: PC, desc: Apps/Tutorials} + - {id: 22, cat: Audio/MP3, desc: Music/MP3} + - {id: 23, cat: Audio/Lossless, desc: Music/FLAC} + - {id: 24, cat: Audio/Video, desc: Music/MTV} + - {id: 29, cat: Audio, desc: Music/PACKS} + - {id: 39, cat: Audio/Video, desc: Music/DVD} + - {id: 40, cat: Audio/Video, desc: Music/Bluray} + - {id: 25, cat: PC/Games, desc: Games/PC} + - {id: 27, cat: PC/Mac, desc: Games/Mac} + - {id: 26, cat: Console, desc: Games/Consoles} + - {id: 43, cat: Console, desc: Games/ROMS} + - {id: 42, cat: XXX/Other, desc: Games/XXX} + - {id: 44, cat: Audio/Audiobook, desc: Audiobooks} + - {id: 28, cat: Books/EBook, desc: Ebooks} + - {id: 30, cat: XXX/SD, desc: XXX/SD} + - {id: 31, cat: XXX, desc: XXX/HD} + - {id: 32, cat: XXX/UHD, desc: XXX/4K} + - {id: 35, cat: XXX/SD, desc: XXX/Movies/SD} + - {id: 36, cat: XXX, desc: XXX/Movies/HD} + - {id: 37, cat: XXX/UHD, desc: XXX/Movies/4K} + - {id: 34, cat: XXX/ImageSet, desc: XXX/Imagesets} + - {id: 41, cat: XXX, desc: XXX/PACKS} + + modes: + search: [q] + tv-search: [q, season, ep, imdbid] + movie-search: [q, imdbid] + music-search: [q] + book-search: [q] + +settings: + - name: cookie + type: text + label: Cookie + - name: info + type: info + label: How to get the Cookie + default: "
  1. Login to 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 'cookie:' in the Request Headers section
  9. Select and Copy the whole cookie string (everything after 'cookie: ') and Paste here.
" + - name: freeleech + type: checkbox + label: Search freeleech only + default: false + - name: sort + type: select + label: Sort requested from site + default: d + options: + d: created + up: seeders + s: size + n: title + - name: type + type: select + label: Order requested from site + default: desc + options: + desc: desc + asc: asc + +login: + method: cookie + inputs: + cookie: "{{ .Config.cookie }}" + +search: + pageSize: 100 + + paths: + - path: api/v1/torrents + response: + type: json + noResultsMessage: "" + + inputs: + $raw: "{{ range .Categories }}categories[]={{.}}&{{end}}" + dead: true + extendedDead: true + extendedSearch: false + freeleech: "{{ if .Config.freeleech }}true{{ else }}false{{ end }}" + index: "{{ .Query.Offset }}" + limit: "{{ .Query.Limit }}" + order: "{{ .Config.type }}" + page: search + searchText: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }} {{ else }}{{ end }}{{ .Keywords }}" + section: all + sort: "{{ .Config.sort }}" + stereoscopic: false + watchview: false + + rows: + selector: $ + + fields: + category: + selector: category + title: + selector: name + _id: + selector: id + details: + text: "{{ .Config.sitelink }}torrent/{{ .Result._id }}/" + download: + text: "{{ .Config.sitelink }}api/v1/torrents/download/{{ .Result._id }}" + imdbid: + selector: imdbid2 + imdbid_full: + optional: true + selector: imdbid2 + poster_normal: + optional: true + selector: firstpic + poster_imdb: + optional: true + text: "{{ if .Result.imdbid }}{{ .Config.sitelink }}img/imdb/{{ .Result.imdbid_full }}.jpg{{ else }}{{ end }}" + poster: + text: "{{ if .Result.poster_imdb }}{{ .Result.poster_imdb }}{{ else }}{{ .Result.poster_normal }}{{ end }}" + date: + # 2021-10-27 12:07:22 + selector: added + filters: + - name: append + args: " +02:00" # EET + - name: dateparse + args: "yyyy-MM-dd HH:mm:ss zzz" + size: + selector: size + files: + selector: numfiles + grabs: + selector: times_completed + seeders: + selector: seeders + leechers: + selector: leechers + downloadvolumefactor: + # api returns 0=false, 1=true + selector: frileech + case: + 0: 1 # not free + 1: 0 # freeleech + uploadvolumefactor: + text: 1 + minimumratio: + text: 1.1 + minimumseedtime: + # 5 days (as seconds = 5 x 24 x 60 x 60) + text: 432000 + title_desc: + optional: true + selector: title + year: + optional: true + selector: year + genre: + selector: genres + _tagline_desc: + optional: true + selector: tagline + _cast_desc: + optional: true + selector: cast + _rating_desc: + optional: true + selector: rating + filters: + - name: re_replace + args: ["^0$", ""] + _section_desc: + optional: true + selector: section + _predate_desc: + selector: preDate + filters: + - name: re_replace + args: ["0000-00-00 00:00:00", ""] + _p2ptag: + selector: p2p + case: + 0: "" + 1: P2P + _packtag: + selector: pack + case: + 0: "" + 1: Pack + _reqidtag: + selector: reqid + case: + 0: "" + "*": Request + _tag_desc: + optional: true + text: "{{ if .Result._p2ptag }}{{ .Result._p2ptag }}, {{ else }}{{ end }}{{ if .Result._packtag }}{{ .Result._packtag }}, {{ else }}{{ end }}{{ if .Result._reqidtag }}{{ .Result._reqidtag }}{{ else }}{{ end }}" + filters: + - name: regexp + args: "(.+?), $" + description: + text: "{{ if .Result.title_desc }}Title: {{ .Result.title_desc }}
{{ else }}{{ end }}{{ if .Result.year }}Year: {{ .Result.year }}
{{ else }}{{ end }}{{ if .Result.genre }}Genres: {{ .Result.genre }}
{{ else }}{{ end }}{{ if .Result._tagline_desc }}Tagline: {{ .Result._tagline_desc }}
{{ else }}{{ end }}{{ if .Result._cast_desc }}Cast: {{ .Result._cast_desc }}
{{ else }}{{ end }}{{ if .Result._rating_desc }}Rating: {{ .Result._rating_desc }}
{{ else }}{{ end }}{{ if .Result._tag_desc }}Tags: {{ .Result._tag_desc }}
{{ else }}{{ end }}{{ if .Result._predate_desc }}PRE: {{ .Result._predate_desc }}
{{ else }}{{ end }}{{ if .Result._section_desc }}Section: {{ .Result._section_desc }}{{ else }}{{ end }}" +# json rartracker api v1 diff --git a/definitions/v10/movietorrent.yml b/definitions/v10/movietorrent.yml new file mode 100644 index 000000000..bb4a10bcb --- /dev/null +++ b/definitions/v10/movietorrent.yml @@ -0,0 +1,131 @@ +--- +id: movietorrent +name: MovieTorrent +description: "MovieTorrent is a Public site for Bollywood, Hollywood, Hindi Dubbed, Tamil , Punjabi, Pakistani MOVIES" +language: en-US +type: public +encoding: UTF-8 +requestDelay: 2 +links: + - https://movietorrent.co/ + +caps: + categorymappings: + - {id: 1, cat: Movies, desc: "Bollywood"} + - {id: 2, cat: Movies/HD, desc: "1080p"} + - {id: 3, cat: Movies/HD, desc: "2016"} + - {id: 4, cat: Movies/HD, desc: "2017"} + - {id: 5, cat: Movies/HD, desc: "2018"} + - {id: 6, cat: Movies/HD, desc: "2019"} + - {id: 7, cat: Movies/HD, desc: "720p"} + - {id: 8, cat: Movies/HD, desc: "480p"} + - {id: 9, cat: Movies/HD, desc: "Action"} + - {id: 10, cat: Movies, desc: "Adventure"} + - {id: 11, cat: Movies, desc: "Animation"} + - {id: 14, cat: Movies, desc: "Comedy"} + - {id: 15, cat: Movies, desc: "Crime"} + - {id: 18, cat: Movies, desc: "Drama"} + - {id: 19, cat: Movies, desc: "Dubbed"} + - {id: 23, cat: Movies, desc: "Hindi"} + - {id: 26, cat: Movies, desc: "Hollywood"} + - {id: 27, cat: Movies, desc: "Horror"} + - {id: 32, cat: Movies, desc: "Pakistani"} + - {id: 35, cat: Movies, desc: "Punjabi"} + - {id: 36, cat: Movies, desc: "Religious"} + - {id: 38, cat: Movies, desc: "Romance"} + - {id: 42, cat: Movies, desc: "Sport"} + - {id: 44, cat: Movies, desc: "Superhero"} + - {id: 47, cat: Movies, desc: "Tamil Telugu"} + - {id: 48, cat: Movies, desc: "Thriller"} + - {id: 49, cat: Movies, desc: "Trending"} + - {id: 53, cat: Movies/WEB-DL, desc: "Web Series"} + - {id: 59, cat: Movies, desc: "2019"} + - {id: 5143, cat: Movies, desc: "2012"} + - {id: 5247, cat: Movies, desc: "2015"} + - {id: 8758, cat: Movies, desc: "2020"} + - {id: 8808, cat: Movies, desc: "2013"} + - {id: 8809, cat: Movies, desc: "2014"} + - {id: 9938, cat: Movies, desc: "Turkish Dramas"} + - {id: 10293, cat: Movies, desc: "2021"} + - {id: 8569, cat: Movies, desc: "2021"} + - {id: 8610, cat: Movies, desc: "2022"} + + modes: + search: [q] + tv-search: [q, season, ep] + movie-search: [q] + limitsDefault: 36 + limitsMax: 36 + +settings: [] + +download: + infohash: + hash: + selector: a[href^="magnet:"] + attribute: href + filters: + - name: regexp + args: ([A-F|a-f|0-9]{40}) + title: + selector: th[colspan="5"] + filters: + - name: replace + args: [" – movietorrent", ""] + - name: trim + - name: validfilename + +search: + pageSize: 12 + + paths: + - path: "?s={{ .Keywords }}" + - path: "/page/2/?s={{ .Keywords }}" + - path: "/page/3/?s={{ .Keywords }}" + + rows: + selector: article:has(h2) + filters: + - name: andmatch + + fields: + category: + selector: span.term-badge + attribute: class + filters: + - name: regexp + args: (\d+) + title: + selector: h2 + filters: + - name: replace + args: ["Full Movie ", ""] + - name: replace + args: ["Torrent Magnet ", ""] + - name: replace + args: ["Download", ""] + - name: replace + args: ["…", ""] + details: + selector: h2 > a + attribute: href + download: + selector: h2 > a + attribute: href + poster: + selector: a[data-src] + attribute: data-src + date: + selector: time + attribute: datetime + size: + text: "5 GB" + seeders: + text: 1 + leechers: + text: 1 + downloadvolumefactor: + text: 0 + uploadvolumefactor: + text: 1 +# engine wordpress 5.8 diff --git a/definitions/v10/schema.json b/definitions/v10/schema.json index e5c1ac610..1b88266c5 100644 --- a/definitions/v10/schema.json +++ b/definitions/v10/schema.json @@ -93,6 +93,14 @@ "type": "object", "additionalProperties": false, "properties": { + "limitsDefault": { + "type": "integer", + "minimum": 1 + }, + "limitsMax": { + "type": "integer", + "minimum": 1 + }, "categories": { "type": "object", "additionalProperties": false, @@ -482,6 +490,24 @@ "type": "object", "additionalProperties": false, "properties": { + "pageSize": { + "type": "integer", + "minimum": 1 + }, + "pageable": { + "oneOf": [ + { + "type": "boolean" + }, + { + "type": "string" + } + ] + }, + "firstPageNumber": { + "type": "integer", + "minimum": 0 + }, "path": { "type": "string" },