update
This commit is contained in:
parent
531b60f066
commit
5e5ae3b943
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<key id="539ccf7b-ace6-4362-be4a-10fa7bf749a6" version="1">
|
||||||
|
<creationDate>2025-11-14T17:35:48.7938942Z</creationDate>
|
||||||
|
<activationDate>2025-11-14T17:35:48.7838491Z</activationDate>
|
||||||
|
<expirationDate>2026-02-12T17:35:48.7838491Z</expirationDate>
|
||||||
|
<descriptor deserializerType="Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer, Microsoft.AspNetCore.DataProtection, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
|
||||||
|
<descriptor>
|
||||||
|
<encryption algorithm="AES_256_CBC" />
|
||||||
|
<validation algorithm="HMACSHA256" />
|
||||||
|
<masterKey p4:requiresEncryption="true" xmlns:p4="http://schemas.asp.net/2015/03/dataProtection">
|
||||||
|
<!-- Warning: the key below is in an unencrypted form. -->
|
||||||
|
<value>gNp1guKn4EAQCsDfxvmHzbPpsKkA+S/9kXh+VLhr8L3kZsvDbrSZbtL1NmfvrRQRdcxJ+HwPIQXn0C+yWnU1uA==</value>
|
||||||
|
</masterKey>
|
||||||
|
</descriptor>
|
||||||
|
</descriptor>
|
||||||
|
</key>
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<key id="91dfd536-d65c-4d5f-9dbb-b8465c03f698" version="1">
|
||||||
|
<creationDate>2025-08-15T00:45:53.1117316Z</creationDate>
|
||||||
|
<activationDate>2025-08-16T21:55:14.6409163Z</activationDate>
|
||||||
|
<expirationDate>2025-11-13T00:45:53.0957866Z</expirationDate>
|
||||||
|
<descriptor deserializerType="Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer, Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
|
||||||
|
<descriptor>
|
||||||
|
<encryption algorithm="AES_256_CBC" />
|
||||||
|
<validation algorithm="HMACSHA256" />
|
||||||
|
<masterKey p4:requiresEncryption="true" xmlns:p4="http://schemas.asp.net/2015/03/dataProtection">
|
||||||
|
<!-- Warning: the key below is in an unencrypted form. -->
|
||||||
|
<value>LXiAqDrsUeVWGCRl4NgHZXrZRDBDVvPFCpfYtj2K9+kcfEqgXUqm26PxhBNdBWahXbcrKRrTfrLIOyscnZBrtw==</value>
|
||||||
|
</masterKey>
|
||||||
|
</descriptor>
|
||||||
|
</descriptor>
|
||||||
|
</key>
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<key id="a9274913-ed11-4086-a4cb-1a6b4e0923ea" version="1">
|
||||||
|
<creationDate>2025-05-18T21:55:14.6634962Z</creationDate>
|
||||||
|
<activationDate>2025-05-18T21:55:14.6409163Z</activationDate>
|
||||||
|
<expirationDate>2025-08-16T21:55:14.6409163Z</expirationDate>
|
||||||
|
<descriptor deserializerType="Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer, Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
|
||||||
|
<descriptor>
|
||||||
|
<encryption algorithm="AES_256_CBC" />
|
||||||
|
<validation algorithm="HMACSHA256" />
|
||||||
|
<masterKey p4:requiresEncryption="true" xmlns:p4="http://schemas.asp.net/2015/03/dataProtection">
|
||||||
|
<!-- Warning: the key below is in an unencrypted form. -->
|
||||||
|
<value>bJodaNmpw/+USiqRz+28o0p87bSBAwNrF2jQUCWYQAVWmGBHXwJJNoBrpGoVEXM1FPN6nZz+3eWfsOUzZPEOKg==</value>
|
||||||
|
</masterKey>
|
||||||
|
</descriptor>
|
||||||
|
</descriptor>
|
||||||
|
</key>
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
|||||||
144
|
152
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
12566
Lidarr/config/logs/lidarr.15.txt
Normal file
12566
Lidarr/config/logs/lidarr.15.txt
Normal file
File diff suppressed because it is too large
Load Diff
12640
Lidarr/config/logs/lidarr.16.txt
Normal file
12640
Lidarr/config/logs/lidarr.16.txt
Normal file
File diff suppressed because it is too large
Load Diff
12576
Lidarr/config/logs/lidarr.17.txt
Normal file
12576
Lidarr/config/logs/lidarr.17.txt
Normal file
File diff suppressed because it is too large
Load Diff
12471
Lidarr/config/logs/lidarr.18.txt
Normal file
12471
Lidarr/config/logs/lidarr.18.txt
Normal file
File diff suppressed because it is too large
Load Diff
12539
Lidarr/config/logs/lidarr.19.txt
Normal file
12539
Lidarr/config/logs/lidarr.19.txt
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
12532
Lidarr/config/logs/lidarr.20.txt
Normal file
12532
Lidarr/config/logs/lidarr.20.txt
Normal file
File diff suppressed because it is too large
Load Diff
12647
Lidarr/config/logs/lidarr.21.txt
Normal file
12647
Lidarr/config/logs/lidarr.21.txt
Normal file
File diff suppressed because it is too large
Load Diff
12627
Lidarr/config/logs/lidarr.22.txt
Normal file
12627
Lidarr/config/logs/lidarr.22.txt
Normal file
File diff suppressed because it is too large
Load Diff
10939
Lidarr/config/logs/lidarr.23.txt
Normal file
10939
Lidarr/config/logs/lidarr.23.txt
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -6,12 +6,12 @@ language: en-US
|
|||||||
type: public
|
type: public
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
- https://0magnet.co/
|
|
||||||
- https://13mag.net/
|
- https://13mag.net/
|
||||||
- https://16mag.net/
|
- https://16mag.net/
|
||||||
legacylinks:
|
legacylinks:
|
||||||
- https://0magnet.com/
|
- https://0magnet.com/
|
||||||
- https://9mag.net/
|
- https://9mag.net/
|
||||||
|
- https://0magnet.co/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
categories:
|
categories:
|
||||||
@ -42,7 +42,7 @@ search:
|
|||||||
paths:
|
paths:
|
||||||
- path: search
|
- path: search
|
||||||
inputs:
|
inputs:
|
||||||
q: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
q: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}.{{ end }}"
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
selector: table > tbody > tr:has(td)
|
selector: table > tbody > tr:has(td)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
id: 1337x
|
id: 1337x
|
||||||
name: 1337x
|
name: 1337x
|
||||||
description: "1337X is a Public torrent site that offers verified torrent downloads"
|
description: "1337x is a Public torrent site that offers verified torrent downloads"
|
||||||
language: en-US
|
language: en-US
|
||||||
type: public
|
type: public
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
@ -12,14 +12,7 @@ links:
|
|||||||
- https://1337x.st/
|
- https://1337x.st/
|
||||||
- https://x1337x.ws/
|
- https://x1337x.ws/
|
||||||
- https://x1337x.eu/
|
- https://x1337x.eu/
|
||||||
- https://x1337x.se/
|
|
||||||
- https://x1337x.cc/
|
- https://x1337x.cc/
|
||||||
- https://1337x.unblockninja.com/
|
|
||||||
- https://1337x.ninjaproxy1.com/
|
|
||||||
- https://1337x.proxyninja.org/
|
|
||||||
- https://1337x.proxyninja.net/
|
|
||||||
- https://1337x.torrentbay.st/
|
|
||||||
- https://1337x.torrentsbay.org/
|
|
||||||
legacylinks:
|
legacylinks:
|
||||||
- https://1337x.is/
|
- https://1337x.is/
|
||||||
- https://1337x.gd/
|
- https://1337x.gd/
|
||||||
@ -27,6 +20,13 @@ legacylinks:
|
|||||||
- https://1337x.abcproxy.org/
|
- https://1337x.abcproxy.org/
|
||||||
- https://1337x.so/
|
- https://1337x.so/
|
||||||
- https://1337x.unblockit.download/
|
- https://1337x.unblockit.download/
|
||||||
|
- https://1337x.unblockninja.com/ # keyword search not working
|
||||||
|
- https://1337x.ninjaproxy1.com/ # keyword search not working
|
||||||
|
- https://1337x.proxyninja.org/ # keyword search not working
|
||||||
|
- https://1337x.proxyninja.net/ # keyword search not working
|
||||||
|
- https://1337x.torrentbay.st/ # keyword search not working
|
||||||
|
- https://1337x.torrentsbay.org/ # keyword search not working
|
||||||
|
- https://x1337x.se/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
@ -115,11 +115,18 @@ caps:
|
|||||||
search: [q]
|
search: [q]
|
||||||
tv-search: [q, season, ep]
|
tv-search: [q, season, ep]
|
||||||
movie-search: [q]
|
movie-search: [q]
|
||||||
music-search: [q, album, artist]
|
music-search: [q]
|
||||||
book-search: [q]
|
book-search: [q]
|
||||||
allowrawsearch: true
|
allowrawsearch: true
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
|
- name: uploader
|
||||||
|
type: text
|
||||||
|
label: Filter by Uploader
|
||||||
|
- name: info_uploader
|
||||||
|
type: info
|
||||||
|
label: About filtering by Uploader
|
||||||
|
default: "You can filter by Uploader by entering a Case Sensitive username, or leave empty to get all results.<br>Note: this is the username of the Uploader and not the Groupname that often show up at the end of 1337x titles, eg -GalaxyRG."
|
||||||
- name: info_flaresolverr
|
- name: info_flaresolverr
|
||||||
type: info_flaresolverr
|
type: info_flaresolverr
|
||||||
- name: downloadlink
|
- name: downloadlink
|
||||||
@ -140,6 +147,10 @@ settings:
|
|||||||
type: info
|
type: info
|
||||||
label: About the Download links
|
label: About the Download links
|
||||||
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.)
|
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.)
|
||||||
|
- name: disablesort
|
||||||
|
type: checkbox
|
||||||
|
label: Disable sorting - 1337x prevents sorting searches during high server load, which breaks the indexer when performing a keyword search - disable if you get zero results
|
||||||
|
default: false
|
||||||
- name: sort
|
- name: sort
|
||||||
type: select
|
type: select
|
||||||
label: Sort requested from site
|
label: Sort requested from site
|
||||||
@ -167,17 +178,17 @@ download:
|
|||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
# present first page of movies tv and music results if there are no search parms supplied (20 hits per page)
|
# present first page of movies tv and music results if there are no search parms supplied (20 hits per page)
|
||||||
- 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/"
|
- path: "{{ if and (.Keywords) (eq .Config.disablesort .False) }}sort-{{ else }}{{ end }}{{ if .Keywords }}search/{{ .Keywords }}{{ else }}cat/Movies{{ end }}{{ if and (.Keywords) (eq .Config.disablesort .False) }}/{{ .Config.sort }}/{{ .Config.type }}{{ else }}{{ end }}/1/"
|
||||||
- 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 }}/"
|
- path: "{{ if and (.Keywords) (eq .Config.disablesort .False) }}sort-{{ else }}{{ end }}{{ if .Keywords }}search/{{ .Keywords }}{{ else }}cat/TV{{ end }}{{ if and (.Keywords) (eq .Config.disablesort .False)) }}/{{ .Config.sort }}/{{ .Config.type }}{{ else }}{{ end }}/{{ if .Keywords }}2{{ else }}1{{ end }}/"
|
||||||
- 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 }}/"
|
- path: "{{ if and (.Keywords) (eq .Config.disablesort .False) }}sort-{{ else }}{{ end }}{{ if .Keywords }}search/{{ .Keywords }}{{ else }}cat/Music{{ end }}{{ if and (.Keywords) (eq .Config.disablesort .False) }}/{{ .Config.sort }}/{{ .Config.type }}{{ else }}{{ end }}/{{ if .Keywords }}3{{ else }}1{{ end }}/"
|
||||||
- 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 }}/"
|
- path: "{{ if and (.Keywords) (eq .Config.disablesort .False) }}sort-{{ else }}{{ end }}{{ if .Keywords }}search/{{ .Keywords }}{{ else }}cat/Other{{ end }}{{ if and (.Keywords) (eq .Config.disablesort .False) }}/{{ .Config.sort }}/{{ .Config.type }}{{ else }}{{ end }}/{{ if .Keywords }}4{{ else }}1{{ end }}/"
|
||||||
|
|
||||||
keywordsfilters:
|
keywordsfilters:
|
||||||
- name: re_replace # daily standard S2023 > 2023
|
- name: re_replace # daily standard S2023 > 2023
|
||||||
args: ["\\bS(20\\d{2})\\b", "$1"]
|
args: ["\\bS(20\\d{2})\\b", "$1"]
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
selector: tr:has(a[href^="/torrent/"])
|
selector: "tr:has(a[href^=\"/torrent/\"]){{ if .Config.uploader }}:has(td[class^=\"coll-5\"]:contains({{ .Config.uploader }})){{ else }}{{ end }}"
|
||||||
|
|
||||||
fields:
|
fields:
|
||||||
title_default:
|
title_default:
|
||||||
@ -273,6 +284,10 @@ search:
|
|||||||
selector: td[class^="coll-2"]
|
selector: td[class^="coll-2"]
|
||||||
leechers:
|
leechers:
|
||||||
selector: td[class^="coll-3"]
|
selector: td[class^="coll-3"]
|
||||||
|
_username:
|
||||||
|
selector: td[class^="coll-5"]
|
||||||
|
description:
|
||||||
|
text: "Uploader: {{ .Result._username }}"
|
||||||
downloadvolumefactor:
|
downloadvolumefactor:
|
||||||
text: 0
|
text: 0
|
||||||
uploadvolumefactor:
|
uploadvolumefactor:
|
||||||
|
|||||||
185
Prowlarr/config/Definitions/13city.yml
Normal file
185
Prowlarr/config/Definitions/13city.yml
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
---
|
||||||
|
id: 13city
|
||||||
|
name: 13City
|
||||||
|
description: "13City is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||||
|
language: zh-CN
|
||||||
|
type: private
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://13city.org/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
- {id: 401, cat: Movies, desc: "电影/Movies"}
|
||||||
|
- {id: 402, cat: TV, desc: "电视剧/TVSeries"}
|
||||||
|
- {id: 403, cat: TV, desc: "综艺/TV Shows"}
|
||||||
|
- {id: 405, cat: TV/Anime, desc: "动漫/Animations"}
|
||||||
|
- {id: 406, cat: Audio/Video, desc: "演唱会、MV/Music Videos"}
|
||||||
|
- {id: 408, cat: Audio, desc: "音乐/Music"}
|
||||||
|
- {id: 409, cat: Books/EBook, desc: "电子书/E-book"}
|
||||||
|
- {id: 409, cat: Audio/Audiobook, desc: "有声读物/A-book"}
|
||||||
|
- {id: 413, cat: TV/Documentary, desc: "纪录片/Documentary"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep, imdbid, doubanid]
|
||||||
|
movie-search: [q, imdbid, doubanid]
|
||||||
|
music-search: [q]
|
||||||
|
book-search: [q]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: cookie
|
||||||
|
type: text
|
||||||
|
label: Cookie
|
||||||
|
- name: info_cookie
|
||||||
|
type: info_cookie
|
||||||
|
- name: freeleech
|
||||||
|
type: checkbox
|
||||||
|
label: Search freeleech only
|
||||||
|
default: false
|
||||||
|
- name: sort
|
||||||
|
type: select
|
||||||
|
label: Sort requested from site
|
||||||
|
default: 4
|
||||||
|
options:
|
||||||
|
4: created
|
||||||
|
7: seeders
|
||||||
|
5: size
|
||||||
|
1: title
|
||||||
|
- name: type
|
||||||
|
type: select
|
||||||
|
label: Order requested from site
|
||||||
|
default: desc
|
||||||
|
options:
|
||||||
|
desc: desc
|
||||||
|
asc: asc
|
||||||
|
- name: info_tpp
|
||||||
|
type: info
|
||||||
|
label: Results Per Page
|
||||||
|
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||||
|
- name: info_activity
|
||||||
|
type: info
|
||||||
|
label: Account Inactivity
|
||||||
|
default: "Account retention rules:<ol><li>If there is no valid traffic within 7 days of registration (participation in the calculation of sharing rate), the account will be blocked</li><li>After the level is reduced to \"Peasant\", if the sharing rate is not improved within 7 days, the account will be blocked</li><li>Long-term non-login:<ul>- UnParked account: 60 consecutive days of non-login → banned</ul><ul>- Parked account: 180 consecutive days of non-login → banned</ul><ul>- Nexus Master and above levels are not subject to long-term non-login ban restrictions</ul></li></ol>"
|
||||||
|
|
||||||
|
login:
|
||||||
|
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
|
||||||
|
method: cookie
|
||||||
|
inputs:
|
||||||
|
cookie: "{{ .Config.cookie }}"
|
||||||
|
test:
|
||||||
|
path: index.php
|
||||||
|
selector: a[href="logout.php"]
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
- path: torrents.php
|
||||||
|
inputs:
|
||||||
|
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||||
|
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||||
|
# 0 incldead, 1 active, 2 dead
|
||||||
|
incldead: 0
|
||||||
|
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||||
|
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||||
|
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||||
|
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||||
|
# 0 AND, 2 exact
|
||||||
|
search_mode: 0
|
||||||
|
sort: "{{ .Config.sort }}"
|
||||||
|
type: "{{ .Config.type }}"
|
||||||
|
notnewword: 1
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
|
||||||
|
|
||||||
|
fields:
|
||||||
|
category:
|
||||||
|
selector: a[href^="?cat="]
|
||||||
|
attribute: href
|
||||||
|
filters:
|
||||||
|
- name: querystring
|
||||||
|
args: cat
|
||||||
|
title_default:
|
||||||
|
selector: a[href^="details.php?id="]
|
||||||
|
title:
|
||||||
|
selector: a[title][href^="details.php?id="]
|
||||||
|
attribute: title
|
||||||
|
optional: true
|
||||||
|
default: "{{ .Result.title_default }}"
|
||||||
|
details:
|
||||||
|
selector: a[href^="details.php?id="]
|
||||||
|
attribute: href
|
||||||
|
download:
|
||||||
|
selector: a[href^="download.php?id="]
|
||||||
|
attribute: href
|
||||||
|
poster:
|
||||||
|
selector: img[data-src]
|
||||||
|
attribute: data-src
|
||||||
|
imdbid:
|
||||||
|
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||||
|
selector: a[href*="imdb.com/title/tt"]
|
||||||
|
attribute: href
|
||||||
|
doubanid:
|
||||||
|
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||||
|
selector: a[href*="movie.douban.com/subject/"]
|
||||||
|
attribute: href
|
||||||
|
date_elapsed:
|
||||||
|
# time type: time elapsed (default)
|
||||||
|
selector: td.rowfollow:nth-child(4) > span[title]
|
||||||
|
attribute: title
|
||||||
|
optional: true
|
||||||
|
filters:
|
||||||
|
- name: append
|
||||||
|
args: " +08:00" # CST
|
||||||
|
- name: dateparse
|
||||||
|
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||||
|
date_added:
|
||||||
|
# time added
|
||||||
|
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||||
|
optional: true
|
||||||
|
filters:
|
||||||
|
- name: append
|
||||||
|
args: " +08:00" # CST
|
||||||
|
- name: dateparse
|
||||||
|
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||||
|
date:
|
||||||
|
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||||
|
size:
|
||||||
|
selector: td.rowfollow:nth-child(5)
|
||||||
|
optional: true
|
||||||
|
default: 512MB
|
||||||
|
seeders:
|
||||||
|
selector: td.rowfollow:nth-child(6)
|
||||||
|
optional: true
|
||||||
|
default: 0
|
||||||
|
leechers:
|
||||||
|
selector: td.rowfollow:nth-child(7)
|
||||||
|
optional: true
|
||||||
|
default: 0
|
||||||
|
grabs:
|
||||||
|
selector: td.rowfollow:nth-child(8)
|
||||||
|
optional: true
|
||||||
|
default: 0
|
||||||
|
downloadvolumefactor:
|
||||||
|
case:
|
||||||
|
img.pro_free: 0
|
||||||
|
img.pro_free2up: 0
|
||||||
|
img.pro_50pctdown: 0.5
|
||||||
|
img.pro_50pctdown2up: 0.5
|
||||||
|
img.pro_30pctdown: 0.3
|
||||||
|
"*": 1
|
||||||
|
uploadvolumefactor:
|
||||||
|
case:
|
||||||
|
img.pro_50pctdown2up: 2
|
||||||
|
img.pro_free2up: 2
|
||||||
|
img.pro_2up: 2
|
||||||
|
"*": 1
|
||||||
|
minimumratio:
|
||||||
|
text: 2.0
|
||||||
|
minimumseedtime:
|
||||||
|
# 1 day (as seconds = 24 x 60 x 60)
|
||||||
|
text: 86400
|
||||||
|
description:
|
||||||
|
selector: td.rowfollow:nth-child(2)
|
||||||
|
remove: a, b, font, img, span
|
||||||
|
# NexusPHP v1.9.11 2025-11-02
|
||||||
@ -221,4 +221,4 @@ search:
|
|||||||
description:
|
description:
|
||||||
selector: td:nth-child(2)
|
selector: td:nth-child(2)
|
||||||
remove: a, b, font, img, span
|
remove: a, b, font, img, span
|
||||||
# NexusPHP v1.8.13 2024-07-23
|
# NexusPHP v1.9.13 2025-12-28
|
||||||
|
|||||||
@ -18,9 +18,7 @@ caps:
|
|||||||
- {id: 406, cat: Audio/Video, desc: "Music Videos"}
|
- {id: 406, cat: Audio/Video, desc: "Music Videos"}
|
||||||
- {id: 407, cat: TV/Sport, desc: "Sports"}
|
- {id: 407, cat: TV/Sport, desc: "Sports"}
|
||||||
- {id: 408, cat: Audio, desc: "HQ Audio"}
|
- {id: 408, cat: Audio, desc: "HQ Audio"}
|
||||||
- {id: 410, cat: PC, desc: "Software"}
|
- {id: 409, cat: Other, desc: "Misc"}
|
||||||
- {id: 411, cat: Books, desc: "Documents"}
|
|
||||||
- {id: 412, cat: PC/Games, desc: "Games"}
|
|
||||||
|
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
@ -30,12 +28,11 @@ caps:
|
|||||||
book-search: [q]
|
book-search: [q]
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
- name: username
|
- name: cookie
|
||||||
type: text
|
type: text
|
||||||
label: Username
|
label: Cookie
|
||||||
- name: password
|
- name: info_cookie
|
||||||
type: password
|
type: info_cookie
|
||||||
label: Password
|
|
||||||
- name: freeleech
|
- name: freeleech
|
||||||
type: checkbox
|
type: checkbox
|
||||||
label: Search freeleech only
|
label: Search freeleech only
|
||||||
@ -68,23 +65,10 @@ settings:
|
|||||||
default: "Cherish your account. Inactive accounts will be deleted based on the following provisions:<ol><li>Nexus Master or later will not be deleted account.</li><li>Veteran User or higher will not be deleted if temporarily locked (at User Settings).</li><li>Temporarily locked accounts will be deleted if not logged in within 90 days.</li><li>Accounts that are not temporarily locked will be deleted if they do not log in within 60 days.</li><li>Accounts with no storage for uploads and downloads will be deleted if they do not log in within 30 days or have registered within 14 days.</li></ol>"
|
default: "Cherish your account. Inactive accounts will be deleted based on the following provisions:<ol><li>Nexus Master or later will not be deleted account.</li><li>Veteran User or higher will not be deleted if temporarily locked (at User Settings).</li><li>Temporarily locked accounts will be deleted if not logged in within 90 days.</li><li>Accounts that are not temporarily locked will be deleted if they do not log in within 60 days.</li><li>Accounts with no storage for uploads and downloads will be deleted if they do not log in within 30 days or have registered within 14 days.</li></ol>"
|
||||||
|
|
||||||
login:
|
login:
|
||||||
path: login.php
|
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
|
||||||
method: form
|
method: cookie
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
inputs:
|
||||||
username: "{{ .Config.username }}"
|
cookie: "{{ .Config.cookie }}"
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("Đăng nhập thất bại!")) # Login failed!
|
|
||||||
- selector: td.embedded:has(h2:contains("Thất bại")) # Failure (captcha)
|
|
||||||
test:
|
test:
|
||||||
path: index.php
|
path: index.php
|
||||||
selector: a[href="logout.php"]
|
selector: a[href="logout.php"]
|
||||||
@ -101,7 +85,7 @@ search:
|
|||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||||
# 0 AND, 1 OR, 2 exact
|
# 0 AND, 2 exact
|
||||||
search_mode: 0
|
search_mode: 0
|
||||||
sort: "{{ .Config.sort }}"
|
sort: "{{ .Config.sort }}"
|
||||||
type: "{{ .Config.type }}"
|
type: "{{ .Config.type }}"
|
||||||
@ -112,23 +96,23 @@ search:
|
|||||||
|
|
||||||
fields:
|
fields:
|
||||||
category:
|
category:
|
||||||
selector: a[href^="?cat="]
|
selector: a[href*="?cat="]
|
||||||
attribute: href
|
attribute: href
|
||||||
filters:
|
filters:
|
||||||
- name: querystring
|
- name: querystring
|
||||||
args: cat
|
args: cat
|
||||||
title_default:
|
title_default:
|
||||||
selector: a[href^="details.php?id="]
|
selector: a[href*="details.php?id="]
|
||||||
title:
|
title:
|
||||||
selector: a[title][href^="details.php?id="]
|
selector: a[title][href*="details.php?id="]
|
||||||
attribute: title
|
attribute: title
|
||||||
optional: true
|
optional: true
|
||||||
default: "{{ .Result.title_default }}"
|
default: "{{ .Result.title_default }}"
|
||||||
details:
|
details:
|
||||||
selector: a[href^="details.php?id="]
|
selector: a[href*="details.php?id="]
|
||||||
attribute: href
|
attribute: href
|
||||||
download:
|
download:
|
||||||
selector: a[href^="download.php?id="]
|
selector: a[href*="download.php?id="]
|
||||||
attribute: href
|
attribute: href
|
||||||
poster:
|
poster:
|
||||||
selector: img[data-src]
|
selector: img[data-src]
|
||||||
@ -138,7 +122,7 @@ search:
|
|||||||
attribute: href
|
attribute: href
|
||||||
date_elapsed:
|
date_elapsed:
|
||||||
# time type: time elapsed (default)
|
# time type: time elapsed (default)
|
||||||
selector: td.rowfollow:nth-child(5) > span[title]
|
selector: td.rowfollow:nth-child(4) > span[title]
|
||||||
attribute: title
|
attribute: title
|
||||||
optional: true
|
optional: true
|
||||||
filters:
|
filters:
|
||||||
@ -148,7 +132,7 @@ search:
|
|||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||||
date_added:
|
date_added:
|
||||||
# time added
|
# time added
|
||||||
selector: td.rowfollow:nth-child(5):not(:has(span))
|
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||||
optional: true
|
optional: true
|
||||||
filters:
|
filters:
|
||||||
- name: append
|
- name: append
|
||||||
@ -158,13 +142,13 @@ search:
|
|||||||
date:
|
date:
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||||
size:
|
size:
|
||||||
selector: td.rowfollow:nth-child(6)
|
selector: td.rowfollow:nth-child(5)
|
||||||
seeders:
|
seeders:
|
||||||
selector: td.rowfollow:nth-child(7)
|
selector: td.rowfollow:nth-child(6)
|
||||||
leechers:
|
leechers:
|
||||||
selector: td.rowfollow:nth-child(8)
|
selector: td.rowfollow:nth-child(7)
|
||||||
grabs:
|
grabs:
|
||||||
selector: td.rowfollow:nth-child(9)
|
selector: td.rowfollow:nth-child(8)
|
||||||
downloadvolumefactor:
|
downloadvolumefactor:
|
||||||
case:
|
case:
|
||||||
img.pro_free: 0
|
img.pro_free: 0
|
||||||
@ -180,9 +164,9 @@ search:
|
|||||||
img.pro_2up: 2
|
img.pro_2up: 2
|
||||||
"*": 1
|
"*": 1
|
||||||
minimumseedtime:
|
minimumseedtime:
|
||||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||||
text: 259200
|
text: 432000
|
||||||
description:
|
description:
|
||||||
selector: td:nth-child(3)
|
selector: td:nth-child(2)
|
||||||
remove: a, b, font, img, span
|
remove: a, b, font, img, span
|
||||||
# NexusPHP 3ChangTrai v3.0 2020-04-30
|
# NexusPHP v2.0 2026-01-01
|
||||||
|
|||||||
@ -18,8 +18,10 @@ caps:
|
|||||||
- {id: 17, cat: Movies/BluRay, desc: "Movies Blu-ray"}
|
- {id: 17, cat: Movies/BluRay, desc: "Movies Blu-ray"}
|
||||||
- {id: 27, cat: Movies/BluRay, desc: "Movies BD25 Encode"}
|
- {id: 27, cat: Movies/BluRay, desc: "Movies BD25 Encode"}
|
||||||
- {id: 33, cat: Movies/BluRay, desc: "Movies BD9 AVCHD"}
|
- {id: 33, cat: Movies/BluRay, desc: "Movies BD9 AVCHD"}
|
||||||
- {id: 22, cat: Movies, desc: "Movies 2D to 3D Conv"}
|
- {id: 22, cat: Movies, desc: "Movies Home Conversions"}
|
||||||
- {id: 32, cat: Movies, desc: "Bluray MKV Remux"}
|
- {id: 32, cat: Movies, desc: "Movies Bluray MKV Remux"}
|
||||||
|
- {id: 38, cat: Movies, desc: "Movies Studio Conversion"}
|
||||||
|
- {id: 39, cat: Movies/3D, desc: "Movies VR 360"}
|
||||||
- {id: 23, cat: Movies/3D, desc: "Movies Evo 3D"}
|
- {id: 23, cat: Movies/3D, desc: "Movies Evo 3D"}
|
||||||
- {id: 36, cat: Movies/UHD, desc: "Movies 4K UHD Bluray"}
|
- {id: 36, cat: Movies/UHD, desc: "Movies 4K UHD Bluray"}
|
||||||
- {id: 37, cat: Movies/UHD, desc: "Movies 4K UHD Encode"}
|
- {id: 37, cat: Movies/UHD, desc: "Movies 4K UHD Encode"}
|
||||||
@ -69,6 +71,10 @@ settings:
|
|||||||
type: info
|
type: info
|
||||||
label: Account Inactivity
|
label: Account Inactivity
|
||||||
default: "Inactivity grace period is three months which means that if you do not log in to the 3Dtorrents web site for 90 days, your account will be deleted. If you are VIP your will stay until the VIP period is over."
|
default: "Inactivity grace period is three months which means that if you do not log in to the 3Dtorrents web site for 90 days, your account will be deleted. If you are VIP your will stay until the VIP period is over."
|
||||||
|
- name: info_captcha
|
||||||
|
type: info
|
||||||
|
label: About Captcha
|
||||||
|
default: "Note that the captcha on the 3Dtorrents login page is Case Sensitive."
|
||||||
|
|
||||||
login:
|
login:
|
||||||
path: index.php?page=login
|
path: index.php?page=login
|
||||||
|
|||||||
@ -7,14 +7,26 @@ type: public
|
|||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
requestDelay: 2
|
requestDelay: 2
|
||||||
links:
|
links:
|
||||||
# Send any content to 52btbtbt@gmail.com to get the latest address. or visit https://521.52btbt.cyou/
|
# Send any content to 52btbtbt@gmail.com to get the latest address. or visit https://52btbt.icu/
|
||||||
- https://www.529053.xyz/
|
- https://www.529072.xyz/
|
||||||
- https://www.529055.xyz/
|
- https://www.529073.xyz/
|
||||||
legacylinks:
|
legacylinks:
|
||||||
- https://529050.xyz/
|
- https://www.529056.xyz/
|
||||||
- https://529048.xyz/
|
- https://www.529058.xyz/
|
||||||
- https://529049.xyz/
|
- https://www.52bt059.buzz/
|
||||||
- https://www.529052.xyz/
|
- https://www.529060.xyz/
|
||||||
|
- https://www.529061.xyz/
|
||||||
|
- https://www.529059.xyz/
|
||||||
|
- https://www.529062.xyz/
|
||||||
|
- https://www.529063.xyz/
|
||||||
|
- https://www.529064.xyz/
|
||||||
|
- https://www.529066.xyz/
|
||||||
|
- https://www.529065.xyz/
|
||||||
|
- https://www.529068.xyz/
|
||||||
|
- https://www.529069.xyz/
|
||||||
|
- https://www.529067.xyz/
|
||||||
|
- https://www.529070.xyz/
|
||||||
|
- https://www.529071.xyz/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
|
|||||||
@ -8,17 +8,20 @@ language: en-US
|
|||||||
type: private
|
type: private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
|
- https://usefultrash.net/
|
||||||
|
legacylinks:
|
||||||
- https://abtorrents.me/
|
- https://abtorrents.me/
|
||||||
|
- https://abtorrents.xyz/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
- {id: 10, cat: Audio/Audiobook, desc: "Action/Adventure"}
|
- {id: 10, cat: Audio/Audiobook, desc: "Action & Adventure"}
|
||||||
- {id: 80, cat: Audio/Audiobook, desc: "Adult/Erotica"}
|
- {id: 80, cat: Audio/Audiobook, desc: "Adult & Erotica"}
|
||||||
- {id: 20, cat: Audio/Audiobook, desc: "Biography/Memoirs"}
|
- {id: 20, cat: Audio/Audiobook, desc: "Biography & Memoirs"}
|
||||||
- {id: 30, cat: Audio/Audiobook, desc: "Business"}
|
- {id: 30, cat: Audio/Audiobook, desc: "Business"}
|
||||||
- {id: 40, cat: Audio/Audiobook, desc: "Childrens"}
|
- {id: 40, cat: Audio/Audiobook, desc: "Childrens"}
|
||||||
- {id: 70, cat: Audio/Audiobook, desc: "Computers"}
|
- {id: 70, cat: Audio/Audiobook, desc: "Computers"}
|
||||||
- {id: 260, cat: Audio/Audiobook, desc: "Crime/Thriller"}
|
- {id: 260, cat: Audio/Audiobook, desc: "Crime & Thriller"}
|
||||||
- {id: 90, cat: Audio/Audiobook, desc: "Fantasy-General"}
|
- {id: 90, cat: Audio/Audiobook, desc: "Fantasy-General"}
|
||||||
- {id: 100, cat: Audio/Audiobook, desc: "Fantasy-Youth"}
|
- {id: 100, cat: Audio/Audiobook, desc: "Fantasy-Youth"}
|
||||||
- {id: 130, cat: Audio/Audiobook, desc: "General Fiction"}
|
- {id: 130, cat: Audio/Audiobook, desc: "General Fiction"}
|
||||||
@ -29,57 +32,55 @@ caps:
|
|||||||
- {id: 170, cat: Audio/Audiobook, desc: "Literature"}
|
- {id: 170, cat: Audio/Audiobook, desc: "Literature"}
|
||||||
- {id: 175, cat: Audio/Audiobook, desc: "LitRPG"}
|
- {id: 175, cat: Audio/Audiobook, desc: "LitRPG"}
|
||||||
- {id: 180, cat: Audio/Audiobook, desc: "Mystery"}
|
- {id: 180, cat: Audio/Audiobook, desc: "Mystery"}
|
||||||
- {id: 190, cat: Audio/Audiobook, desc: "Non-Fiction"}
|
|
||||||
- {id: 215, cat: Audio/Audiobook, desc: "Paranormal Romance"}
|
- {id: 215, cat: Audio/Audiobook, desc: "Paranormal Romance"}
|
||||||
- {id: 200, cat: Audio/Audiobook, desc: "Radio Drama"}
|
- {id: 200, cat: Audio/Audiobook, desc: "Radio Drama"}
|
||||||
- {id: 205, cat: Audio/Audiobook, desc: "Reference/Educational"}
|
- {id: 205, cat: Audio/Audiobook, desc: "Reference & Educational"}
|
||||||
- {id: 207, cat: Audio/Audiobook, desc: "Religion and Spirituality"}
|
- {id: 207, cat: Audio/Audiobook, desc: "Religion & Spirituality"}
|
||||||
- {id: 210, cat: Audio/Audiobook, desc: "Romance"}
|
- {id: 210, cat: Audio/Audiobook, desc: "Romance"}
|
||||||
- {id: 240, cat: Audio/Audiobook, desc: "Sci-Fi Apocalypse"}
|
- {id: 240, cat: Audio/Audiobook, desc: "Sci-Fi Apocalypse"}
|
||||||
- {id: 220, cat: Audio/Audiobook, desc: "Science"}
|
- {id: 220, cat: Audio/Audiobook, desc: "Science"}
|
||||||
- {id: 230, cat: Audio/Audiobook, desc: "Science Fiction"}
|
- {id: 230, cat: Audio/Audiobook, desc: "Science Fiction"}
|
||||||
- {id: 250, cat: Audio/Audiobook, desc: "Self Improvement"}
|
- {id: 250, cat: Audio/Audiobook, desc: "Self Improvement"}
|
||||||
- {id: 265, cat: Audio/Audiobook, desc: "Sports/Fitness"}
|
- {id: 265, cat: Audio/Audiobook, desc: "Sports & Fitness"}
|
||||||
- {id: 270, cat: Audio/Audiobook, desc: "Suspense"}
|
- {id: 270, cat: Audio/Audiobook, desc: "Suspense"}
|
||||||
- {id: 280, cat: Audio/Audiobook, desc: "Talk Radio"}
|
- {id: 280, cat: Audio/Audiobook, desc: "Talk Radio"}
|
||||||
- {id: 285, cat: Audio/Audiobook, desc: "Travel"}
|
- {id: 285, cat: Audio/Audiobook, desc: "Travel"}
|
||||||
- {id: 290, cat: Audio/Audiobook, desc: "Urban Fantasy/Paranormal"}
|
- {id: 290, cat: Audio/Audiobook, desc: "Urban Fantasy & Paranormal"}
|
||||||
- {id: 300, cat: Audio/Audiobook, desc: "Western"}
|
- {id: 300, cat: Audio/Audiobook, desc: "Western"}
|
||||||
- {id: 310, cat: Audio/Audiobook, desc: "Young Adult"}
|
- {id: 310, cat: Audio/Audiobook, desc: "Young Adult"}
|
||||||
- {id: 400, cat: Books/EBook, desc: "[E] Action/Adventure"}
|
- {id: 400, cat: Books/EBook, desc: "[E] Action & Adventure"}
|
||||||
- {id: 410, cat: Books/EBook, desc: "[E] Adult/Erotica"}
|
- {id: 410, cat: Books/EBook, desc: "[E] Adult & Erotica"}
|
||||||
- {id: 420, cat: Books/EBook, desc: "[E] Arts & Crafts (Hobbies)"}
|
- {id: 420, cat: Books/EBook, desc: "[E] Arts & Crafts (Hobbies)"}
|
||||||
- {id: 430, cat: Books/EBook, desc: "[E] Biography/Memoirs"}
|
- {id: 430, cat: Books/EBook, desc: "[E] Biography & Memoirs"}
|
||||||
- {id: 435, cat: Books/EBook, desc: "[E] Business"}
|
- {id: 435, cat: Books/EBook, desc: "[E] Business"}
|
||||||
|
- {id: 720, cat: Books/EBook, desc: "[E] Childrens"}
|
||||||
- {id: 450, cat: Books/EBook, desc: "[E] Computer Learning"}
|
- {id: 450, cat: Books/EBook, desc: "[E] Computer Learning"}
|
||||||
- {id: 460, cat: Books/EBook, desc: "[E] Cookery"}
|
- {id: 460, cat: Books/EBook, desc: "[E] Cookery"}
|
||||||
- {id: 470, cat: Books/EBook, desc: "[E] Crime/Thriller"}
|
- {id: 470, cat: Books/EBook, desc: "[E] Crime & Thriller"}
|
||||||
- {id: 480, cat: Books/EBook, desc: "[E] Fantasy"}
|
- {id: 480, cat: Books/EBook, desc: "[E] Fantasy"}
|
||||||
- {id: 490, cat: Books/EBook, desc: "[E] Fantasy-Youth"}
|
- {id: 490, cat: Books/EBook, desc: "[E] Fantasy-Youth"}
|
||||||
- {id: 500, cat: Books/EBook, desc: "[E] General Fiction"}
|
- {id: 500, cat: Books/EBook, desc: "[E] General Fiction"}
|
||||||
- {id: 510, cat: Books/EBook, desc: "[E] Historical Fiction"}
|
- {id: 510, cat: Books/EBook, desc: "[E] Historical Fiction"}
|
||||||
- {id: 520, cat: Books/EBook, desc: "[E] History/Documentary"}
|
- {id: 520, cat: Books/EBook, desc: "[E] History & Documentary"}
|
||||||
- {id: 530, cat: Books/EBook, desc: "[E] Horror"}
|
- {id: 530, cat: Books/EBook, desc: "[E] Horror"}
|
||||||
- {id: 540, cat: Books/EBook, desc: "[E] Humor (Comedy)"}
|
- {id: 540, cat: Books/EBook, desc: "[E] Humor (Comedy)"}
|
||||||
- {id: 560, cat: Books/EBook, desc: "[E] Literary Fiction"}
|
- {id: 560, cat: Books/EBook, desc: "[E] Literary Fiction"}
|
||||||
- {id: 565, cat: Books/EBook, desc: "[E] LitRPG"}
|
- {id: 565, cat: Books/EBook, desc: "[E] LitRPG"}
|
||||||
- {id: 570, cat: Books/EBook, desc: "[E] Mystery"}
|
- {id: 570, cat: Books/EBook, desc: "[E] Mystery"}
|
||||||
- {id: 580, cat: Books/EBook, desc: "[E] Non-Fiction"}
|
|
||||||
- {id: 590, cat: Books/EBook, desc: "[E] Paranormal Romance"}
|
- {id: 590, cat: Books/EBook, desc: "[E] Paranormal Romance"}
|
||||||
- {id: 600, cat: Books/EBook, desc: "[E] Reference/Educational"}
|
- {id: 600, cat: Books/EBook, desc: "[E] Reference & Educational"}
|
||||||
- {id: 610, cat: Books/EBook, desc: "[E] Religion and Spirituality"}
|
- {id: 610, cat: Books/EBook, desc: "[E] Religion & Spirituality"}
|
||||||
- {id: 620, cat: Books/EBook, desc: "[E] Romance"}
|
- {id: 620, cat: Books/EBook, desc: "[E] Romance"}
|
||||||
- {id: 630, cat: Books/EBook, desc: "[E] Sci-Fi"}
|
- {id: 630, cat: Books/EBook, desc: "[E] Sci-Fi"}
|
||||||
- {id: 640, cat: Books/EBook, desc: "[E] Sci-Fi/Apocalyptic"}
|
- {id: 640, cat: Books/EBook, desc: "[E] Sci-Fi & Apocalyptic"}
|
||||||
- {id: 645, cat: Books/EBook, desc: "[E] Science"}
|
- {id: 645, cat: Books/EBook, desc: "[E] Science"}
|
||||||
- {id: 650, cat: Books/EBook, desc: "[E] Self-Help"}
|
- {id: 650, cat: Books/EBook, desc: "[E] Self-Help"}
|
||||||
- {id: 660, cat: Books/EBook, desc: "[E] Sports/Fitness"}
|
- {id: 660, cat: Books/EBook, desc: "[E] Sports & Fitness"}
|
||||||
- {id: 665, cat: Books/EBook, desc: "[E] Suspense"}
|
- {id: 665, cat: Books/EBook, desc: "[E] Suspense"}
|
||||||
- {id: 670, cat: Books/EBook, desc: "[E] Travel"}
|
- {id: 670, cat: Books/EBook, desc: "[E] Travel"}
|
||||||
- {id: 690, cat: Books/EBook, desc: "[E] Urban Fantasy/Paranormal"}
|
- {id: 690, cat: Books/EBook, desc: "[E] Urban Fantasy & Paranormal"}
|
||||||
- {id: 700, cat: Books/EBook, desc: "[E] Western"}
|
- {id: 700, cat: Books/EBook, desc: "[E] Western"}
|
||||||
- {id: 710, cat: Books/EBook, desc: "[E] Young Adult"}
|
- {id: 710, cat: Books/EBook, desc: "[E] Young Adult"}
|
||||||
- {id: 720, cat: Books/EBook, desc: "[E] Young Children"}
|
|
||||||
|
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
@ -127,11 +128,11 @@ search:
|
|||||||
only_free: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
|
only_free: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
selector: table.table-striped > tbody > tr:has(a[href^="download.php?torrent="])
|
selector: table.browse.table.striped > tbody > tr:has(a[href^="download.php?torrent="])
|
||||||
|
|
||||||
fields: # some users (rank specific?) have an extra column (td:nth-child(4)) with bookmark features
|
fields: # some users (rank specific?) have an extra column (td:nth-child(4)) with bookmark features
|
||||||
categorydesc:
|
categorydesc:
|
||||||
selector: div[data-tid] > img
|
selector: img[src^="./pic/caticons"]
|
||||||
attribute: alt
|
attribute: alt
|
||||||
title:
|
title:
|
||||||
selector: a[href^="details.php?id="]
|
selector: a[href^="details.php?id="]
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
id: acrossthetasman
|
id: acrossthetasman
|
||||||
name: Across The Tasman
|
name: Across The Tasman
|
||||||
description: "ATT is a torrent site for Rugby and other sports played in Australia"
|
description: "ATT is a Private torrent site for Rugby and other sports played in Australia"
|
||||||
language: en-AU
|
language: en-AU
|
||||||
type: private
|
type: private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
|
|||||||
@ -101,7 +101,7 @@ login:
|
|||||||
selector: td.text
|
selector: td.text
|
||||||
test:
|
test:
|
||||||
path: /
|
path: /
|
||||||
selector: a[href="/logout.php"]
|
selector: a[href*="/logout.php"]
|
||||||
|
|
||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
@ -120,6 +120,12 @@ search:
|
|||||||
- name: andmatch
|
- name: andmatch
|
||||||
|
|
||||||
fields:
|
fields:
|
||||||
|
category:
|
||||||
|
selector: a[href*="/browse.php?cat="]
|
||||||
|
attribute: href
|
||||||
|
filters:
|
||||||
|
- name: querystring
|
||||||
|
args: cat
|
||||||
title:
|
title:
|
||||||
selector: a.index
|
selector: a.index
|
||||||
attribute: href
|
attribute: href
|
||||||
@ -127,17 +133,11 @@ search:
|
|||||||
- name: querystring
|
- name: querystring
|
||||||
args: name
|
args: name
|
||||||
- name: urldecode
|
- name: urldecode
|
||||||
category:
|
|
||||||
selector: td a[href^="/browse.php?cat="]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
details:
|
details:
|
||||||
selector: a.index
|
selector: a[href*="/details.php?id="]
|
||||||
attribute: href
|
attribute: href
|
||||||
download:
|
download:
|
||||||
selector: a[href^="download.php?id="]
|
selector: a.index
|
||||||
attribute: href
|
attribute: href
|
||||||
filters:
|
filters:
|
||||||
- name: urldecode
|
- name: urldecode
|
||||||
@ -147,6 +147,8 @@ search:
|
|||||||
filters:
|
filters:
|
||||||
- name: regexp
|
- name: regexp
|
||||||
args: src=([^\s]+)
|
args: src=([^\s]+)
|
||||||
|
- name: replace
|
||||||
|
args: ["\"", ""]
|
||||||
imdbid:
|
imdbid:
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
selector: a[href*="imdb.com/title/tt"]
|
||||||
attribute: href
|
attribute: href
|
||||||
|
|||||||
@ -29,19 +29,11 @@ caps:
|
|||||||
music-search: [q]
|
music-search: [q]
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
- name: username
|
- name: cookie
|
||||||
type: text
|
type: text
|
||||||
label: Username
|
label: Cookie
|
||||||
- name: password
|
- name: info_cookie
|
||||||
type: password
|
type: info_cookie
|
||||||
label: Password
|
|
||||||
- name: 2facode
|
|
||||||
type: text
|
|
||||||
label: 2FA code
|
|
||||||
- name: info_2fa
|
|
||||||
type: info
|
|
||||||
label: "About 2FA code"
|
|
||||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the HDBao Web Site. Otherwise just leave it empty."
|
|
||||||
- name: freeleech
|
- name: freeleech
|
||||||
type: checkbox
|
type: checkbox
|
||||||
label: Search freeleech only
|
label: Search freeleech only
|
||||||
@ -69,27 +61,13 @@ settings:
|
|||||||
- name: info_activity
|
- name: info_activity
|
||||||
type: info
|
type: info
|
||||||
label: Account Inactivity
|
label: Account Inactivity
|
||||||
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Veteran User or above would never be deleted.</li><li>Elite User or above would never be deleted if parked (at User CP).</li><li>Parked accounts would be deleted if users have not logged in for more than 400 days in a row.</li><li>Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.</li></ol>"
|
default: "Cherish your user account. Inactive accounts will be deleted based on the following rules:<ol><li>Veteran User or above will never be deleted.</li><li>Elite User or above will never be deleted if parked (at User CP).</li><li>Parked accounts will be deleted if users have not logged in for more than 400 days in a row.</li><li>Unparked accounts will be deleted if users have not logged in for more than 150 days in a row.</li><li>Accounts with both uploaded and downloaded amount being 0 will be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
|
||||||
|
|
||||||
login:
|
login:
|
||||||
path: login.php
|
# using cookie method because site regularly disables login page for certain events during the year
|
||||||
method: form
|
method: cookie
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
captcha:
|
|
||||||
type: image
|
|
||||||
selector: img[alt="CAPTCHA"]
|
|
||||||
input: imagestring
|
|
||||||
inputs:
|
inputs:
|
||||||
secret: ""
|
cookie: "{{ .Config.cookie }}"
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
two_step_code: "{{ .Config.2facode }}"
|
|
||||||
logout: ""
|
|
||||||
securelogin: ""
|
|
||||||
ssl: yes
|
|
||||||
trackerssl: yes
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:contains("失败")
|
|
||||||
test:
|
test:
|
||||||
path: index.php
|
path: index.php
|
||||||
selector: a[href="logout.php"]
|
selector: a[href="logout.php"]
|
||||||
|
|||||||
@ -8,6 +8,8 @@ encoding: UTF-8
|
|||||||
requestDelay: 2
|
requestDelay: 2
|
||||||
links:
|
links:
|
||||||
- https://www.agsvpt.com/
|
- https://www.agsvpt.com/
|
||||||
|
- https://pt.agsvpt.cn/
|
||||||
|
legacylinks:
|
||||||
- https://abroad.agsvpt.com/
|
- https://abroad.agsvpt.com/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
|
|||||||
@ -57,6 +57,10 @@ settings:
|
|||||||
options:
|
options:
|
||||||
desc: desc
|
desc: desc
|
||||||
asc: asc
|
asc: asc
|
||||||
|
- name: info_results
|
||||||
|
type: info
|
||||||
|
label: Search results
|
||||||
|
default: "If you are getting the error <b>Found no results while trying to browse this tracker</b> then first access the site with your browser and check that your ratio is <b>not below 0.8</b>, otherwise the site will not return download links to the indexer. This does not apply to freeleech torrents."
|
||||||
|
|
||||||
login:
|
login:
|
||||||
# using cookie method because login page returns 0 bytes with a cookie flog=6
|
# using cookie method because login page returns 0 bytes with a cookie flog=6
|
||||||
|
|||||||
@ -5,6 +5,7 @@ description: "Aither is a Private Torrent Tracker for HD MOVIES / TV"
|
|||||||
language: en-US
|
language: en-US
|
||||||
type: private
|
type: private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
|
# status https://status.aither.cc/
|
||||||
links:
|
links:
|
||||||
- https://aither.cc/
|
- https://aither.cc/
|
||||||
|
|
||||||
@ -13,14 +14,13 @@ caps:
|
|||||||
- {id: 1, cat: Movies, desc: "Movie"}
|
- {id: 1, cat: Movies, desc: "Movie"}
|
||||||
- {id: 9, cat: TV/Sport, desc: "Sport"}
|
- {id: 9, cat: TV/Sport, desc: "Sport"}
|
||||||
- {id: 2, cat: TV, desc: "TV"}
|
- {id: 2, cat: TV, desc: "TV"}
|
||||||
- {id: 3, cat: Audio, desc: "Music"}
|
|
||||||
|
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||||
movie-search: [q, imdbid, tmdbid]
|
movie-search: [q, imdbid, tmdbid]
|
||||||
music-search: [q]
|
|
||||||
book-search: [q]
|
book-search: [q]
|
||||||
|
allowtvsearchimdb: true
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
- name: apikey
|
- name: apikey
|
||||||
@ -71,8 +71,8 @@ login:
|
|||||||
|
|
||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
|
||||||
- path: api/torrents/filter
|
- path: api/torrents/filter
|
||||||
response:
|
response:
|
||||||
type: json
|
type: json
|
||||||
@ -118,8 +118,6 @@ search:
|
|||||||
selector: details_link
|
selector: details_link
|
||||||
download:
|
download:
|
||||||
selector: download_link
|
selector: download_link
|
||||||
infohash:
|
|
||||||
selector: info_hash
|
|
||||||
poster:
|
poster:
|
||||||
selector: meta.poster
|
selector: meta.poster
|
||||||
filters:
|
filters:
|
||||||
@ -140,8 +138,13 @@ search:
|
|||||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||||
- name: replace
|
- name: replace
|
||||||
args: [" & ", "_&_"]
|
args: [" & ", "_&_"]
|
||||||
|
_internal:
|
||||||
|
selector: internal
|
||||||
|
case:
|
||||||
|
False: "{{ .False }}"
|
||||||
|
True: "{{ .True }}"
|
||||||
description:
|
description:
|
||||||
text: "{{ .Result.genre }}"
|
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
|
||||||
seeders:
|
seeders:
|
||||||
selector: seeders
|
selector: seeders
|
||||||
leechers:
|
leechers:
|
||||||
@ -189,4 +192,4 @@ search:
|
|||||||
minimumseedtime:
|
minimumseedtime:
|
||||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||||
text: 432000
|
text: 432000
|
||||||
# json UNIT3D 9.0.1
|
# json UNIT3D 9.2.0
|
||||||
|
|||||||
170
Prowlarr/config/Definitions/alingpt.yml
Normal file
170
Prowlarr/config/Definitions/alingpt.yml
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
---
|
||||||
|
id: alingpt
|
||||||
|
name: alingPT
|
||||||
|
description: "alingPT is a CHINESE Private Torrent Tracker for MOVIES / TV"
|
||||||
|
language: zh-CN
|
||||||
|
type: private
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://pt.aling.de/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
- {id: 405, cat: TV/Anime, desc: "Animations/动画"}
|
||||||
|
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
|
||||||
|
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||||
|
- {id: 404, cat: TV/Documentary, desc: "Documentary/纪录片"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep, imdbid]
|
||||||
|
movie-search: [q, imdbid]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: cookie
|
||||||
|
type: text
|
||||||
|
label: Cookie
|
||||||
|
- name: info_cookie
|
||||||
|
type: info_cookie
|
||||||
|
- name: freeleech
|
||||||
|
type: checkbox
|
||||||
|
label: Search freeleech only
|
||||||
|
default: false
|
||||||
|
- name: sort
|
||||||
|
type: select
|
||||||
|
label: Sort requested from site
|
||||||
|
default: 4
|
||||||
|
options:
|
||||||
|
4: created
|
||||||
|
7: seeders
|
||||||
|
5: size
|
||||||
|
1: title
|
||||||
|
- name: type
|
||||||
|
type: select
|
||||||
|
label: Order requested from site
|
||||||
|
default: desc
|
||||||
|
options:
|
||||||
|
desc: desc
|
||||||
|
asc: asc
|
||||||
|
- name: info_tpp
|
||||||
|
type: info
|
||||||
|
label: Results Per Page
|
||||||
|
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||||
|
- name: info_activity
|
||||||
|
type: info
|
||||||
|
label: Account Inactivity
|
||||||
|
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Accounts parked will not be deleted</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 200 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 60 consecutive days.</li></ol>"
|
||||||
|
|
||||||
|
login:
|
||||||
|
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
|
||||||
|
method: cookie
|
||||||
|
inputs:
|
||||||
|
cookie: "{{ .Config.cookie }}"
|
||||||
|
test:
|
||||||
|
path: index.php
|
||||||
|
selector: a[href="logout.php"]
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
- path: torrents.php
|
||||||
|
inputs:
|
||||||
|
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||||
|
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||||
|
# 0 incldead, 1 active, 2 dead
|
||||||
|
incldead: 0
|
||||||
|
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||||
|
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||||
|
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||||
|
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||||
|
# 0 AND, 2 exact
|
||||||
|
search_mode: 0
|
||||||
|
sort: "{{ .Config.sort }}"
|
||||||
|
type: "{{ .Config.type }}"
|
||||||
|
notnewword: 1
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||||
|
|
||||||
|
fields:
|
||||||
|
category:
|
||||||
|
selector: a[href^="?cat="]
|
||||||
|
attribute: href
|
||||||
|
filters:
|
||||||
|
- name: querystring
|
||||||
|
args: cat
|
||||||
|
title_default:
|
||||||
|
selector: a[href^="details.php?id="]
|
||||||
|
title:
|
||||||
|
selector: a[title][href^="details.php?id="]
|
||||||
|
attribute: title
|
||||||
|
optional: true
|
||||||
|
default: "{{ .Result.title_default }}"
|
||||||
|
details:
|
||||||
|
selector: a[href^="details.php?id="]
|
||||||
|
attribute: href
|
||||||
|
download:
|
||||||
|
selector: a[href^="download.php?id="]
|
||||||
|
attribute: href
|
||||||
|
poster:
|
||||||
|
selector: img[data-src]
|
||||||
|
attribute: data-src
|
||||||
|
imdbid:
|
||||||
|
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||||
|
selector: a[href*="imdb.com/title/tt"]
|
||||||
|
attribute: href
|
||||||
|
doubanid:
|
||||||
|
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||||
|
selector: a[href*="movie.douban.com/subject/"]
|
||||||
|
attribute: href
|
||||||
|
date_elapsed:
|
||||||
|
# time type: time elapsed (default)
|
||||||
|
selector: td.rowfollow:nth-child(4) > span[title]
|
||||||
|
attribute: title
|
||||||
|
optional: true
|
||||||
|
filters:
|
||||||
|
- name: append
|
||||||
|
args: " +08:00" # CST
|
||||||
|
- name: dateparse
|
||||||
|
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||||
|
date_added:
|
||||||
|
# time added
|
||||||
|
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||||
|
optional: true
|
||||||
|
filters:
|
||||||
|
- name: append
|
||||||
|
args: " +08:00" # CST
|
||||||
|
- name: dateparse
|
||||||
|
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||||
|
date:
|
||||||
|
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||||
|
size:
|
||||||
|
selector: td.rowfollow:nth-child(5)
|
||||||
|
seeders:
|
||||||
|
selector: td.rowfollow.rowfollow:nth-child(6)
|
||||||
|
leechers:
|
||||||
|
selector: td.rowfollow:nth-child(7)
|
||||||
|
grabs:
|
||||||
|
selector: td.rowfollow:nth-child(8)
|
||||||
|
downloadvolumefactor:
|
||||||
|
case:
|
||||||
|
img.pro_free: 0
|
||||||
|
img.pro_free2up: 0
|
||||||
|
img.pro_50pctdown: 0.5
|
||||||
|
img.pro_50pctdown2up: 0.5
|
||||||
|
img.pro_30pctdown: 0.3
|
||||||
|
"*": 1
|
||||||
|
uploadvolumefactor:
|
||||||
|
case:
|
||||||
|
img.pro_50pctdown2up: 2
|
||||||
|
img.pro_free2up: 2
|
||||||
|
img.pro_2up: 2
|
||||||
|
"*": 1
|
||||||
|
minimumratio:
|
||||||
|
text: 2.0
|
||||||
|
minimumseedtime:
|
||||||
|
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||||
|
text: 172800
|
||||||
|
description:
|
||||||
|
selector: td.rowfollow:nth-child(2)
|
||||||
|
remove: a, b, font, img, span
|
||||||
|
# NexusPHP v1.9.4 2025-06-01
|
||||||
@ -152,7 +152,7 @@ search:
|
|||||||
keywordsfilters:
|
keywordsfilters:
|
||||||
# drop the year from searches since site titles do not include year
|
# drop the year from searches since site titles do not include year
|
||||||
- name: re_replace
|
- name: re_replace
|
||||||
args: ["(19|20[0-9]{2})", ""]
|
args: ["(\\s*\\b((19|20)\\d{2})\\b)", ""]
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
selector: "div#fancy-list-group ul.list-group li.list-group-item{{ if .Config.freeleech }}:has(span.badge-success:contains(\"FREE\")){{ else }}{{ end }}"
|
selector: "div#fancy-list-group ul.list-group li.list-group-item{{ if .Config.freeleech }}:has(span.badge-success:contains(\"FREE\")){{ else }}{{ end }}"
|
||||||
|
|||||||
@ -75,8 +75,8 @@ login:
|
|||||||
|
|
||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
|
||||||
- path: api/torrents/filter
|
- path: api/torrents/filter
|
||||||
response:
|
response:
|
||||||
type: json
|
type: json
|
||||||
@ -144,8 +144,13 @@ search:
|
|||||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||||
- name: replace
|
- name: replace
|
||||||
args: [" & ", "_&_"]
|
args: [" & ", "_&_"]
|
||||||
|
_internal:
|
||||||
|
selector: internal
|
||||||
|
case:
|
||||||
|
False: "{{ .False }}"
|
||||||
|
True: "{{ .True }}"
|
||||||
description:
|
description:
|
||||||
text: "{{ .Result.genre }}"
|
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
|
||||||
seeders:
|
seeders:
|
||||||
selector: seeders
|
selector: seeders
|
||||||
leechers:
|
leechers:
|
||||||
@ -193,4 +198,4 @@ search:
|
|||||||
minimumseedtime:
|
minimumseedtime:
|
||||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||||
text: 604800
|
text: 604800
|
||||||
# json UNIT3D 8.3.4
|
# json UNIT3D 9.1.5
|
||||||
|
|||||||
122
Prowlarr/config/Definitions/animenosekai.yml
Normal file
122
Prowlarr/config/Definitions/animenosekai.yml
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
---
|
||||||
|
id: animenosekai
|
||||||
|
name: Anime No Sekai
|
||||||
|
description: "Anime No Sekai (ANSK) is a BRAZILIAN Private Torrent Tracker for ANIME"
|
||||||
|
language: pt-BR
|
||||||
|
type: private
|
||||||
|
encoding: windows-1252
|
||||||
|
links:
|
||||||
|
- https://www.ansktracker.com/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
- {id: 3, cat: Movies, desc: "Anime Movie"}
|
||||||
|
- {id: 2, cat: TV/Anime, desc: "Anime OVA"}
|
||||||
|
- {id: 1, cat: TV/Anime, desc: "Anime TV"}
|
||||||
|
- {id: 4, cat: TV, desc: "Doramas"}
|
||||||
|
- {id: 5, cat: Audio, desc: "Músicas"}
|
||||||
|
- {id: 6, cat: Other, desc: "Outros"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep]
|
||||||
|
movie-search: [q]
|
||||||
|
music-search: [q]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: username
|
||||||
|
type: text
|
||||||
|
label: Username
|
||||||
|
- name: password
|
||||||
|
type: password
|
||||||
|
label: Password
|
||||||
|
- name: freeleech
|
||||||
|
type: checkbox
|
||||||
|
label: Search freeleech only
|
||||||
|
default: false
|
||||||
|
- name: sort
|
||||||
|
type: select
|
||||||
|
label: Sort requested from site
|
||||||
|
default: 5
|
||||||
|
options:
|
||||||
|
5: created
|
||||||
|
1: seeders
|
||||||
|
3: size
|
||||||
|
6: title
|
||||||
|
|
||||||
|
login:
|
||||||
|
path: takelogin.php
|
||||||
|
method: post
|
||||||
|
inputs:
|
||||||
|
username: "{{ .Config.username }}"
|
||||||
|
password: "{{ .Config.password }}"
|
||||||
|
logout: no
|
||||||
|
error:
|
||||||
|
- selector: table:contains("Aviso!")
|
||||||
|
test:
|
||||||
|
path: index.php
|
||||||
|
selector: a[href$="/logout.php"]
|
||||||
|
|
||||||
|
download:
|
||||||
|
selectors:
|
||||||
|
- selector: a[href^="download.php/"]
|
||||||
|
attribute: href
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
- path: browse.php
|
||||||
|
inputs:
|
||||||
|
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||||
|
search: "{{ .Keywords }}"
|
||||||
|
freeleech: "{{ if .Config.freeleech }}1{{else}}{{end}}"
|
||||||
|
order: "{{ .Config.sort }}"
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: tr#trTorrentRow
|
||||||
|
|
||||||
|
fields:
|
||||||
|
categorydesc:
|
||||||
|
selector: td:nth-child(1) img
|
||||||
|
attribute: alt
|
||||||
|
title:
|
||||||
|
selector: a[href*="details.php?id="]
|
||||||
|
details:
|
||||||
|
selector: a[href*="details.php?id="]
|
||||||
|
attribute: href
|
||||||
|
download:
|
||||||
|
selector: a[href*="details.php?id="]
|
||||||
|
attribute: href
|
||||||
|
date:
|
||||||
|
selector: td:nth-child(6)
|
||||||
|
filters:
|
||||||
|
- name: dateparse
|
||||||
|
args: "dd/MM/yyyy"
|
||||||
|
size:
|
||||||
|
selector: td:nth-child(7)
|
||||||
|
files:
|
||||||
|
selector: td:nth-child(4)
|
||||||
|
grabs:
|
||||||
|
selector: td:nth-child(8)
|
||||||
|
seeders:
|
||||||
|
selector: td:nth-child(9)
|
||||||
|
leechers:
|
||||||
|
selector: td:nth-child(10)
|
||||||
|
downloadvolumefactor:
|
||||||
|
case:
|
||||||
|
font[color="green"]:contains("[FL]"): 0
|
||||||
|
"*": 1
|
||||||
|
uploadvolumefactor_custom:
|
||||||
|
selector: font[color="red"]:contains("[x")
|
||||||
|
optional: true
|
||||||
|
filters:
|
||||||
|
- name: replace
|
||||||
|
args: ["x[", ""]
|
||||||
|
- name: replace
|
||||||
|
args: ["]", ""]
|
||||||
|
uploadvolumefactor:
|
||||||
|
case:
|
||||||
|
font[color="red"]:contains("[x"): "{{ .Result.uploadvolumefactor_custom }}"
|
||||||
|
"*": 1
|
||||||
|
minimumratio:
|
||||||
|
text: 0.25
|
||||||
|
# engine n/a
|
||||||
@ -28,8 +28,8 @@ caps:
|
|||||||
|
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
tv-search: [q, season, ep, tvdbid, tmdbid]
|
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||||
movie-search: [q, tmdbid]
|
movie-search: [q, imdbid, tmdbid]
|
||||||
music-search: [q]
|
music-search: [q]
|
||||||
book-search: [q]
|
book-search: [q]
|
||||||
|
|
||||||
@ -45,6 +45,10 @@ settings:
|
|||||||
type: checkbox
|
type: checkbox
|
||||||
label: Search freeleech only
|
label: Search freeleech only
|
||||||
default: false
|
default: false
|
||||||
|
- name: tmdbidonly
|
||||||
|
type: checkbox
|
||||||
|
label: Disable IMDB and TVDB ID search (only support TMDB ID) to potentially improve Sonarr and Radarr results
|
||||||
|
default: false
|
||||||
- name: single_file_release_use_filename
|
- name: single_file_release_use_filename
|
||||||
type: checkbox
|
type: checkbox
|
||||||
label: Use filename as title for single file releases
|
label: Use filename as title for single file releases
|
||||||
@ -82,8 +86,8 @@ login:
|
|||||||
|
|
||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
|
||||||
- path: api/torrents/filter
|
- path: api/torrents/filter
|
||||||
response:
|
response:
|
||||||
type: json
|
type: json
|
||||||
@ -95,11 +99,11 @@ search:
|
|||||||
# 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
|
# 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}}"
|
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||||
name: "{{ .Keywords }}"
|
name: "{{ .Keywords }}"
|
||||||
# seasonNumber: "{{ .Query.Season }}" # disabled due to Prowlarr/Indexers#486
|
# seasonNumber: "{{ .Query.Season }}" # not supported
|
||||||
# episodeNumber: "{{ .Query.Ep }}" # disabled due to Prowlarr/Indexers#486
|
# episodeNumber: "{{ .Query.Ep }}" # not supported
|
||||||
# imdbId: "{{ .Query.IMDBIDShort }}" # disabled due to #14776
|
imdbId: "{{ if .Config.tmdbidonly }}{{ else }}{{ .Query.IMDBIDShort }}{{ end }}"
|
||||||
tmdbId: "{{ .Query.TMDBID }}"
|
tmdbId: "{{ .Query.TMDBID }}"
|
||||||
tvdbId: "{{ .Query.TVDBID }}"
|
tvdbId: "{{ if .Config.tmdbidonly }}{{ else }}{{ .Query.TVDBID }}{{ end }}"
|
||||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||||
sortField: "{{ .Config.sort }}"
|
sortField: "{{ .Config.sort }}"
|
||||||
sortDirection: "{{ .Config.type }}"
|
sortDirection: "{{ .Config.type }}"
|
||||||
@ -149,8 +153,13 @@ search:
|
|||||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||||
- name: replace
|
- name: replace
|
||||||
args: [" & ", "_&_"]
|
args: [" & ", "_&_"]
|
||||||
|
_internal:
|
||||||
|
selector: internal
|
||||||
|
case:
|
||||||
|
0: "{{ .False }}"
|
||||||
|
1: "{{ .True }}"
|
||||||
description:
|
description:
|
||||||
text: "{{ .Result.genre }}"
|
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
|
||||||
seeders:
|
seeders:
|
||||||
selector: seeders
|
selector: seeders
|
||||||
leechers:
|
leechers:
|
||||||
|
|||||||
@ -84,6 +84,8 @@ search:
|
|||||||
filters:
|
filters:
|
||||||
- name: split
|
- name: split
|
||||||
args: [",", -1]
|
args: [",", -1]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["1\\d{5}", "2000"]
|
||||||
year:
|
year:
|
||||||
selector: year
|
selector: year
|
||||||
optional: true
|
optional: true
|
||||||
|
|||||||
202
Prowlarr/config/Definitions/arabicsource-api.yml
Normal file
202
Prowlarr/config/Definitions/arabicsource-api.yml
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
---
|
||||||
|
id: arabicsource-api
|
||||||
|
name: ArabicSource (API)
|
||||||
|
description: "ArabicSource is an ARABIC Private Torrent Tracker for MOVIES / TV"
|
||||||
|
language: ar-SA
|
||||||
|
type: private
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://arabicsource.net/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
- {id: 1, cat: Movies, desc: "أفلام رسوم مدبلجة (Dubbed Animated Films)"}
|
||||||
|
- {id: 2, cat: Movies, desc: "أفلام الرسوم المدبلجة (Subtitled Animated Films)"}
|
||||||
|
- {id: 3, cat: Movies, desc: "الأفلام العربية (Arabic Films)"}
|
||||||
|
- {id: 4, cat: Movies, desc: "أفلام أجنبية (Foreign Films)"}
|
||||||
|
- {id: 5, cat: TV, desc: "مسلسلات رسوم مدبلجة (Dubbed Animated Series)"}
|
||||||
|
- {id: 6, cat: TV, desc: "مسلسلات رسوم مترجمة (Subtitled Animated Series)"}
|
||||||
|
- {id: 7, cat: TV, desc: "مسلسلات عربية (Arabic Series)"}
|
||||||
|
- {id: 8, cat: TV, desc: "مسرحيات (Plays)"}
|
||||||
|
- {id: 10, cat: Other, desc: "إسلاميات (Islamic Content)"}
|
||||||
|
- {id: 11, cat: Other, desc: "رمضانيات (Ramadan Content)"}
|
||||||
|
- {id: 12, cat: Other, desc: "منوعات (Variety)"}
|
||||||
|
- {id: 13, cat: Audio, desc: "صوتيات (Audio)"}
|
||||||
|
- {id: 14, cat: Movies, desc: "كرتون كلاسيك (Classic Cartoons)"}
|
||||||
|
- {id: 15, cat: Other, desc: "تورنت خام (Raw Torrents)"}
|
||||||
|
- {id: 20, cat: TV/Documentary, desc: "مسلسلات وثائقيات (Documentary Series)"}
|
||||||
|
- {id: 9, cat: Movies, desc: "أفلام وثائقيات (Documentary Films)"}
|
||||||
|
- {id: 19, cat: Other, desc: "تورينتات ضائعة (Lost Torrents)"}
|
||||||
|
|
||||||
|
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://arabicsource.net/\" target=\"_blank\">ArabicSource</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: "The maximum number of days you can stay away from the site is 40 days, and only if you suspend the account, you will get a grace period of 180 days, but you must contact the administration in advance so that this is added to your personal account and you are not exposed to expulsion."
|
||||||
|
|
||||||
|
login:
|
||||||
|
path: /api/torrents
|
||||||
|
method: get
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
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
|
||||||
|
_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 }}"
|
||||||
|
minimumratio:
|
||||||
|
text: 1.05
|
||||||
|
# json UNIT3D 9.2.0
|
||||||
@ -51,7 +51,6 @@ caps:
|
|||||||
- {id: 89, cat: TV, desc: "مسلسلات عربية كامله (Full Arabic Series)"}
|
- {id: 89, cat: TV, desc: "مسلسلات عربية كامله (Full Arabic Series)"}
|
||||||
- {id: 52, cat: TV, desc: "مسرحيات (Plays)"}
|
- {id: 52, cat: TV, desc: "مسرحيات (Plays)"}
|
||||||
- {id: 71, cat: TV, desc: "مسلسلات مدبلجه عربي (Arabic Dubbed Series)"}
|
- {id: 71, cat: TV, desc: "مسلسلات مدبلجه عربي (Arabic Dubbed Series)"}
|
||||||
- {id: 117, cat: TV, desc: "رمضان 2025 (Ramadan 2025)"}
|
|
||||||
- {id: 90, cat: TV, desc: "برامج ومسابقات (Shows)"}
|
- {id: 90, cat: TV, desc: "برامج ومسابقات (Shows)"}
|
||||||
# المرئيات الاجنبية Foreign Movies
|
# المرئيات الاجنبية Foreign Movies
|
||||||
- {id: 92, cat: TV/Foreign, desc: "تعليمي (Educational)"}
|
- {id: 92, cat: TV/Foreign, desc: "تعليمي (Educational)"}
|
||||||
@ -116,7 +115,8 @@ search:
|
|||||||
inputs:
|
inputs:
|
||||||
page: torrents
|
page: torrents
|
||||||
search: "{{ .Keywords }}"
|
search: "{{ .Keywords }}"
|
||||||
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{ else }}0{{ end }}"
|
# does not support multi categories, default to All
|
||||||
|
category: 0
|
||||||
# 0 all 1 activeonly 2 deadonly
|
# 0 all 1 activeonly 2 deadonly
|
||||||
active: 0
|
active: 0
|
||||||
# 0 all 1 internal 2 external
|
# 0 all 1 internal 2 external
|
||||||
@ -124,9 +124,23 @@ search:
|
|||||||
order: "{{ .Config.sort }}"
|
order: "{{ .Config.sort }}"
|
||||||
by: "{{ .Config.type }}"
|
by: "{{ .Config.type }}"
|
||||||
# does not support imdbid search or provide imdb link in results
|
# does not support imdbid search or provide imdb link in results
|
||||||
|
keywordsfilters:
|
||||||
|
# Keep SxxEyy format for tv-search (Sonarr/Radarr). ArabP2P search does not reliably match
|
||||||
|
# when we convert to the Arabic bracket format unless the Arabic title is also present.
|
||||||
|
- name: re_replace # normalize "1x09" => "S1E09" (then pad below)
|
||||||
|
args: ["(?i)\\b(\\d{1,2})x(\\d{1,3})\\b", "S$1E$2"]
|
||||||
|
- name: re_replace # normalize "S01 E09" => "S01E09"
|
||||||
|
args: ["(?i)\\bS(\\d{1,2})\\s+E(\\d{1,3})\\b", "S$1E$2"]
|
||||||
|
- name: re_replace # pad season: S1E09 => S01E09
|
||||||
|
args: ["(?i)\\bS(\\d)(?=E)", "S0$1"]
|
||||||
|
- name: re_replace # pad episode: S01E9 => S01E09
|
||||||
|
args: ["(?i)E(\\d)\\b", "E0$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\s{2,}", " "]
|
||||||
|
- name: trim
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
selector: table#torrents_list_p > tbody > tr:has(a[href^="download.php?id="])
|
selector: table#torrents_list_p > tbody > tr:has(a[href^="download.php?id="]), table#torrents_list_p > tbody > tr:has(a[href^="magnet:?xt="])
|
||||||
filters:
|
filters:
|
||||||
- name: andmatch
|
- name: andmatch
|
||||||
|
|
||||||
@ -139,6 +153,28 @@ search:
|
|||||||
args: category
|
args: category
|
||||||
title:
|
title:
|
||||||
selector: a[href^="index.php?page=torrent-details"]
|
selector: a[href^="index.php?page=torrent-details"]
|
||||||
|
filters:
|
||||||
|
- name: re_replace
|
||||||
|
args: ["(?<=\\d)\\s+(?=\\d)", " "]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[(\\d{4})\\]\\s*\\[م(\\d+)\\]", "S$3E$1 [$2]"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[م(\\d+)\\]", "S$2E$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["^\\[(\\d+(?:[\\s-]+\\d+)*)\\](?!\\s*\\[م)", "S01E$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["E(\\d+)[\\s-]+(\\d+)", "E$1-E$2"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\[\\s*\\]", ""]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["(?<=\\S)(\\[)", " $1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["S(\\d)(?=E)", "S0$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["E(\\d)(?=\\D)", "E0$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\s{2,}", " "]
|
||||||
|
- name: trim
|
||||||
details:
|
details:
|
||||||
selector: a[href^="index.php?page=torrent-details"]
|
selector: a[href^="index.php?page=torrent-details"]
|
||||||
attribute: href
|
attribute: href
|
||||||
|
|||||||
220
Prowlarr/config/Definitions/arabscene.yml
Normal file
220
Prowlarr/config/Definitions/arabscene.yml
Normal file
@ -0,0 +1,220 @@
|
|||||||
|
---
|
||||||
|
id: arabscene
|
||||||
|
name: ArabScene
|
||||||
|
description: "ArabScene is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||||
|
language: ar-AE
|
||||||
|
type: private
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://arabscene.me/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
- {id: 103, cat: Other, desc: "منوعات"}
|
||||||
|
- {id: 105, cat: Other, desc: " |-- مسرحيات"}
|
||||||
|
- {id: 104, cat: TV/Other, desc: " |-- اسلاميات "}
|
||||||
|
- {id: 120, cat: TV/Other, desc: " |-- توك شــو"}
|
||||||
|
- {id: 106, cat: PC/0day, desc: " |-- دورات تعليمية "}
|
||||||
|
- {id: 117, cat: TV/Foreign, desc: "مسلسلات مترجمة "}
|
||||||
|
- {id: 122, cat: TV/Foreign, desc: " |-- beIN "}
|
||||||
|
- {id: 123, cat: TV/Foreign, desc: " |-- OSN"}
|
||||||
|
- {id: 128, cat: TV/Foreign, desc: " |-- اجنبى"}
|
||||||
|
- {id: 160, cat: TV/Foreign, desc: " |-- تركى"}
|
||||||
|
- {id: 174, cat: TV/Foreign, desc: " |-- حلقات منفردة"}
|
||||||
|
- {id: 133, cat: TV/Foreign, desc: "مسلسلات مدبلجة"}
|
||||||
|
- {id: 136, cat: TV/Foreign, desc: " |-- هندى"}
|
||||||
|
- {id: 140, cat: TV/Foreign, desc: " |-- اجنبى"}
|
||||||
|
- {id: 173, cat: TV/Foreign, desc: " |-- تركى"}
|
||||||
|
- {id: 175, cat: TV/Foreign, desc: " |-- حلقات منفردة"}
|
||||||
|
- {id: 56, cat: TV, desc: "VIP"}
|
||||||
|
- {id: 81, cat: TV, desc: " |-- Full-Pack"}
|
||||||
|
- {id: 53, cat: TV/Foreign, desc: " |-- مسلسلات مدبلجة "}
|
||||||
|
- {id: 55, cat: TV, desc: " |-- مسلسلات عربية "}
|
||||||
|
- {id: 57, cat: Movies, desc: " |-- افلام عربية "}
|
||||||
|
- {id: 54, cat: TV/Anime, desc: " |-- الكرتون والانمى "}
|
||||||
|
- {id: 58, cat: TV/WEB-DL, desc: "Web-DL"}
|
||||||
|
- {id: 65, cat: Movies/WEB-DL, desc: " |-- Arabic Movies"}
|
||||||
|
- {id: 66, cat: TV/WEB-DL, desc: " |-- Arabic Series"}
|
||||||
|
- {id: 67, cat: TV/WEB-DL, desc: " |-- Dubbed Series"}
|
||||||
|
- {id: 73, cat: TV/WEB-DL, desc: " |-- Full-Pack "}
|
||||||
|
- {id: 113, cat: Movies/Foreign, desc: "افلام مترجمة "}
|
||||||
|
- {id: 121, cat: Movies/Foreign, desc: " |-- beIN"}
|
||||||
|
- {id: 125, cat: Movies/Foreign, desc: " |-- OSN"}
|
||||||
|
- {id: 115, cat: Movies/Foreign, desc: " |-- هندى "}
|
||||||
|
- {id: 114, cat: Movies/Foreign, desc: " |-- اجنبى"}
|
||||||
|
- {id: 161, cat: Movies/Foreign, desc: " |-- تركى"}
|
||||||
|
- {id: 143, cat: Movies/Foreign, desc: "افلام مدبلجة"}
|
||||||
|
- {id: 149, cat: Movies/Foreign, desc: " |-- beIN"}
|
||||||
|
- {id: 148, cat: Movies/Foreign, desc: " |-- OSN"}
|
||||||
|
- {id: 145, cat: Movies/Foreign, desc: " |-- هندى"}
|
||||||
|
- {id: 146, cat: Movies/Foreign, desc: " |-- اجنبى"}
|
||||||
|
- {id: 144, cat: Movies/Foreign, desc: " |-- تركى"}
|
||||||
|
- {id: 109, cat: Audio, desc: "الموسيقى العربية "}
|
||||||
|
- {id: 110, cat: Audio/Lossless, desc: " |-- FLAC"}
|
||||||
|
- {id: 111, cat: Audio/MP3, desc: " |-- Mp3"}
|
||||||
|
- {id: 112, cat: Audio, desc: " |-- كليبات"}
|
||||||
|
- {id: 99, cat: TV, desc: "المسلسلات العربية"}
|
||||||
|
- {id: 100, cat: TV, desc: " |-- مصرية"}
|
||||||
|
- {id: 139, cat: TV, desc: " |-- مغربية"}
|
||||||
|
- {id: 138, cat: TV, desc: " |-- تونسية"}
|
||||||
|
- {id: 172, cat: TV, desc: " |-- حلقات منفردة"}
|
||||||
|
- {id: 101, cat: TV, desc: " |-- خليجية"}
|
||||||
|
- {id: 102, cat: TV, desc: " |-- سورية"}
|
||||||
|
- {id: 84, cat: TV/Documentary, desc: "الوثائقيات "}
|
||||||
|
- {id: 85, cat: TV/Documentary, desc: " |-- مترجمة"}
|
||||||
|
- {id: 87, cat: TV/Documentary, desc: " |-- عربية "}
|
||||||
|
- {id: 89, cat: Movies, desc: "الافلام العربية"}
|
||||||
|
- {id: 95, cat: Movies, desc: " |-- 2000s"}
|
||||||
|
- {id: 137, cat: Movies, desc: " |-- 2010s"}
|
||||||
|
- {id: 49, cat: Movies, desc: " |-- 2020s"}
|
||||||
|
- {id: 98, cat: Movies, desc: " |-- 40s"}
|
||||||
|
- {id: 90, cat: Movies, desc: " |-- 50s"}
|
||||||
|
- {id: 91, cat: Movies, desc: " |-- 60s"}
|
||||||
|
- {id: 92, cat: Movies, desc: " |-- 70s"}
|
||||||
|
- {id: 93, cat: Movies, desc: " |-- 80s"}
|
||||||
|
- {id: 94, cat: Movies, desc: " |-- 90s"}
|
||||||
|
- {id: 4, cat: Movies/Other, desc: "الرسوم المتحركة"}
|
||||||
|
- {id: 5, cat: Movies/Other, desc: " |-- مترجم"}
|
||||||
|
- {id: 6, cat: Movies/Other, desc: " |-- مدبلج"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep]
|
||||||
|
movie-search: [q]
|
||||||
|
music-search: [q]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: username
|
||||||
|
type: text
|
||||||
|
label: Username
|
||||||
|
- name: password
|
||||||
|
type: password
|
||||||
|
label: Password
|
||||||
|
- name: sort
|
||||||
|
type: select
|
||||||
|
label: Sort requested from site
|
||||||
|
default: added
|
||||||
|
options:
|
||||||
|
added: 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: "All inactive accounts will be deleted after 60 days of inactivity."
|
||||||
|
|
||||||
|
login:
|
||||||
|
path: takelogin.php
|
||||||
|
method: post
|
||||||
|
inputs:
|
||||||
|
username: "{{ .Config.username }}"
|
||||||
|
password: "{{ .Config.password }}"
|
||||||
|
error:
|
||||||
|
- selector: table:has(td.thead:contains("error"))
|
||||||
|
test:
|
||||||
|
path: index.php
|
||||||
|
selector: a[href*="logout.php"]
|
||||||
|
|
||||||
|
download:
|
||||||
|
before:
|
||||||
|
path: takethanks.php
|
||||||
|
method: post
|
||||||
|
inputs:
|
||||||
|
torrentid: "{{ .DownloadUri.Query.id }}"
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
- path: browse.php
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
do: search
|
||||||
|
keywords: "{{ .Keywords }}"
|
||||||
|
# t_name, t_description, t_both, t_uploader, t_genre
|
||||||
|
search_type: t_both
|
||||||
|
# does not support multi category searching so defaulting to all.
|
||||||
|
category: 0
|
||||||
|
include_dead_torrents: yes
|
||||||
|
sort: "{{ .Config.sort }}"
|
||||||
|
order: "{{ .Config.type }}"
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: table#sortabletable > tbody > tr:has(span > a[href*="details.php?id="])
|
||||||
|
|
||||||
|
fields:
|
||||||
|
category:
|
||||||
|
selector: a[href*="?category="]
|
||||||
|
attribute: href
|
||||||
|
filters:
|
||||||
|
- name: querystring
|
||||||
|
args: category
|
||||||
|
title:
|
||||||
|
selector: a[href*="/details.php?id="]
|
||||||
|
filters:
|
||||||
|
- name: re_replace
|
||||||
|
args: ["(?<=\\d)\\s+(?=\\d)", " "]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[(\\d{4})\\]\\s*\\[م(\\d+)\\]", "S$3E$1 [$2]"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[م(\\d+)\\]", "S$2E$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["^\\[(\\d+(?:[\\s-]+\\d+)*)\\](?!\\s*\\[م)", "S01E$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["E(\\d+)[\\s-]+(\\d+)", "E$1-E$2"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\[\\s*\\]", ""]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["(?<=\\S)(\\[)", " $1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["S(\\d)(?=E)", "S0$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["E(\\d)(?=\\D)", "E0$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\s{2,}", " "]
|
||||||
|
- name: trim
|
||||||
|
details:
|
||||||
|
selector: a[href*="/details.php?id="]
|
||||||
|
attribute: href
|
||||||
|
download:
|
||||||
|
selector: a[href*="/download.php?id="]
|
||||||
|
attribute: href
|
||||||
|
date:
|
||||||
|
selector: td:nth-child(2) > div:nth-child(3)
|
||||||
|
filters:
|
||||||
|
- name: regexp
|
||||||
|
args: "(\\d{2}-\\d{2}-\\d{4} \\d{2}:\\d{2})"
|
||||||
|
- name: dateparse
|
||||||
|
args: "dd-MM-yyyy HH:mm"
|
||||||
|
size:
|
||||||
|
selector: td:nth-child(5)
|
||||||
|
grabs:
|
||||||
|
selector: td:nth-child(6)
|
||||||
|
seeders:
|
||||||
|
selector: td:nth-child(7)
|
||||||
|
leechers:
|
||||||
|
selector: td:nth-child(8)
|
||||||
|
poster:
|
||||||
|
selector: div.tooltip-content > img[src*="/torrents/"]
|
||||||
|
attribute: src
|
||||||
|
downloadvolumefactor:
|
||||||
|
case:
|
||||||
|
img[src$="torrent_flags/freedownload.gif"]: 0
|
||||||
|
img[src$="torrent_flags/silverdownload.gif"]: 0.5
|
||||||
|
"*": 1
|
||||||
|
uploadvolumefactor:
|
||||||
|
case:
|
||||||
|
img[src$="torrent_flags/x2.gif"]: 2
|
||||||
|
"*": 1
|
||||||
|
minimumratio:
|
||||||
|
text: 1.0
|
||||||
|
minimumseedtime:
|
||||||
|
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||||
|
text: 259200
|
||||||
|
# TS Special Edition v.7.5
|
||||||
136
Prowlarr/config/Definitions/arabtorrents-com.yml
Normal file
136
Prowlarr/config/Definitions/arabtorrents-com.yml
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
---
|
||||||
|
id: arabtorrents-com
|
||||||
|
name: arab-torrents.com
|
||||||
|
description: "arab-torrents.com is an ARABIC Public Torrent Tracker for MOVIES / TV / GENERAL"
|
||||||
|
language: ar-AE
|
||||||
|
type: public
|
||||||
|
encoding: UTF-8
|
||||||
|
requestDelay: 2
|
||||||
|
links:
|
||||||
|
- https://arab-torrents.com/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
# categories containing '»' have a double space in search results
|
||||||
|
- {id: 14, cat: Other, desc: "اسلامي"}
|
||||||
|
- {id: 17, cat: Books, desc: "كتب"}
|
||||||
|
- {id: 19, cat: TV/Documentary, desc: "المرئيات العربية » وثائقي"}
|
||||||
|
- {id: 22, cat: PC, desc: "برامج عربية"}
|
||||||
|
- {id: 23, cat: PC, desc: "برامج عامه"}
|
||||||
|
- {id: 25, cat: Other, desc: "القران الكريم"}
|
||||||
|
- {id: 26, cat: Audio, desc: "اناشيد"}
|
||||||
|
- {id: 27, cat: Other, desc: "محاضرات"}
|
||||||
|
- {id: 41, cat: Movies, desc: "افلام عربيه"}
|
||||||
|
- {id: 44, cat: TV, desc: "مسلسلات عربية"}
|
||||||
|
- {id: 46, cat: Audio, desc: "منوع"}
|
||||||
|
- {id: 52, cat: Movies/Other, desc: "مسرحيات"}
|
||||||
|
- {id: 56, cat: TV/Sport, desc: "رياضي"}
|
||||||
|
- {id: 57, cat: TV/Foreign, desc: "مسلسلات آسيوية"}
|
||||||
|
- {id: 59, cat: Movies/Foreign, desc: "افلام آسيوية"}
|
||||||
|
- {id: 65, cat: Other, desc: "صور"}
|
||||||
|
- {id: 70, cat: Other, desc: "المرئيات العربية » تعليمي"}
|
||||||
|
- {id: 71, cat: TV/Foreign, desc: "مسلسلات مدبلجه عربي"}
|
||||||
|
- {id: 86, cat: Movies/Foreign, desc: "افلام هنديه"}
|
||||||
|
- {id: 88, cat: Movies/Foreign, desc: "افلام مدبلجه عربي"}
|
||||||
|
- {id: 89, cat: TV, desc: "مسلسلات عربية كامله"}
|
||||||
|
- {id: 90, cat: TV, desc: "برامج ومسابقات"}
|
||||||
|
- {id: 92, cat: Other, desc: "المرئيات الاجنبية » تعليمي"}
|
||||||
|
- {id: 93, cat: TV/Documentary, desc: "المرئيات الاجنبية » وثائقي"}
|
||||||
|
- {id: 98, cat: Movies/Other, desc: "انمي مدبلج عربي » افلام"}
|
||||||
|
- {id: 99, cat: Movies/Other, desc: "انمي مترجم عربي » افلام"}
|
||||||
|
- {id: 100, cat: TV/Anime, desc: "انمي مدبلج عربي » مسلسلات"}
|
||||||
|
- {id: 101, cat: TV/Anime, desc: "انمي مترجم عربي » مسلسلات"}
|
||||||
|
- {id: 102, cat: TV/Anime, desc: "انمي مدبلج عربي » حلقات"}
|
||||||
|
- {id: 103, cat: TV/Anime, desc: "انمي مترجم عربي » حلقات"}
|
||||||
|
- {id: 113, cat: TV/Foreign, desc: "مسلسلات لاتينية مترجم.مدبلج"}
|
||||||
|
- {id: 114, cat: Movies/Foreign, desc: "افلام لاتينية مترجم.مدبلج"}
|
||||||
|
- {id: 115, cat: TV/Foreign, desc: "مسلسلات تركية مترجم.مدبلج"}
|
||||||
|
- {id: 116, cat: Movies/Foreign, desc: "افلام تركية مترجم.مدبلج"}
|
||||||
|
- {id: 117, cat: TV, desc: "رمضان 2025"}
|
||||||
|
# categories not listed
|
||||||
|
- {id: missing1, cat: TV/Other, desc: "الكارتون الصامت والكلاسيكي"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep]
|
||||||
|
movie-search: [q]
|
||||||
|
music-search: [q]
|
||||||
|
book-search: [q]
|
||||||
|
|
||||||
|
settings: []
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
- path: index.php
|
||||||
|
- path: index.php
|
||||||
|
inputs:
|
||||||
|
p: 2
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
page: torrents
|
||||||
|
search: "{{ .Keywords }}"
|
||||||
|
# does not support multi-category search
|
||||||
|
|
||||||
|
keywordsfilters:
|
||||||
|
- name: re_replace
|
||||||
|
args: ["^.{1,2}$", ""]
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: table#torrents > tbody > tr
|
||||||
|
|
||||||
|
fields:
|
||||||
|
categorydesc:
|
||||||
|
selector: div.fcat
|
||||||
|
title:
|
||||||
|
selector: a[href^="/index.php?page=torrents&tid="] img
|
||||||
|
attribute: alt
|
||||||
|
filters:
|
||||||
|
- name: re_replace
|
||||||
|
args: ["(?<=\\d)\\s+(?=\\d)", " "]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[(\\d{4})\\]\\s*\\[م(\\d+)\\]", "S$3E$1 [$2]"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[م(\\d+)\\]", "S$2E$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["^\\[(\\d+(?:[\\s-]+\\d+)*)\\](?!\\s*\\[م)", "S01E$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["E(\\d+)[\\s-]+(\\d+)", "E$1-E$2"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\[\\s*\\]", ""]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["(?<=\\S)(\\[)", " $1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["S(\\d)(?=E)", "S0$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["E(\\d)(?=\\D)", "E0$1"]
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\s{2,}", " "]
|
||||||
|
- name: trim
|
||||||
|
details:
|
||||||
|
selector: a[href^="/index.php?page=torrents&tid="]
|
||||||
|
attribute: href
|
||||||
|
magnet:
|
||||||
|
selector: a[href^="magnet:?xt="]
|
||||||
|
attribute: href
|
||||||
|
poster:
|
||||||
|
selector: a:has(img.posterIcon)
|
||||||
|
attribute: href
|
||||||
|
tmdbid:
|
||||||
|
selector: a[href*="themoviedb.org/movie/"], a[href*="themoviedb.org/tv/"]
|
||||||
|
attribute: href
|
||||||
|
date:
|
||||||
|
text: now
|
||||||
|
size:
|
||||||
|
selector: div.fsize
|
||||||
|
seeders:
|
||||||
|
text: 1
|
||||||
|
leechers:
|
||||||
|
text: 1
|
||||||
|
downloadvolumefactor:
|
||||||
|
text: 0
|
||||||
|
uploadvolumefactor:
|
||||||
|
text: 1
|
||||||
|
description:
|
||||||
|
selector: td
|
||||||
|
remove: a[href^="magnet:?xt="], div
|
||||||
|
# engine n/a
|
||||||
191
Prowlarr/config/Definitions/aura4k-api.yml
Normal file
191
Prowlarr/config/Definitions/aura4k-api.yml
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
---
|
||||||
|
id: aura4k-api
|
||||||
|
name: AURA4K (API)
|
||||||
|
description: "AURA4K is a Private Torrent Tracker for MOVIES / TV"
|
||||||
|
language: en-US
|
||||||
|
type: private
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://aura4k.net/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
- {id: 1, cat: Movies, desc: "Movies"}
|
||||||
|
- {id: 2, cat: TV, desc: "TV"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||||
|
movie-search: [q, imdbid, tmdbid]
|
||||||
|
allowtvsearchimdb: true
|
||||||
|
|
||||||
|
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://aura4k.net/\" target=\"_blank\">AURA4K</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 with no activity (login/traffic) for more than 90 days may be automatically pruned."
|
||||||
|
|
||||||
|
login:
|
||||||
|
path: /api/torrents
|
||||||
|
method: get
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
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
|
||||||
|
_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.4 but torrents must be seeded for 72 hours OR 1:1
|
||||||
|
minimumratio:
|
||||||
|
text: 1.0
|
||||||
|
minimumseedtime:
|
||||||
|
# 72 hours (as seconds = 3 x 24 x 60 x 60)
|
||||||
|
text: 259200
|
||||||
|
# json UNIT3D 9.2.0
|
||||||
@ -64,20 +64,23 @@ login:
|
|||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
- path: torrents.php
|
- path: torrents.php
|
||||||
|
allowEmptyInputs: true
|
||||||
inputs:
|
inputs:
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||||
search: "{{ .Keywords }}"
|
|
||||||
# 0 incldead, 1 active, 2 dead
|
# 0 incldead, 1 active, 2 dead
|
||||||
incldead: 0
|
incldead: 0
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||||
|
inclbookmarked: 0
|
||||||
|
approval_status: ""
|
||||||
|
trackerStatus: ""
|
||||||
|
search: "{{ .Keywords }}"
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||||
search_area: 0
|
search_area: 0
|
||||||
# 0 AND, 1 OR, 2 exact
|
# 0 AND, 1 OR, 2 exact
|
||||||
search_mode: 0
|
search_mode: 0
|
||||||
sort: "{{ .Config.sort }}"
|
sort: "{{ .Config.sort }}"
|
||||||
type: "{{ .Config.type }}"
|
type: "{{ .Config.type }}"
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||||
|
|||||||
@ -10,17 +10,19 @@ links:
|
|||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
|
- {id: 100, cat: Console, desc: "Anbernic"}
|
||||||
- {id: 15, cat: PC/Mobile-Android, desc: "Android"}
|
- {id: 15, cat: PC/Mobile-Android, desc: "Android"}
|
||||||
- {id: 35, cat: TV/Anime, desc: "Anime"}
|
- {id: 35, cat: TV/Anime, desc: "Anime"}
|
||||||
- {id: 51, cat: PC/Mac, desc: "Apple"}
|
- {id: 51, cat: PC/Mac, desc: "Apple"}
|
||||||
- {id: 3, cat: PC, desc: "Apps"}
|
- {id: 3, cat: PC, desc: "Apps"}
|
||||||
|
- {id: 109, cat: PC, desc: "Attract-Mode"}
|
||||||
- {id: 64, cat: Audio/Audiobook, desc: "Audiobooks"}
|
- {id: 64, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||||
- {id: 71, cat: Console, desc: "Batocera"}
|
- {id: 71, cat: Console, desc: "Batocera"}
|
||||||
- {id: 4, cat: Movies/BluRay, desc: "Blu-Ray"}
|
- {id: 4, cat: Movies/BluRay, desc: "Blu-Ray"}
|
||||||
- {id: 86, cat: Console, desc: "Chinese Systems"}
|
- {id: 112, cat: Console, desc: "Brojack & Laws"}
|
||||||
- {id: 22, cat: Console, desc: "CoinOps"}
|
|
||||||
- {id: 42, cat: Console, desc: "CoinOPS Official"}
|
- {id: 42, cat: Console, desc: "CoinOPS Official"}
|
||||||
- {id: 65, cat: Console, desc: "CoinOps Unofficial"}
|
- {id: 65, cat: Console, desc: "CoinOps Unofficial"}
|
||||||
|
- {id: 22, cat: Console, desc: "CoinOps"}
|
||||||
- {id: 63, cat: Books/Comics, desc: "Comics"}
|
- {id: 63, cat: Books/Comics, desc: "Comics"}
|
||||||
- {id: 60, cat: Console, desc: "Core"}
|
- {id: 60, cat: Console, desc: "Core"}
|
||||||
- {id: 72, cat: Console, desc: "CORE Community"}
|
- {id: 72, cat: Console, desc: "CORE Community"}
|
||||||
@ -28,45 +30,43 @@ caps:
|
|||||||
- {id: 16, cat: TV/Documentary, desc: "Docu"}
|
- {id: 16, cat: TV/Documentary, desc: "Docu"}
|
||||||
- {id: 41, cat: Console, desc: "Dragon"}
|
- {id: 41, cat: Console, desc: "Dragon"}
|
||||||
- {id: 5, cat: Books, desc: "EBooks"}
|
- {id: 5, cat: Books, desc: "EBooks"}
|
||||||
- {id: 80, cat: PC, desc: "Emulation Media"}
|
- {id: 89, cat: PC, desc: "Ghostware"}
|
||||||
- {id: 61, cat: PC, desc: "emuxtras"}
|
|
||||||
- {id: 69, cat: TV, desc: "Entertainment"}
|
|
||||||
- {id: 84, cat: TV, desc: "GOG DRM FREE"}
|
- {id: 84, cat: TV, desc: "GOG DRM FREE"}
|
||||||
- {id: 77, cat: PC, desc: "Hyperspin"}
|
- {id: 77, cat: PC, desc: "Hyperspin"}
|
||||||
- {id: 34, cat: TV, desc: "Kids"}
|
- {id: 34, cat: TV, desc: "Kids"}
|
||||||
- {id: 43, cat: Console, desc: "LB No Intro"}
|
- {id: 107, cat: Console, desc: "KinHanK"}
|
||||||
|
- {id: 43, cat: Console, desc: "LaunchBox"}
|
||||||
- {id: 85, cat: PC, desc: "MAME Rom Sets"}
|
- {id: 85, cat: PC, desc: "MAME Rom Sets"}
|
||||||
- {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
|
|
||||||
- {id: 32, cat: Movies, desc: "Movie Pack"}
|
- {id: 32, cat: Movies, desc: "Movie Pack"}
|
||||||
- {id: 6, cat: Movies, desc: "Movies/XVID"}
|
- {id: 106, cat: Movies/UHD, desc: "Movie Pack 4K"}
|
||||||
|
- {id: 6, cat: Movies, desc: "Movies"}
|
||||||
|
- {id: 105, cat: Movies/UHD, desc: "Movies 4K"}
|
||||||
- {id: 82, cat: PC, desc: "MS-DOS"}
|
- {id: 82, cat: PC, desc: "MS-DOS"}
|
||||||
- {id: 7, cat: Audio, desc: "Music"}
|
- {id: 7, cat: Audio, desc: "Music"}
|
||||||
- {id: 31, cat: Console, desc: "Nintendo"}
|
- {id: 31, cat: Console, desc: "Nintendo"}
|
||||||
- {id: 59, cat: Console, desc: "P-R-U"}
|
- {id: 59, cat: Console, desc: "P-R-U"}
|
||||||
- {id: 8, cat: PC/Games, desc: "PC Games"}
|
- {id: 8, cat: PC/Games, desc: "PC Games"}
|
||||||
- {id: 50, cat: Console, desc: "PlayBox"}
|
|
||||||
- {id: 87, cat: Console, desc: "Playnite"}
|
- {id: 87, cat: Console, desc: "Playnite"}
|
||||||
- {id: 30, cat: Console, desc: "Playstation"}
|
- {id: 30, cat: Console, desc: "Playstation"}
|
||||||
- {id: 62, cat: PC, desc: "RaspberryPi"}
|
|
||||||
- {id: 83, cat: PC, desc: "Retro eXo"}
|
- {id: 83, cat: PC, desc: "Retro eXo"}
|
||||||
- {id: 56, cat: PC, desc: "Retro Minis"}
|
- {id: 56, cat: PC, desc: "Retro Minis"}
|
||||||
- {id: 81, cat: PC, desc: "Retro Scene Releases"}
|
|
||||||
- {id: 67, cat: PC, desc: "Retrobat"}
|
- {id: 67, cat: PC, desc: "Retrobat"}
|
||||||
- {id: 88, cat: PC, desc: "RetroFE"}
|
- {id: 88, cat: PC, desc: "RetroFE"}
|
||||||
- {id: 79, cat: PC, desc: "RGB-Pi"}
|
|
||||||
- {id: 76, cat: Console, desc: "RGS"}
|
- {id: 76, cat: Console, desc: "RGS"}
|
||||||
- {id: 27, cat: PC, desc: "Roms and Emulators"}
|
- {id: 27, cat: PC, desc: "Roms and Emulators"}
|
||||||
|
- {id: 62, cat: PC, desc: "RPi"}
|
||||||
|
- {id: 81, cat: PC, desc: "Scene"}
|
||||||
- {id: 68, cat: PC, desc: "Schmoomer's"}
|
- {id: 68, cat: PC, desc: "Schmoomer's"}
|
||||||
|
- {id: 110, cat: Console, desc: "ScummVM"}
|
||||||
- {id: 57, cat: Console, desc: "Sega"}
|
- {id: 57, cat: Console, desc: "Sega"}
|
||||||
- {id: 74, cat: PC, desc: "Sleyk/SGC"}
|
- {id: 74, cat: PC, desc: "Sleyk/SGC"}
|
||||||
- {id: 40, cat: TV, desc: "Soaps"}
|
- {id: 75, cat: Audio, desc: "Soundtracks"}
|
||||||
- {id: 29, cat: TV/Sport, desc: "Sport"}
|
- {id: 29, cat: TV/Sport, desc: "Sport"}
|
||||||
- {id: 9, cat: TV, desc: "TV-Boxsets"}
|
- {id: 90, cat: PC, desc: "TeknoParrot"}
|
||||||
- {id: 11, cat: TV, desc: "TV/x264"}
|
- {id: 97, cat: TV/Other, desc: "Tutorials"}
|
||||||
- {id: 10, cat: TV, desc: "TV/Xvid"}
|
- {id: 9, cat: TV, desc: "TV Packs"}
|
||||||
- {id: 75, cat: Audio, desc: "Video Game Music"}
|
- {id: 11, cat: TV, desc: "TV Shows"}
|
||||||
- {id: 73, cat: Console, desc: "Wolfanoz"}
|
- {id: 73, cat: Console, desc: "Wolfanoz"}
|
||||||
- {id: 14, cat: TV/Sport, desc: "WWE"}
|
|
||||||
- {id: 26, cat: Console, desc: "Xbox"}
|
- {id: 26, cat: Console, desc: "Xbox"}
|
||||||
- {id: 12, cat: Console, desc: "XBOX360"}
|
- {id: 12, cat: Console, desc: "XBOX360"}
|
||||||
- {id: 23, cat: XXX, desc: "xxx18+"}
|
- {id: 23, cat: XXX, desc: "xxx18+"}
|
||||||
@ -128,29 +128,31 @@ search:
|
|||||||
# sort is done via do=quick_sort, and freeleech sorting is part of that set
|
# sort is done via do=quick_sort, and freeleech sorting is part of that set
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
selector: "table#sortabletable > tbody > tr:has(a[href*=\"/details.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"freedownload.gif\"]){{ else }}{{ end }}"
|
selector: "table#sortabletable > tbody > tr:has(a[href*=\"download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"freedownload.gif\"]){{ else }}{{ end }}"
|
||||||
filters:
|
filters:
|
||||||
- name: andmatch
|
- name: andmatch
|
||||||
args: 66
|
args: 66
|
||||||
|
|
||||||
fields:
|
fields:
|
||||||
category:
|
category:
|
||||||
selector: a[href*="/browse.php?category="]
|
selector: a[href*="browse.php?category="]
|
||||||
attribute: href
|
attribute: href
|
||||||
filters:
|
filters:
|
||||||
- name: querystring
|
- name: querystring
|
||||||
args: category
|
args: category
|
||||||
title_default:
|
title_default:
|
||||||
selector: a[href*="/details.php?id="]
|
# is often abbreviated
|
||||||
|
selector: a[href*="details.php?id="]
|
||||||
title:
|
title:
|
||||||
|
# can be abbreviated but usually longer than title_default
|
||||||
selector: div.tooltip-content > div
|
selector: div.tooltip-content > div
|
||||||
optional: true
|
optional: true
|
||||||
default: "{{ .Result.title_default }}"
|
default: "{{ .Result.title_default }}"
|
||||||
details:
|
details:
|
||||||
selector: a[href*="/details.php?id="]
|
selector: a[href*="details.php?id="]
|
||||||
attribute: href
|
attribute: href
|
||||||
download:
|
download:
|
||||||
selector: a[href*="/download.php?id="]
|
selector: a[href*="download.php?id="]
|
||||||
attribute: href
|
attribute: href
|
||||||
magnet:
|
magnet:
|
||||||
selector: a[href^="magnet:?xt="]
|
selector: a[href^="magnet:?xt="]
|
||||||
@ -183,4 +185,9 @@ search:
|
|||||||
args: " +00:00" # GMT
|
args: " +00:00" # GMT
|
||||||
- name: dateparse
|
- name: dateparse
|
||||||
args: "dd-MM-yyyy HH:mm zzz"
|
args: "dd-MM-yyyy HH:mm zzz"
|
||||||
|
minimumratio:
|
||||||
|
text: 1.0
|
||||||
|
minimumseedtime:
|
||||||
|
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||||
|
text: 172800
|
||||||
# TS Special Edition v.8.0
|
# TS Special Edition v.8.0
|
||||||
|
|||||||
186
Prowlarr/config/Definitions/baozipt.yml
Normal file
186
Prowlarr/config/Definitions/baozipt.yml
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
---
|
||||||
|
id: baozipt
|
||||||
|
name: baoziPT
|
||||||
|
description: "baoziPT is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||||
|
language: zh-CN
|
||||||
|
type: private
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://p.t-baozi.cc/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
- {id: 401, cat: Movies, desc: "电影/Movies"}
|
||||||
|
- {id: 402, cat: TV, desc: "剧集/TV Series"}
|
||||||
|
- {id: 403, cat: TV, desc: "综艺/TV Shows"}
|
||||||
|
- {id: 404, cat: TV/Documentary, desc: "纪录片/Documentaries"}
|
||||||
|
- {id: 405, cat: TV/Anime, desc: "动漫/Anime"}
|
||||||
|
- {id: 406, cat: Audio/Video, desc: "音乐视频/Music Videos"}
|
||||||
|
- {id: 407, cat: TV/Sport, desc: "体育运动/Sports"}
|
||||||
|
- {id: 408, cat: Audio, desc: "高品质音频/HQ Audio"}
|
||||||
|
- {id: 409, cat: Other, desc: "其他/Other"}
|
||||||
|
- {id: 410, cat: TV, desc: "短剧/Playlet"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep, imdbid, doubanid]
|
||||||
|
movie-search: [q, imdbid, doubanid]
|
||||||
|
music-search: [q]
|
||||||
|
book-search: [q]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: cookie
|
||||||
|
type: text
|
||||||
|
label: Cookie
|
||||||
|
- name: info_cookie
|
||||||
|
type: info_cookie
|
||||||
|
- name: freeleech
|
||||||
|
type: checkbox
|
||||||
|
label: Search freeleech only
|
||||||
|
default: false
|
||||||
|
- name: sort
|
||||||
|
type: select
|
||||||
|
label: Sort requested from site
|
||||||
|
default: 4
|
||||||
|
options:
|
||||||
|
4: created
|
||||||
|
7: seeders
|
||||||
|
5: size
|
||||||
|
1: title
|
||||||
|
- name: type
|
||||||
|
type: select
|
||||||
|
label: Order requested from site
|
||||||
|
default: desc
|
||||||
|
options:
|
||||||
|
desc: desc
|
||||||
|
asc: asc
|
||||||
|
- name: info_tpp
|
||||||
|
type: info
|
||||||
|
label: Results Per Page
|
||||||
|
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||||
|
- name: info_activity
|
||||||
|
type: info
|
||||||
|
label: Account Inactivity
|
||||||
|
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
||||||
|
|
||||||
|
login:
|
||||||
|
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
|
||||||
|
method: cookie
|
||||||
|
inputs:
|
||||||
|
cookie: "{{ .Config.cookie }}"
|
||||||
|
test:
|
||||||
|
path: index.php
|
||||||
|
selector: a[href="logout.php"]
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
- path: torrents.php
|
||||||
|
inputs:
|
||||||
|
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||||
|
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||||
|
# 0 incldead, 1 active, 2 dead
|
||||||
|
incldead: 0
|
||||||
|
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||||
|
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||||
|
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||||
|
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||||
|
# 0 AND, 2 exact
|
||||||
|
search_mode: 0
|
||||||
|
sort: "{{ .Config.sort }}"
|
||||||
|
type: "{{ .Config.type }}"
|
||||||
|
notnewword: 1
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
|
||||||
|
|
||||||
|
fields:
|
||||||
|
category:
|
||||||
|
selector: a[href^="?cat="]
|
||||||
|
attribute: href
|
||||||
|
filters:
|
||||||
|
- name: querystring
|
||||||
|
args: cat
|
||||||
|
title_default:
|
||||||
|
selector: a[href^="details.php?id="]
|
||||||
|
title:
|
||||||
|
selector: a[title][href^="details.php?id="]
|
||||||
|
attribute: title
|
||||||
|
optional: true
|
||||||
|
default: "{{ .Result.title_default }}"
|
||||||
|
details:
|
||||||
|
selector: a[href^="details.php?id="]
|
||||||
|
attribute: href
|
||||||
|
download:
|
||||||
|
selector: a[href^="download.php?id="]
|
||||||
|
attribute: href
|
||||||
|
poster:
|
||||||
|
selector: img[data-src]
|
||||||
|
attribute: data-src
|
||||||
|
imdbid:
|
||||||
|
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||||
|
selector: a[href*="imdb.com/title/tt"]
|
||||||
|
attribute: href
|
||||||
|
doubanid:
|
||||||
|
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||||
|
selector: a[href*="movie.douban.com/subject/"]
|
||||||
|
attribute: href
|
||||||
|
date_elapsed:
|
||||||
|
# time type: time elapsed (default)
|
||||||
|
selector: td.rowfollow:nth-child(4) > span[title]
|
||||||
|
attribute: title
|
||||||
|
optional: true
|
||||||
|
filters:
|
||||||
|
- name: append
|
||||||
|
args: " +08:00" # CST
|
||||||
|
- name: dateparse
|
||||||
|
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||||
|
date_added:
|
||||||
|
# time added
|
||||||
|
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||||
|
optional: true
|
||||||
|
filters:
|
||||||
|
- name: append
|
||||||
|
args: " +08:00" # CST
|
||||||
|
- name: dateparse
|
||||||
|
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||||
|
date:
|
||||||
|
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||||
|
size:
|
||||||
|
selector: td.rowfollow:nth-child(5)
|
||||||
|
optional: true
|
||||||
|
default: 512MB
|
||||||
|
seeders:
|
||||||
|
selector: td.rowfollow:nth-child(6)
|
||||||
|
optional: true
|
||||||
|
default: 0
|
||||||
|
leechers:
|
||||||
|
selector: td.rowfollow:nth-child(7)
|
||||||
|
optional: true
|
||||||
|
default: 0
|
||||||
|
grabs:
|
||||||
|
selector: td.rowfollow:nth-child(8)
|
||||||
|
optional: true
|
||||||
|
default: 0
|
||||||
|
downloadvolumefactor:
|
||||||
|
case:
|
||||||
|
img.pro_free: 0
|
||||||
|
img.pro_free2up: 0
|
||||||
|
img.pro_50pctdown: 0.5
|
||||||
|
img.pro_50pctdown2up: 0.5
|
||||||
|
img.pro_30pctdown: 0.3
|
||||||
|
"*": 1
|
||||||
|
uploadvolumefactor:
|
||||||
|
case:
|
||||||
|
img.pro_50pctdown2up: 2
|
||||||
|
img.pro_free2up: 2
|
||||||
|
img.pro_2up: 2
|
||||||
|
"*": 1
|
||||||
|
minimumratio:
|
||||||
|
text: 2.0
|
||||||
|
minimumseedtime:
|
||||||
|
# 1 day (as seconds = 24 x 60 x 60)
|
||||||
|
text: 86400
|
||||||
|
description:
|
||||||
|
selector: td.rowfollow:nth-child(2)
|
||||||
|
remove: a, b, font, img, span
|
||||||
|
# NexusPHP v1.9.11 2025-11-02
|
||||||
259
Prowlarr/config/Definitions/bigbbs.yml
Normal file
259
Prowlarr/config/Definitions/bigbbs.yml
Normal file
@ -0,0 +1,259 @@
|
|||||||
|
---
|
||||||
|
id: bigbbs
|
||||||
|
name: BigBBS
|
||||||
|
description: "BigBBS is a POLISH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||||
|
language: pl-PL
|
||||||
|
type: private
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://bigbbs.eu/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
- {id: 1, cat: Movies, desc: "Filmi"}
|
||||||
|
- {id: 14, cat: Movies/SD, desc: "Filmi DivX / XviD"}
|
||||||
|
- {id: 41, cat: Movies/HD, desc: "Filmi x264"}
|
||||||
|
- {id: 40, cat: Movies, desc: "Filmi Al / Lektor Amatorski"}
|
||||||
|
- {id: 39, cat: Movies/BluRay, desc: "Filmi BluRay"}
|
||||||
|
- {id: 147, cat: Movies, desc: "Filmi Xmas"}
|
||||||
|
- {id: 37, cat: Movies/DVD, desc: "Filmi DVD 5 / 9"}
|
||||||
|
- {id: 52, cat: Movies/3D, desc: "Filmi 3D"}
|
||||||
|
- {id: 17, cat: Movies/HD, desc: "Filmi HD 1080p , 720p"}
|
||||||
|
- {id: 99, cat: Movies/HD, desc: "Filmi x265"}
|
||||||
|
- {id: 62, cat: XXX, desc: "Filmi XXX"}
|
||||||
|
- {id: 16, cat: Movies/SD, desc: "Filmi CAM / TS"}
|
||||||
|
- {id: 65, cat: Movies/HD, desc: "Filmi Rmvb"}
|
||||||
|
- {id: 66, cat: Movies, desc: "Filmi TV RIP"}
|
||||||
|
- {id: 84, cat: TV/Documentary, desc: "Filmi Dokumentalne"}
|
||||||
|
- {id: 100, cat: Movies, desc: "Filmi Seriale"}
|
||||||
|
- {id: 103, cat: Movies, desc: "Filmi FILMY GSM / PDA"}
|
||||||
|
- {id: 107, cat: Movies/UHD, desc: "Filmi 4K-UHD"}
|
||||||
|
- {id: 109, cat: Movies, desc: "Filmi Biblijny"}
|
||||||
|
- {id: 113, cat: Movies, desc: "Filmi Prawniczy"}
|
||||||
|
- {id: 61, cat: Movies, desc: "Bajki"}
|
||||||
|
- {id: 106, cat: Books/Comics, desc: "Manga"}
|
||||||
|
- {id: 53, cat: TV/Anime, desc: "Anime"}
|
||||||
|
- {id: 56, cat: TV, desc: "TV"}
|
||||||
|
- {id: 57, cat: TV, desc: "TV BOXSETS"}
|
||||||
|
- {id: 58, cat: TV, desc: "TV EPIZODY"}
|
||||||
|
- {id: 6, cat: PC, desc: "Aplikacje"}
|
||||||
|
- {id: 18, cat: PC/0day, desc: "Aplikacje Windows"}
|
||||||
|
- {id: 64, cat: PC/Mobile-Other, desc: "Aplikacje GSM/PDA"}
|
||||||
|
- {id: 19, cat: PC/Mac, desc: "Aplikacje Macintosh"}
|
||||||
|
- {id: 42, cat: PC, desc: "Aplikacje Linux"}
|
||||||
|
- {id: 63, cat: TV/Sport, desc: "Sport"}
|
||||||
|
- {id: 7, cat: Audio, desc: "Muzyka"}
|
||||||
|
- {id: 20, cat: Audio/Video, desc: "Koncert"}
|
||||||
|
- {id: 144, cat: Audio, desc: "BiGBBS RMG (Rellase Music Group)"}
|
||||||
|
- {id: 21, cat: Audio/MP3, desc: "MP3"}
|
||||||
|
- {id: 38, cat: Audio/Lossless, desc: "FLAC"}
|
||||||
|
- {id: 135, cat: Audio, desc: "RetroRemix,ClubDance"}
|
||||||
|
- {id: 43, cat: Audio, desc: "Soundtrack"}
|
||||||
|
- {id: 136, cat: Audio, desc: "Rock"}
|
||||||
|
- {id: 80, cat: Audio/Lossless, desc: "lossless"}
|
||||||
|
- {id: 81, cat: Audio, desc: "MusicVid"}
|
||||||
|
- {id: 82, cat: Audio, desc: "Radio"}
|
||||||
|
- {id: 138, cat: Audio, desc: "Dyskografie Płytowe"}
|
||||||
|
- {id: 117, cat: Audio, desc: "Metal Rock"}
|
||||||
|
- {id: 139, cat: Audio, desc: "Kolekcje Muzyczne"}
|
||||||
|
- {id: 118, cat: Audio, desc: "Disco Polo"}
|
||||||
|
- {id: 119, cat: Audio, desc: "Clubbing"}
|
||||||
|
- {id: 120, cat: Audio, desc: "House"}
|
||||||
|
- {id: 125, cat: Audio, desc: "Elektro"}
|
||||||
|
- {id: 127, cat: Audio, desc: "Tranc"}
|
||||||
|
- {id: 128, cat: Audio, desc: "Dance"}
|
||||||
|
- {id: 130, cat: Audio, desc: "Opus"}
|
||||||
|
- {id: 129, cat: Audio, desc: "Pop"}
|
||||||
|
- {id: 131, cat: Audio, desc: "Italo"}
|
||||||
|
- {id: 133, cat: Audio, desc: "ClubDance"}
|
||||||
|
- {id: 134, cat: Audio, desc: "Retro Remixes"}
|
||||||
|
- {id: 146, cat: Audio, desc: "Techno"}
|
||||||
|
- {id: 132, cat: Audio, desc: "eurodance"}
|
||||||
|
- {id: 145, cat: Audio, desc: "Chillout"}
|
||||||
|
- {id: 83, cat: Audio, desc: "BLUES / REGGAE/ ROCK / METAL/CLASSIC/"}
|
||||||
|
- {id: 2, cat: Console, desc: "Gry"}
|
||||||
|
- {id: 3, cat: Console/PS3, desc: "Sony PS"}
|
||||||
|
- {id: 4, cat: Console/Wii, desc: "Wii"}
|
||||||
|
- {id: 26, cat: Console/XBox, desc: "XboX"}
|
||||||
|
- {id: 28, cat: PC/Games, desc: "Gry PC"}
|
||||||
|
- {id: 28, cat: Console/NDS, desc: "Nintendo"}
|
||||||
|
- {id: 47, cat: Books/EBook, desc: "EEbooki"}
|
||||||
|
- {id: 48, cat: Audio/Audiobook, desc: "Audio Book"}
|
||||||
|
- {id: 50, cat: Books/EBook, desc: "Ebook Pdf"}
|
||||||
|
- {id: 67, cat: Books/Comics, desc: "Komiksy"}
|
||||||
|
- {id: 59, cat: Other, desc: "BBRG"}
|
||||||
|
- {id: 39, cat: Movies/BluRay, desc: "Filmy BluRay 50/25/9"}
|
||||||
|
- {id: 88, cat: Movies/3D, desc: "Filmi 3D"}
|
||||||
|
- {id: 108, cat: Movies/BluRay, desc: "Filmi BluRay"}
|
||||||
|
- {id: 89, cat: Movies/HD, desc: "Filmi HD x264"}
|
||||||
|
- {id: 90, cat: Movies/HD, desc: "Filmi HD DivX / XviD"}
|
||||||
|
- {id: 91, cat: Movies/DVD, desc: "Filmi DVD 5 / DVD 9"}
|
||||||
|
- {id: 92, cat: Movies/SD, desc: "Filmi SD DivX / XviD"}
|
||||||
|
- {id: 93, cat: Movies/SD, desc: "Filmi SD x264"}
|
||||||
|
- {id: 96, cat: Movies, desc: "Filmi TVRip"}
|
||||||
|
- {id: 101, cat: Movies, desc: "Filmi Boxset"}
|
||||||
|
- {id: 98, cat: Movies, desc: "Filmi Seriale"}
|
||||||
|
- {id: 95, cat: Movies, desc: "Bajki"}
|
||||||
|
- {id: 97, cat: Audio/Video, desc: "Kabarety"}
|
||||||
|
- {id: 102, cat: Movies/HD, desc: "Filmi x265"}
|
||||||
|
- {id: 104, cat: Movies, desc: "Filmi FILMY GSM / PDA"}
|
||||||
|
- {id: 86, cat: Audio, desc: "Muzyka BBRG"}
|
||||||
|
- {id: 110, cat: Movies, desc: "Filmi Biblijny"}
|
||||||
|
- {id: 114, cat: Movies/UHD, desc: "Filmi 4K-UHD"}
|
||||||
|
- {id: 115, cat: Movies, desc: "Filmi Fan BBRG"}
|
||||||
|
- {id: 112, cat: Movies, desc: "Filmi ENG"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep]
|
||||||
|
movie-search: [q]
|
||||||
|
music-search: [q]
|
||||||
|
book-search: [q]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: username
|
||||||
|
type: text
|
||||||
|
label: Username
|
||||||
|
- name: password
|
||||||
|
type: password
|
||||||
|
label: Password
|
||||||
|
- name: freeleech
|
||||||
|
type: checkbox
|
||||||
|
label: Filter freeleech only
|
||||||
|
default: false
|
||||||
|
- name: info_profile
|
||||||
|
type: info
|
||||||
|
label: Layout
|
||||||
|
default: "<ul><li>Only the English Classic profile is supported.</li><li>Make sure to set the <b>Torrent Listing (Lista torrentów)</b> option in your profile to <b>Classic (Klasyczny)</b></li><li>And set the <b>Language (Dil)</b> to <b>English</b></li><li>Using the <i>Modern</i> theme will prevent results, and using <i>Polski</i> will prevent upload dates.</li></ul>"
|
||||||
|
- name: sort
|
||||||
|
type: select
|
||||||
|
label: Sort requested from site
|
||||||
|
default: added
|
||||||
|
options:
|
||||||
|
added: created
|
||||||
|
seeders: seeders
|
||||||
|
size: size
|
||||||
|
- 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: "Account retention rules: Inactive accounts over 30 days will be warned by email about their inactivity. If within 24h a person does not log in to their account, they will lose them without the possibility of returning."
|
||||||
|
|
||||||
|
login:
|
||||||
|
path: ?p=home&pid=1
|
||||||
|
method: form
|
||||||
|
form: form#sls_form
|
||||||
|
submitpath: ajax/login.php
|
||||||
|
inputs:
|
||||||
|
action: login
|
||||||
|
loginbox_membername: "{{ .Config.username }}"
|
||||||
|
loginbox_password: "{{ .Config.password }}"
|
||||||
|
loginbox_remember: 1
|
||||||
|
selectorinputs:
|
||||||
|
securitytoken:
|
||||||
|
selector: "script:contains(\"stKey: \")"
|
||||||
|
filters:
|
||||||
|
- name: regexp
|
||||||
|
args: "stKey: \"(.+?)\","
|
||||||
|
error:
|
||||||
|
- selector: div.error
|
||||||
|
- selector: :contains("-ERROR-")
|
||||||
|
test:
|
||||||
|
path: ?p=home&pid=1
|
||||||
|
selector: div#member_info_bar
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
keywordsfilters:
|
||||||
|
- name: re_replace
|
||||||
|
args: ["[^a-zA-Z0-9]+", "%25"]
|
||||||
|
inputs:
|
||||||
|
p: torrents
|
||||||
|
pid: 32
|
||||||
|
$raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
|
||||||
|
keywords: "{{ .Keywords }}"
|
||||||
|
# name, description, both, uploader
|
||||||
|
search_type: name
|
||||||
|
"sortOptions[sortBy]": "{{ .Config.sort }}"
|
||||||
|
"sortOptions[sortOrder]": "{{ .Config.type }}"
|
||||||
|
# does not support imdbid search but has imdbid links in results.
|
||||||
|
error:
|
||||||
|
- selector: div.error:not(:contains("There are no results found."))
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: "table#torrents_table_classic > tbody > tr:has(a[href*=\"?p=torrents&pid=10&action=download&tid=\"]){{ if .Config.freeleech }}:has(img[src$=\"/torrent_free.png\"]){{ else }}{{ end }}"
|
||||||
|
|
||||||
|
fields:
|
||||||
|
category:
|
||||||
|
selector: a[href*="?p=torrents&pid=10&cid="]
|
||||||
|
attribute: href
|
||||||
|
filters:
|
||||||
|
- name: querystring
|
||||||
|
args: cid
|
||||||
|
title:
|
||||||
|
selector: a[href*="?p=torrents&pid=10&action=details&tid="]
|
||||||
|
details:
|
||||||
|
selector: a[href*="?p=torrents&pid=10&action=details&tid="]
|
||||||
|
attribute: href
|
||||||
|
download:
|
||||||
|
selector: a[href*="?p=torrents&pid=10&action=download&tid="]
|
||||||
|
attribute: href
|
||||||
|
magnet:
|
||||||
|
selector: a[href^="magnet:?xt="]
|
||||||
|
attribute: href
|
||||||
|
optional: true
|
||||||
|
poster:
|
||||||
|
selector: a[href*="data/torrents/torrent_images/"]
|
||||||
|
attribute: href
|
||||||
|
imdbid:
|
||||||
|
selector: a[href*="imdb.com/title/tt"]
|
||||||
|
attribute: href
|
||||||
|
size:
|
||||||
|
selector: a[rel="torrent_size"]
|
||||||
|
grabs:
|
||||||
|
selector: a[rel="times_completed"]
|
||||||
|
seeders:
|
||||||
|
selector: a[rel="torrent_seeders"]
|
||||||
|
leechers:
|
||||||
|
selector: a[rel="torrent_leechers"]
|
||||||
|
date_day:
|
||||||
|
# Uploaded Today at 04:01:07 by
|
||||||
|
# Uploaded Yesterday at 06:37:21 by
|
||||||
|
selector: td.torrent_name:contains("day at ")
|
||||||
|
# auto adjusted by site account profile
|
||||||
|
optional: true
|
||||||
|
filters:
|
||||||
|
- name: regexp
|
||||||
|
args: "Uploaded (.+?) by"
|
||||||
|
- name: fuzzytime
|
||||||
|
date_year:
|
||||||
|
# Uploaded 17-04-2017 06:07:06 by
|
||||||
|
selector: td.torrent_name:not(:contains("day at "))
|
||||||
|
# auto adjusted by site account profile
|
||||||
|
optional: true
|
||||||
|
filters:
|
||||||
|
- name: regexp
|
||||||
|
args: "Uploaded (.+?) by"
|
||||||
|
- name: dateparse
|
||||||
|
args: "dd-MM-yyyy HH:mm:ss"
|
||||||
|
date:
|
||||||
|
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||||
|
downloadvolumefactor:
|
||||||
|
case:
|
||||||
|
img[src$="/torrent_free.png"]: 0
|
||||||
|
"*": 1
|
||||||
|
uploadvolumefactor:
|
||||||
|
text: 1
|
||||||
|
minimumratio:
|
||||||
|
text: 1.0
|
||||||
|
minimumseedtime:
|
||||||
|
# 2 day (as seconds = 2 x 24 x 60 x 60)
|
||||||
|
text: 172800
|
||||||
|
# TSUE 2.2
|
||||||
152
Prowlarr/config/Definitions/bigcore.yml
Normal file
152
Prowlarr/config/Definitions/bigcore.yml
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
---
|
||||||
|
id: bigcore
|
||||||
|
name: BigCore
|
||||||
|
description: "BigCore is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
|
||||||
|
language: hu-HU
|
||||||
|
type: private
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://bigcore.eu/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
- {id: 48, cat: Movies/SD, desc: "CAM/Hun"}
|
||||||
|
- {id: 49, cat: Movies/SD, desc: "CAM/Eng"}
|
||||||
|
- {id: 50, cat: Movies/SD, desc: "SD/Hun"}
|
||||||
|
- {id: 51, cat: Movies/SD, desc: "SD/Eng"}
|
||||||
|
- {id: 52, cat: Movies/DVD, desc: "DVD/Hun"}
|
||||||
|
- {id: 53, cat: Movies/DVD, desc: "DVD/Eng"}
|
||||||
|
- {id: 54, cat: Movies/HD, desc: "HD/Hun"}
|
||||||
|
- {id: 55, cat: Movies/HD, desc: "HD/Eng"}
|
||||||
|
- {id: 56, cat: TV, desc: "Sorozat/Hun"}
|
||||||
|
- {id: 57, cat: TV, desc: "Sorozat/Eng"}
|
||||||
|
- {id: 58, cat: PC/Games, desc: "Játék/ISO"}
|
||||||
|
- {id: 59, cat: PC/ISO, desc: "Program/ISO"}
|
||||||
|
- {id: 60, cat: PC/Games, desc: "Játék/RIP"}
|
||||||
|
- {id: 61, cat: PC/0day, desc: "Program/RIP"}
|
||||||
|
- {id: 62, cat: Audio, desc: "Zene/Hun"}
|
||||||
|
- {id: 63, cat: Audio, desc: "Zene/Eng"}
|
||||||
|
- {id: 64, cat: Books, desc: "Könyv"}
|
||||||
|
- {id: 65, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||||
|
- {id: 66, cat: XXX/x264, desc: "XXX/Video"}
|
||||||
|
- {id: 67, cat: XXX/ImageSet, desc: "XXX/Kép"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep]
|
||||||
|
movie-search: [q]
|
||||||
|
music-search: [q]
|
||||||
|
book-search: [q]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: cookie
|
||||||
|
type: text
|
||||||
|
label: Cookie
|
||||||
|
- name: info_cookie
|
||||||
|
type: info_cookie
|
||||||
|
- name: sort
|
||||||
|
type: select
|
||||||
|
label: Sort requested from site
|
||||||
|
default: 4
|
||||||
|
options:
|
||||||
|
1: title
|
||||||
|
4: created
|
||||||
|
7: seeders
|
||||||
|
5: size
|
||||||
|
- name: type
|
||||||
|
type: select
|
||||||
|
label: Order requested from site
|
||||||
|
default: desc
|
||||||
|
options:
|
||||||
|
desc: desc
|
||||||
|
asc: asc
|
||||||
|
- name: info_tpp
|
||||||
|
type: info
|
||||||
|
label: Results Per Page
|
||||||
|
default: For best results, change the <b>Torrentek száma egy oldalon</b> setting to <b>100</b> on your account profile. The default is <i>30</i>.
|
||||||
|
|
||||||
|
login:
|
||||||
|
# using cookie method because login page has embedded Google reCAPTCHA
|
||||||
|
method: cookie
|
||||||
|
inputs:
|
||||||
|
cookie: "{{ .Config.cookie }}"
|
||||||
|
test:
|
||||||
|
path: index.php
|
||||||
|
selector: a[href="/logout.php"]
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
- path: browse.php
|
||||||
|
inputs:
|
||||||
|
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||||
|
search: "{{ .Keywords }}"
|
||||||
|
# 0 active, 1 incldead, 2 onlydead, 3 myupload, 4 waiting for seed
|
||||||
|
incldead: 1
|
||||||
|
sort: "{{ .Config.sort }}"
|
||||||
|
type: "{{ .Config.type }}"
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: tr[id^="torrent_row_"], tr[id^="hidden_torrent_row_"]
|
||||||
|
after: 1
|
||||||
|
|
||||||
|
fields:
|
||||||
|
category:
|
||||||
|
selector: a[href^="browse.php?cat="]
|
||||||
|
attribute: href
|
||||||
|
filters:
|
||||||
|
- name: querystring
|
||||||
|
args: cat
|
||||||
|
title:
|
||||||
|
selector: a#torrentName
|
||||||
|
attribute: title
|
||||||
|
_id:
|
||||||
|
selector: a[href^="download.php?torrent="]
|
||||||
|
attribute: href
|
||||||
|
filters:
|
||||||
|
- name: querystring
|
||||||
|
args: torrent
|
||||||
|
details:
|
||||||
|
text: "details.php?id={{ .Result._id }}"
|
||||||
|
download:
|
||||||
|
selector: a[href^="download.php?torrent="]
|
||||||
|
attribute: href
|
||||||
|
poster:
|
||||||
|
selector: a[href^="kepek/"]
|
||||||
|
attribute: href
|
||||||
|
files:
|
||||||
|
selector: a.viewFileList
|
||||||
|
date:
|
||||||
|
selector: td:nth-child(7) a[title]
|
||||||
|
attribute: title
|
||||||
|
filters:
|
||||||
|
- name: append
|
||||||
|
args: " +01:00" # CET
|
||||||
|
- name: dateparse
|
||||||
|
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||||
|
size:
|
||||||
|
selector: td:nth-child(8)
|
||||||
|
grabs:
|
||||||
|
selector: td:nth-child(9)
|
||||||
|
seeders:
|
||||||
|
selector: td:nth-child(10)
|
||||||
|
leechers:
|
||||||
|
selector: td:nth-child(11)
|
||||||
|
description:
|
||||||
|
case:
|
||||||
|
i.fa-check: "Verified"
|
||||||
|
i.fa-question: "Unverified"
|
||||||
|
downloadvolumefactor:
|
||||||
|
case:
|
||||||
|
span:contains("0x"): 0
|
||||||
|
"*": 1
|
||||||
|
uploadvolumefactor:
|
||||||
|
case:
|
||||||
|
span:contains("2x"): 2
|
||||||
|
span:contains("3x"): 3
|
||||||
|
span:contains("4x"): 4
|
||||||
|
span:contains("5x"): 5
|
||||||
|
"*": 1
|
||||||
|
minimumseedtime:
|
||||||
|
# 1 days (as seconds = 1 x 24 x 60 x 60)
|
||||||
|
text: 86400
|
||||||
|
# engine n/a
|
||||||
@ -81,7 +81,7 @@ login:
|
|||||||
cookie: "{{ .Config.cookie }}"
|
cookie: "{{ .Config.cookie }}"
|
||||||
test:
|
test:
|
||||||
path: index.php
|
path: index.php
|
||||||
selector: i.fa-arrow-right-from-bracket[title="Kilépés"]
|
selector: a[onclick="confirmLogout()"]
|
||||||
|
|
||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
|
|||||||
@ -145,7 +145,7 @@ search:
|
|||||||
- name: dateparse
|
- name: dateparse
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||||
size:
|
size:
|
||||||
selector: td.fixed-width-size > span
|
selector: td.fixed-width-size > a
|
||||||
grabs:
|
grabs:
|
||||||
selector: td.fixed-width-completed
|
selector: td.fixed-width-completed
|
||||||
seeders:
|
seeders:
|
||||||
|
|||||||
@ -48,44 +48,61 @@ caps:
|
|||||||
music-search: [q]
|
music-search: [q]
|
||||||
book-search: [q]
|
book-search: [q]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: cookie
|
||||||
|
type: text
|
||||||
|
label: Cookie
|
||||||
|
- name: info_cookie
|
||||||
|
type: info_cookie
|
||||||
|
- name: sort
|
||||||
|
type: select
|
||||||
|
label: Sort requested from site
|
||||||
|
default: added
|
||||||
|
options:
|
||||||
|
added: 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: "If you do not visit the site for 1 year, you will be banned for inactivity. The permanent deletion of your account after the ban is 2 years."
|
||||||
|
|
||||||
login:
|
login:
|
||||||
path: takelogin.php
|
method: cookie
|
||||||
method: post
|
|
||||||
inputs:
|
inputs:
|
||||||
username: "{{ .Config.username }}"
|
cookie: "{{ .Config.cookie }}"
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
error:
|
|
||||||
- selector: td.embedded:has(h2:contains("bejelentkezés"))
|
|
||||||
test:
|
test:
|
||||||
path: browse.php
|
path: index.php
|
||||||
selector: a[href*="logout.php"]
|
selector: a[href^="/logout.php?"]
|
||||||
|
|
||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
- path: browse.php
|
- path: browse.php
|
||||||
inputs:
|
inputs:
|
||||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||||
incldead: 1
|
onlytitle: "{{ if .Query.IMDBID }}{{ else }}yes{{ end }}"
|
||||||
|
sort: "{{ .Config.sort }}"
|
||||||
|
d: "{{ .Config.type }}"
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
selector: table#torrenttable > tbody > tr:has(a[href^="details.php?id="])
|
selector: table#torrenttable > tbody > tr:has(a[href^="details.php?id="])
|
||||||
filters:
|
|
||||||
- name: andmatch
|
|
||||||
|
|
||||||
fields:
|
fields:
|
||||||
# download button can be disbled in the profile, use details link instead
|
category:
|
||||||
# download:
|
selector: a[href^="?cat="]
|
||||||
# selector: a[href^="download.php/"]
|
|
||||||
# attribute: href
|
|
||||||
download:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
attribute: href
|
attribute: href
|
||||||
filters:
|
filters:
|
||||||
- name: replace
|
- name: querystring
|
||||||
args: ["details.php?id=", "download.php/"]
|
args: cat
|
||||||
- name: append
|
|
||||||
args: "/invalid.torrent"
|
|
||||||
title_default:
|
title_default:
|
||||||
selector: a[href^="details.php?id="]
|
selector: a[href^="details.php?id="]
|
||||||
title:
|
title:
|
||||||
@ -96,21 +113,30 @@ search:
|
|||||||
details:
|
details:
|
||||||
selector: a[href^="details.php?id="]
|
selector: a[href^="details.php?id="]
|
||||||
attribute: href
|
attribute: href
|
||||||
imdbid:
|
# download button can be disabled in the profile, use details link instead
|
||||||
selector: a[href*="imdb.com/title/tt"]
|
download:
|
||||||
|
selector: a[href^="details.php?id="]
|
||||||
attribute: href
|
attribute: href
|
||||||
|
filters:
|
||||||
|
- name: replace
|
||||||
|
args: ["details.php?id=", "download.php/"]
|
||||||
|
- name: append
|
||||||
|
args: "/invalid.torrent"
|
||||||
poster:
|
poster:
|
||||||
selector: a[onmouseover^="bithumen.UI.images.coverShow"]
|
selector: a[onmouseover^="bithumen.UI.images.coverShow"]
|
||||||
attribute: onmouseover
|
attribute: onmouseover
|
||||||
filters:
|
filters:
|
||||||
- name: regexp
|
- name: regexp
|
||||||
args: "\"(.*?)\""
|
args: "\"(.*?)\""
|
||||||
category:
|
imdbid:
|
||||||
selector: a[href^="?cat="]
|
selector: a[href*="imdb.com/title/tt"]
|
||||||
attribute: href
|
attribute: href
|
||||||
filters:
|
size:
|
||||||
- name: querystring
|
selector: td:nth-child(6) > u
|
||||||
args: cat
|
files:
|
||||||
|
selector: td:nth-child(3)
|
||||||
|
grabs:
|
||||||
|
selector: td:nth-child(7)
|
||||||
seeders:
|
seeders:
|
||||||
selector: td:nth-child(8)
|
selector: td:nth-child(8)
|
||||||
leechers:
|
leechers:
|
||||||
@ -118,21 +144,19 @@ search:
|
|||||||
filters:
|
filters:
|
||||||
- name: regexp
|
- name: regexp
|
||||||
args: /\s*([\d,]+)
|
args: /\s*([\d,]+)
|
||||||
grabs:
|
genre:
|
||||||
selector: td:nth-child(7)
|
selector: span:has(a[href^="browse.php?genre="])
|
||||||
files:
|
|
||||||
selector: td:nth-child(3)
|
|
||||||
size:
|
|
||||||
selector: td:nth-child(6) > u
|
|
||||||
downloadvolumefactor:
|
downloadvolumefactor:
|
||||||
text: 0
|
text: 0
|
||||||
uploadvolumefactor:
|
uploadvolumefactor:
|
||||||
selector: td:nth-child(5) > nobr > font:contains(" × ")
|
selector: td:nth-child(5) > nobr > font:contains(" × ")
|
||||||
optional: true
|
optional: true
|
||||||
default: 1
|
default: 1
|
||||||
filters:
|
minimumseedtime:
|
||||||
- name: replace
|
# 1 day (as seconds = 24 x 60 x 60)
|
||||||
args: ["×", ""]
|
text: 86400
|
||||||
|
description:
|
||||||
|
selector: td:nth-child(2) > div
|
||||||
date_year:
|
date_year:
|
||||||
selector: td:nth-child(5):contains('.')
|
selector: td:nth-child(5):contains('.')
|
||||||
optional: true
|
optional: true
|
||||||
@ -155,6 +179,4 @@ search:
|
|||||||
args: ["tegnap", "yesterday"]
|
args: ["tegnap", "yesterday"]
|
||||||
date:
|
date:
|
||||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||||
description:
|
|
||||||
selector: td:nth-child(2) > div
|
|
||||||
# engine tbd
|
# engine tbd
|
||||||
|
|||||||
@ -49,8 +49,8 @@ search:
|
|||||||
t: "{{ .Query.Type }}"
|
t: "{{ .Query.Type }}"
|
||||||
q: "{{ .Keywords }}"
|
q: "{{ .Keywords }}"
|
||||||
cat: "{{ join .Categories \",\" }}"
|
cat: "{{ join .Categories \",\" }}"
|
||||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
imdbid: "{{ .Query.IMDBIDShort }}"
|
||||||
tmdbId: "{{ .Query.TMDBID }}"
|
tmdbid: "{{ .Query.TMDBID }}"
|
||||||
season: "{{ .Query.Season }}"
|
season: "{{ .Query.Season }}"
|
||||||
ep: "{{ .Query.Ep }}"
|
ep: "{{ .Query.Ep }}"
|
||||||
limit: 100
|
limit: 100
|
||||||
|
|||||||
@ -6,6 +6,7 @@ language: hu-HU
|
|||||||
type: private
|
type: private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
|
- https://bitpalace.hu/
|
||||||
- https://bitpalace.cc/
|
- https://bitpalace.cc/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
@ -35,10 +36,10 @@ caps:
|
|||||||
- {id: 3, cat: Movies/SD, desc: "XVID HUN"}
|
- {id: 3, cat: Movies/SD, desc: "XVID HUN"}
|
||||||
- {id: 12, cat: XXX/DVD, desc: "XXX DVD-R"}
|
- {id: 12, cat: XXX/DVD, desc: "XXX DVD-R"}
|
||||||
- {id: 6, cat: XXX/x264, desc: "XXX HD"}
|
- {id: 6, cat: XXX/x264, desc: "XXX HD"}
|
||||||
- {id: 10, cat: XXX/ImageSet, desc: "XXX/Képek"}
|
- {id: 10, cat: XXX/ImageSet, desc: "XXX KÉPEK"}
|
||||||
- {id: 11, cat: XXX/XviD, desc: "XXX XVID"}
|
- {id: 11, cat: XXX/XviD, desc: "XXX XVID"}
|
||||||
- {id: 19, cat: Audio/Video, desc: "ZENE Klipp"}
|
- {id: 19, cat: Audio/Video, desc: "ZENE Klipp"}
|
||||||
- {id: 26, cat: Audio/MP3, desc: "ZENE MP3"}
|
- {id: 20, cat: Audio/MP3, desc: "ZENE MP3"}
|
||||||
|
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
id: bitporn
|
id: bitporn
|
||||||
name: BitPorn
|
name: BitPorn (API)
|
||||||
description: "BitPorn (Malacka) is a HUNGARIAN Private Torrent Tracker for 3X"
|
description: "BitPorn (Malacka) is a HUNGARIAN Private Torrent Tracker for 3X"
|
||||||
language: hu-HU
|
language: hu-HU
|
||||||
type: private
|
type: private
|
||||||
@ -10,67 +10,69 @@ links:
|
|||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
- {id: 418, cat: XXX, desc: "Amateur"}
|
- {id: 54, cat: XXX, desc: Ai Generated"}
|
||||||
- {id: 410, cat: XXX, desc: "Anal"}
|
- {id: 4, cat: XXX, desc: Amateur"}
|
||||||
- {id: 414, cat: XXX, desc: "Animal"}
|
- {id: 5, cat: XXX, desc: Anal"}
|
||||||
- {id: 415, cat: XXX, desc: "Asian"}
|
- {id: 6, cat: XXX, desc: Asian"}
|
||||||
- {id: 416, cat: XXX, desc: "BBW"}
|
- {id: 7, cat: XXX, desc: BBW"}
|
||||||
- {id: 417, cat: XXX, desc: "BDSM"}
|
- {id: 8, cat: XXX, desc: BDSM"}
|
||||||
- {id: 419, cat: XXX, desc: "Big Ass"}
|
- {id: 9, cat: XXX, desc: Big Ass"}
|
||||||
- {id: 420, cat: XXX, desc: "Big Tits"}
|
- {id: 10, cat: XXX, desc: Big Tits"}
|
||||||
- {id: 421, cat: XXX, desc: "Black"}
|
- {id: 11, cat: XXX, desc: Black"}
|
||||||
- {id: 447, cat: XXX, desc: "Cartoon"}
|
- {id: 12, cat: XXX, desc: Cartoon"}
|
||||||
- {id: 448, cat: XXX, desc: "Casting"}
|
- {id: 13, cat: XXX, desc: Casting"}
|
||||||
- {id: 422, cat: XXX, desc: "Classic"}
|
- {id: 14, cat: XXX, desc: Classic"}
|
||||||
- {id: 434, cat: XXX, desc: "Collection"}
|
- {id: 15, cat: XXX, desc: Collection"}
|
||||||
- {id: 423, cat: XXX, desc: "Creampie"}
|
- {id: 16, cat: XXX, desc: Creampie"}
|
||||||
- {id: 424, cat: XXX, desc: "Cumshot"}
|
- {id: 17, cat: XXX, desc: Cumshot"}
|
||||||
- {id: 451, cat: XXX, desc: "Deepthroat"}
|
- {id: 18, cat: XXX, desc: Deepthroat"}
|
||||||
- {id: 455, cat: XXX, desc: "Extreme"}
|
- {id: 19, cat: XXX, desc: Extreme"}
|
||||||
- {id: 460, cat: XXX, desc: "Fansite"}
|
- {id: 20, cat: XXX, desc: Fansite"}
|
||||||
- {id: 454, cat: XXX, desc: "Family"}
|
- {id: 21, cat: XXX, desc: Family"}
|
||||||
- {id: 425, cat: XXX, desc: "Feature"}
|
- {id: 22, cat: XXX, desc: Feature"}
|
||||||
- {id: 426, cat: XXX, desc: "Fetish"}
|
- {id: 23, cat: XXX, desc: Fetish"}
|
||||||
- {id: 457, cat: XXX, desc: "Fisting"}
|
- {id: 24, cat: XXX, desc: Fisting"}
|
||||||
- {id: 453, cat: XXX, desc: "Gangbang"}
|
- {id: 25, cat: XXX, desc: Gangbang"}
|
||||||
- {id: 459, cat: XXX, desc: "Game"}
|
- {id: 26, cat: XXX, desc: Game"}
|
||||||
- {id: 427, cat: XXX, desc: "Gay / Bi"}
|
- {id: 27, cat: XXX, desc: Gay / Bi"}
|
||||||
- {id: 412, cat: XXX, desc: "Hair"}
|
- {id: 28, cat: XXX, desc: Hair"}
|
||||||
- {id: 411, cat: XXX, desc: "Hardcore"}
|
- {id: 29, cat: XXX, desc: Hardcore"}
|
||||||
- {id: 456, cat: XXX, desc: "HiddenCam"}
|
- {id: 30, cat: XXX, desc: HiddenCam"}
|
||||||
- {id: 428, cat: XXX, desc: "Homemade"}
|
- {id: 31, cat: XXX, desc: Homemade"}
|
||||||
- {id: 429, cat: XXX, desc: "Interracial"}
|
- {id: 32, cat: XXX, desc: Interracial"}
|
||||||
- {id: 430, cat: XXX, desc: "Lesbian"}
|
- {id: 33, cat: XXX, desc: Lesbian"}
|
||||||
- {id: 431, cat: XXX, desc: "Magyar"}
|
- {id: 34, cat: XXX, desc: Magyar"}
|
||||||
- {id: 432, cat: XXX, desc: "Masturbation"}
|
- {id: 35, cat: XXX, desc: Masturbation"}
|
||||||
- {id: 433, cat: XXX, desc: "Mature"}
|
- {id: 36, cat: XXX, desc: Mature"}
|
||||||
- {id: 435, cat: XXX, desc: "Milf"}
|
- {id: 37, cat: XXX, desc: Milf"}
|
||||||
- {id: 436, cat: XXX, desc: "Old and Young"}
|
- {id: 53, cat: XXX, desc: Movie"}
|
||||||
- {id: 437, cat: XXX, desc: "Parody"}
|
- {id: 38, cat: XXX, desc: Old and Young"}
|
||||||
- {id: 449, cat: XXX, desc: "Pictures"}
|
- {id: 39, cat: XXX, desc: Parody"}
|
||||||
- {id: 438, cat: XXX, desc: "Pissing"}
|
- {id: 40, cat: XXX, desc: Pictures"}
|
||||||
- {id: 439, cat: XXX, desc: "POV"}
|
- {id: 41, cat: XXX, desc: Pissing"}
|
||||||
- {id: 440, cat: XXX, desc: "Pregnant"}
|
- {id: 42, cat: XXX, desc: POV"}
|
||||||
- {id: 452, cat: XXX, desc: "Public"}
|
- {id: 43, cat: XXX, desc: Pregnant"}
|
||||||
- {id: 441, cat: XXX, desc: "Shemale"}
|
- {id: 44, cat: XXX, desc: Public"}
|
||||||
- {id: 442, cat: XXX, desc: "Softcore"}
|
- {id: 45, cat: XXX, desc: Shemale"}
|
||||||
- {id: 443, cat: XXX, desc: "Squirt"}
|
- {id: 46, cat: XXX, desc: Softcore"}
|
||||||
- {id: 444, cat: XXX, desc: "Straight"}
|
- {id: 47, cat: XXX, desc: Squirt"}
|
||||||
- {id: 445, cat: XXX, desc: "Teen"}
|
- {id: 48, cat: XXX, desc: Straight"}
|
||||||
- {id: 450, cat: XXX, desc: "Threesome"}
|
- {id: 49, cat: XXX, desc: Teen"}
|
||||||
- {id: 446, cat: XXX, desc: "VR"}
|
- {id: 50, cat: XXX, desc: Threesome"}
|
||||||
- {id: 458, cat: XXX, desc: "Uncategorized"}
|
- {id: 51, cat: XXX, desc: VR"}
|
||||||
|
- {id: 52, cat: XXX, desc: Uncategorized"}
|
||||||
|
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
- name: username
|
- name: apikey
|
||||||
type: text
|
type: text
|
||||||
label: Username
|
label: APIKey
|
||||||
- name: password
|
- name: info_key
|
||||||
type: password
|
type: info
|
||||||
label: Password
|
label: About your API key
|
||||||
|
default: "Find or Generate a new API Token by accessing your <a href=\"https://bitporn.eu/\" target=\"_blank\">BitPorn</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||||
- name: freeleech
|
- name: freeleech
|
||||||
type: checkbox
|
type: checkbox
|
||||||
label: Search freeleech only
|
label: Search freeleech only
|
||||||
@ -78,12 +80,12 @@ settings:
|
|||||||
- name: sort
|
- name: sort
|
||||||
type: select
|
type: select
|
||||||
label: Sort requested from site
|
label: Sort requested from site
|
||||||
default: 4
|
default: created_at
|
||||||
options:
|
options:
|
||||||
4: created
|
created_at: created
|
||||||
7: seeders
|
seeders: seeders
|
||||||
5: size
|
size: size
|
||||||
1: title
|
name: title
|
||||||
- name: type
|
- name: type
|
||||||
type: select
|
type: select
|
||||||
label: Order requested from site
|
label: Order requested from site
|
||||||
@ -91,121 +93,103 @@ settings:
|
|||||||
options:
|
options:
|
||||||
desc: desc
|
desc: desc
|
||||||
asc: asc
|
asc: asc
|
||||||
- name: info_tpp
|
|
||||||
type: info
|
|
||||||
label: Results Per Page
|
|
||||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
|
||||||
- name: info_activity
|
- name: info_activity
|
||||||
type: info
|
type: info
|
||||||
label: Account Inactivity
|
label: Account Inactivity
|
||||||
default: "You must log in to the site at least once a month; otherwise, your account will be suspended."
|
default: "You must log in to the site at least once a month; otherwise, your account will be suspended."
|
||||||
|
|
||||||
login:
|
login:
|
||||||
path: takelogin.php
|
path: /api/torrents
|
||||||
method: post
|
method: get
|
||||||
inputs:
|
|
||||||
secret: ""
|
|
||||||
username: "{{ .Config.username }}"
|
|
||||||
password: "{{ .Config.password }}"
|
|
||||||
error:
|
error:
|
||||||
- selector: td.embedded:has(h2:contains("Bejelentkezés sikertelen!"))
|
- selector: a[href*="/login"]
|
||||||
test:
|
message:
|
||||||
path: index.php
|
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||||
selector: a[href="logout.php"]
|
- selector: :root:contains("Account is Banned")
|
||||||
|
|
||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
- path: torrents.php
|
# 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
|
||||||
|
|
||||||
|
headers:
|
||||||
|
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||||
|
|
||||||
inputs:
|
inputs:
|
||||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
# 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
|
||||||
search: "{{ .Keywords }}"
|
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||||
# 0 incldead, 1 active, 2 dead
|
name: "{{ .Keywords }}"
|
||||||
incldead: 0
|
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
sortField: "{{ .Config.sort }}"
|
||||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
sortDirection: "{{ .Config.type }}"
|
||||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
perPage: 100
|
||||||
search_area: 0
|
|
||||||
# 0 AND, 2 exact
|
keywordsfilters:
|
||||||
search_mode: 0
|
- name: re_replace
|
||||||
sort: "{{ .Config.sort }}"
|
args: ["\\.", " "]
|
||||||
type: "{{ .Config.type }}"
|
|
||||||
notnewword: 1
|
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
selector: table.contenttable > tbody > tr:has(a[href^="details.php?id="])
|
selector: data
|
||||||
|
attribute: attributes
|
||||||
|
|
||||||
fields:
|
fields:
|
||||||
category:
|
category:
|
||||||
selector: a[href^="?cat="]
|
selector: category_id
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: querystring
|
|
||||||
args: cat
|
|
||||||
title_default:
|
|
||||||
selector: a[href^="details.php?id="]
|
|
||||||
title:
|
title:
|
||||||
selector: a[title][href^="details.php?id="]
|
selector: name
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
default: "{{ .Result.title_default }}"
|
|
||||||
details:
|
details:
|
||||||
selector: a[href^="details.php?id="]
|
selector: details_link
|
||||||
attribute: href
|
|
||||||
download:
|
download:
|
||||||
selector: a[href^="download.php?id="]
|
selector: download_link
|
||||||
attribute: href
|
files:
|
||||||
poster:
|
selector: num_file
|
||||||
selector: img[data-src]
|
|
||||||
attribute: data-src
|
|
||||||
date_elapsed:
|
|
||||||
# time type: time elapsed (default)
|
|
||||||
selector: td.rowfollow:nth-child(4) > span[title]
|
|
||||||
attribute: title
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +01:00" # CET
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
|
||||||
date_added:
|
|
||||||
# time added
|
|
||||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: append
|
|
||||||
args: " +01:00" # CET
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
|
||||||
date:
|
|
||||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
|
||||||
size:
|
|
||||||
selector: td.rowfollow:nth-child(5)
|
|
||||||
seeders:
|
seeders:
|
||||||
selector: td.rowfollow:nth-child(6)
|
selector: seeders
|
||||||
leechers:
|
leechers:
|
||||||
selector: td.rowfollow:nth-child(7)
|
selector: leechers
|
||||||
grabs:
|
grabs:
|
||||||
selector: td.rowfollow:nth-child(8)
|
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:
|
downloadvolumefactor:
|
||||||
|
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
|
||||||
|
uploadvolumefactor_double_upload:
|
||||||
|
# api returns False, True
|
||||||
|
selector: double_upload
|
||||||
case:
|
case:
|
||||||
img.pro_free: 0
|
False: 1 # normal
|
||||||
img.pro_free2up: 0
|
True: 2 # double
|
||||||
img.pro_50pctdown: 0.5
|
|
||||||
img.pro_50pctdown2up: 0.5
|
|
||||||
img.pro_30pctdown: 0.3
|
|
||||||
"*": 1
|
|
||||||
uploadvolumefactor:
|
uploadvolumefactor:
|
||||||
case:
|
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||||
img.pro_50pctdown2up: 2
|
|
||||||
img.pro_free2up: 2
|
|
||||||
img.pro_2up: 2
|
|
||||||
"*": 1
|
|
||||||
minimumratio:
|
minimumratio:
|
||||||
text: 1.0
|
text: 1.0
|
||||||
minimumseedtime:
|
minimumseedtime:
|
||||||
# 48 hours (as seconds = 2 x 24 x 60 x 60)
|
# 48 hours (as seconds = 2 x 24 x 60 x 60)
|
||||||
text: 172800
|
text: 172800
|
||||||
description:
|
# json UNIT3D 9.2.0 (custom)
|
||||||
selector: td.rowfollow:nth-child(2)
|
|
||||||
remove: a, b, font, img, span
|
|
||||||
# NexusPHP v2.4 (custom)
|
|
||||||
|
|||||||
@ -1,47 +1,68 @@
|
|||||||
---
|
---
|
||||||
id: bitsearch
|
id: bitsearch
|
||||||
|
replaces:
|
||||||
|
- solidtorrents
|
||||||
name: BitSearch
|
name: BitSearch
|
||||||
description: "BitSearch is a Public torrent meta-search engine"
|
description: "BitSearch (Solid Torrents) is a Public torrent meta-search engine"
|
||||||
language: en-US
|
language: en-US
|
||||||
type: public
|
type: public
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
requestDelay: 2
|
|
||||||
links:
|
links:
|
||||||
- https://bitsearch.to/
|
- https://bitsearch.to/
|
||||||
|
- https://solidtorrents.eu/
|
||||||
legacylinks:
|
legacylinks:
|
||||||
- https://bitsearch.nocensor.cloud/
|
- https://bitsearch.nocensor.cloud/
|
||||||
- https://bitsearch.mrunblock.bond/
|
- https://bitsearch.mrunblock.bond/
|
||||||
|
- https://solidtorrents.net/
|
||||||
|
- https://solidtorrents.nocensor.cloud/
|
||||||
|
- https://solidtorrents.to/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
categories:
|
categories:
|
||||||
|
Anime: TV/Anime
|
||||||
|
Anime/Dub/Dual Audio: TV/Anime
|
||||||
|
Anime/Raw: TV/Anime
|
||||||
|
Anime/Subbed: TV/Anime
|
||||||
AudioBook: Audio/Audiobook
|
AudioBook: Audio/Audiobook
|
||||||
eBook: Books/EBook
|
Books: Books
|
||||||
"Ebook/Course": Books/EBook
|
Books/Academic: Books/EBook
|
||||||
Games: PC/Games
|
Books/Comics: Books/Comics
|
||||||
"Games/PC": PC/Games
|
Books/Fiction: Books/EBook
|
||||||
|
Books/Magazines: Books/Mags
|
||||||
|
Books/Non-fiction: Books/EBook
|
||||||
|
Ebook/Course: Books/EBook
|
||||||
|
Games: Console
|
||||||
|
Games/Console: Console
|
||||||
|
Games/Mobile: PC/Mobile-Other
|
||||||
|
Games/PC: PC/Games
|
||||||
|
Games/RIP: PC/Games
|
||||||
Movies: Movies
|
Movies: Movies
|
||||||
|
Movies/Dub/Dual Audio: Movies
|
||||||
Music: Audio
|
Music: Audio
|
||||||
"Music/Album": Audio
|
Music/Album: Audio
|
||||||
"Music/mp3": Audio/MP3
|
Music/Discography: Audio
|
||||||
"Music/Lossless": Audio/Lossless
|
Music/FLAC: Audio/Lossless
|
||||||
"Music/Video": Audio/Video
|
Music/Lossless: Audio/Lossless
|
||||||
|
Music/MP3: Audio/MP3
|
||||||
|
Music/Single: Audio
|
||||||
Other: Other
|
Other: Other
|
||||||
"Other/Android": PC/Mobile-Android
|
Other/Android: PC/Mobile-Android
|
||||||
"Other/Archive": Other
|
Other/Archive: Other
|
||||||
"Other/Audio": Audio
|
Other/Audio: Audio
|
||||||
"Other/Database": PC
|
Other/Database: PC
|
||||||
"Other/DiskImage": PC/ISO
|
Other/DiskImage: PC/ISO
|
||||||
"Other/Document": Books/Comics
|
Other/Document: Books/Comics
|
||||||
"Other/Image": Other/Misc
|
Other/Image: Other/Misc
|
||||||
"Other/Program": PC/0day
|
Other/Program: PC
|
||||||
"Other/Sourcecode": PC
|
Other/Source Code: PC
|
||||||
"Other/Source Code": PC
|
Other/Video: TV
|
||||||
"Other/Video": Other
|
|
||||||
Softwares: PC/0day
|
Softwares: PC/0day
|
||||||
"Softwares/Windows": PC/0day
|
Softwares/Android: PC/Mobile-Android
|
||||||
|
Softwares/Linux: PC
|
||||||
|
Softwares/MacOS: PC/Mac
|
||||||
|
Softwares/Windows: PC/0day
|
||||||
|
Softwares/iOS: PC/Mobile-iOS
|
||||||
TV: TV
|
TV: TV
|
||||||
Unknown: Other
|
|
||||||
XXX: XXX
|
|
||||||
|
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
@ -51,139 +72,73 @@ caps:
|
|||||||
book-search: [q]
|
book-search: [q]
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
- name: prefer_magnet_links
|
|
||||||
type: checkbox
|
|
||||||
label: Prefer Magnet Links
|
|
||||||
default: false
|
|
||||||
- name: sort
|
- name: sort
|
||||||
type: select
|
type: select
|
||||||
label: Sort requested from site
|
label: Sort requested from site.
|
||||||
default: date
|
default: created
|
||||||
options:
|
options:
|
||||||
date: created
|
created: created
|
||||||
seeders: seeders
|
seeders: seeders
|
||||||
size: size
|
size: size
|
||||||
- name: type
|
- name: type
|
||||||
type: select
|
type: select
|
||||||
label: Order requested from site
|
label: Order requested from site.
|
||||||
default: desc
|
default: desc
|
||||||
options:
|
options:
|
||||||
desc: desc
|
desc: desc
|
||||||
asc: asc
|
asc: asc
|
||||||
- name: info_category_8000
|
|
||||||
type: info
|
download:
|
||||||
label: About BitSearch Categories
|
selectors:
|
||||||
default: BitSearch does not properly return categories in its search results for some releases.</br>To add to your Apps' Torznab indexer, you will need to include the 8000(Other) category.
|
- selector: a[href^="magnet:?xt"]
|
||||||
|
attribute: href
|
||||||
|
|
||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
# https://bitsearch.to/search?q=&sort=date&order=desc
|
# https://bitsearch.to/search?q=spongebob&sortBy=created&order=desc&page=1
|
||||||
- path: search
|
- path: "{{ if .Keywords }}search?q={{ .Keywords }}&sortBy={{ .Config.sort }}&order={{ .Config.type }}&page=1{{ else }}latest{{ end }}"
|
||||||
inputs:
|
|
||||||
q: "{{ .Keywords }}"
|
|
||||||
sort: "{{ .Config.sort }}"
|
|
||||||
order: "{{ .Config.type }}"
|
|
||||||
limit: 100
|
|
||||||
page: 1
|
|
||||||
|
|
||||||
keywordsfilters:
|
keywordsfilters:
|
||||||
- name: re_replace
|
- name: re_replace
|
||||||
args: ["\\.", " "]
|
args: ["\\.", " "]
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
selector: div.search-result:has(a.dl-torrent), li.search-result:has(a.dl-torrent)
|
selector: div.space-y-4 > div.bg-white > div.items-start
|
||||||
|
|
||||||
fields:
|
fields:
|
||||||
category:
|
category:
|
||||||
selector: a.category
|
# latest, search
|
||||||
|
selector: div.space-y-2 > span:nth-child(1), span.space-x-1:nth-child(1)
|
||||||
title:
|
title:
|
||||||
selector: h5 a
|
selector: h3 > a
|
||||||
details:
|
details:
|
||||||
selector: h5 a
|
selector: h3 > a
|
||||||
attribute: href
|
attribute: href
|
||||||
download_optional:
|
|
||||||
selector: a.dl-torrent
|
|
||||||
attribute: href
|
|
||||||
optional: true
|
|
||||||
download:
|
download:
|
||||||
text: "{{ if .Config.prefer_magnet_links }}{{ else }}{{ .Result.download_optional }}{{ end }}"
|
selector: h3 > a
|
||||||
optional: true
|
|
||||||
magnet:
|
|
||||||
selector: a[href^="magnet:?xt"]
|
|
||||||
attribute: href
|
attribute: href
|
||||||
infohash:
|
|
||||||
selector: a[href^="magnet:?xt"]
|
|
||||||
attribute: href
|
|
||||||
filters:
|
|
||||||
- name: regexp
|
|
||||||
args: ([A-F|a-f|0-9]{40})
|
|
||||||
grabs_dot:
|
|
||||||
selector: div.stats div:has(img[alt="Download"]):contains(".")
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: [".", ""]
|
|
||||||
- name: replace
|
|
||||||
args: ["K", "00"]
|
|
||||||
- name: replace
|
|
||||||
args: ["M", "00000"]
|
|
||||||
grabs_nodot:
|
|
||||||
selector: div.stats div:has(img[alt="Download"]):not(:contains("."))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["K", "000"]
|
|
||||||
- name: replace
|
|
||||||
args: ["M", "000000"]
|
|
||||||
grabs:
|
|
||||||
text: "{{ if or .Result.grabs_dot .Result.grabs_nodot }}{{ or .Result.grabs_dot .Result.grabs_nodot }}{{ else }}0{{ end }}"
|
|
||||||
size:
|
size:
|
||||||
selector: div.stats div:has(img[alt="Size"])
|
selector: div.space-y-2 > span:nth-child(2), span.space-x-1:nth-child(2)
|
||||||
seeders_dot:
|
date_year:
|
||||||
selector: div.stats div:has(img[alt="Seeder"]):contains(".")
|
selector: div.space-y-2 > span:nth-child(3):contains("/"), span.space-x-1:nth-child(3):contains("/")
|
||||||
optional: true
|
optional: true
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: [".", ""]
|
|
||||||
- name: replace
|
|
||||||
args: ["K", "00"]
|
|
||||||
- name: replace
|
|
||||||
args: ["M", "00000"]
|
|
||||||
seeders_nodot:
|
|
||||||
selector: div.stats div:has(img[alt="Seeder"]):not(:contains("."))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["K", "000"]
|
|
||||||
- name: replace
|
|
||||||
args: ["M", "000000"]
|
|
||||||
seeders:
|
|
||||||
text: "{{ if or .Result.seeders_dot .Result.seeders_nodot }}{{ or .Result.seeders_dot .Result.seeders_nodot }}{{ else }}0{{ end }}"
|
|
||||||
leechers_dot:
|
|
||||||
selector: div.stats div:has(img[alt="Leecher"]):contains(".")
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: [".", ""]
|
|
||||||
- name: replace
|
|
||||||
args: ["K", "00"]
|
|
||||||
- name: replace
|
|
||||||
args: ["M", "00000"]
|
|
||||||
leechers_nodot:
|
|
||||||
selector: div.stats div:has(img[alt="Leecher"]):not(:contains("."))
|
|
||||||
optional: true
|
|
||||||
filters:
|
|
||||||
- name: replace
|
|
||||||
args: ["K", "000"]
|
|
||||||
- name: replace
|
|
||||||
args: ["M", "000000"]
|
|
||||||
leechers:
|
|
||||||
text: "{{ if or .Result.leechers_dot .Result.leechers_nodot }}{{ or .Result.leechers_dot .Result.leechers_nodot }}{{ else }}0{{ end }}"
|
|
||||||
date:
|
|
||||||
selector: div.stats div:has(img[alt="Date"])
|
|
||||||
filters:
|
filters:
|
||||||
- name: dateparse
|
- name: dateparse
|
||||||
args: "MMM d, yyyy"
|
args: "M/d/yyyy"
|
||||||
|
date_ago:
|
||||||
|
selector: div.space-y-2 > span:nth-child(3):contains("ago"), span.space-x-1:nth-child(3):contains("ago")
|
||||||
|
optional: true
|
||||||
|
filters:
|
||||||
|
- name: timeago
|
||||||
|
date:
|
||||||
|
text: "{{ if or .Result.date_year .Result.date_ago }}{{ or .Result.date_year .Result.date_ago }}{{ else }}now{{ end }}"
|
||||||
|
seeders:
|
||||||
|
selector: div.space-x-3 > span:nth-child(1), span:contains("seeders")
|
||||||
|
leechers:
|
||||||
|
selector: div.space-x-3 > span:nth-child(2), span:contains("leechers")
|
||||||
|
grabs:
|
||||||
|
selector: span:contains("downloads")
|
||||||
|
optional: true
|
||||||
downloadvolumefactor:
|
downloadvolumefactor:
|
||||||
text: 0
|
text: 0
|
||||||
uploadvolumefactor:
|
uploadvolumefactor:
|
||||||
|
|||||||
181
Prowlarr/config/Definitions/bitsexy-api.yml
Normal file
181
Prowlarr/config/Definitions/bitsexy-api.yml
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
---
|
||||||
|
id: bitsexy-api
|
||||||
|
name: BitSexy (API)
|
||||||
|
description: "BitSexy is a Private Torrent Tracker for 3X"
|
||||||
|
language: en-US
|
||||||
|
type: private
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://bitsexy.cc/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
- {id: 1, cat: XXX/x264, desc: "Movies"}
|
||||||
|
- {id: 2, cat: XXX/Pack, desc: "Pack"}
|
||||||
|
- {id: 3, cat: XXX/ImageSet, desc: "Images"}
|
||||||
|
- {id: 4, cat: Console, desc: "Games"}
|
||||||
|
- {id: 5, cat: Books, desc: "Books"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
movie-search: [q]
|
||||||
|
book-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://bitsexy.cc/\" target=\"_blank\">BitSexy</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: "<ul><li>You must log in once every 60 days or seed at least 1 torrent to not get disabled</li><li>Once disabled, you have another 60 days to log back in and have your account re-activated. You may need to contact Helpdesk to do so</li><li>Disabled account will be deleted after 180 days of inactivity</li><ul>"
|
||||||
|
|
||||||
|
login:
|
||||||
|
path: /api/torrents
|
||||||
|
method: get
|
||||||
|
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
|
||||||
|
|
||||||
|
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 }}"
|
||||||
|
"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: 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
|
||||||
|
_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 }}"
|
||||||
|
minimumseedtime:
|
||||||
|
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||||
|
text: 172800
|
||||||
|
# json UNIT3D 9.1.7 (custom)
|
||||||
@ -13,67 +13,23 @@ legacylinks:
|
|||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
- {id: 56, cat: Movies, desc: "BTRG"}
|
|
||||||
- {id: 57, cat: Movies, desc: "Yerli Dizi"}
|
|
||||||
- {id: 62, cat: Movies, desc: "Yab@ncı Dizi"}
|
|
||||||
- {id: 63, cat: Movies, desc: "Türkçe Film"}
|
|
||||||
- {id: 64, cat: Movies, desc: "Türk Filmi"}
|
|
||||||
- {id: 66, cat: Movies/HD, desc: "x265"}
|
|
||||||
- {id: 67, cat: XXX, desc: "XxX"}
|
|
||||||
- {id: 68, cat: Movies, desc: "Dual (TR-~)"}
|
|
||||||
- {id: 71, cat: Movies, desc: "NFLIX"}
|
|
||||||
- {id: 78, cat: TV, desc: "EXXEN"}
|
|
||||||
- {id: 79, cat: TV, desc: "BLUTV"}
|
|
||||||
- {id: 90, cat: TV, desc: "Disney+"}
|
|
||||||
- {id: 91, cat: TV, desc: "Prime Video"}
|
|
||||||
- {id: 93, cat: TV, desc: "Gain"}
|
|
||||||
- {id: 94, cat: TV, desc: "ATVP"}
|
|
||||||
- {id: 95, cat: Movies, desc: "HMAX"}
|
|
||||||
- {id: 98, cat: Movies, desc: "PUHUTV"}
|
|
||||||
- {id: 58, cat: Movies, desc: "Film"}
|
|
||||||
- {id: 72, cat: Movies, desc: "Belgesel"}
|
|
||||||
- {id: 60, cat: Movies/3D, desc: "3D"}
|
|
||||||
- {id: 76, cat: Movies/UHD, desc: "4K UHD"}
|
|
||||||
- {id: 80, cat: TV/Sport, desc: "Formula-1"}
|
|
||||||
- {id: 45, cat: Other, desc: "Eğitim/Prog"}
|
|
||||||
- {id: 1, cat: Movies, desc: "Filmler"}
|
- {id: 1, cat: Movies, desc: "Filmler"}
|
||||||
- {id: 14, cat: Movies/3D, desc: "3D Film"}
|
|
||||||
- {id: 77, cat: Movies/UHD, desc: "4K UHD"}
|
|
||||||
- {id: 16, cat: Movies, desc: "Animasyon"}
|
|
||||||
- {id: 17, cat: TV/Anime, desc: "Anime"}
|
|
||||||
- {id: 31, cat: Movies, desc: "Belgesel"}
|
|
||||||
- {id: 32, cat: Movies/BluRay, desc: "Bluray"}
|
|
||||||
- {id: 33, cat: Movies/HD, desc: "BRRiP"}
|
|
||||||
- {id: 34, cat: Movies, desc: "Çizgi Film"}
|
|
||||||
- {id: 35, cat: Movies, desc: "D-Z0N3"}
|
|
||||||
- {id: 36, cat: Movies/DVD, desc: "DVD"}
|
|
||||||
- {id: 37, cat: Movies, desc: "MP4"}
|
|
||||||
- {id: 38, cat: Movies, desc: "Türk Filmi"}
|
- {id: 38, cat: Movies, desc: "Türk Filmi"}
|
||||||
- {id: 39, cat: Movies, desc: "Türkçe BoX"}
|
|
||||||
- {id: 40, cat: Movies, desc: "Türkçe Film"}
|
- {id: 40, cat: Movies, desc: "Türkçe Film"}
|
||||||
- {id: 42, cat: Movies/SD, desc: "XviD"}
|
- {id: 113, cat: Movies, desc: "Yabancı Dil"}
|
||||||
- {id: 43, cat: Movies/SD, desc: "XviD BoX"}
|
- {id: 77, cat: Movies/UHD, desc: "4K UHD / 3D"}
|
||||||
- {id: 55, cat: Movies/WEB-DL, desc: "WEB-DL"}
|
- {id: 16, cat: Movies, desc: "Animasyon"}
|
||||||
- {id: 7, cat: Audio, desc: "Müzik"}
|
- {id: 31, cat: Movies, desc: "Belgesel"}
|
||||||
- {id: 20, cat: Audio, desc: "Türkçe MüziK"}
|
- {id: 112, cat: XXX, desc: "XxX"}
|
||||||
- {id: 46, cat: Audio, desc: "Yab@ncı MüziK"}
|
|
||||||
- {id: 21, cat: Audio/Video, desc: "Video Klipler"}
|
|
||||||
- {id: 2, cat: Console, desc: "Oyun"}
|
|
||||||
- {id: 74, cat: PC/Games, desc: "Oyun PC"}
|
|
||||||
- {id: 84, cat: Console/PS3, desc: "Playstation"}
|
|
||||||
- {id: 82, cat: Console/PSP, desc: "PSP"}
|
|
||||||
- {id: 83, cat: Console/Other, desc: "Gameboy"}
|
|
||||||
- {id: 87, cat: Console/XBox, desc: "XBOX"}
|
|
||||||
- {id: 88, cat: Console/Other, desc: "NEO-GEO"}
|
|
||||||
- {id: 89, cat: Console/Wii, desc: "Nintendo Wii"}
|
|
||||||
- {id: 6, cat: PC/0day, desc: "Program"}
|
|
||||||
- {id: 47, cat: Other, desc: "Resimler"}
|
|
||||||
- {id: 48, cat: TV, desc: "Televizyon"}
|
- {id: 48, cat: TV, desc: "Televizyon"}
|
||||||
- {id: 49, cat: TV/HD, desc: "Tv HD"}
|
- {id: 49, cat: TV/HD, desc: "Tv HD"}
|
||||||
- {id: 50, cat: TV, desc: "Yab@ncı Dizi"}
|
- {id: 50, cat: TV, desc: "Yab@ncı Dizi"}
|
||||||
- {id: 51, cat: TV, desc: "Yerli Dizi"}
|
- {id: 51, cat: TV, desc: "Yerli Dizi"}
|
||||||
- {id: 105, cat: TV, desc: "Yerli Dizi"}
|
- {id: 7, cat: Audio, desc: "Müzik"}
|
||||||
- {id: 44, cat: Books, desc: "E-BooK"}
|
- {id: 20, cat: Audio, desc: "Türkçe MüziK"}
|
||||||
|
- {id: 46, cat: Audio, desc: "Yab@ncı MüziK"}
|
||||||
|
- {id: 2, cat: Console, desc: "Oyun / Program"}
|
||||||
|
- {id: 44, cat: Books, desc: "E-BooK / Eğitim"}
|
||||||
|
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
@ -152,7 +108,6 @@ search:
|
|||||||
keywords: "{{ .Keywords }}"
|
keywords: "{{ .Keywords }}"
|
||||||
# name, description, both, uploader
|
# name, description, both, uploader
|
||||||
search_type: name
|
search_type: name
|
||||||
searchin: title
|
|
||||||
"sortOptions[sortBy]": "{{ .Config.sort }}"
|
"sortOptions[sortBy]": "{{ .Config.sort }}"
|
||||||
"sortOptions[sortOrder]": "{{ .Config.type }}"
|
"sortOptions[sortOrder]": "{{ .Config.type }}"
|
||||||
# Drop error trap to stop Sonarr disabling indexer, see https://github.com/Jackett/Jackett/issues/1415
|
# Drop error trap to stop Sonarr disabling indexer, see https://github.com/Jackett/Jackett/issues/1415
|
||||||
|
|||||||
@ -10,23 +10,26 @@ links:
|
|||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
- {id: "/3ds", cat: Console/3DS, desc: "3DS"}
|
|
||||||
- {id: "/arcade", cat: Console/Other, desc: "Arcade"}
|
- {id: "/arcade", cat: Console/Other, desc: "Arcade"}
|
||||||
- {id: "/dreamcast", cat: Console/Other, desc: "Dreamcast"}
|
- {id: "/dreamcast", cat: Console/Other, desc: "Dreamcast"}
|
||||||
- {id: "/nds", cat: Console/Other, desc: "DS"}
|
|
||||||
- {id: "/gba", cat: Console/Other, desc: "Game Boy Advance"}
|
- {id: "/gba", cat: Console/Other, desc: "Game Boy Advance"}
|
||||||
- {id: "/gamecube", cat: Console/Other, desc: "GameCube"}
|
|
||||||
- {id: "/genesis", cat: Console/Other, desc: "Mega Drive - Genesis"}
|
- {id: "/genesis", cat: Console/Other, desc: "Mega Drive - Genesis"}
|
||||||
- {id: "/neogeo", cat: Console/Other, desc: "Neo Geo"}
|
- {id: "/neogeo", cat: Console/Other, desc: "Neo Geo"}
|
||||||
|
- {id: "/3ds", cat: Console/3DS, desc: "Nintendo 3DS"}
|
||||||
- {id: "/n64", cat: Console/NDS, desc: "Nintendo 64"}
|
- {id: "/n64", cat: Console/NDS, desc: "Nintendo 64"}
|
||||||
|
- {id: "/nds", cat: Console/NDS, desc: "Nintendo DS"}
|
||||||
|
- {id: "/gamecube", cat: Console/Other, desc: "Nintendo GameCube"}
|
||||||
- {id: "/switch", cat: Console/NDS, desc: "Nintendo Switch"}
|
- {id: "/switch", cat: Console/NDS, desc: "Nintendo Switch"}
|
||||||
|
- {id: "/wii", cat: Console/Wii, desc: "Nintendo Wii"}
|
||||||
|
- {id: "/wiiu", cat: Console/WiiU, desc: "Nintendo Wii U"}
|
||||||
- {id: "/ps1", cat: Console/PS3, desc: "PlayStation"}
|
- {id: "/ps1", cat: Console/PS3, desc: "PlayStation"}
|
||||||
- {id: "/ps2", cat: Console/PS3, desc: "PlayStation 2"}
|
- {id: "/ps2", cat: Console/PS3, desc: "PlayStation 2"}
|
||||||
- {id: "/ps3", cat: Console/PS3, desc: "PlayStation 3"}
|
- {id: "/ps3", cat: Console/PS3, desc: "PlayStation 3"}
|
||||||
- {id: "psp", cat: Console/PSP, desc: "PlayStation Portable"}
|
- {id: "/ps4", cat: Console/PS4, desc: "PlayStation 4"}
|
||||||
|
- {id: "/psp", cat: Console/PSP, desc: "PlayStation Portable"}
|
||||||
|
- {id: "/psvita", cat: Console/PS Vita, desc: "PlayStation Vita"}
|
||||||
- {id: "/saturn", cat: Console/Other, desc: "Saturn"}
|
- {id: "/saturn", cat: Console/Other, desc: "Saturn"}
|
||||||
- {id: "/snes", cat: Console/NDS, desc: "Super Nintendo"}
|
- {id: "/snes", cat: Console/NDS, desc: "Super Nintendo"}
|
||||||
- {id: "/wii", cat: Console/Wii, desc: "Wii"}
|
|
||||||
- {id: "/xbox", cat: Console/XBox, desc: "Xbox"}
|
- {id: "/xbox", cat: Console/XBox, desc: "Xbox"}
|
||||||
|
|
||||||
modes:
|
modes:
|
||||||
@ -76,31 +79,30 @@ search:
|
|||||||
category:
|
category:
|
||||||
selector: p.card-text a
|
selector: p.card-text a
|
||||||
attribute: href
|
attribute: href
|
||||||
_platform:
|
title_platform:
|
||||||
selector: p.card-text a
|
selector: p.card-text a
|
||||||
title:
|
title:
|
||||||
selector: h4.card-title a
|
selector: h4.card-title a
|
||||||
filters:
|
filters:
|
||||||
- name: append
|
- name: append
|
||||||
args: " - {{ .Result._platform }}"
|
args: " - {{ .Result.title_platform }}"
|
||||||
details:
|
details:
|
||||||
selector: h4.card-title a
|
selector: h4.card-title a
|
||||||
attribute: href
|
attribute: href
|
||||||
download:
|
download:
|
||||||
selector: div.card-footer a
|
selector: div.card-footer a
|
||||||
attribute: href
|
attribute: href
|
||||||
|
poster:
|
||||||
|
selector: img
|
||||||
|
attribute: src
|
||||||
size:
|
size:
|
||||||
selector: p.card-text
|
selector: p.card-text
|
||||||
filters:
|
filters:
|
||||||
- name: regexp
|
- name: regexp
|
||||||
args: (\d+\.?\d+[T|G|K]iB)
|
args: ([\d\.]+[T|G|M|K]iB)
|
||||||
date:
|
date:
|
||||||
selector: p.card-text
|
# release date is for game, not torrent
|
||||||
filters:
|
text: now
|
||||||
- name: regexp
|
|
||||||
args: (\d{4}-\d{2}-\d{2})
|
|
||||||
- name: dateparse
|
|
||||||
args: "yyyy-MM-dd"
|
|
||||||
seeders:
|
seeders:
|
||||||
text: 1
|
text: 1
|
||||||
leechers:
|
leechers:
|
||||||
@ -109,4 +111,9 @@ search:
|
|||||||
text: 0
|
text: 0
|
||||||
uploadvolumefactor:
|
uploadvolumefactor:
|
||||||
text: 1
|
text: 1
|
||||||
|
description:
|
||||||
|
selector: p.card-text
|
||||||
|
filters:
|
||||||
|
- name: regexp
|
||||||
|
args: "(Score: .+)"
|
||||||
# engine n/a
|
# engine n/a
|
||||||
|
|||||||
@ -24,6 +24,7 @@ caps:
|
|||||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||||
movie-search: [q, imdbid, tmdbid]
|
movie-search: [q, imdbid, tmdbid]
|
||||||
music-search: [q]
|
music-search: [q]
|
||||||
|
allowtvsearchimdb: true
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
- name: apikey
|
- name: apikey
|
||||||
@ -73,8 +74,8 @@ login:
|
|||||||
|
|
||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
|
||||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
|
||||||
- path: api/torrents/filter
|
- path: api/torrents/filter
|
||||||
response:
|
response:
|
||||||
type: json
|
type: json
|
||||||
@ -120,8 +121,6 @@ search:
|
|||||||
selector: details_link
|
selector: details_link
|
||||||
download:
|
download:
|
||||||
selector: download_link
|
selector: download_link
|
||||||
infohash:
|
|
||||||
selector: info_hash
|
|
||||||
poster:
|
poster:
|
||||||
selector: meta.poster
|
selector: meta.poster
|
||||||
filters:
|
filters:
|
||||||
@ -142,8 +141,13 @@ search:
|
|||||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||||
- name: replace
|
- name: replace
|
||||||
args: [" & ", "_&_"]
|
args: [" & ", "_&_"]
|
||||||
|
_internal:
|
||||||
|
selector: internal
|
||||||
|
case:
|
||||||
|
False: "{{ .False }}"
|
||||||
|
True: "{{ .True }}"
|
||||||
description:
|
description:
|
||||||
text: "{{ .Result.genre }}"
|
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
|
||||||
seeders:
|
seeders:
|
||||||
selector: seeders
|
selector: seeders
|
||||||
leechers:
|
leechers:
|
||||||
@ -191,4 +195,4 @@ search:
|
|||||||
minimumseedtime:
|
minimumseedtime:
|
||||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||||
text: 604800
|
text: 604800
|
||||||
# json UNIT3D 9.0.5
|
# json UNIT3D 9.2.0
|
||||||
|
|||||||
@ -7,13 +7,17 @@ type: public
|
|||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
# current domain at https://cursor.vip/btmulu then follow links to the final search-movie link
|
# current domain at https://cursor.vip/btmulu then follow links to the final search-movie link
|
||||||
links:
|
links:
|
||||||
- https://btmulu.work/
|
- https://btmulu.live/
|
||||||
- https://www.btmulu.cyou/
|
- https://www.btmulu.cyou/
|
||||||
|
- https://www.btmulu.quest/
|
||||||
|
- https://www.btmulu.cfd/
|
||||||
|
- https://www.btmulu.help/
|
||||||
legacylinks:
|
legacylinks:
|
||||||
- https://www.btmulu.asia/
|
- https://www.btmulu.asia/
|
||||||
- https://www.btmulu.digital/
|
- https://www.btmulu.digital/
|
||||||
- https://www.btmulu.pw/
|
- https://www.btmulu.pw/
|
||||||
- https://www.btmulu.one/
|
- https://www.btmulu.one/
|
||||||
|
- https://btmulu.work/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
@ -39,7 +43,7 @@ search:
|
|||||||
name: "{{ re_replace .Keywords \"[\\s]+\" \"+\" }}"
|
name: "{{ re_replace .Keywords \"[\\s]+\" \"+\" }}"
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
selector: article.item
|
selector: article.item:has(a[href^="/hash/"])
|
||||||
filters:
|
filters:
|
||||||
- name: andmatch
|
- name: andmatch
|
||||||
|
|
||||||
|
|||||||
70
Prowlarr/config/Definitions/btsate.yml
Normal file
70
Prowlarr/config/Definitions/btsate.yml
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
id: btsate
|
||||||
|
name: btsate
|
||||||
|
description: "btsate is a Public BitTorrent DHT search engine."
|
||||||
|
language: en-US
|
||||||
|
type: public
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://btstate.com/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categories:
|
||||||
|
Other: Other
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep]
|
||||||
|
movie-search: [q]
|
||||||
|
music-search: [q]
|
||||||
|
book-search: [q]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: info_category_8000
|
||||||
|
type: info_category_8000
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
# https://btstate.com/api/searchByKeyword/2025?take=100&skip=0&page=1&pageSize=100
|
||||||
|
- path: "api/searchByKeyword/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||||
|
response:
|
||||||
|
type: json
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
take: 100
|
||||||
|
skip: 0
|
||||||
|
page: 1
|
||||||
|
pageSize: 100
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: items
|
||||||
|
attribute: _source
|
||||||
|
filters:
|
||||||
|
- name: andmatch
|
||||||
|
|
||||||
|
fields:
|
||||||
|
category:
|
||||||
|
text: Other
|
||||||
|
title:
|
||||||
|
selector: name
|
||||||
|
details:
|
||||||
|
text: "{{ .Config.sitelink }}"
|
||||||
|
infohash:
|
||||||
|
selector: infohash
|
||||||
|
date:
|
||||||
|
# unix
|
||||||
|
selector: createTime
|
||||||
|
filters:
|
||||||
|
- name: regexp
|
||||||
|
args: ^(\d{10})
|
||||||
|
size:
|
||||||
|
selector: size
|
||||||
|
seeders:
|
||||||
|
text: 1
|
||||||
|
leechers:
|
||||||
|
text: 1
|
||||||
|
downloadvolumefactor:
|
||||||
|
text: 0
|
||||||
|
uploadvolumefactor:
|
||||||
|
text: 1
|
||||||
|
# json api
|
||||||
@ -7,9 +7,8 @@ type: public
|
|||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
# use https://tellme.pw/btsow to find the new domain
|
# use https://tellme.pw/btsow to find the new domain
|
||||||
links:
|
links:
|
||||||
- https://btsow.pics/
|
- https://btsow.lol/
|
||||||
legacylinks:
|
legacylinks:
|
||||||
- https://btsow.click/
|
|
||||||
- https://btsow.cfd/
|
- https://btsow.cfd/
|
||||||
- https://btsow.sbs/
|
- https://btsow.sbs/
|
||||||
- https://btsow.quest/
|
- https://btsow.quest/
|
||||||
@ -24,6 +23,7 @@ legacylinks:
|
|||||||
- https://btsow.homes/
|
- https://btsow.homes/
|
||||||
- https://btsow.yachts/
|
- https://btsow.yachts/
|
||||||
- https://btsow.motorcycles/
|
- https://btsow.motorcycles/
|
||||||
|
- https://btsow.pics/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
categories:
|
categories:
|
||||||
|
|||||||
72
Prowlarr/config/Definitions/btstate.yml
Normal file
72
Prowlarr/config/Definitions/btstate.yml
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
---
|
||||||
|
id: btstate
|
||||||
|
replaces:
|
||||||
|
- btsate
|
||||||
|
name: btstate
|
||||||
|
description: "btstate is a Public BitTorrent DHT search engine."
|
||||||
|
language: en-US
|
||||||
|
type: public
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://btstate.com/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categories:
|
||||||
|
Other: Other
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep]
|
||||||
|
movie-search: [q]
|
||||||
|
music-search: [q]
|
||||||
|
book-search: [q]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: info_category_8000
|
||||||
|
type: info_category_8000
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
# https://btstate.com/api/searchByKeyword/2025?take=100&skip=0&page=1&pageSize=100
|
||||||
|
- path: "api/searchByKeyword/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||||
|
response:
|
||||||
|
type: json
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
take: 100
|
||||||
|
skip: 0
|
||||||
|
page: 1
|
||||||
|
pageSize: 100
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: items
|
||||||
|
attribute: _source
|
||||||
|
filters:
|
||||||
|
- name: andmatch
|
||||||
|
|
||||||
|
fields:
|
||||||
|
category:
|
||||||
|
text: Other
|
||||||
|
title:
|
||||||
|
selector: name
|
||||||
|
details:
|
||||||
|
text: "{{ .Config.sitelink }}"
|
||||||
|
infohash:
|
||||||
|
selector: infohash
|
||||||
|
date:
|
||||||
|
# unix
|
||||||
|
selector: createTime
|
||||||
|
filters:
|
||||||
|
- name: regexp
|
||||||
|
args: ^(\d{10})
|
||||||
|
size:
|
||||||
|
selector: size
|
||||||
|
seeders:
|
||||||
|
text: 1
|
||||||
|
leechers:
|
||||||
|
text: 1
|
||||||
|
downloadvolumefactor:
|
||||||
|
text: 0
|
||||||
|
uploadvolumefactor:
|
||||||
|
text: 1
|
||||||
|
# json api
|
||||||
@ -7,15 +7,15 @@ type: private
|
|||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
- https://bwtorrents.tv/
|
- https://bwtorrents.tv/
|
||||||
- https://www.bwtorrents.life/
|
|
||||||
- https://www.bwtorrents.pro/
|
- https://www.bwtorrents.pro/
|
||||||
- https://bwtorrents.cc/
|
- https://bwtorrents.cc/
|
||||||
|
- https://bwtorrents.live/
|
||||||
legacylinks:
|
legacylinks:
|
||||||
- https://bwtorrents.fun/
|
- https://bwtorrents.fun/
|
||||||
- https://bwtorrents.xyz/
|
- https://bwtorrents.xyz/
|
||||||
- https://bwtorrents.us/
|
- https://bwtorrents.us/
|
||||||
- https://bwtorrents.live/
|
|
||||||
- https://bwtorrents.co/
|
- https://bwtorrents.co/
|
||||||
|
- https://www.bwtorrents.life/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
|
|||||||
175
Prowlarr/config/Definitions/c411.yml
Normal file
175
Prowlarr/config/Definitions/c411.yml
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
---
|
||||||
|
id: c411
|
||||||
|
name: C411
|
||||||
|
description: "C411 (Community 411) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||||
|
language: fr-FR
|
||||||
|
type: private
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://c411.org/
|
||||||
|
legacylinks:
|
||||||
|
- https://staging-68d548c5bd4.c411.org/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
# from https://c411.org/api/torznab?apikey=YOUR-API-KEY&t=caps
|
||||||
|
- {id: 1000, cat: Console, desc: "Jeux Vidéo & Emulation"}
|
||||||
|
- {id: 1030, cat: Console/Wii, desc: "Nintendo"}
|
||||||
|
- {id: 1040, cat: Console/XBox, desc: "Xbox"}
|
||||||
|
- {id: 1080, cat: Console/PS4, desc: "Sony"}
|
||||||
|
- {id: 1090, cat: Console/Other, desc: "Jeux Autre & ROM/ISO"}
|
||||||
|
- {id: 2000, cat: Movies, desc: "Films & Vidéos"}
|
||||||
|
- {id: 2060, cat: Movies/Other, desc: "Animation Films & Vidéo-clips"}
|
||||||
|
- {id: 2070, cat: Movies, desc: "Films Documentaire"}
|
||||||
|
- {id: 2090, cat: Movies/Other, desc: "Films Concert & Spectacle"}
|
||||||
|
- {id: 3000, cat: Audio, desc: "Audio"}
|
||||||
|
- {id: 3010, cat: Audio/MP3, desc: "Musique"}
|
||||||
|
- {id: 3030, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||||
|
- {id: 3050, cat: Audio/Other, desc: "Karaoké & Podcast Radio & Samples"}
|
||||||
|
- {id: 4000, cat: PC/0day, desc: "Applications & Windows & Nulled"}
|
||||||
|
- {id: 4030, cat: PC/0day, desc: "Linux & MacOS"}
|
||||||
|
- {id: 4040, cat: PC, desc: "Formation"}
|
||||||
|
- {id: 4050, cat: PC, desc: "Games-Linux & Games-MacOS & Games-Divers & Autre & Émulateur & GPS & Scripts PHP & CMS & Wordpress"}
|
||||||
|
- {id: 4060, cat: PC/Mobile-Android, desc: "Android Mobile & Smartphone & Tablette & Applications & Cartes"}
|
||||||
|
- {id: 4070, cat: PC/Mobile-iOS, desc: "iOS Smartphone & Tablette"}
|
||||||
|
- {id: 5000, cat: TV, desc: "Série TV"}
|
||||||
|
- {id: 5060, cat: TV/Sport, desc: "Sport"}
|
||||||
|
- {id: 5070, cat: TV/Anime, desc: "Animation Série"}
|
||||||
|
- {id: 5080, cat: TV/Documentary, desc: "Emission TV"}
|
||||||
|
- {id: 6000, cat: XXX, desc: "XXX"}
|
||||||
|
- {id: 6010, cat: XXX/DVD, desc: "3X Films"}
|
||||||
|
- {id: 6050, cat: XXX/Other, desc: "3X Ebooks"}
|
||||||
|
- {id: 6060, cat: XXX/ImageSet, desc: "3X Images"}
|
||||||
|
- {id: 6070, cat: XXX/Other, desc: "Hentai"}
|
||||||
|
- {id: 6080, cat: XXX/Other, desc: "3X Jeux"}
|
||||||
|
- {id: 7000, cat: Books, desc: "Ebook"}
|
||||||
|
- {id: 7010, cat: Books/Mags, desc: "Presse"}
|
||||||
|
- {id: 7020, cat: Books/EBook, desc: "Livres"}
|
||||||
|
- {id: 7030, cat: Books/Comics, desc: "BDs & Comics & Manga"}
|
||||||
|
- {id: 8010, cat: Other/Misc, desc: "Imprimante 3D & Objets & Personnages"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep]
|
||||||
|
movie-search: [q, imdbid]
|
||||||
|
music-search: [q]
|
||||||
|
book-search: [q]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: apikey
|
||||||
|
type: text
|
||||||
|
label: API Key
|
||||||
|
- name: info_key
|
||||||
|
type: info
|
||||||
|
label: About your API key
|
||||||
|
default: "You can find or generate a new API Key by accessing the <a href=\"https://c411.org/user/integrations\" target=\"_blank\">C411 Intégrations API</a> page."
|
||||||
|
- name: multilang
|
||||||
|
type: checkbox
|
||||||
|
label: Replace MULTi by another language in release name
|
||||||
|
default: false
|
||||||
|
- name: multilanguage
|
||||||
|
type: select
|
||||||
|
label: Replace MULTi by this language
|
||||||
|
default: FRENCH
|
||||||
|
options:
|
||||||
|
FRENCH: FRENCH
|
||||||
|
MULTi.FRENCH: MULTi.FRENCH
|
||||||
|
ENGLISH: ENGLISH
|
||||||
|
MULTi.ENGLISH: MULTi.ENGLISH
|
||||||
|
VOSTFR: VOSTFR
|
||||||
|
MULTi.VOSTFR: MULTi.VOSTFR
|
||||||
|
- name: vostfr
|
||||||
|
type: checkbox
|
||||||
|
label: Replace VOSTFR and SUBFRENCH with ENGLISH
|
||||||
|
default: false
|
||||||
|
- name: info_3x
|
||||||
|
type: info
|
||||||
|
label: Including 3X
|
||||||
|
default: "IF you want to see 3x torrents access your <a href=\"https://c411.org/user/settings\" target=\"_blank\">C411 Paramètres</a> page and tick the <b>Afficher le contenu XXX</b> checkbox."
|
||||||
|
|
||||||
|
login:
|
||||||
|
# returns "401 Unauthorized, check your credentials" if apikey is invalid
|
||||||
|
path: "api/torznab?apikey={{ .Config.apikey }}&t=caps"
|
||||||
|
method: get
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
- path: api/torznab
|
||||||
|
response:
|
||||||
|
type: xml
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
apikey: "{{ .Config.apikey }}"
|
||||||
|
t: "{{ if .Query.IMDBID }}movie{{ else }}{{ end }}{{ if or .Query.Season .Query.Ep }}tvsearch{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.Season .Query.Ep }}{{ else }}search{{ end }}"
|
||||||
|
q: "{{ .Keywords }}"
|
||||||
|
cat: "{{ join .Categories \",\" }}"
|
||||||
|
season: "{{ .Query.Season }}"
|
||||||
|
ep: "{{ .Query.Ep }}"
|
||||||
|
imdbid: "{{ .Query.IMDBID }}"
|
||||||
|
limit: 100
|
||||||
|
|
||||||
|
keywordsfilters:
|
||||||
|
# replace spaces between words with percent wildcard
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\W+", "%"]
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: rss > channel > item
|
||||||
|
|
||||||
|
fields:
|
||||||
|
category:
|
||||||
|
selector: '[name="category"]'
|
||||||
|
attribute: value
|
||||||
|
title_phase1:
|
||||||
|
selector: title
|
||||||
|
title_vostfr:
|
||||||
|
text: "{{ .Result.title_phase1 }}"
|
||||||
|
filters:
|
||||||
|
- name: re_replace
|
||||||
|
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||||
|
title_phase2:
|
||||||
|
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||||
|
title_multilang:
|
||||||
|
text: "{{ .Result.title_phase2 }}"
|
||||||
|
filters:
|
||||||
|
- name: re_replace
|
||||||
|
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR|VF2|VFF|VFQ|VOQ|VFI|VOF)))\\b", "{{ .Config.multilanguage }}"]
|
||||||
|
title:
|
||||||
|
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||||
|
details:
|
||||||
|
selector: link
|
||||||
|
download:
|
||||||
|
selector: enclosure
|
||||||
|
attribute: url
|
||||||
|
infohash:
|
||||||
|
selector: '[name="infohash"]'
|
||||||
|
attribute: value
|
||||||
|
date:
|
||||||
|
# Sun, 18 Jan 2026 04:05:41 +0000
|
||||||
|
selector: pubDate
|
||||||
|
filters:
|
||||||
|
- name: dateparse
|
||||||
|
args: "ddd, dd MMM yyyy HH:mm:ss zzz"
|
||||||
|
size:
|
||||||
|
selector: size
|
||||||
|
seeders:
|
||||||
|
selector: '[name="seeders"]'
|
||||||
|
attribute: value
|
||||||
|
leechers:
|
||||||
|
selector: '[name="peers"]'
|
||||||
|
attribute: value
|
||||||
|
grabs:
|
||||||
|
selector: '[name="grabs"]'
|
||||||
|
attribute: value
|
||||||
|
downloadvolumefactor:
|
||||||
|
selector: '[name="downloadvolumefactor"]'
|
||||||
|
attribute: value
|
||||||
|
uploadvolumefactor:
|
||||||
|
selector: '[name="uploadvolumefactor"]'
|
||||||
|
attribute: value
|
||||||
|
minimumratio:
|
||||||
|
text: 1.0
|
||||||
|
minimumseedtime:
|
||||||
|
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||||
|
text: 172800
|
||||||
|
# torznab xml
|
||||||
180
Prowlarr/config/Definitions/cangbaoge.yml
Normal file
180
Prowlarr/config/Definitions/cangbaoge.yml
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
---
|
||||||
|
id: cangbaoge
|
||||||
|
name: cangbaoge (CBG)
|
||||||
|
description: "cangbaoge (CBG) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||||
|
language: zh-CN
|
||||||
|
type: private
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://cangbao.ge/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||||
|
- {id: 402, cat: TV, desc: "TV Series/剧集"}
|
||||||
|
- {id: 403, cat: TV, desc: "Playlet/短剧"}
|
||||||
|
- {id: 404, cat: TV/Anime, desc: "Animations/动画"}
|
||||||
|
- {id: 405, cat: TV/Anime, desc: "Anime/动漫"}
|
||||||
|
- {id: 406, cat: TV/Other, desc: "Children/儿童"}
|
||||||
|
- {id: 407, cat: TV, desc: "TV Shows/综艺"}
|
||||||
|
- {id: 408, cat: TV/Documentary, desc: "Documentary/纪录"}
|
||||||
|
- {id: 409, cat: Audio, desc: "Music/音乐"}
|
||||||
|
- {id: 410, cat: Books, desc: "Books/书籍"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q, season, ep, imdbid]
|
||||||
|
movie-search: [q, imdbid]
|
||||||
|
music-search: [q]
|
||||||
|
book-search: [q]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: cookie
|
||||||
|
type: text
|
||||||
|
label: Cookie
|
||||||
|
- name: info_cookie
|
||||||
|
type: info_cookie
|
||||||
|
- name: freeleech
|
||||||
|
type: checkbox
|
||||||
|
label: Search freeleech only
|
||||||
|
default: false
|
||||||
|
- name: sort
|
||||||
|
type: select
|
||||||
|
label: Sort requested from site
|
||||||
|
default: 4
|
||||||
|
options:
|
||||||
|
4: created
|
||||||
|
7: seeders
|
||||||
|
5: size
|
||||||
|
1: title
|
||||||
|
- name: type
|
||||||
|
type: select
|
||||||
|
label: Order requested from site
|
||||||
|
default: desc
|
||||||
|
options:
|
||||||
|
desc: desc
|
||||||
|
asc: asc
|
||||||
|
- name: info_tpp
|
||||||
|
type: info
|
||||||
|
label: Results Per Page
|
||||||
|
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||||
|
- name: info_activity
|
||||||
|
type: info
|
||||||
|
label: Account Inactivity
|
||||||
|
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
||||||
|
|
||||||
|
login:
|
||||||
|
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
|
||||||
|
method: cookie
|
||||||
|
inputs:
|
||||||
|
cookie: "{{ .Config.cookie }}"
|
||||||
|
test:
|
||||||
|
path: index.php
|
||||||
|
selector: a[href="logout.php"]
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
- path: torrents.php
|
||||||
|
inputs:
|
||||||
|
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||||
|
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||||
|
# 0 incldead, 1 active, 2 dead
|
||||||
|
incldead: 0
|
||||||
|
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||||
|
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||||
|
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||||
|
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||||
|
# 0 AND, 2 exact
|
||||||
|
search_mode: 0
|
||||||
|
sort: "{{ .Config.sort }}"
|
||||||
|
type: "{{ .Config.type }}"
|
||||||
|
notnewword: 1
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
|
||||||
|
|
||||||
|
fields:
|
||||||
|
category:
|
||||||
|
selector: a[href^="?cat="]
|
||||||
|
attribute: href
|
||||||
|
filters:
|
||||||
|
- name: querystring
|
||||||
|
args: cat
|
||||||
|
title_default:
|
||||||
|
selector: a[href^="details.php?id="]
|
||||||
|
title:
|
||||||
|
selector: a[title][href^="details.php?id="]
|
||||||
|
attribute: title
|
||||||
|
optional: true
|
||||||
|
default: "{{ .Result.title_default }}"
|
||||||
|
details:
|
||||||
|
selector: a[href^="details.php?id="]
|
||||||
|
attribute: href
|
||||||
|
download:
|
||||||
|
selector: a[href^="download.php?id="]
|
||||||
|
attribute: href
|
||||||
|
poster:
|
||||||
|
selector: img[data-src]
|
||||||
|
attribute: data-src
|
||||||
|
imdbid:
|
||||||
|
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||||
|
selector: a[href*="imdb.com/title/tt"]
|
||||||
|
attribute: href
|
||||||
|
doubanid:
|
||||||
|
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||||
|
selector: a[href*="movie.douban.com/subject/"]
|
||||||
|
attribute: href
|
||||||
|
date_elapsed:
|
||||||
|
# time type: time elapsed (default)
|
||||||
|
selector: td.rowfollow:nth-child(4) > span[title]
|
||||||
|
attribute: title
|
||||||
|
optional: true
|
||||||
|
filters:
|
||||||
|
- name: append
|
||||||
|
args: " +08:00" # CST
|
||||||
|
- name: dateparse
|
||||||
|
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||||
|
date_added:
|
||||||
|
# time added
|
||||||
|
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||||
|
optional: true
|
||||||
|
filters:
|
||||||
|
- name: append
|
||||||
|
args: " +08:00" # CST
|
||||||
|
- name: dateparse
|
||||||
|
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||||
|
date:
|
||||||
|
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||||
|
size:
|
||||||
|
selector: td.rowfollow:nth-child(5)
|
||||||
|
seeders:
|
||||||
|
selector: td.rowfollow.rowfollow:nth-child(6)
|
||||||
|
leechers:
|
||||||
|
selector: td.rowfollow:nth-child(7)
|
||||||
|
optional: true
|
||||||
|
grabs:
|
||||||
|
selector: td.rowfollow:nth-child(8)
|
||||||
|
optional: true
|
||||||
|
downloadvolumefactor:
|
||||||
|
case:
|
||||||
|
img.pro_free: 0
|
||||||
|
img.pro_free2up: 0
|
||||||
|
img.pro_50pctdown: 0.5
|
||||||
|
img.pro_50pctdown2up: 0.5
|
||||||
|
img.pro_30pctdown: 0.3
|
||||||
|
"*": 1
|
||||||
|
uploadvolumefactor:
|
||||||
|
case:
|
||||||
|
img.pro_50pctdown2up: 2
|
||||||
|
img.pro_free2up: 2
|
||||||
|
img.pro_2up: 2
|
||||||
|
"*": 1
|
||||||
|
minimumratio:
|
||||||
|
text: 2.0
|
||||||
|
minimumseedtime:
|
||||||
|
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||||
|
text: 172800
|
||||||
|
description:
|
||||||
|
selector: td.rowfollow:nth-child(2)
|
||||||
|
remove: a, b, font, img, span
|
||||||
|
# NexusPHP v1.9.6 2025-06-25
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user