--- id: polishtorrent name: Polish Torrent (API) description: "Polish Torrent (PTT) is a POLISH Private Torrent Tracker for MOVIES / TV / GENERAL" language: pl-PL type: private encoding: UTF-8 links: - https://polishtorrent.top/ caps: categorymappings: - {id: 6, cat: PC/0day, desc: "Aplikacje/Programy"} - {id: 33, cat: Movies, desc: "iNTERNAL"} - {id: 4, cat: Movies, desc: "Bajki"} - {id: 31, cat: TV/Anime, desc: "Anime/Seriale"} - {id: 1, cat: Movies/HD, desc: "Filmy HD"} - {id: 30, cat: TV, desc: "TV Seriale Bajki"} - {id: 13, cat: Movies/DVD, desc: "DVD5/9"} - {id: 12, cat: Movies/BluRay, desc: "BD25/50_5/9"} - {id: 14, cat: Movies/3D, desc: "Filmy 3D"} - {id: 16, cat: Movies/SD, desc: "Filmy SD"} - {id: 17, cat: Movies/Other, desc: "Filmy inne"} - {id: 24, cat: PC/Games, desc: "Gry dodatki"} - {id: 5, cat: PC/Games, desc: "Gry PC"} - {id: 10, cat: Console, desc: "Gry Konsole"} - {id: 18, cat: PC/Mobile-Android, desc: "Mobile"} - {id: 19, cat: Other, desc: "Inne"} - {id: 8, cat: Audio, desc: "Muzyka"} - {id: 11, cat: Movies, desc: "Paczki"} - {id: 20, cat: Books, desc: "Book"} - {id: 25, cat: Audio/Audiobook, desc: "Audiobook"} - {id: 27, cat: TV/Other, desc: "Teatr Telewizyjny"} - {id: 21, cat: TV/Sport, desc: "Sport"} - {id: 29, cat: Movies, desc: "Stare Filmy"} - {id: 22, cat: TV/SD, desc: "TV Seriale SD"} - {id: 23, cat: Movies/UHD, desc: "Filmy 4K"} - {id: 9, cat: TV/HD, desc: "TV Seriale HD"} - {id: 28, cat: TV/Documentary, desc: "TV Dokument"} - {id: 2, cat: TV/UHD, desc: "TV 4K"} - {id: 15, cat: Movies, desc: "Filmy bez lektora"} - {id: 7, cat: XXX, desc: "XXX 18+"} - {id: 32, cat: Movies/Other, desc: "Anime/Filmy"} - {id: 34, cat: Movies, desc: "Ai - Filmy"} - {id: 35, cat: TV, desc: "Ai - Seriale"} 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 Polish Torrent 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: multilang type: checkbox label: Replace MULTI by another language in release name default: false - name: multilanguage type: select label: Replace MULTI by this language default: POLISH options: POLISH: POLISH MULTI POLISH: MULTI POLISH - 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 - name: info_activity type: info label: Account Inactivity default: "Accounts that are inactive for 3 months will be moved to the 'Disabled' group. Strict restrictions are imposed on this group. If the account is still inactive after being moved to this group, it will be permanently blocked without the possibility of unblocking. Simply logging in and browsing the site does not count as an active account. Required activity: downloading/uploading torrents, possibly activity on the forum." login: path: /api/torrents method: get inputs: {} # TODO: remove in v10 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://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x) # https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476 - 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_phase1: text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}" title_multilang: text: "{{ .Result.title_phase1 }}" filters: - name: re_replace args: ["(?i)\\b(MULTI(?!.*(?:POLISH|ENGLISH|\\bPL\\b)))\\b", "{{ .Config.multilanguage }}"] - name: re_replace args: ["(?i)\\b(pl)\\b", "POLISH"] title: text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}" details: selector: details_link download: selector: download_link infohash: selector: info_hash 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)(Akcja i Przygoda)", "Akcja_i_Przygoda"] - name: re_replace args: ["(?i)(film TV)", "film_TV"] - name: replace args: [" & ", "_&_"] description: text: "{{ .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 2 days regardless of ratio # minimumratio: # text: 0.4 minimumseedtime: # 2 days (as seconds = 2 x 24 x 60 x 60) text: 172800 # json UNIT3D 9.0.3 (custom)