183 lines
5.5 KiB
YAML
183 lines
5.5 KiB
YAML
---
|
|
id: reelflix-api
|
|
replaces:
|
|
- legacyhd
|
|
- reelflix
|
|
name: ReelFLiX (API)
|
|
description: "ReelFLiX (HD4Free, LegacyHD) is a Private Torrent Tracker for HD MOVIES"
|
|
language: en-US
|
|
type: private
|
|
encoding: UTF-8
|
|
links:
|
|
- https://reelflix.cc/
|
|
legacylinks:
|
|
- https://legacyhd.org/
|
|
- https://reelflix.xyz/
|
|
|
|
caps:
|
|
categorymappings:
|
|
- {id: 1, cat: Movies, desc: "Movie"}
|
|
|
|
modes:
|
|
search: [q]
|
|
movie-search: [q, imdbid, tmdbid]
|
|
|
|
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://reelflix.cc/\" target=\"_blank\">ReelFlix</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: "To avoid your account being disabled, you must login at least once every 90 days OR have a .torrent actively announcing to the tracker. Please be aware! If you are using any form of automation and it has been 90+ days since your last login, and your client stops seeding, your account will be immediately disabled at midnight UTC if you don't login or resume seeding. There is no 90-day grace period if seeding stops; only logging into the site counts. It is always a good idea to periodically login to check the status of your account. After being disabled for inactivity you must make an attempt to recover your account within 90 days (180 days total) or it will be pruned from our system automatically. Pruned accounts CANNOT be enabled and you will have to reapply or find a new invite"
|
|
|
|
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://hdinnovations.github.io/UNIT3D/torrent_api.html
|
|
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
|
|
- path: api/torrents/filter
|
|
response:
|
|
type: json
|
|
noResultsMessage: "No Torrents Found"
|
|
|
|
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 }}"
|
|
"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
|
|
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)(Science Fiction)", "Science_Fiction"]
|
|
- name: re_replace
|
|
args: ["(?i)(TV Movie)", "TV_Movie"]
|
|
- name: replace
|
|
args: [" & ", "_&_"]
|
|
_internal:
|
|
selector: internal
|
|
case:
|
|
False: "{{ .False }}"
|
|
True: "{{ .True }}"
|
|
description:
|
|
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .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
|
|
downloadvolumefactor:
|
|
# 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
|
|
uploadvolumefactor:
|
|
# api returns False, True
|
|
selector: double_upload
|
|
case:
|
|
False: 1 # normal
|
|
True: 2 # double
|
|
minimumratio:
|
|
text: 0.8
|
|
# json UNIT3D 9.2.0
|