--- id: turkseed-api name: TurkSeed (API) description: "TurkSeed (Aturk) is a TURKISH Private Torrent Tracker for MOVIES / TV / GENERAL" language: tr-TR type: private encoding: UTF-8 certificates: - dbb741dab386cdc63ef4ad16bf2bc1ec96f830dc # CN=turkseed.com when using dot net domain links: - https://turkseed.com/ - https://turkseed.net/ caps: categorymappings: - {id: 1, cat: Movies/Foreign, desc: "Yabancı Film"} - {id: 2, cat: Movies, desc: "Yerli Film"} - {id: 24, cat: Movies, desc: "Film (Boxet)"} - {id: 6, cat: TV, desc: "Dizi / Show (Yerli)"} - {id: 5, cat: TV/Foreign, desc: "Dizi / Show (Yabancı)"} - {id: 18, cat: TV, desc: "Dizi (Boxet)"} - {id: 25, cat: TV/Documentary, desc: "Belgesel"} - {id: 28, cat: Console, desc: "GAME - OYUN"} - {id: 26, cat: Other, desc: "Other"} - {id: 27, cat: PC, desc: "PROGRAM"} - {id: 30, cat: Audio, desc: "Music"} modes: search: [q] tv-search: [q, season, ep, imdbid, tvdbid, tmdbid] movie-search: [q, imdbid, tmdbid] music-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 TurkSeed 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 - name: info_activity type: info label: Account Inactivity default: "Accounts that do not download a 15GB torrent from our site within a month will receive a warning (will be closed)! Accounts that do not upload (seed, share) 20gb on our site within a month will receive a warning (will be closed)! The account that receives three warnings will be automatically closed! No objections are accepted to the deletion of accounts that have not been on our site for six months and have not been active in any way!" 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: 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 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)(Bilim Kurgu)", "Bilim_Kurgu"] - name: re_replace args: ["(?i)(Pembe Dizi)", "Pembe_Dizi"] - name: re_replace args: ["(?i)(TV film)", "TV_film"] - name: re_replace args: ["(?i)(Vahşi Batı)", "Vahşi_Batı"] - 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.6 but torrents must be seeded for 2 days regardless of ratio # minimumratio: # text: 0.6 minimumseedtime: # 2 days (as seconds = 2 x 24 x 60 x 60) text: 172800 # json UNIT3D 8.3.6