206 lines
6.3 KiB
YAML
206 lines
6.3 KiB
YAML
---
|
||
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 <a href=\"https://turkseed.com/\" target=\"_blank\">TurkSeed</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> 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
|