diff --git a/data/prowlarr/Definitions/Custom/52btCustom.yml b/data/prowlarr/Definitions/Custom/52btCustom.yml new file mode 100644 index 0000000..cf92959 --- /dev/null +++ b/data/prowlarr/Definitions/Custom/52btCustom.yml @@ -0,0 +1,107 @@ +--- +id: 52btCustom +name: 52BTCustom +description: "A Fixed Variant of 52BT; 52BT is a CHINESE Public tracker for TV / MOVIES / MUSIC / GENERAL" +language: zh-CN +type: public +encoding: UTF-8 +requestDelay: 2 +links: + # Old nonfunctional links were moved to legacy-links, new link replaced + - https://www.529056.xyz/ +legacylinks: + - https://www.529053.xyz/ + - https://www.529055.xyz/ + - https://529050.xyz/ + - https://529048.xyz/ + - https://529049.xyz/ + - https://www.529052.xyz/ + +caps: + categorymappings: + - {id: 影视, cat: TV, desc: 影视} + - {id: 影视, cat: Movies, desc: 影视} + - {id: 音乐, cat: Audio, desc: 音乐} + - {id: 图像, cat: Other, desc: 图像} + - {id: 文档书籍, cat: Books, desc: 文档书籍} + - {id: 压缩文件, cat: Other, desc: 压缩文件} + - {id: 安装包, cat: PC, desc: 安装包} + - {id: 其他, cat: Other, desc: 其他} + + modes: + search: [q] + tv-search: [q, season, ep] + movie-search: [q] + music-search: [q] + book-search: [q] + +settings: + - name: cat-id + type: select + label: Category + default: 0 + options: + 0: All categories + 1: Film and Television + 2: Music + 3: Images + 4: Books + 5: Zip Files + 6: Software + 7: Other + - name: sort + type: select + label: Sort requested from site + default: 2 + options: + 2: created + 1: size + 0: relevance + - name: info_flaresolverr + type: info_flaresolverr + +search: + paths: + - path: "search-{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}-{{ .Config.cat-id }}-{{ .Config.sort }}-1.html" + - path: "search-{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}-{{ .Config.cat-id }}-{{ .Config.sort }}-2.html" + error: + - selector: :root:contains("Internal Server Error") + + rows: + selector: div.ssbox + + fields: + categorydesc: + selector: div.title > h3 > span + filters: + - name: re_replace + args: ["([\\[\\]]+)", ""] + title: + selector: a[href^="/hash/"] + details: + selector: a[href^="/hash/"] + attribute: href + infohash: + selector: a[href^="magnet:?xt="] + attribute: href + filters: + - name: regexp + args: ([A-F|a-f|0-9]{40}) + date: + selector: div.sbar > span:contains("添加时间:") > b + filters: + - name: append + args: " +08:00" # CST + - name: dateparse + args: "yyyy-MM-dd zzz" + size: + selector: div.sbar > span:contains("大小:") > b + seeders: + text: 1 + leechers: + text: 1 + downloadvolumefactor: + text: 0 + uploadvolumefactor: + text: 1 +# engine n/a diff --git a/data/prowlarr/Definitions/Custom/debridio.yml b/data/prowlarr/Definitions/Custom/debridio.yml new file mode 100644 index 0000000..fba0db9 --- /dev/null +++ b/data/prowlarr/Definitions/Custom/debridio.yml @@ -0,0 +1,74 @@ +id: debridio +name: Debridio +description: "Debridio API for *arr apps. This will not work with Stremio addons but will work for Jellyfin, Plex, and other similar apps." +language: en-US +type: private +encoding: UTF-8 +followredirect: false +testlinktorrent: false +requestDelay: 2 +links: + - https://debapi.debridio.com/ + +caps: + categories: + Movies: Movies + TV: TV + + modes: + search: [q] + movie-search: [q, imdbid] + tv-search: [q, imdbid] + allowrawsearch: false +settings: + - name: api_token + type: password + label: Debridio.com API Key + default: "" + - name: default_movie_query + label: "Default Movie Imdb Query" + type: text + default: "tt0137523" + - name: default_tv_query + type: text + label: "Default TV Imdb Query" + default: "tt18482892" + + +search: + paths: + - path: /{{ .Config.api_token }}/search/{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Config.default_movie_query }}{{ end }} + method: get + response: + type: json + categories: [Movies] + + - path: /{{ .Config.api_token }}/search/{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Config.default_movie_query }}{{ end }} + method: get + response: + type: json + categories: [TV] + + rows: + selector: "$" + + fields: + title: + selector: name + infohash: + selector: hash + size: + selector: size + seeders: + selector: seeders + leechers: + text: "0" + category_is_tv_show: + text: "{{ .Result.title }}" + filters: + - name: regexp + args: "\\b(S\\d+(?:E\\d+)?)\\b" + category: + text: "{{ if .Result.category_is_tv_show }}TV{{ else }}Movies{{ end }}" + indexer: + selector: indexer \ No newline at end of file diff --git a/data/prowlarr/Definitions/Custom/torbox.yml b/data/prowlarr/Definitions/Custom/torbox.yml new file mode 100644 index 0000000..af3987e --- /dev/null +++ b/data/prowlarr/Definitions/Custom/torbox.yml @@ -0,0 +1,100 @@ +--- +id: torbox-torrents +name: TorBox Torrents +description: "Torbox Torrents (300 requests/min)" +language: en-US +type: public +encoding: UTF-8 +followredirect: false +testlinktorrent: false +requestDelay: 2 +links: + - https://search-api.torbox.app +caps: + categories: + Movies: Movies + TV: TV + modes: + search: [q] + tv-search: [q, imdbid, season, ep] + movie-search: [q, imdbid] + allowrawsearch: false + +settings: + - name: apikey + type: password + label: Torbox API Key + default: "" + - name: validation_label + type: info + label: Validation settings optional + - name: validate_imdb_movie_label + type: info + label: The following help to validate an indexer in Sonarr by confirming that the show returns results + - name: validate_imdb_movie + type: text + label: IMDB ID of Movie to use for Radarr validation (must exist in indexer) + default: "tt0137523" # Fight Club + - name: validate_imdb_tv_label + type: info + label: The following help to validate an indexer in Sonarr by confirming that the show returns results + - name: validate_imdb_tv + type: text + label: IMDB ID TV show to use for Sonarr validation (must exist in indexer) + default: "tt9288030" # Reacher S02E01 + +search: + headers: + Authorization: ["Bearer {{ .Config.apikey }}"] + User-Agent: + [ + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0", + ] + paths: + - path: "{{ if .Query.IMDBID }}torrents/imdb:{{ .Query.IMDBID }}{{ else }}torrents/imdb:{{ .Config.validate_imdb_movie }}{{ end }}" + method: get + response: + type: json + noResultsMessage: "Could not find metadata. Please try again later." + categories: [Movies] + - path: "{{ if .Query.IMDBID }}torrents/imdb:{{ .Query.IMDBID }}{{else}}torrents/imdb:{{ .Config.validate_imdb_tv }}{{ end }}?season={{ if .Query.Season }}{{ .Query.Season }}{{ else }}1{{ end }}&episode={{ if .Query.Ep }}{{ .Query.Ep }}{{ else }}1{{ end }}" + method: get + response: + type: json + noResultsMessage: "Could not find metadata. Please try again later." + categories: [TV] + + rows: + selector: data.torrents + count: + selector: data.total_torrents + + fields: + title: + selector: raw_title + size: + selector: size + category_is_tv_show: + text: "{{ .Result.title }}" + filters: + - name: regexp + args: "\\b(S\\d+(?:E\\d+)?)\\b" + category: + text: "{{ if .Result.category_is_tv_show }}TV{{ else }}Movies{{ end }}" + details: + text: "{{ .Config.sitelink }}" + magnet: + selector: magnet + year: + selector: title + filters: + - name: regexp + args: "(\\b(19|20)\\d\\d\\b)" + date_in_days: + selector: age + date: + text: "{{ .Result.date_in_days }} days" + filters: + - name: timeago + seeders: + selector: last_known_seeders \ No newline at end of file diff --git a/data/prowlarr/Definitions/Custom/zilean.yml b/data/prowlarr/Definitions/Custom/zilean.yml new file mode 100644 index 0000000..8130ce3 --- /dev/null +++ b/data/prowlarr/Definitions/Custom/zilean.yml @@ -0,0 +1,98 @@ +id: zilean +name: Zilean +description: "A custom indexer for Zilean the unofficial DMM indexer using it's Torznab Endpoint" +language: en-US +type: public +encoding: UTF-8 +followredirect: false +testlinktorrent: false +requestDelay: 2 +links: + # Torznab Endpoint is used for better performance + - http://zilean:8181 + - https://zilean.elfhosted.com + +caps: + categories: + Movies: Movies + TV: TV + modes: + search: [q] + movie-search: [q, imdbid] + tv-search: [q, season, ep] + allowrawsearch: false + +settings: [] + +search: + paths: + - path: /dmm/filtered + method: get + response: + type: json + + inputs: + $raw: "{{ if .Query.IMDBID }}ImdbId={{ .Query.IMDBID }}{{ else }}Query={{ .Keywords }}{{ end }}" + Season: "{{ if .Query.Season }}{{ .Query.Season }}{{ else }}{{ end }}" + Episode: "{{ if .Query.Ep }}{{ .Query.Ep }}{{ else }}{{ end }}" + + keywordsfilters: + - name: re_replace + args: ["\\bS\\d+(?:E\\d+)?\\b", ""] # Remove season and episode info + - name: re_replace + args: ["\\b(19|20)\\d{2}\\b", ""] # Remove year info + - name: re_replace + args: ["[\\[\\]()]", ""] # Remove brackets + - name: re_replace + args: ["^$", "limitless"] + + rows: + selector: $ + missingAttributeEqualsNoResults: true + + fields: + title: + selector: raw_title + year: + selector: year + category: + selector: category + filters: + - name: replace + args: ["tvSeries", "TV"] + - name: replace + args: ["movie", "Movies"] + infohash: + selector: info_hash + size: + selector: size + quality: + selector: resolution + filters: + - name: replace + args: ["4k", "2160p"] + codec: + selector: codec + episode: + selector: episodes + season: + selector: seasons + language: + selector: languages + seeders: + text: "30" + leechers: + text: "10" + date: + text: "Apr. 18th '11" + filters: + - name: re_replace + args: ["st|nd|rd|th", ""] + - name: replace + args: ["'", ""] + - name: dateparse + args: "MMM. d yy" + downloadvolumefactor: + text: "1" + uploadvolumefactor: + text: "1" \ No newline at end of file