Skip to content

Commit c5f27cd

Browse files
committed
jackett indexers as of ba962a638260a2dcc6e1a47b07b476036391b8ab [2024-11-25T22:20:19Z]
1 parent 7b7097c commit c5f27cd

File tree

1 file changed

+191
-0
lines changed

1 file changed

+191
-0
lines changed

definitions/v10/blutopia-api.yml

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
---
2+
id: blutopia-api
3+
name: Blutopia (API)
4+
description: "Blutopia (BLU) is a Private Torrent Tracker for HD MOVIES / TV"
5+
language: en-US
6+
type: private
7+
encoding: UTF-8
8+
links:
9+
- https://blutopia.cc/
10+
legacylinks:
11+
- https://blutopia.xyz/
12+
13+
caps:
14+
categorymappings:
15+
- {id: 1, cat: Movies, desc: "Movie"}
16+
- {id: 2, cat: TV, desc: "TV Show"}
17+
- {id: 3, cat: Movies/Other, desc: "FANRES"}
18+
- {id: 5, cat: Movies/Other, desc: "Trailer"}
19+
20+
modes:
21+
search: [q]
22+
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
23+
movie-search: [q, imdbid, tmdbid]
24+
25+
settings:
26+
- name: apikey
27+
type: text
28+
label: APIKey
29+
- name: info_key
30+
type: info
31+
label: About your API key
32+
default: "Find or Generate a new API Token by accessing your <a href=\"https://blutopia.cc/\" target=\"_blank\">Blutopia</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
33+
- name: freeleech
34+
type: checkbox
35+
label: Search freeleech only
36+
default: false
37+
- name: single_file_release_use_filename
38+
type: checkbox
39+
label: Use filename as title for single file releases
40+
default: true
41+
- name: sort
42+
type: select
43+
label: Sort requested from site
44+
default: created_at
45+
options:
46+
created_at: created
47+
seeders: seeders
48+
size: size
49+
name: title
50+
- name: type
51+
type: select
52+
label: Order requested from site
53+
default: desc
54+
options:
55+
desc: desc
56+
asc: asc
57+
- name: info_activity
58+
type: info
59+
label: Account Inactivity
60+
default: "Your membership requires that you stay active at Blutopia. To not get disabled, you are required to login to the site at least once every 30 days or be actively seeding at least 1 torrent."
61+
62+
login:
63+
path: /api/torrents
64+
method: get
65+
error:
66+
- selector: a[href*="/login"]
67+
message:
68+
text: "The API key was not accepted by {{ .Config.sitelink }}."
69+
- selector: :root:contains("Account is Banned")
70+
71+
search:
72+
paths:
73+
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
74+
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
75+
- path: "/api/torrents/filter"
76+
response:
77+
type: json
78+
79+
headers:
80+
Authorization: ["Bearer {{ .Config.apikey }}"]
81+
82+
inputs:
83+
# 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
84+
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
85+
name: "{{ .Keywords }}"
86+
seasonNumber: "{{ .Query.Season }}"
87+
episodeNumber: "{{ .Query.Ep }}"
88+
imdbId: "{{ .Query.IMDBIDShort }}"
89+
tmdbId: "{{ .Query.TMDBID }}"
90+
tvdbId: "{{ .Query.TVDBID }}"
91+
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
92+
sortField: "{{ .Config.sort }}"
93+
sortDirection: "{{ .Config.type }}"
94+
perPage: 100
95+
96+
keywordsfilters:
97+
- name: re_replace
98+
args: ["\\.", " "]
99+
100+
rows:
101+
selector: data
102+
attribute: attributes
103+
104+
fields:
105+
category:
106+
selector: category_id
107+
title_optional:
108+
selector: name
109+
title_filename:
110+
selector: "files[0].name"
111+
optional: true
112+
files:
113+
selector: num_file
114+
title:
115+
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
116+
details:
117+
selector: details_link
118+
download:
119+
selector: download_link
120+
infohash:
121+
selector: info_hash
122+
poster:
123+
selector: meta.poster
124+
filters:
125+
- name: replace
126+
args: ["https://via.placeholder.com/90x135", ""]
127+
imdbid:
128+
selector: imdb_id
129+
tmdbid:
130+
selector: tmdb_id
131+
tvdbid:
132+
selector: tvdb_id
133+
genre:
134+
selector: meta.genres
135+
filters:
136+
- name: re_replace
137+
args: ["(?i)(Science Fiction)", "Science_Fiction"]
138+
- name: re_replace
139+
args: ["(?i)(TV Movie)", "TV_Movie"]
140+
- name: replace
141+
args: [" & ", "_&_"]
142+
description:
143+
text: "{{ .Result.genre }}"
144+
seeders:
145+
selector: seeders
146+
leechers:
147+
selector: leechers
148+
grabs:
149+
selector: times_completed
150+
date:
151+
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
152+
selector: created_at
153+
filters:
154+
- name: append
155+
args: " +00:00" # GMT
156+
- name: dateparse
157+
args: "MM/dd/yyyy HH:mm:ss zzz"
158+
size:
159+
selector: size
160+
_featured:
161+
selector: featured
162+
case:
163+
False: "{{ .False }}"
164+
True: "{{ .True }}"
165+
downloadvolumefactor_freeleech:
166+
# api returns 0%, 25%, 50%, 75%, 100%
167+
selector: freeleech
168+
case:
169+
0%: 1 # not free
170+
25%: 0.75
171+
50%: 0.5
172+
75%: 0.25
173+
100%: 0 # freeleech
174+
"*": 0 # catch errors
175+
downloadvolumefactor:
176+
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
177+
uploadvolumefactor_double_upload:
178+
# api returns False, True
179+
selector: double_upload
180+
case:
181+
False: 1 # normal
182+
True: 2 # double
183+
uploadvolumefactor:
184+
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
185+
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
186+
# minimumratio:
187+
# text: 0.4
188+
minimumseedtime:
189+
# 7 days (as seconds = 7 x 24 x 60 x 60)
190+
text: 604800
191+
# json UNIT3D 8.3.3

0 commit comments

Comments
 (0)