Skip to content

Commit 1eea9eb

Browse files
update schema
1 parent 2ca270e commit 1eea9eb

File tree

5 files changed

+821
-0
lines changed

5 files changed

+821
-0
lines changed

definitions/v10/1337x.yml

+295
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,295 @@
1+
---
2+
id: 1337x
3+
name: 1337x
4+
description: "1337X is a Public torrent site that offers verified torrent downloads"
5+
language: en-US
6+
type: public
7+
encoding: UTF-8
8+
followredirect: true
9+
requestDelay: 2
10+
links:
11+
- https://1337x.to/
12+
- https://1337x.st/
13+
- https://x1337x.ws/
14+
- https://x1337x.eu/
15+
- https://x1337x.se/
16+
- https://1337x.unblockit.click/
17+
- https://1337x.mrunblock.guru/
18+
- https://1337x.unblockninja.com/
19+
legacylinks:
20+
- https://1337x.is/
21+
- https://1337x.nocensor.work/
22+
- https://1337x.unblockit.how/
23+
- https://1337x.unblockit.cam/
24+
- https://1337x.nocensor.biz/
25+
- https://1337x.gd/
26+
- https://1337x.unblockit.day/
27+
- https://1337x.unblockit.llc/
28+
- https://1337x.unblockit.blue/
29+
- https://1337x.unblockit.name/
30+
- https://1337x.nocensor.sbs/
31+
- https://1337x.unblockit.ist/
32+
- https://1337x.unblockit.bet/
33+
- https://1337x.unblockit.cat/
34+
- https://1337x.unblockit.nz/
35+
- https://1337x.nocensor.world/
36+
- https://1337x.unblockit.page/
37+
- https://1337x.unblockit.pet/
38+
- https://1337x.nocensor.lol/
39+
- https://1337x.unblockit.ink/
40+
- https://1337x.nocensor.art/
41+
- https://1337x.unblockit.bio/
42+
- https://1337x.unblockit.boo/
43+
44+
caps:
45+
categorymappings:
46+
# Anime
47+
- {id: 28, cat: TV/Anime, desc: "Anime/Anime"}
48+
- {id: 78, cat: TV/Anime, desc: "Anime/Dual Audio"}
49+
- {id: 79, cat: TV/Anime, desc: "Anime/Dubbed"}
50+
- {id: 80, cat: TV/Anime, desc: "Anime/Subbed"}
51+
- {id: 81, cat: TV/Anime, desc: "Anime/Raw"}
52+
# Audio
53+
- {id: 22, cat: Audio/MP3, desc: "Music/MP3"}
54+
- {id: 23, cat: Audio/Lossless, desc: "Music/Lossless"}
55+
- {id: 24, cat: Audio, desc: "Music/DVD"}
56+
- {id: 25, cat: Audio/Video, desc: "Music/Video"}
57+
- {id: 26, cat: Audio, desc: "Music/Radio"}
58+
- {id: 27, cat: Audio/Other, desc: "Music/Other"}
59+
- {id: 53, cat: Audio, desc: "Music/Album"}
60+
- {id: 58, cat: Audio, desc: "Music/Box set"}
61+
- {id: 59, cat: Audio, desc: "Music/Discography"}
62+
- {id: 60, cat: Audio, desc: "Music/Single"}
63+
- {id: 68, cat: Audio, desc: "Music/Concerts"}
64+
- {id: 69, cat: Audio, desc: "Music/AAC"}
65+
# Movies
66+
- {id: 1, cat: Movies/DVD, desc: "Movies/DVD"}
67+
- {id: 2, cat: Movies/SD, desc: "Movies/Divx/Xvid"}
68+
- {id: 3, cat: Movies, desc: "Movies/SVCD/VCD"}
69+
- {id: 4, cat: Movies/Foreign, desc: "Movies/Dubs/Dual Audio"}
70+
- {id: 42, cat: Movies/HD, desc: "Movies/HD"}
71+
- {id: 54, cat: Movies/HD, desc: "Movies/h.264/x264"}
72+
- {id: 55, cat: Movies, desc: "Movies/Mp4"}
73+
- {id: 66, cat: Movies/3D, desc: "Movies/3D"}
74+
- {id: 70, cat: Movies/HD, desc: "Movies/HEVC/x265"}
75+
- {id: 73, cat: Movies, desc: "Movies/Bollywood"}
76+
- {id: 76, cat: Movies/UHD, desc: "Movies/UHD"}
77+
# TV
78+
- {id: 5, cat: TV, desc: "TV/DVD"}
79+
- {id: 6, cat: TV, desc: "TV/Divx/Xvid"}
80+
- {id: 7, cat: TV, desc: "TV/SVCD/VCD"}
81+
- {id: 41, cat: TV/HD, desc: "TV/HD"}
82+
- {id: 71, cat: TV, desc: "TV/HEVC/x265"}
83+
- {id: 74, cat: TV, desc: "TV/Cartoons"}
84+
- {id: 75, cat: TV/SD, desc: "TV/SD"}
85+
- {id: 9, cat: TV/Documentary, desc: "TV/Documentary"}
86+
# Apps
87+
- {id: 18, cat: PC, desc: "Apps/PC Software"}
88+
- {id: 19, cat: PC/Mac, desc: "Apps/Mac"}
89+
- {id: 20, cat: PC, desc: "Apps/Linux"}
90+
- {id: 21, cat: PC, desc: "Apps/Other"}
91+
- {id: 56, cat: PC/Mobile-Android, desc: "Apps/Android"}
92+
- {id: 57, cat: PC/Mobile-iOS, desc: "Apps/iOS"}
93+
# Games
94+
- {id: 10, cat: PC/Games, desc: "Games/PC Game"}
95+
- {id: 11, cat: Console/PS3, desc: "Games/PS2"}
96+
- {id: 12, cat: Console/PSP, desc: "Games/PSP"}
97+
- {id: 13, cat: Console/XBox, desc: "Games/Xbox"}
98+
- {id: 14, cat: Console/XBox 360, desc: "Games/Xbox360"}
99+
- {id: 15, cat: Console/PS3, desc: "Games/PS1"}
100+
- {id: 16, cat: Console/Other, desc: "Games/Dreamcast"}
101+
- {id: 17, cat: PC/Mobile-Other, desc: "Games/Other"}
102+
- {id: 43, cat: Console/PS3, desc: "Games/PS3"}
103+
- {id: 44, cat: Console/Wii, desc: "Games/Wii"}
104+
- {id: 45, cat: Console/NDS, desc: "Games/DS"}
105+
- {id: 46, cat: Console/Other, desc: "Games/GameCube"}
106+
- {id: 72, cat: Console/3DS, desc: "Games/3DS"}
107+
- {id: 77, cat: Console/PS4, desc: "Games/PS4"}
108+
- {id: 82, cat: Console/Other, desc: "Games/Switch"}
109+
# XXX
110+
- {id: 48, cat: XXX/DVD, desc: "XXX/Video"}
111+
- {id: 49, cat: XXX/ImageSet, desc: "XXX/Picture"}
112+
- {id: 50, cat: XXX, desc: "XXX/Magazine"}
113+
- {id: 51, cat: XXX, desc: "XXX/Hentai"}
114+
- {id: 67, cat: XXX, desc: "XXX/Games"}
115+
# Other
116+
- {id: 33, cat: Other, desc: "Other/Emulation"}
117+
- {id: 34, cat: Books, desc: "Other/Tutorial"}
118+
- {id: 35, cat: Other, desc: "Other/Sounds"}
119+
- {id: 36, cat: Books/EBook, desc: "Other/E-books"}
120+
- {id: 37, cat: Other, desc: "Other/Images"}
121+
- {id: 38, cat: Other, desc: "Other/Mobile Phone"}
122+
- {id: 39, cat: Books/Comics, desc: "Other/Comics"}
123+
- {id: 40, cat: Other/Misc, desc: "Other/Other"}
124+
- {id: 47, cat: Other, desc: "Other/Nulled Script"}
125+
- {id: 52, cat: Audio/Audiobook, desc: "Other/Audiobook"}
126+
127+
modes:
128+
search: [q]
129+
tv-search: [q, season, ep]
130+
movie-search: [q]
131+
music-search: [q, album, artist]
132+
book-search: [q]
133+
allowrawsearch: true
134+
limitsDefault: 80
135+
limitsMax: 80
136+
137+
settings:
138+
- name: flaresolverr
139+
type: info
140+
label: FlareSolverr
141+
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires FlareSolverr to access it.
142+
- name: downloadlink
143+
type: select
144+
label: Download link
145+
default: "http://itorrents.org/"
146+
options:
147+
"http://itorrents.org/": iTorrents.org
148+
"magnet:": magnet
149+
- name: downloadlink2
150+
type: select
151+
label: Download link (fallback)
152+
default: "magnet:"
153+
options:
154+
"http://itorrents.org/": iTorrents.org
155+
"magnet:": magnet
156+
- name: info_download
157+
type: info
158+
label: About the Download links
159+
default: As the iTorrents .torrent download link on this site is known to fail from time to time, we suggest using the magnet link as a fallback. The BTCache and Torrage services are not supported because they require additional user interaction (a captcha for BTCache and a download button on Torrage.)
160+
- name: sort
161+
type: select
162+
label: Sort requested from site
163+
default: time
164+
options:
165+
time: created
166+
seeders: seeders
167+
size: size
168+
- name: type
169+
type: select
170+
label: Order requested from site
171+
default: desc
172+
options:
173+
desc: desc
174+
asc: asc
175+
176+
download:
177+
# the .torrent URL and magnet URI are on the details page
178+
selectors:
179+
- selector: ul li a[href^="{{ .Config.downloadlink }}"]
180+
attribute: href
181+
- selector: ul li a[href^="{{ .Config.downloadlink2 }}"]
182+
attribute: href
183+
184+
search:
185+
pageSize: 20
186+
187+
paths:
188+
# present first page of movies tv and music results if there are no search parms supplied (20 hits per page)
189+
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/Movies{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/1/"
190+
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/TV{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/{{ if or .Query.Album .Query.Artist .Keywords }}2{{ else }}1{{ end }}/"
191+
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/Music{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/{{ if or .Query.Album .Query.Artist .Keywords }}3{{ else }}1{{ end }}/"
192+
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/Other{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/{{ if or .Query.Album .Query.Artist .Keywords }}4{{ else }}1{{ end }}/"
193+
194+
rows:
195+
selector: tr:has(a[href^="/torrent/"])
196+
197+
fields:
198+
title_default:
199+
# the movies, tv and music pages abbreviate the title
200+
selector: td[class^="coll-1"] a[href^="/torrent/"]
201+
title_optional:
202+
# the movies, tv and music pages abbreviate the title so we process the href instead. #8137
203+
optional: true
204+
selector: td[class^="coll-1"] a[href^="/torrent/"]:contains("...")
205+
attribute: href
206+
filters:
207+
- name: urldecode
208+
- name: split
209+
args: ["/", 3]
210+
title:
211+
# title_optional can be empty so use the title_default instead #8586
212+
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
213+
filters:
214+
- name: re_replace
215+
args: ["-([\\w]+(?:[\\[\\]\\(\\)\\w]+)?)$", "~$1"]
216+
- name: replace
217+
args: ["-", " "]
218+
- name: re_replace
219+
args: ["~([\\w]+(?:[\\[\\]\\(\\)\\w]+)?)$", "-$1"]
220+
- name: replace
221+
args: ["\u000f", ""] # get rid of unwanted character #6582
222+
# cleanup for Sonarr
223+
- name: re_replace # EP 3 4 to E3-4
224+
args: ["(?i)\\sEP\\s(\\d{1,2})\\s(E?\\s?\\d{1,2})\\s", " E$1-$2 "]
225+
- name: re_replace # S02E04 05 to S02E04-05
226+
args: ["(?i)\\sS(\\d{1,2})\\s?E\\s?(\\d{1,2})\\s(E?\\s?\\d{1,2})\\s", " S$1E$2-$3 "]
227+
- name: re_replace
228+
args: ["(?i)AC3\\s?(\\d)\\s(\\d)", "AC3 $1.$2"]
229+
- name: re_replace
230+
args: ["(?i) DD\\s?(\\d)\\s(\\d)", " DD $1.$2"]
231+
- name: re_replace
232+
args: ["(?i) DDP\\s?(\\d)\\s(\\d)", " DDP $1.$2"]
233+
- name: re_replace
234+
args: ["(?i)\\sE\\s?AC3", " EAC3"]
235+
- name: re_replace
236+
args: ["(?i)WEB\\sDL", "WEB-DL"]
237+
- name: re_replace
238+
args: ["(?i)HDTVRIP", "HDTV"]
239+
category_sub:
240+
optional: true
241+
selector: td[class^="coll-1"] a[href^="/sub/"]
242+
attribute: href
243+
filters:
244+
# extract the third part
245+
- name: split
246+
args: ["/", 2]
247+
category:
248+
text: "{{ if .Result.category_sub }}{{ .Result.category_sub }}{{ else }}40{{ end }}"
249+
details:
250+
selector: td[class^="coll-1"] a[href^="/torrent/"]
251+
attribute: href
252+
download:
253+
# .torrent link is on the details page
254+
selector: td[class^="coll-1"] a[href^="/torrent/"]
255+
attribute: href
256+
# dates come in three flavours:
257+
date_year:
258+
# (within this year) 7am Sep. 14th
259+
optional: true
260+
selector: td[class^="coll-date"]:not(:contains(":")):not(:contains("'"))
261+
filters:
262+
- name: re_replace
263+
args: ["st|nd|rd|th", ""]
264+
- name: dateparse
265+
args: "htt MMM. d"
266+
date_years:
267+
# (more than a year ago) Apr. 18th '11
268+
optional: true
269+
selector: td[class^="coll-date"]:contains("'")
270+
filters:
271+
- name: replace
272+
args: ["'", ""]
273+
- name: re_replace
274+
args: ["st|nd|rd|th", ""]
275+
- name: dateparse
276+
args: "MMM. d yy"
277+
date_today:
278+
# (today) 12:25am
279+
optional: true
280+
selector: td[class^="coll-date"]:contains(":")
281+
filters:
282+
- name: fuzzytime
283+
date:
284+
text: "{{ if or .Result.date_year .Result.date_years .Result.date_today }}{{ or .Result.date_year .Result.date_years .Result.date_today }}{{ else }}now{{ end }}"
285+
size:
286+
selector: td[class^="coll-4"]
287+
seeders:
288+
selector: td[class^="coll-2"]
289+
leechers:
290+
selector: td[class^="coll-3"]
291+
downloadvolumefactor:
292+
text: 0
293+
uploadvolumefactor:
294+
text: 1
295+
# engine n/a

0 commit comments

Comments
 (0)