first commit
This commit is contained in:
commit
531b60f066
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<key id="1e60bcbc-b02f-4c21-968e-efc38fabaa72" version="1">
|
||||
<creationDate>2024-10-14T16:12:46.7133361Z</creationDate>
|
||||
<activationDate>2024-10-14T16:12:46.692271Z</activationDate>
|
||||
<expirationDate>2025-01-12T16:12:46.692271Z</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>HRPrieKSk9X2aYb44FocBATw8zELJu35M3FY2mkBKysnRweSPJmvB05lu5ro7RPqtiSpbdk9nKBss4miYLglvw==</value>
|
||||
</masterKey>
|
||||
</descriptor>
|
||||
</descriptor>
|
||||
</key>
|
||||
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<key id="41dfb5af-3354-4114-86b8-16d9b029f954" version="1">
|
||||
<creationDate>2024-06-09T15:06:59.2386607Z</creationDate>
|
||||
<activationDate>2024-06-10T18:02:23.4711689Z</activationDate>
|
||||
<expirationDate>2024-09-07T15:06:59.2191783Z</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>vDNDPxyOoN9ld9KG6jFih+9HSkeYtfQk/axWgUeai07a/nvCz7gu5qs2Jt78qJBlFvgKf4mg7F6mzuOiKOFbIg==</value>
|
||||
</masterKey>
|
||||
</descriptor>
|
||||
</descriptor>
|
||||
</key>
|
||||
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<key id="7e1ae004-6683-4010-88bc-fc14b6fcf2a1" version="1">
|
||||
<creationDate>2025-01-16T20:44:58.4388437Z</creationDate>
|
||||
<activationDate>2025-01-16T20:44:58.4154635Z</activationDate>
|
||||
<expirationDate>2025-04-16T20:44:58.4154635Z</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>lzKRaL4d+55YPPRL/NTitMwbySld7DXLYye55XzcPJsPuVqG/YhM5PBIEQarXVkjvfUGSwJbjew5L17QrUPl7g==</value>
|
||||
</masterKey>
|
||||
</descriptor>
|
||||
</descriptor>
|
||||
</key>
|
||||
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<key id="c789a5f3-2c81-41da-82b9-02cf2186c6d9" version="1">
|
||||
<creationDate>2023-12-08T13:41:00.0681896Z</creationDate>
|
||||
<activationDate>2023-12-08T13:41:00.0644705Z</activationDate>
|
||||
<expirationDate>2024-03-07T13:41:00.0644705Z</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>8XXI5L5WpxDWwkF/0Fxyh+rsPJqdR1ic7KMND2WvmiG8hkXK7Wnw0Yv6Gnv7qkHXYq37VqT4krZFeGlLyiX2vg==</value>
|
||||
</masterKey>
|
||||
</descriptor>
|
||||
</descriptor>
|
||||
</key>
|
||||
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<key id="df8622bf-4663-45a8-a71e-7f22bcd8874b" version="1">
|
||||
<creationDate>2024-03-12T18:02:23.4900996Z</creationDate>
|
||||
<activationDate>2024-03-12T18:02:23.4711689Z</activationDate>
|
||||
<expirationDate>2024-06-10T18:02:23.4711689Z</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>l9YtpJvtzEuEH0lBzWB2TJ78yXyGnIKK5IE37Mx48IvsHanLJZ0NAY5vdlh7pJWC0Schczaj388TOHeaNmHU9w==</value>
|
||||
</masterKey>
|
||||
</descriptor>
|
||||
</descriptor>
|
||||
</key>
|
||||
17
Lidarr/config/config.xml
Normal file
17
Lidarr/config/config.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<Config>
|
||||
<BindAddress>*</BindAddress>
|
||||
<Port>8686</Port>
|
||||
<SslPort>6868</SslPort>
|
||||
<EnableSsl>False</EnableSsl>
|
||||
<LaunchBrowser>True</LaunchBrowser>
|
||||
<ApiKey>10dad999f260403cb06be07c46706990</ApiKey>
|
||||
<AuthenticationMethod>Forms</AuthenticationMethod>
|
||||
<Branch>master</Branch>
|
||||
<LogLevel>info</LogLevel>
|
||||
<SslCertPath></SslCertPath>
|
||||
<SslCertPassword></SslCertPassword>
|
||||
<UrlBase></UrlBase>
|
||||
<InstanceName>Lidarr</InstanceName>
|
||||
<UpdateMechanism>Docker</UpdateMechanism>
|
||||
<AuthenticationRequired>Enabled</AuthenticationRequired>
|
||||
</Config>
|
||||
BIN
Lidarr/config/lidarr.db
Normal file
BIN
Lidarr/config/lidarr.db
Normal file
Binary file not shown.
BIN
Lidarr/config/lidarr.db-shm
Normal file
BIN
Lidarr/config/lidarr.db-shm
Normal file
Binary file not shown.
BIN
Lidarr/config/lidarr.db-wal
Normal file
BIN
Lidarr/config/lidarr.db-wal
Normal file
Binary file not shown.
1
Lidarr/config/lidarr.pid
Normal file
1
Lidarr/config/lidarr.pid
Normal file
@ -0,0 +1 @@
|
||||
144
|
||||
BIN
Lidarr/config/logs.db
Normal file
BIN
Lidarr/config/logs.db
Normal file
Binary file not shown.
12919
Lidarr/config/logs/lidarr.0.txt
Normal file
12919
Lidarr/config/logs/lidarr.0.txt
Normal file
File diff suppressed because it is too large
Load Diff
12943
Lidarr/config/logs/lidarr.1.txt
Normal file
12943
Lidarr/config/logs/lidarr.1.txt
Normal file
File diff suppressed because it is too large
Load Diff
12539
Lidarr/config/logs/lidarr.10.txt
Normal file
12539
Lidarr/config/logs/lidarr.10.txt
Normal file
File diff suppressed because it is too large
Load Diff
12532
Lidarr/config/logs/lidarr.11.txt
Normal file
12532
Lidarr/config/logs/lidarr.11.txt
Normal file
File diff suppressed because it is too large
Load Diff
12647
Lidarr/config/logs/lidarr.12.txt
Normal file
12647
Lidarr/config/logs/lidarr.12.txt
Normal file
File diff suppressed because it is too large
Load Diff
12627
Lidarr/config/logs/lidarr.13.txt
Normal file
12627
Lidarr/config/logs/lidarr.13.txt
Normal file
File diff suppressed because it is too large
Load Diff
10939
Lidarr/config/logs/lidarr.14.txt
Normal file
10939
Lidarr/config/logs/lidarr.14.txt
Normal file
File diff suppressed because it is too large
Load Diff
12924
Lidarr/config/logs/lidarr.2.txt
Normal file
12924
Lidarr/config/logs/lidarr.2.txt
Normal file
File diff suppressed because it is too large
Load Diff
12936
Lidarr/config/logs/lidarr.3.txt
Normal file
12936
Lidarr/config/logs/lidarr.3.txt
Normal file
File diff suppressed because it is too large
Load Diff
12944
Lidarr/config/logs/lidarr.4.txt
Normal file
12944
Lidarr/config/logs/lidarr.4.txt
Normal file
File diff suppressed because it is too large
Load Diff
12921
Lidarr/config/logs/lidarr.5.txt
Normal file
12921
Lidarr/config/logs/lidarr.5.txt
Normal file
File diff suppressed because it is too large
Load Diff
12566
Lidarr/config/logs/lidarr.6.txt
Normal file
12566
Lidarr/config/logs/lidarr.6.txt
Normal file
File diff suppressed because it is too large
Load Diff
12640
Lidarr/config/logs/lidarr.7.txt
Normal file
12640
Lidarr/config/logs/lidarr.7.txt
Normal file
File diff suppressed because it is too large
Load Diff
12576
Lidarr/config/logs/lidarr.8.txt
Normal file
12576
Lidarr/config/logs/lidarr.8.txt
Normal file
File diff suppressed because it is too large
Load Diff
12471
Lidarr/config/logs/lidarr.9.txt
Normal file
12471
Lidarr/config/logs/lidarr.9.txt
Normal file
File diff suppressed because it is too large
Load Diff
1270
Lidarr/config/logs/lidarr.txt
Normal file
1270
Lidarr/config/logs/lidarr.txt
Normal file
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.
218
Prowlarr/config/Definitions/0daykiev.yml
Normal file
218
Prowlarr/config/Definitions/0daykiev.yml
Normal file
@ -0,0 +1,218 @@
|
||||
---
|
||||
id: 0daykiev
|
||||
name: 0day.kiev
|
||||
description: "0day.kiev.ua is a UKRAINIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: uk-UA
|
||||
type: private
|
||||
encoding: windows-1251
|
||||
links:
|
||||
- https://tracker.0day.community/
|
||||
legacylinks:
|
||||
- https://tracker.0day.kiev.ua/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 10, cat: Movies, desc: "Фильмы (Movies)"}
|
||||
- {id: 16, cat: Movies/HD, desc: "HD / Фильмы (HD / Movies)"}
|
||||
- {id: 30, cat: TV/HD, desc: "HD / Сериалы (HD / TV Shows)"}
|
||||
- {id: 27, cat: Movies/HD, desc: "HD / Мультфильмы (HD / Cartoons)"}
|
||||
- {id: 17, cat: PC/Games, desc: "Игры / ПК (Games / PC)"}
|
||||
- {id: 14, cat: Audio, desc: "Музыка / Аудио (Music / Audio)"}
|
||||
- {id: 29, cat: TV, desc: "Мультсериалы (TV Series)"}
|
||||
- {id: 11, cat: Movies, desc: "Мультфильмы (Cartoons)"}
|
||||
- {id: 28, cat: TV/Documentary, desc: "HD / Документальное (HD / Documentary)"}
|
||||
- {id: 18, cat: PC/0day, desc: "Софт / Windows (Software / Windows)"}
|
||||
- {id: 19, cat: TV, desc: "TV / Сериалы (TV shows)"}
|
||||
- {id: 31, cat: Other, desc: "Прочее (Other)"}
|
||||
|
||||
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: stripcyrillic
|
||||
type: checkbox
|
||||
label: Strip Cyrillic Letters
|
||||
default: true
|
||||
- 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_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "The tracker has a system for deleting inactive accounts after 6 months from your last visit to the tracker."
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
returnto: "/browse.php"
|
||||
error:
|
||||
- selector: div.maintitle:contains("Ошибка")
|
||||
message:
|
||||
selector: div.borderwrap table.embedded
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href="/logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://tracker.0day.kiev.ua/browse.php?c10=1&c27=1&search=endgame&incldead=1&where=0
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 gold, 4 noseed, 5 silver
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
# 0 title, 1 title and descr
|
||||
where: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: diacritics
|
||||
args: replace
|
||||
- name: re_replace # S01 to сезон 1
|
||||
args: ["(?i)\\bS0*(\\d+)\\b", "сезон $1"]
|
||||
- name: re_replace # E01 to сері 1
|
||||
args: ["(?i)\\bE0*(\\d+)\\b", "сері $1"]
|
||||
- name: re_replace # S01E01 to сезон 1 сері 1
|
||||
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "сезон $1 сері $2"]
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr.rowtorrentinfo
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
filters:
|
||||
# normalize to SXXEYY format
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(?:[CС]ері[їяй]|Епізоди?)[\\s:]*(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езони?.+?(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))?", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езони?.+?(\\d+(?:-\\d+)?)\\s*(?:[CС]ері[їяй]|Епізоди?)\\s+з\\s*(\\w?)", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))?", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*(?:[CС]ері[їяй]|Епізоди?)\\s+з\\s*(\\w?)", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(?:[CС]ері[їяй]|Епізоди?)[\\s:]*(\\d+(?:-\\d+)?)", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езони?.+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?)", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езони?", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(?:[CС]ері[їяй]|Епізоди?)[\\s:]*(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)", "E$1 of $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))", "E$1 of $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:[CС]ері[їяй]|Епізоди?)\\s+з\\s*(\\w?)", "E$1 of $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(?:[CС]ері[їяй]|Епізоди?)[\\s:]*(\\d+(?:-\\d+)?)", "E$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:[CС]ері[їяй]|Епізоди?)", "E$1"]
|
||||
- name: re_replace
|
||||
args: ["(\\([\\p{IsCyrillic}\\W]+\\))|(^[\\p{IsCyrillic}\\W\\d]+\\/ )|([\\p{IsCyrillic} \\-]+,+)|([\\p{IsCyrillic}]+)", "{{ if .Config.stripcyrillic }}{{ else }}$1$2$3$4{{ end }}"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bHDTV\\s?Rip\\b", "HDTV"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bSAT\\s?Rip\\b", "HDTV"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB\\s?DL\\s?Rip\\b", "WEBDL"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB Rip\\b", "WEBRip"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB DL\\b", "WEBDL"]
|
||||
- name: re_replace
|
||||
args: ["[\\[\\(\\{<«][\\s\\W]*[\\]\\)\\}>»]", ""]
|
||||
- name: re_replace
|
||||
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)^\\(\\s*([SE]\\d+.*?)\\s*\\)[\\s\\/\\|]*(.+)", "$2 $1"]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(2) i
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["ТБ", "TB"]
|
||||
- name: replace
|
||||
args: ["ГБ", "GB"]
|
||||
- name: replace
|
||||
args: ["МБ", "MB"]
|
||||
- name: replace
|
||||
args: ["КБ", "KB"]
|
||||
grabs:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 0]
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 1]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/freedownload.gif"]: 0
|
||||
img[src="pic/silverdownload.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.2
|
||||
description:
|
||||
selector: a[href^="details.php?id="]
|
||||
# engine n/a
|
||||
76
Prowlarr/config/Definitions/0magnet.yml
Normal file
76
Prowlarr/config/Definitions/0magnet.yml
Normal file
@ -0,0 +1,76 @@
|
||||
---
|
||||
id: 0magnet
|
||||
name: 0Magnet
|
||||
description: "ØMagnet is a CHINESE Public tracker for Asian 3X (JAV)"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://0magnet.co/
|
||||
- https://13mag.net/
|
||||
- https://16mag.net/
|
||||
legacylinks:
|
||||
- https://0magnet.com/
|
||||
- https://9mag.net/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
XXX: XXX
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
infohash:
|
||||
hash:
|
||||
selector: a[href^="magnet:?xt"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([A-F|a-f|0-9]{40})
|
||||
title:
|
||||
selector: a[href^="magnet:?xt"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "&dn=(.+?)&"
|
||||
- name: validfilename
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: search
|
||||
inputs:
|
||||
q: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr:has(td)
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: XXX
|
||||
title:
|
||||
selector: a
|
||||
remove: p
|
||||
details:
|
||||
selector: a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: td.td-size
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
280
Prowlarr/config/Definitions/1337x.yml
Normal file
280
Prowlarr/config/Definitions/1337x.yml
Normal file
@ -0,0 +1,280 @@
|
||||
---
|
||||
id: 1337x
|
||||
name: 1337x
|
||||
description: "1337X is a Public torrent site that offers verified torrent downloads"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
# get status and news on domains at the official site https://1337x-status.org/
|
||||
links:
|
||||
- https://1337x.to/
|
||||
- https://1337x.st/
|
||||
- https://x1337x.ws/
|
||||
- https://x1337x.eu/
|
||||
- https://x1337x.se/
|
||||
- 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:
|
||||
- https://1337x.is/
|
||||
- https://1337x.gd/
|
||||
- https://1337x.mrunblock.bond/
|
||||
- https://1337x.abcproxy.org/
|
||||
- https://1337x.so/
|
||||
- https://1337x.unblockit.download/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Anime
|
||||
- {id: 28, cat: TV/Anime, desc: "Anime/Anime"}
|
||||
- {id: 78, cat: TV/Anime, desc: "Anime/Dual Audio"}
|
||||
- {id: 79, cat: TV/Anime, desc: "Anime/Dubbed"}
|
||||
- {id: 80, cat: TV/Anime, desc: "Anime/Subbed"}
|
||||
- {id: 81, cat: TV/Anime, desc: "Anime/Raw"}
|
||||
# Audio
|
||||
- {id: 22, cat: Audio/MP3, desc: "Music/MP3"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Music/Lossless"}
|
||||
- {id: 24, cat: Audio, desc: "Music/DVD"}
|
||||
- {id: 25, cat: Audio/Video, desc: "Music/Video"}
|
||||
- {id: 26, cat: Audio, desc: "Music/Radio"}
|
||||
- {id: 27, cat: Audio/Other, desc: "Music/Other"}
|
||||
- {id: 53, cat: Audio, desc: "Music/Album"}
|
||||
- {id: 58, cat: Audio, desc: "Music/Box set"}
|
||||
- {id: 59, cat: Audio, desc: "Music/Discography"}
|
||||
- {id: 60, cat: Audio, desc: "Music/Single"}
|
||||
- {id: 68, cat: Audio, desc: "Music/Concerts"}
|
||||
- {id: 69, cat: Audio, desc: "Music/AAC"}
|
||||
# Movies
|
||||
- {id: 1, cat: Movies/DVD, desc: "Movies/DVD"}
|
||||
- {id: 2, cat: Movies/SD, desc: "Movies/Divx/Xvid"}
|
||||
- {id: 3, cat: Movies, desc: "Movies/SVCD/VCD"}
|
||||
- {id: 4, cat: Movies/Foreign, desc: "Movies/Dubs/Dual Audio"}
|
||||
- {id: 42, cat: Movies/HD, desc: "Movies/HD"}
|
||||
- {id: 54, cat: Movies/HD, desc: "Movies/h.264/x264"}
|
||||
- {id: 55, cat: Movies, desc: "Movies/Mp4"}
|
||||
- {id: 66, cat: Movies/3D, desc: "Movies/3D"}
|
||||
- {id: 70, cat: Movies/HD, desc: "Movies/HEVC/x265"}
|
||||
- {id: 73, cat: Movies, desc: "Movies/Bollywood"}
|
||||
- {id: 76, cat: Movies/UHD, desc: "Movies/UHD"}
|
||||
# TV
|
||||
- {id: 5, cat: TV, desc: "TV/DVD"}
|
||||
- {id: 6, cat: TV, desc: "TV/Divx/Xvid"}
|
||||
- {id: 7, cat: TV, desc: "TV/SVCD/VCD"}
|
||||
- {id: 41, cat: TV/HD, desc: "TV/HD"}
|
||||
- {id: 71, cat: TV, desc: "TV/HEVC/x265"}
|
||||
- {id: 74, cat: TV, desc: "TV/Cartoons"}
|
||||
- {id: 75, cat: TV/SD, desc: "TV/SD"}
|
||||
- {id: 9, cat: TV/Documentary, desc: "TV/Documentary"}
|
||||
# Apps
|
||||
- {id: 18, cat: PC, desc: "Apps/PC Software"}
|
||||
- {id: 19, cat: PC/Mac, desc: "Apps/Mac"}
|
||||
- {id: 20, cat: PC, desc: "Apps/Linux"}
|
||||
- {id: 21, cat: PC, desc: "Apps/Other"}
|
||||
- {id: 56, cat: PC/Mobile-Android, desc: "Apps/Android"}
|
||||
- {id: 57, cat: PC/Mobile-iOS, desc: "Apps/iOS"}
|
||||
# Games
|
||||
- {id: 10, cat: PC/Games, desc: "Games/PC Game"}
|
||||
- {id: 11, cat: Console/PS3, desc: "Games/PS2"}
|
||||
- {id: 12, cat: Console/PSP, desc: "Games/PSP"}
|
||||
- {id: 13, cat: Console/XBox, desc: "Games/Xbox"}
|
||||
- {id: 14, cat: Console/XBox 360, desc: "Games/Xbox360"}
|
||||
- {id: 15, cat: Console/PS3, desc: "Games/PS1"}
|
||||
- {id: 16, cat: Console/Other, desc: "Games/Dreamcast"}
|
||||
- {id: 17, cat: PC/Mobile-Other, desc: "Games/Other"}
|
||||
- {id: 43, cat: Console/PS3, desc: "Games/PS3"}
|
||||
- {id: 44, cat: Console/Wii, desc: "Games/Wii"}
|
||||
- {id: 45, cat: Console/NDS, desc: "Games/DS"}
|
||||
- {id: 46, cat: Console/Other, desc: "Games/GameCube"}
|
||||
- {id: 72, cat: Console/3DS, desc: "Games/3DS"}
|
||||
- {id: 77, cat: Console/PS4, desc: "Games/PS4"}
|
||||
- {id: 82, cat: Console/Other, desc: "Games/Switch"}
|
||||
# XXX
|
||||
- {id: 48, cat: XXX/DVD, desc: "XXX/Video"}
|
||||
- {id: 49, cat: XXX/ImageSet, desc: "XXX/Picture"}
|
||||
- {id: 50, cat: XXX, desc: "XXX/Magazine"}
|
||||
- {id: 51, cat: XXX, desc: "XXX/Hentai"}
|
||||
- {id: 67, cat: XXX, desc: "XXX/Games"}
|
||||
# Other
|
||||
- {id: 33, cat: Other, desc: "Other/Emulation"}
|
||||
- {id: 34, cat: Books, desc: "Other/Tutorial"}
|
||||
- {id: 35, cat: Other, desc: "Other/Sounds"}
|
||||
- {id: 36, cat: Books/EBook, desc: "Other/E-books"}
|
||||
- {id: 37, cat: Other, desc: "Other/Images"}
|
||||
- {id: 38, cat: Other, desc: "Other/Mobile Phone"}
|
||||
- {id: 39, cat: Books/Comics, desc: "Other/Comics"}
|
||||
- {id: 40, cat: Other/Misc, desc: "Other/Other"}
|
||||
- {id: 47, cat: Other, desc: "Other/Nulled Script"}
|
||||
- {id: 52, cat: Audio/Audiobook, desc: "Other/Audiobook"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q, album, artist]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: info_flaresolverr
|
||||
type: info_flaresolverr
|
||||
- name: downloadlink
|
||||
type: select
|
||||
label: Download link
|
||||
default: "http://itorrents.org/"
|
||||
options:
|
||||
"http://itorrents.org/": iTorrents.org
|
||||
"magnet:": magnet
|
||||
- name: downloadlink2
|
||||
type: select
|
||||
label: Download link (fallback)
|
||||
default: "magnet:"
|
||||
options:
|
||||
"http://itorrents.org/": iTorrents.org
|
||||
"magnet:": magnet
|
||||
- name: info_download
|
||||
type: info
|
||||
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.)
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: time
|
||||
options:
|
||||
time: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
download:
|
||||
# the .torrent URL and magnet URI are on the details page
|
||||
selectors:
|
||||
- selector: ul li a[href^="{{ .Config.downloadlink }}"]
|
||||
attribute: href
|
||||
- selector: ul li a[href^="{{ .Config.downloadlink2 }}"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# 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 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 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 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 }}/"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace # daily standard S2023 > 2023
|
||||
args: ["\\bS(20\\d{2})\\b", "$1"]
|
||||
|
||||
rows:
|
||||
selector: tr:has(a[href^="/torrent/"])
|
||||
|
||||
fields:
|
||||
title_default:
|
||||
# the movies, tv and music pages abbreviate the title
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]
|
||||
title_optional:
|
||||
# the movies, tv and music pages abbreviate the title so we process the href instead. #8137
|
||||
optional: true
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]:contains("...")
|
||||
attribute: href
|
||||
filters:
|
||||
- name: urldecode
|
||||
- name: split
|
||||
args: ["/", 3]
|
||||
title:
|
||||
# title_optional can be empty so use the title_default instead #8586
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["-([\\w]+(?:[\\[\\]\\(\\)\\w]+)?)$", "~$1"]
|
||||
- name: replace
|
||||
args: ["-", " "]
|
||||
- name: re_replace
|
||||
args: ["~([\\w]+(?:[\\[\\]\\(\\)\\w]+)?)$", "-$1"]
|
||||
- name: replace
|
||||
args: ["\u000f", ""] # get rid of unwanted character #6582
|
||||
# cleanup for Sonarr
|
||||
- name: re_replace # EP 3 4 to E3-4
|
||||
args: ["(?i)\\sEP\\s(\\d{1,2})\\s(E?\\s?\\d{1,2})\\s", " E$1-$2 "]
|
||||
- name: re_replace # S02E04 05 to S02E04-05
|
||||
args: ["(?i)\\sS(\\d{1,2})\\s?E\\s?(\\d{1,2})\\s(E?\\s?\\d{1,2})\\s", " S$1E$2-$3 "]
|
||||
- name: re_replace
|
||||
args: ["(?i)AC3\\s?(\\d)\\s(\\d)", "AC3 $1.$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i) DD\\s?(\\d)\\s(\\d)", " DD $1.$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i) DDP\\s?(\\d)\\s(\\d)", " DDP $1.$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\sE\\s?AC3", " EAC3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)WEB\\sDL", "WEB-DL"]
|
||||
- name: re_replace
|
||||
args: ["(?i)HDTVRIP", "HDTV"]
|
||||
category_optional:
|
||||
optional: true
|
||||
selector: td[class^="coll-1"] a[href^="/sub/"]
|
||||
attribute: href
|
||||
filters:
|
||||
# extract the third part
|
||||
- name: split
|
||||
args: ["/", 2]
|
||||
category:
|
||||
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}40{{ end }}"
|
||||
details:
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
# .torrent link is on the details page
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]
|
||||
attribute: href
|
||||
# dates come in three flavours:
|
||||
date_year:
|
||||
# (within this year) 7am Sep. 14th
|
||||
optional: true
|
||||
selector: td[class^="coll-date"]:not(:contains(":")):not(:contains("'"))
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["st|nd|rd|th", ""]
|
||||
- name: dateparse
|
||||
args: "htt MMM. d"
|
||||
date_years:
|
||||
# (more than a year ago) Apr. 18th '11
|
||||
optional: true
|
||||
selector: td[class^="coll-date"]:contains("'")
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["'", ""]
|
||||
- name: re_replace
|
||||
args: ["st|nd|rd|th", ""]
|
||||
- name: dateparse
|
||||
args: "MMM. d yy"
|
||||
date_today:
|
||||
# (today) 12:25am
|
||||
optional: true
|
||||
selector: td[class^="coll-date"]:contains(":")
|
||||
filters:
|
||||
- name: fuzzytime
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_years .Result.date_today }}{{ or .Result.date_year .Result.date_years .Result.date_today }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td[class^="coll-4"]
|
||||
seeders:
|
||||
selector: td[class^="coll-2"]
|
||||
leechers:
|
||||
selector: td[class^="coll-3"]
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
224
Prowlarr/config/Definitions/1ptbar.yml
Normal file
224
Prowlarr/config/Definitions/1ptbar.yml
Normal file
@ -0,0 +1,224 @@
|
||||
---
|
||||
id: 1ptbar
|
||||
name: 1ptbar
|
||||
description: "1ptbar is a CHINESE Private Torrent Tracker for MOVIES / TV / E-LEARNING"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://1ptba.com/
|
||||
|
||||
caps:
|
||||
# dont forget to update the path categories in the search block
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movie(電影)", default: true}
|
||||
- {id: 402, cat: TV, desc: "TV Series(電視影劇)", default: true}
|
||||
- {id: 403, cat: TV, desc: "TV Shows(電視綜藝)", default: true}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries(紀錄教育)", default: true}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations(卡通動漫)", default: true}
|
||||
- {id: 406, cat: Audio/Video, desc: "Music Videos(音樂短片/演唱會)", default: true}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports(體育賽事)", default: true}
|
||||
- {id: 408, cat: Audio, desc: "HQ Audio(高品质音频)", default: true}
|
||||
- {id: 410, cat: PC/0day, desc: "Software(軟體)", default: true}
|
||||
- {id: 411, cat: PC/Games, desc: "Games(電子遊戲)", default: true}
|
||||
- {id: 412, cat: Books/EBook, desc: "eBook(電子書)", default: true}
|
||||
- {id: 409, cat: Other, desc: "Misc(其他)", default: true}
|
||||
- {id: 610, cat: XXX/x264, desc: "AV(有碼)/HD Censored", default: false}
|
||||
- {id: 611, cat: XXX/x264, desc: "AV(無碼)/HD Uncensored", default: false}
|
||||
- {id: 612, cat: XXX/SD, desc: "AV(有碼)/SD Censored", default: false}
|
||||
- {id: 613, cat: XXX/SD, desc: "AV(無碼)/SD Uncensored", default: false}
|
||||
- {id: 614, cat: XXX/DVD, desc: "AV(無碼)/DVDiSo Uncensored", default: false}
|
||||
- {id: 615, cat: XXX/DVD, desc: "AV(有碼)/DVDiSo Censored", default: false}
|
||||
- {id: 616, cat: XXX/UHD, desc: "AV(有碼)/Blu-Ray Censored", default: false}
|
||||
- {id: 617, cat: XXX/UHD, desc: "AV(無碼)/Blu-Ray Uncensored", default: false}
|
||||
- {id: 618, cat: XXX/Pack, desc: "AV(網站)/0Day", default: false}
|
||||
- {id: 619, cat: XXX/Pack, desc: "IV(寫真影集)/Video Collection", default: false}
|
||||
- {id: 620, cat: XXX/ImageSet, desc: "IV(寫真圖集)/Picture Collection", default: false}
|
||||
- {id: 621, cat: XXX/Other, desc: "H-Game(遊戲)", default: false}
|
||||
- {id: 622, cat: XXX/Other, desc: "H-Anime(動畫)", default: false}
|
||||
- {id: 623, cat: XXX/Other, desc: "H-Comic(漫畫)", default: false}
|
||||
- {id: 624, cat: XXX/Other, desc: "Adult film(成人電影)", default: false}
|
||||
- {id: 625, cat: XXX/Other, desc: "AV(Gay)/HD", default: false}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
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 1ptbar Web Site. Otherwise just leave it empty."
|
||||
- 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_flaresolverr
|
||||
type: info_flaresolverr
|
||||
- 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: "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><li>Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
|
||||
- name: info_special
|
||||
type: info
|
||||
label: Special Categories
|
||||
default: "Only <b>Power User</b> or above can view Special section. Searching for XXX categories by users below this class will result in search errors."
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
categories: [401, 402, 403, 404, 405, 406, 407, 408, 410, 411, 412, 409]
|
||||
- path: special.php
|
||||
categories: [610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625]
|
||||
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-last-of-type(6) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00"
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-last-of-type(6):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-last-of-type(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-last-of-type(4)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-last-of-type(3)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-last-of-type(2)
|
||||
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
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.13 2024-07-23
|
||||
227
Prowlarr/config/Definitions/2fast4you.yml
Normal file
227
Prowlarr/config/Definitions/2fast4you.yml
Normal file
@ -0,0 +1,227 @@
|
||||
---
|
||||
id: 2fast4you
|
||||
name: 2 Fast 4 You
|
||||
description: "2 Fast 4 You is a FRENCH Private site for TV / MOVIES / GENERAL"
|
||||
language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://2f4y.me/
|
||||
legacylinks:
|
||||
- http://www.2f4y.me/
|
||||
- https://www.2f4y.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 10, cat: TV/Anime, desc: "Animation: HD720P"}
|
||||
- {id: 11, cat: TV/Anime, desc: "Animation: HD1080P"}
|
||||
- {id: 56, cat: TV/Anime, desc: "Animation: DVDRip"}
|
||||
- {id: 18, cat: PC/0day, desc: "Applications: PC"}
|
||||
- {id: 16, cat: PC/Games, desc: "Applications: Jeux"}
|
||||
- {id: 19, cat: PC/Mobile-Android, desc: "Applications: Android"}
|
||||
- {id: 17, cat: PC/0day, desc: "Applications: Autres"}
|
||||
- {id: 67, cat: TV, desc: "Autres: Emission TV"}
|
||||
- {id: 68, cat: TV/Sport, desc: "Autres: Sport"}
|
||||
- {id: 40, cat: Other, desc: "Autres: Autres"}
|
||||
- {id: 14, cat: TV/Documentary, desc: "Documentaires: DivX"}
|
||||
- {id: 15, cat: TV/Documentary, desc: "Documentaires: HD"}
|
||||
- {id: 76, cat: TV/Documentary, desc: "Documentaires: TVRip"}
|
||||
- {id: 62, cat: Audio/Audiobook, desc: "E-Books: E-Books Audio"}
|
||||
- {id: 50, cat: Books, desc: "E-Books: Manuel Français"}
|
||||
- {id: 49, cat: Books, desc: "E-Books: Manuel Anglais"}
|
||||
- {id: 36, cat: Books, desc: "E-Books: Livres Français"}
|
||||
- {id: 53, cat: Books, desc: "E-Books: Livre Anglais"}
|
||||
- {id: 52, cat: Books, desc: "E-Books: Revue - Journaux"}
|
||||
- {id: 51, cat: Books, desc: "E-Books: BD"}
|
||||
- {id: 95, cat: Movies, desc: "Films: Film Divx XviD"}
|
||||
- {id: 66, cat: Movies, desc: "Films: VOSTFR"}
|
||||
- {id: 71, cat: Movies/WEB-DL, desc: "Films: WEB-DL"}
|
||||
- {id: 65, cat: Movies, desc: "Films: VO"}
|
||||
- {id: 72, cat: Movies/SD, desc: "Films: TVRip/HDTV"}
|
||||
- {id: 70, cat: Movies/HD, desc: "Films: MHD X265"}
|
||||
- {id: 57, cat: Movies/SD, desc: "Films: TS/CAM"}
|
||||
- {id: 59, cat: Movies, desc: "Films: Spectacle"}
|
||||
- {id: 55, cat: Movies/HD, desc: "Films: MHD 720P"}
|
||||
- {id: 54, cat: Movies/HD, desc: "Films: MHD 1080P"}
|
||||
- {id: 1, cat: Movies/HD, desc: "Films: HD720P"}
|
||||
- {id: 2, cat: Movies/HD, desc: "Films: HD1080P"}
|
||||
- {id: 90, cat: Movies/HD, desc: "Films: HD X265"}
|
||||
- {id: 92, cat: Movies/HD, desc: "Films: 4K"}
|
||||
- {id: 69, cat: Movies/3D, desc: "Films: Film 3D"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "Films: DVDRIP"}
|
||||
- {id: 5, cat: Movies/DVD, desc: "Films: DVD9"}
|
||||
- {id: 91, cat: Movies/HD, desc: "Films: RemuX"}
|
||||
- {id: 89, cat: Movies/HD, desc: "Films: BD/BR Rip"}
|
||||
- {id: 88, cat: Movies/BluRay, desc: "Films: Full BD/BR"}
|
||||
- {id: 97, cat: Movies, desc: "Films: Cours Métrage"}
|
||||
- {id: 79, cat: TV/Anime, desc: "Mangas: HD"}
|
||||
- {id: 81, cat: TV/Anime, desc: "Mangas: HD VOSTFR"}
|
||||
- {id: 85, cat: TV/Anime, desc: "Mangas: Web-DL"}
|
||||
- {id: 86, cat: TV/Anime, desc: "Mangas: TV-RIP"}
|
||||
- {id: 75, cat: Audio, desc: "Musique: Concert TVRip"}
|
||||
- {id: 25, cat: Audio/MP3, desc: "Musique: Single MP3"}
|
||||
- {id: 24, cat: Audio/Lossless, desc: "Musique: Single Flac"}
|
||||
- {id: 22, cat: Audio/MP3, desc: "Musique: Album MP3"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Musique: Album Flac"}
|
||||
- {id: 64, cat: Audio, desc: "Musique: Mégamix Maison"}
|
||||
- {id: 96, cat: Audio/MP3, desc: "Musique: PlayList MP3"}
|
||||
- {id: 94, cat: Audio, desc: "Musique: Podcast"}
|
||||
- {id: 58, cat: Audio, desc: "Musique: Concert"}
|
||||
- {id: 93, cat: TV, desc: "Serie TV: Saison VOSTFR"}
|
||||
- {id: 61, cat: TV, desc: "Serie TV: Episode VOSTFR"}
|
||||
- {id: 63, cat: TV, desc: "Serie TV: Episode VO"}
|
||||
- {id: 12, cat: TV/Anime, desc: "Serie TV: Animation"}
|
||||
- {id: 74, cat: TV, desc: "Serie TV: TVRip"}
|
||||
- {id: 73, cat: TV/WEB-DL, desc: "Serie TV: WEB-DL"}
|
||||
- {id: 7, cat: TV, desc: "Serie TV: Episode FR"}
|
||||
- {id: 6, cat: TV, desc: "Serie TV: Saison FR"}
|
||||
- {id: 98, cat: TV/Anime, desc: "Serie TV: Manga VOSTFR"}
|
||||
|
||||
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: Search freeleech only
|
||||
default: false
|
||||
- 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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: id
|
||||
options:
|
||||
id: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: order
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: account-login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: form:contains("Erreur")
|
||||
message:
|
||||
selector: form
|
||||
remove: table
|
||||
test:
|
||||
path: torrents-search.php
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all, 1 notfree, 2 onlyfree
|
||||
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 any, 1 French, 2 English, 3 Multi, 4-8 32-41
|
||||
lang: 0
|
||||
sort: "{{ .Config.sort}}"
|
||||
order: "{{ .Config.order}}"
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["^$", "%"] # replace empty search string with %
|
||||
|
||||
rows:
|
||||
selector: table.ttable_headinner > tbody > tr[class^="t-row"]
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_phase1:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" - (Nouveau!)", ""]
|
||||
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)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["torrents-details.php", "download.php"]
|
||||
poster:
|
||||
selector: img.rounded-img
|
||||
attribute: src
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
date:
|
||||
text: now
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[title="freeleech"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.75
|
||||
# engine n/a
|
||||
203
Prowlarr/config/Definitions/2xfree.yml
Normal file
203
Prowlarr/config/Definitions/2xfree.yml
Normal file
@ -0,0 +1,203 @@
|
||||
---
|
||||
id: 2xfree
|
||||
name: 2xFree
|
||||
description: "2xFree is a CHINESE Private Torrent Tracker for 3D MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.2xfree.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
# torrents.php
|
||||
- {id: 526, cat: Movies, desc: "3DMovies(3D电影)"}
|
||||
- {id: 527, cat: TV, desc: "3DSeries(3D剧集)"}
|
||||
- {id: 533, cat: Movies, desc: "VRMovies(VR电影)"}
|
||||
- {id: 534, cat: TV, desc: "VRSeries(VR剧集)"}
|
||||
- {id: 537, cat: TV, desc: "VRShows(VR演出)"}
|
||||
- {id: 530, cat: Console, desc: "VRGame(VR一体机游戏)"}
|
||||
- {id: 531, cat: PC/Games, desc: "PCVRGame(PCVR游戏)"}
|
||||
- {id: 532, cat: Other, desc: "VRTools(VR工具软件)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
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 2xFree Web Site. Otherwise just leave it empty."
|
||||
- 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_ulslr
|
||||
type: info
|
||||
label: Upload Speed Limit Rule
|
||||
default: The upload bandwidth shall not exceed 120Mbps, that is, the upload speed shall not exceed 15MB/s.
|
||||
- name: flaresolverr
|
||||
type: info
|
||||
label: FlareSolverr
|
||||
default: This site may use Cloudflare DDoS Protection, therefore Prowlarr requires <a href="https://wiki.servarr.com/prowlarr/faq#can-i-use-flaresolverr-indexers" target="_blank" rel="noreferrer">FlareSolverr</a> to access it.
|
||||
- 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 be 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 with no traffic (ie, upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
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 (4 does not appear to work)
|
||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="details.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: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: 0.8
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.6 2023-06-18
|
||||
188
Prowlarr/config/Definitions/3changtrai.yml
Normal file
188
Prowlarr/config/Definitions/3changtrai.yml
Normal file
@ -0,0 +1,188 @@
|
||||
---
|
||||
id: 3changtrai
|
||||
name: 3ChangTrai
|
||||
description: "3ChangTrai (3CT) is a VIETNAMESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
|
||||
language: vi-VN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://3changtrai.com/
|
||||
|
||||
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: "Animations"}
|
||||
- {id: 406, cat: Audio/Video, desc: "Music Videos"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 408, cat: Audio, desc: "HQ Audio"}
|
||||
- {id: 410, cat: PC, desc: "Software"}
|
||||
- {id: 411, cat: Books, desc: "Documents"}
|
||||
- {id: 412, cat: PC/Games, desc: "Games"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-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: 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_flaresolverr
|
||||
type: info_flaresolverr
|
||||
- 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: "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:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
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:
|
||||
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 }}{{ .Keywords }}{{ 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 }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 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:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(5) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +07:00" # ICT
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(5):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +07:00" # ICT
|
||||
- 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(6)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(9)
|
||||
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
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
description:
|
||||
selector: td:nth-child(3)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP 3ChangTrai v3.0 2020-04-30
|
||||
164
Prowlarr/config/Definitions/3dtorrents.yml
Normal file
164
Prowlarr/config/Definitions/3dtorrents.yml
Normal file
@ -0,0 +1,164 @@
|
||||
---
|
||||
id: 3dtorrents
|
||||
name: 3D Torrents
|
||||
description: "3D Torrents (3DT) is a Private Torrent Tracker for 3D HD / BLURAY MOVIES"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.3dtorrents.org/ # site does not support https ERR_CONNECTION_CLOSED
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 14, cat: Movies/SD, desc: "Movies XviD"}
|
||||
- {id: 15, cat: Movies/DVD, desc: "Movies DVD-R"}
|
||||
- {id: 11, cat: Movies/HD, desc: "Movies 720p"}
|
||||
- {id: 13, cat: Movies/HD, desc: "Movies 1080p"}
|
||||
- {id: 16, cat: Movies/3D, desc: "Movies 3DTV"}
|
||||
- {id: 17, cat: Movies/BluRay, desc: "Movies Blu-ray"}
|
||||
- {id: 27, cat: Movies/BluRay, desc: "Movies BD25 Encode"}
|
||||
- {id: 33, cat: Movies/BluRay, desc: "Movies BD9 AVCHD"}
|
||||
- {id: 22, cat: Movies, desc: "Movies 2D to 3D Conv"}
|
||||
- {id: 32, cat: Movies, desc: "Bluray MKV Remux"}
|
||||
- {id: 23, cat: Movies/3D, desc: "Movies Evo 3D"}
|
||||
- {id: 36, cat: Movies/UHD, desc: "Movies 4K UHD Bluray"}
|
||||
- {id: 37, cat: Movies/UHD, desc: "Movies 4K UHD Encode"}
|
||||
- {id: 21, cat: PC, desc: "3D Software"}
|
||||
- {id: 28, cat: XXX, desc: "Adult 720p"}
|
||||
- {id: 29, cat: XXX, desc: "Adult 1080p"}
|
||||
- {id: 30, cat: XXX, desc: "Adult Blu-ray"}
|
||||
- {id: 31, cat: Other, desc: "Misc"}
|
||||
- {id: 19, cat: Audio, desc: "Audio Packs"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
movie-search: [q]
|
||||
music-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: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 3
|
||||
options:
|
||||
3: created
|
||||
5: seeders
|
||||
2: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: 2
|
||||
options:
|
||||
1: desc
|
||||
2: asc
|
||||
- name: info
|
||||
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: "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."
|
||||
|
||||
login:
|
||||
path: index.php?page=login
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
captcha:
|
||||
type: image
|
||||
selector: img.captcha
|
||||
input: private_key
|
||||
error:
|
||||
- selector: span.errormsg
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: index.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
page: torrents
|
||||
category: 0
|
||||
# 0 all, 1 Anaglyph 3D, 2 Side by Side,3 Over Under
|
||||
3dformat: 0
|
||||
# 0 all, 1 active only, 2 dead only
|
||||
active: 0
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: "table[cellspacing!=\"1\"].lista > tbody > tr:has(a[href^=\"index.php?page=torrents&category=\"]){{ if .Config.freeleech }}:has(img[src=\"images/sign_free.png\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
- name: re_replace
|
||||
args: ["(\\b0\\b)", "31"]
|
||||
title:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
details:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["index.php?page=torrent-details&id=", "download.php?id="]
|
||||
poster:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ",\\'(.+?)\\'"
|
||||
genre:
|
||||
selector: td:nth-child(2) span
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
date:
|
||||
selector: td:nth-last-child(5)
|
||||
filters:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "dd/MM/yyyy zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: a[href^="index.php?page=peers"]
|
||||
leechers:
|
||||
selector: td:has(a[href^="index.php?page=peers"]) + td
|
||||
grabs:
|
||||
selector: a[href^="index.php?page=torrent_history"]
|
||||
optional: true
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/sign_free.png"]: 0
|
||||
img[src="images/50off.png"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# xbtit
|
||||
200
Prowlarr/config/Definitions/3wmg.yml
Normal file
200
Prowlarr/config/Definitions/3wmg.yml
Normal file
@ -0,0 +1,200 @@
|
||||
---
|
||||
id: 3wmg
|
||||
name: 3Wmg
|
||||
description: "3Wmg is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://www.3wmg.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影", default: true}
|
||||
- {id: 402, cat: TV, desc: "TV Series/电视剧", default: true}
|
||||
- {id: 403, cat: TV, desc: "TV Shows/综艺", default: true}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片", default: true}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫", default: true}
|
||||
- {id: 406, cat: Audio, desc: "Music/音乐", default: true}
|
||||
- {id: 407, cat: Other/Misc, desc: "Leanrning学习", default: true}
|
||||
- {id: 409, cat: Books, desc: "Ebook电子书", default: true}
|
||||
- {id: 410, cat: Other, desc: "Misc/其他", default: true}
|
||||
# special
|
||||
- {id: 411, cat: XXX, desc: "Uncensored无码", default: false}
|
||||
- {id: 412, cat: XXX, desc: "Censored有码", default: false}
|
||||
- {id: 413, cat: XXX, desc: "Lgbt同志", default: false}
|
||||
- {id: 414, cat: XXX, desc: "III三级、写真", default: false}
|
||||
- {id: 415, cat: XXX, desc: "Animations动漫", default: false}
|
||||
- {id: 416, cat: XXX, desc: "Other其他", default: false}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
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 3Wmg Web Site. Otherwise just leave it empty."
|
||||
- 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.
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失敗"))
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
categories: [401, 402, 403, 404, 405, 406, 407, 409, 410]
|
||||
- path: special.php
|
||||
categories: [411, 412, 413, 414, 415, 416]
|
||||
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, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="details.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
|
||||
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: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: 1.0
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.5 2023-07-29
|
||||
149
Prowlarr/config/Definitions/4thd.yml
Normal file
149
Prowlarr/config/Definitions/4thd.yml
Normal file
@ -0,0 +1,149 @@
|
||||
---
|
||||
id: 4thd
|
||||
name: 4thD
|
||||
description: "4th Dimension is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
encoding: UTF-8
|
||||
type: private
|
||||
links:
|
||||
- https://4thd.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 38, cat: Movies, desc: "Movie Pack"}
|
||||
- {id: 36, cat: Movies, desc: "Movies/Classic Films"}
|
||||
- {id: 13, cat: Movies, desc: "Movies/Documentary"}
|
||||
- {id: 21, cat: Movies/Foreign, desc: "Movies/Foreign"}
|
||||
- {id: 27, cat: Movies/HD, desc: "MoviesHD"}
|
||||
- {id: 29, cat: Movies/SD, desc: "Movies/SD"}
|
||||
- {id: 26, cat: Movies/SD, desc: "Movies/XviD"}
|
||||
- {id: 45, cat: Movies, desc: "Movies/Kids"}
|
||||
- {id: 41, cat: TV/Foreign, desc: "Foreign tv"}
|
||||
- {id: 40, cat: TV, desc: "Mini-Series"}
|
||||
- {id: 43, cat: TV/HD, desc: "TV H265"}
|
||||
- {id: 42, cat: TV, desc: "TV Movie"}
|
||||
- {id: 4, cat: TV/HD, desc: "TV/HD-x720"}
|
||||
- {id: 14, cat: TV, desc: "TV/Packs"}
|
||||
- {id: 2, cat: TV/SD, desc: "TV/SD MP4/mkv"}
|
||||
- {id: 31, cat: TV/SD, desc: "TV/XviD"}
|
||||
- {id: 18, cat: PC/Games, desc: "Games/PC"}
|
||||
- {id: 44, cat: Audio, desc: "Music/Pack"}
|
||||
- {id: 12, cat: Audio/Lossless, desc: "Music/FLAC"}
|
||||
- {id: 15, cat: Audio/MP3, desc: "Music/MP3"}
|
||||
- {id: 37, cat: Audio, desc: "Radio"}
|
||||
- {id: 9, cat: PC/0day, desc: "Apps/PC"}
|
||||
- {id: 34, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: 25, cat: Books/EBook, desc: "eBooks"}
|
||||
|
||||
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: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: time
|
||||
options:
|
||||
time: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form#loginform
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
keeplogged: 1
|
||||
error:
|
||||
- selector: form#loginform .warning
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?auth="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://4thd.xyz/torrents.php?order_by=time&order_way=desc&filter_freeleech=1&title=twilight+zone&search_type=1&taglist=&tags_type=0
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||||
order_by: "{{ .Config.sort }}"
|
||||
order_way: "{{ .Config.type }}"
|
||||
# 0 all, 1 onlyfree
|
||||
filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
|
||||
title: "{{ .Keywords }}"
|
||||
search_type: 1
|
||||
taglist: ""
|
||||
tags_type: 0
|
||||
|
||||
rows:
|
||||
selector: table#torrent_table > tbody > tr.torrent:has(a[href^="torrents.php?action=download&id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td.cats_col div a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: \[(\d+)\]
|
||||
title:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
details:
|
||||
selector: a[href^="torrents.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
description:
|
||||
selector: div.tags
|
||||
poster:
|
||||
selector: td:nth-child(2) script
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?)>"
|
||||
- name: re_replace
|
||||
args: ["\\\\", ""]
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Never", "99 years ago"]
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="/freedownload.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# Engine n/a
|
||||
106
Prowlarr/config/Definitions/52bt.yml
Normal file
106
Prowlarr/config/Definitions/52bt.yml
Normal file
@ -0,0 +1,106 @@
|
||||
---
|
||||
id: 52bt
|
||||
name: 52BT
|
||||
description: "52BT is a CHINESE Public tracker for MOVIES / TV / MUSIC / GENERAL"
|
||||
language: zh-CN
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
# Send any content to 52btbtbt@gmail.com to get the latest address. or visit https://521.52btbt.cyou/
|
||||
- https://www.529053.xyz/
|
||||
- https://www.529055.xyz/
|
||||
legacylinks:
|
||||
- https://529050.xyz/
|
||||
- https://529048.xyz/
|
||||
- https://529049.xyz/
|
||||
- https://www.529052.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 影视, cat: TV, desc: 影视}
|
||||
- {id: 影视, cat: Movies, desc: 影视}
|
||||
- {id: 音乐, cat: Audio, desc: 音乐}
|
||||
- {id: 图像, cat: Other, desc: 图像}
|
||||
- {id: 文档书籍, cat: Books, desc: 文档书籍}
|
||||
- {id: 压缩文件, cat: Other, desc: 压缩文件}
|
||||
- {id: 安装包, cat: PC, desc: 安装包}
|
||||
- {id: 其他, cat: Other, desc: 其他}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cat-id
|
||||
type: select
|
||||
label: Category
|
||||
default: 0
|
||||
options:
|
||||
0: All categories
|
||||
1: Film and Television
|
||||
2: Music
|
||||
3: Images
|
||||
4: Books
|
||||
5: Zip Files
|
||||
6: Software
|
||||
7: Other
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 2
|
||||
options:
|
||||
2: created
|
||||
1: size
|
||||
0: relevance
|
||||
- name: info_flaresolverr
|
||||
type: info_flaresolverr
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "search-{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}-{{ .Config.cat-id }}-{{ .Config.sort }}-1.html"
|
||||
- path: "search-{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}-{{ .Config.cat-id }}-{{ .Config.sort }}-2.html"
|
||||
error:
|
||||
- selector: :root:contains("Internal Server Error")
|
||||
|
||||
rows:
|
||||
selector: div.ssbox
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: div.title > h3 > span
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["([\\[\\]]+)", ""]
|
||||
title:
|
||||
selector: a[href^="/hash/"]
|
||||
details:
|
||||
selector: a[href^="/hash/"]
|
||||
attribute: href
|
||||
infohash:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([A-F|a-f|0-9]{40})
|
||||
date:
|
||||
selector: div.sbar > span:contains("添加时间:") > b
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd zzz"
|
||||
size:
|
||||
selector: div.sbar > span:contains("大小:") > b
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
183
Prowlarr/config/Definitions/52pt.yml
Normal file
183
Prowlarr/config/Definitions/52pt.yml
Normal file
@ -0,0 +1,183 @@
|
||||
---
|
||||
id: 52pt
|
||||
name: 52PT
|
||||
description: "52PT is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://52pt.site/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/剧集"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐MV"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports/运体"}
|
||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
||||
- {id: 410, cat: Other, desc: "Opera/戏曲 曲艺"}
|
||||
- {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
|
||||
- {id: 411, cat: XXX, desc: "Erotic/情色"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
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: 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 (junior college) and above will be retained forever</li><li>Elite User (junior high school) and above will not be deleted after parking (in the control panel)</li><li>Users with a parked account who do not log in for 400 consecutive days will be deleted</li><li>Users with non-parked account will be deleted if they do not log in for 150 consecutive days</li><li>Users with no traffic (that is, upload/download data are both 0) will be deleted if they do not log in for 15 consecutive days, or if the registration time reaches 60 days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="usercp.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
# currently supports only one query id at one time.
|
||||
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, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
# does not return imdb or doubanid in results
|
||||
|
||||
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
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td: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: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:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td: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: 1.1
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 24 x 60 x 60)
|
||||
text: 86400
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP Standard v1.5 Beta 4
|
||||
240
Prowlarr/config/Definitions/Bittorrentfiles.yml
Normal file
240
Prowlarr/config/Definitions/Bittorrentfiles.yml
Normal file
@ -0,0 +1,240 @@
|
||||
---
|
||||
id: Bittorrentfiles
|
||||
name: Bittorrentfiles
|
||||
description: "Bittorrentfiles is a Private GERMAN Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: de-DE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bittorrentfiles.me/
|
||||
legacylinks:
|
||||
- https://www.Bittorrentfiles.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Movie
|
||||
- {id: 48, cat: Movies/HD, desc: "Movie 1080p"}
|
||||
- {id: 31, cat: Movies/3D, desc: "Movie 3D"}
|
||||
- {id: 21, cat: Movies/HD, desc: "Movie 720p"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Movie AVI"}
|
||||
- {id: 20, cat: Movies/DVD, desc: "Movie DVD-R"}
|
||||
- {id: 40, cat: Movies/HD, desc: Movie "h264/x264"}
|
||||
- {id: 30, cat: Movies/HD, desc: "Movie HD/BD"}
|
||||
- {id: 49, cat: Movies/Foreign, desc: "Movie International"}
|
||||
- {id: 78, cat: Movies/UHD, desc: "Movie UHD"}
|
||||
- {id: 85, cat: Movies/HD, desc: "Movie x265"}
|
||||
# Serien
|
||||
- {id: 79, cat: TV/HD, desc: "Staffeln HD"}
|
||||
- {id: 56, cat: TV/SD, desc: "Staffeln SD"}
|
||||
- {id: 88, cat: TV/UHD, desc: "Staffeln UHD"}
|
||||
- {id: 86, cat: TV/UHD, desc: "Folgen UHD"}
|
||||
- {id: 54, cat: TV/HD, desc: "Folgen HD"}
|
||||
- {id: 80, cat: TV/HD, desc: "Folgen HD/BD"}
|
||||
- {id: 7, cat: TV/SD, desc: "Folgen SD"}
|
||||
- {id: 55, cat: TV/Foreign, desc: "Folgen International"}
|
||||
# Doku
|
||||
- {id: 91, cat: TV/Documentary, desc: "Doku UHD"}
|
||||
- {id: 64, cat: TV/Documentary, desc: "Doku HD"}
|
||||
- {id: 36, cat: TV/Documentary, desc: "Doku SD"}
|
||||
- {id: 81, cat: TV/Documentary, desc: "Doku 3D"}
|
||||
- {id: 82, cat: TV/Documentary, desc: "Doku Packs"}
|
||||
# Spiele
|
||||
- {id: 4, cat: PC/Games, desc: "Spiele Windows"}
|
||||
- {id: 92, cat: PC/Mac, desc: "Spiele Mac"}
|
||||
- {id: 93, cat: PC, desc: "Spiele Linux"}
|
||||
- {id: 97, cat: Console/XBox, desc: "Spiele XBOX"}
|
||||
- {id: 94, cat: PC/Mobile-Other, desc: "Spiele Mobile"}
|
||||
- {id: 95, cat: Console/NDS, desc: "Spiele Nintendo"}
|
||||
- {id: 96, cat: Console/PSP, desc: "Spiele Playstation"}
|
||||
- {id: 42, cat: Console/Other, desc: "Spiele Andere"}
|
||||
# Musik
|
||||
- {id: 66, cat: Audio, desc: "Musik Alben"}
|
||||
- {id: 75, cat: Audio, desc: "Musik Singles"}
|
||||
- {id: 50, cat: Audio, desc: "Musik Charts"}
|
||||
- {id: 52, cat: Audio, desc: "Musik Packs"}
|
||||
- {id: 53, cat: Audio/Video, desc: "Musik Video"}
|
||||
- {id: 61, cat: Audio/Video, desc: "Musik DVD-R"}
|
||||
- {id: 83, cat: Audio/Lossless, desc: "Musik Flac"}
|
||||
- {id: 68, cat: Audio, desc: "Musik Live"}
|
||||
- {id: 6, cat: Audio, desc: "Musik Misc"}
|
||||
- {id: 51, cat: Audio, desc: "Musik OST"}
|
||||
- {id: 67, cat: Audio, desc: "Musik Sampler"}
|
||||
# App
|
||||
- {id: 98, cat: PC/0day, desc: "App Windows"}
|
||||
- {id: 62, cat: PC/Mac, desc: "App Mac OS"}
|
||||
- {id: 63, cat: PC/0day, desc: "App Linux"}
|
||||
- {id: 34, cat: PC, desc: "App Andere"}
|
||||
# Sport
|
||||
- {id: 74, cat: TV/Sport, desc: "Sport HD"}
|
||||
- {id: 39, cat: TV/Sport, desc: "Sport SD"}
|
||||
# Sonstiges
|
||||
- {id: 41, cat: Audio/Audiobook, desc: "Sonstiges A-Book"}
|
||||
- {id: 33, cat: TV/Anime, desc: "Sonstiges Anime"}
|
||||
- {id: 35, cat: Books/EBook, desc: "Sonstiges e-Book-DE"}
|
||||
- {id: 90, cat: Books/EBook, desc: "Sonstiges e-Book-INT"}
|
||||
- {id: 65, cat: Other, desc: "Sonstiges E-Learning"}
|
||||
- {id: 37, cat: PC, desc: "Sonstiges Mobile"}
|
||||
- {id: 87, cat: Books/Mags, desc: "Sonstiges E-Paper"}
|
||||
- {id: 38, cat: Other, desc: "Sonstiges Kids"}
|
||||
- {id: 47, cat: Other, desc: "Sonstiges Line"}
|
||||
- {id: 9, cat: Other, desc: "Sonstiges Andere"}
|
||||
# XXX
|
||||
- {id: 58, cat: XXX/x264, desc: "XXX HD"}
|
||||
- {id: 46, cat: XXX, desc: "XXX Hentai"}
|
||||
- {id: 59, cat: XXX/Pack, desc: "XXX Pack"}
|
||||
- {id: 27, cat: XXX/SD, desc: "XXX SD"}
|
||||
- {id: 76, cat: XXX, desc: "XXX Andere"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: user
|
||||
type: text
|
||||
label: Username
|
||||
- name: pass
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_account
|
||||
type: info
|
||||
label: Account Settings
|
||||
default: In order to see the correct date and size in the torrent rows, change the <b>Torrentliste:</b> setting to <b>Modern</b> on your account profile.
|
||||
- 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: "Inactive accounts of users, power users and mega users will be permanently deleted from the database after 125 days! Torrents in your share don't count as activity - only logging in again counts! You can extend this period to 250 days by setting your account to parking. You can find the option to do this under Edit Profile."
|
||||
|
||||
login:
|
||||
path: signin.php
|
||||
method: post
|
||||
inputs:
|
||||
user: "{{ .Config.user }}"
|
||||
pass: "{{ .Config.pass }}"
|
||||
returnto: "%2Fbrowse.php"
|
||||
error:
|
||||
- selector: .error
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="/logout.php?c="]
|
||||
|
||||
search:
|
||||
path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0=title, 1=descr, 2=nfo, 3=all, 4=imdb
|
||||
search_where: "{{ if .Query.IMDBID }}3{{ else }}0{{ end }}"
|
||||
# 0=active, 1=all, 2=onlydead, 4=only upload, 5=doubleup, 6=halfdown, 7=highlight, 8=request
|
||||
status: "{{ if .Config.freeleech }}4{{ else }}1{{ end }}"
|
||||
orderby: "{{ .Config.sort }}"
|
||||
sort: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.tableinborder > tbody > tr:has(a[href^="/download.php"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="/browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php"]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="details.php"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/download.php"]
|
||||
attribute: href
|
||||
grabs:
|
||||
selector: a[title="Snatcher"]
|
||||
optional: true
|
||||
default: 0
|
||||
files:
|
||||
selector: a[title="Files"]
|
||||
optional: true
|
||||
default: 0
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: a[title="Seeder"]
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: a[title="Leecher"]
|
||||
optional: true
|
||||
default: 0
|
||||
# 2 flavours of dates
|
||||
date_day:
|
||||
# Heute 13:30:04
|
||||
# Gestern 09:10:10
|
||||
selector: td:nth-child(10):contains("Heute"), td:nth-child(10):contains("Gestern")
|
||||
optional: true
|
||||
filters:
|
||||
- name: split
|
||||
args: ["b", 0]
|
||||
- name: replace
|
||||
args: ["Heute", "Today"]
|
||||
- name: replace
|
||||
args: ["Gestern", "Yesterday"]
|
||||
- name: append
|
||||
args: "+01:00" # CET
|
||||
date_year:
|
||||
# 30.02.2018 23:12:50
|
||||
selector: td:nth-child(10):contains("."):contains(":")
|
||||
optional: true
|
||||
filters:
|
||||
- name: split
|
||||
args: ["b", 0]
|
||||
- name: append
|
||||
args: "+01:00" # CET
|
||||
- name: dateparse
|
||||
args: "dd.MM.yyyy HH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt="OU"]: 0
|
||||
img[alt="D/2"]: 0.5
|
||||
img[alt="D / 2"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[alt="2xU"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.8
|
||||
minimumseedtime:
|
||||
# 60 hours (as seconds = 60 x 60 x 60)
|
||||
text: 216000
|
||||
# engine n/a
|
||||
177
Prowlarr/config/Definitions/abnormal.yml
Normal file
177
Prowlarr/config/Definitions/abnormal.yml
Normal file
@ -0,0 +1,177 @@
|
||||
---
|
||||
id: abnormal
|
||||
name: Abnormal
|
||||
description: "ABNormal (ABN) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2.1
|
||||
links:
|
||||
- https://abn.lol/
|
||||
legacylinks:
|
||||
- https://abnormal.ws
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV, desc: "Series"}
|
||||
- {id: 2, cat: Movies, desc: "Movies"}
|
||||
- {id: 3, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 4, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 5, cat: PC/Games, desc: "Games"}
|
||||
- {id: 6, cat: PC, desc: "Applications"}
|
||||
- {id: 7, cat: Books/EBook, desc: "Ebooks"}
|
||||
- {id: 9, cat: TV, desc: "Emissions"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- 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: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: Created
|
||||
options:
|
||||
Created: created
|
||||
Seeders: seeders
|
||||
Size: size
|
||||
ReleaseName: 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 are automatically deactivated after 4 months of inactivity (no connection to the site)."
|
||||
|
||||
login:
|
||||
method: form
|
||||
path: Home/Login
|
||||
form: "#account"
|
||||
inputs:
|
||||
Username: "{{ .Config.username }}"
|
||||
Password: "{{ .Config.password }}"
|
||||
RememberMe: true
|
||||
selectorinputs:
|
||||
__RequestVerificationToken:
|
||||
selector: input[name="__RequestVerificationToken"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: div.validation-summary-errors[data-valmsg-summary="true"]
|
||||
message:
|
||||
text: " - Bad username/password."
|
||||
test:
|
||||
path: /
|
||||
selector: form#logoutForm
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: Torrent
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}SelectedCats={{.}}&{{end}}"
|
||||
Search: "{{ .Keywords }}"
|
||||
UserId: ""
|
||||
YearOperator: ≥
|
||||
Year: ""
|
||||
RatingOperator: ≥
|
||||
Rating: ""
|
||||
Pending: ""
|
||||
Pack: ""
|
||||
Scene: ""
|
||||
Freeleech: "{{ if .Config.freeleech }}true{{ else }}{{ end }}"
|
||||
SortOn: "{{ .Config.sort }}"
|
||||
SortOrder: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.table-rows > tbody > tr:has(a[href^="/Torrent/Download?ReleaseId="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="/Torrent?SelectedCats="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: SelectedCats
|
||||
title_phase1:
|
||||
selector: td.grid-release-column > a
|
||||
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)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="/Torrent/Details?ReleaseId="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/Torrent/Download?ReleaseId="]
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: [",", "."]
|
||||
- name: replace
|
||||
args: ["o", "B"]
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[title="Freeleech"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
||||
text: 345600
|
||||
# Gazelle
|
||||
185
Prowlarr/config/Definitions/abtorrents.yml
Normal file
185
Prowlarr/config/Definitions/abtorrents.yml
Normal file
@ -0,0 +1,185 @@
|
||||
---
|
||||
id: abtorrents
|
||||
replaces:
|
||||
- audiobooktorrents
|
||||
name: ABtorrents
|
||||
description: "ABtorrents (ABT) is a Private Torrent Tracker for AUDIOBOOKS"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://abtorrents.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 10, cat: Audio/Audiobook, desc: "Action/Adventure"}
|
||||
- {id: 80, cat: Audio/Audiobook, desc: "Adult/Erotica"}
|
||||
- {id: 20, cat: Audio/Audiobook, desc: "Biography/Memoirs"}
|
||||
- {id: 30, cat: Audio/Audiobook, desc: "Business"}
|
||||
- {id: 40, cat: Audio/Audiobook, desc: "Childrens"}
|
||||
- {id: 70, cat: Audio/Audiobook, desc: "Computers "}
|
||||
- {id: 260, cat: Audio/Audiobook, desc: "Crime/Thriller"}
|
||||
- {id: 90, cat: Audio/Audiobook, desc: "Fantasy-General"}
|
||||
- {id: 100, cat: Audio/Audiobook, desc: "Fantasy-Youth"}
|
||||
- {id: 130, cat: Audio/Audiobook, desc: "General Fiction"}
|
||||
- {id: 140, cat: Audio/Audiobook, desc: "Historical Fiction"}
|
||||
- {id: 150, cat: Audio/Audiobook, desc: "History"}
|
||||
- {id: 160, cat: Audio/Audiobook, desc: "Horror"}
|
||||
- {id: 50, cat: Audio/Audiobook, desc: "Humor (Comedy)"}
|
||||
- {id: 170, cat: Audio/Audiobook, desc: "Literature"}
|
||||
- {id: 175, cat: Audio/Audiobook, desc: "LitRPG"}
|
||||
- {id: 180, cat: Audio/Audiobook, desc: "Mystery"}
|
||||
- {id: 190, cat: Audio/Audiobook, desc: "Non-Fiction"}
|
||||
- {id: 215, cat: Audio/Audiobook, desc: "Paranormal Romance"}
|
||||
- {id: 200, cat: Audio/Audiobook, desc: "Radio Drama"}
|
||||
- {id: 205, cat: Audio/Audiobook, desc: "Reference/Educational"}
|
||||
- {id: 207, cat: Audio/Audiobook, desc: "Religion and Spirituality"}
|
||||
- {id: 210, cat: Audio/Audiobook, desc: "Romance"}
|
||||
- {id: 240, cat: Audio/Audiobook, desc: "Sci-Fi Apocalypse"}
|
||||
- {id: 220, cat: Audio/Audiobook, desc: "Science"}
|
||||
- {id: 230, cat: Audio/Audiobook, desc: "Science Fiction"}
|
||||
- {id: 250, cat: Audio/Audiobook, desc: "Self Improvement"}
|
||||
- {id: 265, cat: Audio/Audiobook, desc: "Sports/Fitness"}
|
||||
- {id: 270, cat: Audio/Audiobook, desc: "Suspense"}
|
||||
- {id: 280, cat: Audio/Audiobook, desc: "Talk Radio"}
|
||||
- {id: 285, cat: Audio/Audiobook, desc: "Travel"}
|
||||
- {id: 290, cat: Audio/Audiobook, desc: "Urban Fantasy/Paranormal"}
|
||||
- {id: 300, cat: Audio/Audiobook, desc: "Western"}
|
||||
- {id: 310, cat: Audio/Audiobook, desc: "Young Adult"}
|
||||
- {id: 400, cat: Books/EBook, desc: "[E] Action/Adventure"}
|
||||
- {id: 410, cat: Books/EBook, desc: "[E] Adult/Erotica"}
|
||||
- {id: 420, cat: Books/EBook, desc: "[E] Arts & Crafts (Hobbies)"}
|
||||
- {id: 430, cat: Books/EBook, desc: "[E] Biography/Memoirs"}
|
||||
- {id: 435, cat: Books/EBook, desc: "[E] Business"}
|
||||
- {id: 450, cat: Books/EBook, desc: "[E] Computer Learning"}
|
||||
- {id: 460, cat: Books/EBook, desc: "[E] Cookery"}
|
||||
- {id: 470, cat: Books/EBook, desc: "[E] Crime/Thriller"}
|
||||
- {id: 480, cat: Books/EBook, desc: "[E] Fantasy"}
|
||||
- {id: 490, cat: Books/EBook, desc: "[E] Fantasy-Youth"}
|
||||
- {id: 500, cat: Books/EBook, desc: "[E] General Fiction"}
|
||||
- {id: 510, cat: Books/EBook, desc: "[E] Historical Fiction"}
|
||||
- {id: 520, cat: Books/EBook, desc: "[E] History/Documentary"}
|
||||
- {id: 530, cat: Books/EBook, desc: "[E] Horror"}
|
||||
- {id: 540, cat: Books/EBook, desc: "[E] Humor (Comedy)"}
|
||||
- {id: 560, cat: Books/EBook, desc: "[E] Literary Fiction"}
|
||||
- {id: 565, cat: Books/EBook, desc: "[E] LitRPG"}
|
||||
- {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: 600, cat: Books/EBook, desc: "[E] Reference/Educational"}
|
||||
- {id: 610, cat: Books/EBook, desc: "[E] Religion and Spirituality"}
|
||||
- {id: 620, cat: Books/EBook, desc: "[E] Romance"}
|
||||
- {id: 630, cat: Books/EBook, desc: "[E] Sci-Fi"}
|
||||
- {id: 640, cat: Books/EBook, desc: "[E] Sci-Fi/Apocalyptic"}
|
||||
- {id: 645, cat: Books/EBook, desc: "[E] Science"}
|
||||
- {id: 650, cat: Books/EBook, desc: "[E] Self-Help"}
|
||||
- {id: 660, cat: Books/EBook, desc: "[E] Sports/Fitness"}
|
||||
- {id: 665, cat: Books/EBook, desc: "[E] Suspense"}
|
||||
- {id: 670, cat: Books/EBook, desc: "[E] Travel"}
|
||||
- {id: 690, cat: Books/EBook, desc: "[E] Urban Fantasy/Paranormal"}
|
||||
- {id: 700, cat: Books/EBook, desc: "[E] Western"}
|
||||
- {id: 710, cat: Books/EBook, desc: "[E] Young Adult"}
|
||||
- {id: 720, cat: Books/EBook, desc: "[E] Young Children"}
|
||||
|
||||
modes:
|
||||
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: info_results
|
||||
type: info
|
||||
label: Search results
|
||||
default: "If you are getting the error <b>Login Failed, got redirected</b> then access the site with your browser and <b>mark as read</b> all PMs."
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Any account that has unread PMs older than 14 days or has not logged in for 30 days will be suspended</li><li>Any account that has not been logged into for 90 days is deemed inactive and will thus be purged</li><li>Any account that has not been logged into for 30 days is deemed inactive and will be put on suspension until User logs in again</li><li>User’s stats, points, and history are irrevocably lost when purged</li><li>Logging into the site is the ONLY way to keep an account active</li><li>SEEDING ONLY does NOT constitute site activity.</li></ol>"
|
||||
|
||||
login:
|
||||
# using cookie method because login page simplecaptcha generates Exception: Cannot access child value on Newtonsoft.Json.Linq.JValue.
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href*="logout.php?hash_please="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# title, descr, series, additional_info, author, author, uploader
|
||||
searchin: title
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 My Unsatisfied Torrents, 4 My Watch List, 5 My Uploads
|
||||
incldead: 1
|
||||
# 0 All Torrents, 1 Only Free Torrents
|
||||
only_free: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table.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
|
||||
categorydesc:
|
||||
selector: div[data-tid] > img
|
||||
attribute: alt
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
remove: span.has-text-red
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
files:
|
||||
selector: a[href^="filelist.php?id="]
|
||||
date_day:
|
||||
# auto adjusted by site account profile
|
||||
# Yesterday 6:00 AM
|
||||
selector: td:nth-last-child(2) > div:contains("day")
|
||||
optional: true
|
||||
filters:
|
||||
- name: fuzzytime
|
||||
date_year:
|
||||
# auto adjusted by site account profile
|
||||
# Aug 6 2021 7:25 PM
|
||||
selector: td:nth-last-child(2) > div:not(:contains("day"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM d yyyyh:mm tt"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-last-child(4) div:first-child
|
||||
grabs:
|
||||
selector: a[href^="snatches.php?id="]
|
||||
seeders:
|
||||
selector: a[title="Seeders"]
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: a[title="Leechers"]
|
||||
optional: true
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
tr.freeleech_color: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumseedtime:
|
||||
# 14 days (as seconds = 14 x 24 x 60 x 60)
|
||||
text: 1209600
|
||||
# U-232 V4.5
|
||||
56
Prowlarr/config/Definitions/acgrip.yml
Normal file
56
Prowlarr/config/Definitions/acgrip.yml
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
id: acgrip
|
||||
name: ACG.RIP
|
||||
description: "ACG.RIP is a CHINESE Public torrent tracker for the latest anime and Japanese related torrents"
|
||||
language: zh-CN
|
||||
type: public
|
||||
followredirect: true
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://acg.rip/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: TV
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
inputs:
|
||||
term: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: tbody tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
title:
|
||||
selector: td.title > span.title a
|
||||
details:
|
||||
selector: td.title > span.title a
|
||||
attribute: href
|
||||
download:
|
||||
selector: td.action a
|
||||
attribute: href
|
||||
size:
|
||||
selector: td.size
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
date:
|
||||
# unix
|
||||
selector: td.date time
|
||||
attribute: datetime
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
188
Prowlarr/config/Definitions/acidlounge.yml
Normal file
188
Prowlarr/config/Definitions/acidlounge.yml
Normal file
@ -0,0 +1,188 @@
|
||||
---
|
||||
id: acidlounge
|
||||
name: Acid-Lounge
|
||||
description: "Acid Lounge (A-L) is a Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.acid-lounge.org.uk/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 79, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 61, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 55, cat: PC/0day, desc: "Appz/0-Day"}
|
||||
- {id: 59, cat: PC/Mac, desc: "Appz/Mac"}
|
||||
- {id: 22, cat: PC, desc: "Appz/Misc"}
|
||||
- {id: 32, cat: PC, desc: "Appz/PC"}
|
||||
- {id: 48, cat: Audio/Audiobook, desc: "Audio/Books"}
|
||||
- {id: 84, cat: Other, desc: "Damaged Torrent"}
|
||||
- {id: 14, cat: Books/EBook, desc: "eBooks"}
|
||||
- {id: 82, cat: Books/Comics, desc: "eBooks/Comics"}
|
||||
- {id: 81, cat: Books/Mags, desc: "eBooks/Mags"}
|
||||
- {id: 60, cat: PC/Mac, desc: "Games/Mac"}
|
||||
- {id: 54, cat: Console/NDS, desc: "Games/NDS"}
|
||||
- {id: 4, cat: PC/Games, desc: "Games/PC"}
|
||||
- {id: 42, cat: Console/PS3, desc: "Games/PS3"}
|
||||
- {id: 56, cat: Console/Wii, desc: "Games/Wii"}
|
||||
- {id: 36, cat: Console/XBox 360, desc: "Games/xbox360"}
|
||||
- {id: 69, cat: Other, desc: "Halloween"}
|
||||
- {id: 80, cat: PC/Mobile-iOS, desc: "iPhone / iPad"}
|
||||
- {id: 46, cat: Other, desc: "Kids"}
|
||||
- {id: 63, cat: PC, desc: "Linux"}
|
||||
- {id: 49, cat: Other, desc: "Misc"}
|
||||
- {id: 77, cat: Movies/3D, desc: "Movies/3D BLURAY"}
|
||||
- {id: 73, cat: Movies/HD, desc: "Movies/Boxsets HD"}
|
||||
- {id: 74, cat: Movies/SD, desc: "Movies/Boxsets SD"}
|
||||
- {id: 25, cat: Movies/DVD, desc: "Movies/DVD-R"}
|
||||
- {id: 51, cat: Movies/HD, desc: "Movies/HD"}
|
||||
- {id: 26, cat: Movies, desc: "Movies/Retro"}
|
||||
- {id: 29, cat: Movies/SD, desc: "Movies/SD"}
|
||||
- {id: 52, cat: Movies/SD, desc: "Movies/WMV"}
|
||||
- {id: 85, cat: Movies/HD, desc: "Movies/X265"}
|
||||
- {id: 66, cat: Audio/Lossless, desc: "Music/Flac"}
|
||||
- {id: 35, cat: Audio/MP3, desc: "Music/MP3"}
|
||||
- {id: 31, cat: Audio/Video, desc: "Music/Videos"}
|
||||
- {id: 72, cat: Movies, desc: "Sci-Fi"}
|
||||
- {id: 83, cat: Movies, desc: "Tribute Packs"}
|
||||
- {id: 30, cat: TV, desc: "TV"}
|
||||
- {id: 50, cat: TV/HD, desc: "TV-HD/X264"}
|
||||
- {id: 71, cat: TV/SD, desc: "TV-SD/X264"}
|
||||
- {id: 75, cat: TV/HD, desc: "TV/Boxsets HD"}
|
||||
- {id: 76, cat: TV/SD, desc: "TV/Boxsets SD"}
|
||||
- {id: 37, cat: XXX, desc: "XXX"}
|
||||
- {id: 68, cat: XXX, desc: "XXX/0-Day"}
|
||||
- {id: 78, cat: XXX, desc: "XXX/3D"}
|
||||
- {id: 67, cat: XXX/ImageSet, desc: "XXX/Imagesets"}
|
||||
|
||||
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: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: dateAdded
|
||||
options:
|
||||
dateAdded: 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 nothing uploaded/ downloaded will be disabled after 4 weeks."
|
||||
|
||||
login:
|
||||
path: Main/?act=Login
|
||||
method: form
|
||||
form: form#login
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="Security code"]
|
||||
input: code
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.errorWrap
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href$="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# alive, aliveanddead, nobot, dead, free, nuked
|
||||
status: "{{ if .Config.freeleech }}free{{ else }}aliveanddead{{ end }}"
|
||||
# title, desc, both
|
||||
search_type: title
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table#browse_torrents_table > tbody > tr[id^="torrent_row_"]
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat[]="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat[]
|
||||
title:
|
||||
selector: a.torrent_name
|
||||
attribute: title
|
||||
details:
|
||||
selector: a.torrent_name
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?"]
|
||||
attribute: href
|
||||
description:
|
||||
selector: span.torrent_small_desc
|
||||
genre:
|
||||
selector: span.torrent_small_desc
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\[.+?\\] \\[(.+?)\\]"
|
||||
- name: replace
|
||||
args: [" ", "_"]
|
||||
files:
|
||||
selector: td.torrent_table_files
|
||||
date:
|
||||
selector: td.torrent_table_dateAdded
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td.torrent_table_size
|
||||
grabs:
|
||||
selector: td.torrent_table_snatched
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
seeders:
|
||||
selector: td.torrent_table_seeders
|
||||
leechers:
|
||||
selector: td.torrent_table_leechers
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
":root div#notice_ratioBoostingMadness": 0
|
||||
img[src$="images/freedownload.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 5 day (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000 # 3 days for torrents under 20GB
|
||||
# engine n/a
|
||||
92
Prowlarr/config/Definitions/acrossthetasman.yml
Normal file
92
Prowlarr/config/Definitions/acrossthetasman.yml
Normal file
@ -0,0 +1,92 @@
|
||||
---
|
||||
id: acrossthetasman
|
||||
name: Across The Tasman
|
||||
description: "ATT is a torrent site for Rugby and other sports played in Australia"
|
||||
language: en-AU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://acrossthetasman.com/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: TV/Sport
|
||||
|
||||
modes:
|
||||
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: date
|
||||
options:
|
||||
date: created
|
||||
filename: title
|
||||
size: size
|
||||
seeders: seeders
|
||||
- name: order
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
method: post
|
||||
path: login.php
|
||||
inputs:
|
||||
vb_login_username: "{{ .Config.username }}"
|
||||
vb_login_password: "{{ .Config.password }}"
|
||||
cookieuser: 1
|
||||
do: login
|
||||
error:
|
||||
- selector: div.restore:contains("invalid username or password")
|
||||
test:
|
||||
path: torrents.php
|
||||
selector: a[href*="login.php?do=logout"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.order }}"
|
||||
query: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: table[width='100%'][align='center']:not([class]) > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
date:
|
||||
# Feb 12, 2021
|
||||
selector: td:nth-child(1)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MMM dd, yyyy"
|
||||
title:
|
||||
selector: td:nth-child(4) > span:nth-child(1)
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["[\\s]+Uploaded.*", ""]
|
||||
download:
|
||||
selector: a[href*="attachment.php?attachmentid="]
|
||||
attribute: href
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
size:
|
||||
selector: td:nth-child(10)
|
||||
# engine n/a
|
||||
178
Prowlarr/config/Definitions/adbt.yml
Normal file
178
Prowlarr/config/Definitions/adbt.yml
Normal file
@ -0,0 +1,178 @@
|
||||
---
|
||||
id: adbt
|
||||
name: ADBT
|
||||
description: "ADBT (Anime Datenbank Tracker) is a GERMAN Private Tracker for Anime, Hentai and Cartoons"
|
||||
language: de-DE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://adbt.is-into-anime.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 34, cat: Console, desc: "3D Game"}
|
||||
- {id: 35, cat: Movies, desc: "3D Movie"}
|
||||
- {id: 36, cat: Audio, desc: "3D OST"}
|
||||
- {id: 37, cat: TV, desc: "3D Serie"}
|
||||
- {id: 38, cat: XXX, desc: "3D XXX"}
|
||||
- {id: 39, cat: Audio, desc: "ADBT Radio"}
|
||||
- {id: 40, cat: Audio/Video, desc: "AMV"}
|
||||
- {id: 21, cat: Console, desc: "Anime Games"}
|
||||
- {id: 41, cat: Movies, desc: "Anime Live"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Anime Movies"}
|
||||
- {id: 24, cat: Audio, desc: "Anime OST"}
|
||||
- {id: 42, cat: TV/Anime, desc: "Anime OVA"}
|
||||
- {id: 12, cat: TV/Anime, desc: "Anime Serien"}
|
||||
- {id: 23, cat: Other, desc: "Anime Sonstige"}
|
||||
- {id: 28, cat: Other, desc: "Bildergalerien"}
|
||||
- {id: 43, cat: Books, desc: "Comic"}
|
||||
- {id: 44, cat: Books, desc: "Doujinshi"}
|
||||
- {id: 53, cat: XXX, desc: "Hentai Doujinshi"}
|
||||
- {id: 27, cat: Console, desc: "Hentai Games"}
|
||||
- {id: 45, cat: Books, desc: "Hentai Light Novel"}
|
||||
- {id: 54, cat: Books, desc: "Hentai Manga"}
|
||||
- {id: 25, cat: Movies, desc: "Hentai Movies"}
|
||||
- {id: 4, cat: TV, desc: "Hentai Serien"}
|
||||
- {id: 46, cat: Other, desc: "Hentai Visual Novel"}
|
||||
- {id: 47, cat: Audio, desc: "J-Music"}
|
||||
- {id: 48, cat: Books, desc: "Light Novel"}
|
||||
- {id: 33, cat: Books, desc: "Manga"}
|
||||
- {id: 49, cat: Audio, desc: "Music"}
|
||||
- {id: 9, cat: Other, desc: "Sonstiges"}
|
||||
- {id: 50, cat: Other, desc: "Visual Novel"}
|
||||
- {id: 51, cat: Console, desc: "Zeichentrick Game"}
|
||||
- {id: 31, cat: Movies, desc: "Zeichentrick Movie"}
|
||||
- {id: 52, cat: Audio, desc: "Zeichentrick OST"}
|
||||
- {id: 30, cat: TV, desc: "Zeichentrick Serie"}
|
||||
- {id: 32, cat: XXX, desc: "Zeichentrick XXX"}
|
||||
|
||||
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: onlyupload
|
||||
type: checkbox
|
||||
label: Search OnlyUpload only
|
||||
default: false
|
||||
- name: info_free
|
||||
type: info
|
||||
label: About OnlyUpload at ADBT
|
||||
default: "<ul><li>OnlyUpload are torrents where download is not counted but upload is. Good for building your Ratio up. (On the Jackett dashboard search results these are tagged as Freeleech).</li></ul>"
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
name: 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 pro Seite:</b> (Torrents per Page) setting to <b>100</b> on your Profile. The default is <i>15</i>.
|
||||
- name: info_layout
|
||||
type: info
|
||||
label: Torrent Page layout
|
||||
default: Only the <b>Platzsparendes Layout mit PopUp für zusätzliche Informationen (Space saving layout using pop-ups for detailed information)</b> on your Profile is supported by this indexer. <i>Tabellarisches Layout, sehr breite Darstellung (Schedular layout, width display)</i> will return no results.
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table.tableinborder:contains("Login fehlgeschlagen!") > tbody > tr > td.tablea
|
||||
test:
|
||||
path: index.php?
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
showsearch: 1
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 all, 2 UpOn, 3 dead
|
||||
incldead: "{{ if .Config.onlyupload }}2{{ else }}1{{ end }}"
|
||||
# 0 title, 1 title + descr, 2 descr
|
||||
suchwo: 0
|
||||
# search by type: - all, etc
|
||||
tt: "-"
|
||||
# search in series: - none, etc
|
||||
se: "-"
|
||||
# 0 all, etc
|
||||
team: 0
|
||||
# 0 all, etc
|
||||
subcat: 0
|
||||
orderby: "{{ .Config.sort }}"
|
||||
sort: "{{ .Config.type }}"
|
||||
# site does not support imdbid searching or display imdb links in results.
|
||||
|
||||
rows:
|
||||
selector: table.tableinborder:has(colgroup) > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download/"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td.tablea > table > tbody > tr:nth-child(2) > td > b
|
||||
files:
|
||||
selector: td.tablea > table > tbody > tr:nth-child(2) > td > b:nth-child(2)
|
||||
seeders:
|
||||
selector: td.tablea > table > tbody > tr:nth-child(2) > td:nth-child(2) > b > font
|
||||
leechers:
|
||||
selector: td.tablea > table > tbody > tr:nth-child(2) > td:nth-child(2) > a + b > font
|
||||
grabs:
|
||||
selector: td.tablea > table > tbody > tr:nth-child(2) > td:nth-child(3) > b
|
||||
date:
|
||||
selector: td.tablea > table > tbody > tr:nth-child(2) > td:nth-child(5)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\u00a0", " "]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "dd.MM.yyyy HH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/upon.gif"]: 0 # only upload is counted
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# NetVision
|
||||
186
Prowlarr/config/Definitions/aftershock.yml
Normal file
186
Prowlarr/config/Definitions/aftershock.yml
Normal file
@ -0,0 +1,186 @@
|
||||
---
|
||||
id: aftershock
|
||||
name: Aftershock
|
||||
description: "Aftershock is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: iso-8859-1
|
||||
links:
|
||||
- https://aftershock-tracker.net/
|
||||
legacylinks:
|
||||
- https://aftershock-tracker.eu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 7, cat: Movies/SD, desc: "XvidEng"}
|
||||
- {id: 2, cat: Movies, desc: "AfterShock Release"}
|
||||
- {id: 190, cat: Movies/DVD, desc: "DVD-9Eng"}
|
||||
- {id: 191, cat: Movies/DVD, desc: "DVD-9Hun"}
|
||||
- {id: 1, cat: Movies/DVD, desc: "DVDEng"}
|
||||
- {id: 4, cat: Movies/DVD, desc: "DVDHun"}
|
||||
- {id: 23, cat: Books/EBook, desc: "E-Book"}
|
||||
- {id: 3, cat: Movies, desc: "Film Pack"}
|
||||
- {id: 185, cat: Audio/Lossless, desc: "FLACeng"}
|
||||
- {id: 188, cat: Audio/Lossless, desc: "FLAChu"}
|
||||
- {id: 173, cat: Audio/Audiobook, desc: "Hangoskönyv"}
|
||||
- {id: 34, cat: Movies/HD, desc: "HDEng"}
|
||||
- {id: 33, cat: Movies/HD, desc: "HDHun"}
|
||||
- {id: 182, cat: XXX/x264, desc: "HDXXX"}
|
||||
- {id: 12, cat: PC/Games, desc: "JátékIso"}
|
||||
- {id: 130, cat: Console, desc: "JátékKonzol"}
|
||||
- {id: 38, cat: Console/PSP, desc: "JátékPS2"}
|
||||
- {id: 44, cat: Console, desc: "Jatekrip"}
|
||||
- {id: 131, cat: Console/XBox, desc: "JátékX-box"}
|
||||
- {id: 140, cat: Other, desc: "Képek"}
|
||||
- {id: 141, cat: Other, desc: "Klipek"}
|
||||
- {id: 154, cat: Other, desc: "MeseEng"}
|
||||
- {id: 155, cat: Other, desc: "MeseHun"}
|
||||
- {id: 176, cat: Other, desc: "Mikro HDEng"}
|
||||
- {id: 174, cat: Other, desc: "Mikro HDHun"}
|
||||
- {id: 37, cat: PC/Mobile-Other, desc: "MobilPDA"}
|
||||
- {id: 35, cat: PC, desc: "ProgramEgyéb"}
|
||||
- {id: 170, cat: PC/ISO, desc: "ProgramIso"}
|
||||
- {id: 24, cat: TV, desc: "Sorozat Eng"}
|
||||
- {id: 25, cat: TV, desc: "Sorozat Hun"}
|
||||
- {id: 167, cat: Movies/SD, desc: "Xvid CamEng"}
|
||||
- {id: 166, cat: Movies/SD, desc: "Xvid CamHun"}
|
||||
- {id: 9, cat: Movies/SD, desc: "XvidHun"}
|
||||
- {id: 169, cat: XXX/ImageSet, desc: "XXX Képek"}
|
||||
- {id: 39, cat: XXX, desc: "XXXFilm"}
|
||||
- {id: 28, cat: Audio, desc: "ZeneEng"}
|
||||
- {id: 29, cat: Audio, desc: "ZeneHun"}
|
||||
|
||||
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: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 0
|
||||
options:
|
||||
0: created
|
||||
6: seeders
|
||||
4: size
|
||||
1: 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: "You will be immediately banned if you have not logged in for more than 6 weeks."
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.text:contains("Hiba")
|
||||
message:
|
||||
selector: td.text
|
||||
test:
|
||||
path: /
|
||||
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 freeleech, 4 2x, 5 server
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table tbody#torrent_background tr:has(a.index):has(span.icon_check_alt)
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: a.index
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: name
|
||||
- name: urldecode
|
||||
category:
|
||||
selector: td a[href^="/browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a.index
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: urldecode
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src=([^\s]+)
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: span.box
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: td:nth-last-child(6)
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
seeders:
|
||||
selector: td:nth-last-child(4)
|
||||
leechers:
|
||||
selector: td:nth-last-child(3)
|
||||
grabs:
|
||||
selector: td:nth-last-child(2)
|
||||
date:
|
||||
selector: td font
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["\\s", " "]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
span.icon_gift: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
span.icon_upload: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.31
|
||||
# XBT v3
|
||||
202
Prowlarr/config/Definitions/afun.yml
Normal file
202
Prowlarr/config/Definitions/afun.yml
Normal file
@ -0,0 +1,202 @@
|
||||
---
|
||||
id: afun
|
||||
name: AFUN
|
||||
description: "AFUN is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.ptlover.cc/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports/赛事"}
|
||||
- {id: 414, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 408, cat: Audio, desc: "HQ Audio/HQ音频"}
|
||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
||||
- {id: 407, cat: TV/Sport, desc: "TV Sport/体育"}
|
||||
- {id: 406, cat: Audio/Video, desc: "Music Videos/MV"}
|
||||
- {id: 403, cat: TV, desc: "TV Talk Shows/脱口秀"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Anime/动画"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
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
|
||||
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: "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>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:contains("失败")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
# searching in description causes HTTP 500 so we will not support doubanid searching
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0: include dead, 1: alive, 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: description, 3: uploader, 4: imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0: AND, 2: exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# Support in NexusPHP so bots don't pollute trending searches:
|
||||
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: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: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:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td: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
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# NexusPHP v1.9.0 2025-02-06
|
||||
209
Prowlarr/config/Definitions/agsvpt.yml
Normal file
209
Prowlarr/config/Definitions/agsvpt.yml
Normal file
@ -0,0 +1,209 @@
|
||||
---
|
||||
id: agsvpt
|
||||
name: AGSVPT
|
||||
description: "AGSVPT (Arctic Global Seed Vault) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://www.agsvpt.com/
|
||||
- https://abroad.agsvpt.com/
|
||||
|
||||
caps:
|
||||
# dont forget to update the path categories in the search block
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movie(电影)", default: true}
|
||||
- {id: 402, cat: TV, desc: "TV Series(电视剧)", default: true}
|
||||
- {id: 403, cat: TV, desc: "TV Shows(综艺)", default: true}
|
||||
- {id: 405, cat: TV/Anime, desc: "Anime(动漫)", default: true}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries(纪录片)", default: true}
|
||||
- {id: 419, cat: TV, desc: "Playlet(短剧)", default: true}
|
||||
- {id: 411, cat: Audio, desc: "Music(音乐))", default: true}
|
||||
- {id: 406, cat: Audio/Video, desc: "MV(演唱", default: true}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports(体育)", default: true}
|
||||
- {id: 408, cat: Audio/Audiobook, desc: "Audio(音频)", default: true}
|
||||
- {id: 413, cat: PC/Games, desc: "Game(游戏)", default: false}
|
||||
- {id: 416, cat: Books/Comics, desc: "Comic(漫画)", default: false}
|
||||
- {id: 412, cat: PC/0day, desc: "Software(软件)", default: false}
|
||||
- {id: 418, cat: Other, desc: "Picture(图片)", default: false}
|
||||
- {id: 415, cat: Books/EBook, desc: "E-Book(电子书/有声书)", default: false}
|
||||
- {id: 417, cat: Other, desc: "Education(学习资料)", default: false}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
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 AGSVPT Web Site. Otherwise just leave it empty."
|
||||
- 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>每页种子数:每页显示</b><i>(Torrents per page:)</i> setting to <b>100</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules:<ol><li>Elite User and above will not have their account deleted after parking (in the Control Panel)</li><li>Users who do not log in for 400 consecutive days will be disabled.</li><li>Users with a parked account will be disabled if they do not log in for 150 consecutive days</li><li>Users who have no traffic (i.e., uploading/downloading data is 0) within 7 days of new registration will be disabled</li><li>Users with no traffic (i.e. both upload/download data is 0) who do not log in for 30 consecutive days will be disabled.</li></ol>"
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
message:
|
||||
selector: td.text
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
categories: [401, 402, 403, 405, 404, 419, 411, 406, 407, 408]
|
||||
- path: special.php
|
||||
categories: [413, 416, 412, 418, 415, 417]
|
||||
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
|
||||
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: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: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
description_verified:
|
||||
case:
|
||||
span[title="通过"]: "Verified:"
|
||||
span[title="未审"]: "Unverified:"
|
||||
span[title="拒绝"]: "Banned:"
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Result.description_verified }} "
|
||||
# NexusPHP v1.8.12 2024-04-05
|
||||
132
Prowlarr/config/Definitions/aidoruonline.yml
Normal file
132
Prowlarr/config/Definitions/aidoruonline.yml
Normal file
@ -0,0 +1,132 @@
|
||||
---
|
||||
id: aidoruonline
|
||||
name: Aidoru!Online
|
||||
description: "Aidoru!Online is a JAPANESE Private Torrent Tracker for Female Japanese Idol related files"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://aidoru-online.me/
|
||||
legacylinks:
|
||||
- https://aidoru-online.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "BD/DVDISO"}
|
||||
- {id: 2, cat: Movies, desc: "BD/DVD-RIP"}
|
||||
- {id: 3, cat: TV, desc: "TV"}
|
||||
- {id: 4, cat: TV, desc: "Perf"}
|
||||
- {id: 5, cat: TV, desc: "PV"}
|
||||
- {id: 6, cat: TV, desc: "Webstream"}
|
||||
- {id: 7, cat: Other, desc: "Image"}
|
||||
- {id: 8, cat: Audio, desc: "Audio"}
|
||||
- {id: 9, cat: Audio, desc: "Album"}
|
||||
- {id: 10, cat: Audio, desc: "Single"}
|
||||
- {id: 11, cat: Audio, desc: "Radio"}
|
||||
- {id: 12, cat: Other, desc: "Misc"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-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: id
|
||||
options:
|
||||
id: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
# using cookie method because login page returns 0 bytes with a cookie flog=6
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: /
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://aidoru-online.me/get_ttable.php?pcat=Show+All&scat=3%2C4%2C5%2C6&subbed=&fl=&resd=&p=0&searchstr=peace&deadlive=0&sortcol=id&sortorder=desc&startdt=&enddt=
|
||||
- path: get_ttable.php
|
||||
inputs:
|
||||
pcat: "Show+All"
|
||||
scat: "{{ join .Categories \",\" }}"
|
||||
subbed: ""
|
||||
fl: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
resd: ""
|
||||
p: 0
|
||||
searchstr: "{{ .Keywords }}"
|
||||
deadlive: 1
|
||||
sortcol: "{{ .Config.sort }}"
|
||||
sortorder: "{{ .Config.type }}"
|
||||
startdt: ""
|
||||
enddt: ""
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
|
||||
rows:
|
||||
selector: table.ttable_headinner tr.t-row:has(a[href^="download.php?id="])
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: a.category-link
|
||||
filters:
|
||||
- name: split
|
||||
args: [" ", 1]
|
||||
title:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td.ttable_size
|
||||
seeders:
|
||||
selector: td:nth-last-child(4)
|
||||
leechers:
|
||||
selector: td:nth-last-child(3)
|
||||
grabs:
|
||||
selector: td:nth-last-child(2)
|
||||
date:
|
||||
selector: td:last-child
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "yyMMdd HH:mm:ss"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/freeleech.png"]: 0 # dl not counted
|
||||
img[src="images/freeleech2.png"]: 0 # dl not counted & upload 2x
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src="images/freeleech2.png"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.8
|
||||
# TorrentTrader v2-svn
|
||||
192
Prowlarr/config/Definitions/aither-api.yml
Normal file
192
Prowlarr/config/Definitions/aither-api.yml
Normal file
@ -0,0 +1,192 @@
|
||||
---
|
||||
id: aither-api
|
||||
name: Aither (API)
|
||||
description: "Aither is a Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://aither.cc/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movie"}
|
||||
- {id: 9, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-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://aither.cc/\" target=\"_blank\">Aither</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: "You must log in to the Aither web site with your browser once every90 days to prevent your account from getting disabled."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
inputs: {} # TODO: remove in v10
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
- selector: :root:contains("Account is Banned")
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
||||
- path: api/torrents/filter
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
selector: name
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
files:
|
||||
selector: num_file
|
||||
title:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
_featured:
|
||||
selector: featured
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
downloadvolumefactor_freeleech:
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
downloadvolumefactor:
|
||||
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
|
||||
uploadvolumefactor_double_upload:
|
||||
# api returns False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# global MR is 0.4 but torrents must be seeded for 5 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 9.0.1
|
||||
251
Prowlarr/config/Definitions/amigosshare.yml
Normal file
251
Prowlarr/config/Definitions/amigosshare.yml
Normal file
@ -0,0 +1,251 @@
|
||||
---
|
||||
id: amigosshare
|
||||
name: Amigos Share Club
|
||||
description: "Amigos Share Club (ASC) is a BRAZILIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: pt-BR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://cliente.amigos-share.club/
|
||||
legacylinks:
|
||||
- http://amigos-share.club/
|
||||
- https://amigos-share.club/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 75, cat: XXX, desc: "Adultos: Hentai"}
|
||||
- {id: 107, cat: XXX, desc: "Adultos: Gay"}
|
||||
- {id: 108, cat: XXX, desc: "Adultos: Transex/Female"}
|
||||
- {id: 74, cat: XXX, desc: "Adultos: XXX"}
|
||||
- {id: 146, cat: XXX, desc: "Adultos: OnlyFans"}
|
||||
- {id: 69, cat: TV/Anime, desc: "Anime: Anime"}
|
||||
- {id: 116, cat: TV/Anime, desc: "Anime: Filmes"}
|
||||
- {id: 118, cat: TV/Anime, desc: "Anime: Séries"}
|
||||
- {id: 21, cat: PC/0day, desc: "Aplicativos: Windows"}
|
||||
- {id: 28, cat: PC/Mobile-iOS, desc: "Aplicativos: iPod"}
|
||||
- {id: 27, cat: PC/Mobile-iOS, desc: "Aplicativos: iPad"}
|
||||
- {id: 26, cat: PC/Mobile-iOS, desc: "Aplicativos: iPhone"}
|
||||
- {id: 25, cat: PC, desc: "Aplicativos: Linux"}
|
||||
- {id: 23, cat: PC/Mobile-Android, desc: "Aplicativos: Android"}
|
||||
- {id: 22, cat: PC/Mac, desc: "Aplicativos: Mac"}
|
||||
- {id: 73, cat: Other, desc: "Cursos: Video Aula"}
|
||||
- {id: 72, cat: Other, desc: "Cursos: Apostila"}
|
||||
- {id: 71, cat: Other, desc: "Cursos: Cursos"}
|
||||
- {id: 67, cat: Books/EBook, desc: "Ebook: Livros"}
|
||||
- {id: 112, cat: Books/Comics, desc: "Ebook: HQs"}
|
||||
- {id: 147, cat: Books/Comics, desc: "Ebook: Mangas"}
|
||||
- {id: 121, cat: Audio/Audiobook, desc: "Ebook: Audio-book"}
|
||||
- {id: 68, cat: Books/Mags, desc: "Ebook: Revistas"}
|
||||
- {id: 119, cat: Movies, desc: "Filmes:"}
|
||||
- {id: 70, cat: XXX, desc: "Fotos: Revistas, Livros e Fotos"}
|
||||
- {id: 51, cat: Console/PS3, desc: "Jogos: Ps3"}
|
||||
- {id: 54, cat: Console/XBox 360, desc: "Jogos: Xbox360"}
|
||||
- {id: 109, cat: Console, desc: "Jogos: Emulação"}
|
||||
- {id: 110, cat: Console, desc: "Jogos: Nintendo Switch"}
|
||||
- {id: 52, cat: Console, desc: "Jogos: Dreamcast"}
|
||||
- {id: 50, cat: Console, desc: "Jogos: Ps2"}
|
||||
- {id: 49, cat: Console, desc: "Jogos: Ps1"}
|
||||
- {id: 48, cat: PC/Mac, desc: "Jogos: Mac"}
|
||||
- {id: 55, cat: Console/Wii, desc: "Jogos: Wii"}
|
||||
- {id: 82, cat: Console/PSP, desc: "Jogos: PSP"}
|
||||
- {id: 47, cat: PC/Games, desc: "Jogos: Pc"}
|
||||
- {id: 61, cat: Console, desc: "Jogos: Emuladores e Roms"}
|
||||
- {id: 58, cat: Console/NDS, desc: "Jogos: Nintendo DS"}
|
||||
- {id: 57, cat: Console, desc: "Jogos: Android"}
|
||||
- {id: 56, cat: Console/XBox, desc: "Jogos: Xbox"}
|
||||
- {id: 78, cat: Console/XBox One, desc: "Jogos: Xbox One"}
|
||||
- {id: 79, cat: Console/PS4, desc: "Jogos: Ps4"}
|
||||
- {id: 129, cat: Other, desc: "Outros: Fonts"}
|
||||
- {id: 128, cat: Other, desc: "Outros: Scripts"}
|
||||
- {id: 127, cat: Other, desc: "Outros: Add-ons"}
|
||||
- {id: 130, cat: Other, desc: "Outros: MOD"}
|
||||
- {id: 125, cat: Other, desc: "Outros: Pack de Imagens"}
|
||||
- {id: 124, cat: Other, desc: "Outros: Vetores"}
|
||||
- {id: 122, cat: Other, desc: "Outros: Plug-ins"}
|
||||
- {id: 126, cat: Other, desc: "Outros: Extensões"}
|
||||
- {id: 120, cat: TV, desc: "Series:"}
|
||||
- {id: 64, cat: TV, desc: "Tv: Fechada"}
|
||||
- {id: 62, cat: TV/Sport, desc: "Tv: Esportes"}
|
||||
- {id: 63, cat: TV, desc: "Tv: Aberta"}
|
||||
|
||||
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: info_results
|
||||
type: info
|
||||
label: "Search results"
|
||||
default: "Set <b>Exibição De Torrents</b> to <b>Lista</b> in your <b>Minhas Configurações</b>.<br />Using <b>Capas</b> is not supported and will return 0 results."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: id
|
||||
options:
|
||||
id: 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: "Inactive accounts, that is, without access for 90 days (3 months), will be automatically deleted by the system; with no possibility of reactivation."
|
||||
|
||||
login:
|
||||
path: account-login.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: yes
|
||||
error:
|
||||
- selector: div.alert-error
|
||||
test:
|
||||
path: torrents-search.php
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://amigos-share.club/torrents-search.php?search=&sort=id&order=desc&page=1
|
||||
- path: torrents-search.php
|
||||
# site displays just 20 results, no profile options found to change this, so we attempt to fetch 5 pages
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
page: 1
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
page: 2
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
page: 3
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
page: 4
|
||||
inputs:
|
||||
# note: site does not support multi cat search.
|
||||
# replace spaces with wildcard (percent symbol) as site's default search is exact string.
|
||||
search: "{{ re_replace .Keywords \"[\\s]+\" \"%\" }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# torrents-search.php does not support imdbid search or return imdb links.
|
||||
keywordsfilters:
|
||||
# drop the year from searches since site titles do not include year
|
||||
- name: re_replace
|
||||
args: ["(19|20[0-9]{2})", ""]
|
||||
|
||||
rows:
|
||||
selector: "div#fancy-list-group ul.list-group li.list-group-item{{ if .Config.freeleech }}:has(span.badge-success:contains(\"FREE\")){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category_default:
|
||||
# tv and movie just have an image :-b
|
||||
selector: div.list-group-item-addon img
|
||||
attribute: src
|
||||
optional: true
|
||||
case:
|
||||
"[src$=\"/filmes2.fw.png\"]": 119
|
||||
"[src$=\"/seriados.fw.png\"]": 120
|
||||
category:
|
||||
# while the rest have a href with a cat number \o/
|
||||
selector: a[href*="cat="]
|
||||
attribute: href
|
||||
optional: true
|
||||
default: "{{ .Result.category_default }}"
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
_quality:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-primary:contains("1080p"), div.list-group-item-content p.m-0 span.badge-primary:contains("720p"), div.list-group-item-content p.m-0 span.badge-primary:contains("4k")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["4k", "2160p"]
|
||||
_year:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#246AB6;"]
|
||||
optional: true
|
||||
_type:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-info:contains("Rip"), div.list-group-item-content p.m-0 span.badge-info:contains("WEB-"), div.list-group-item-content p.m-0 span.badge-info:contains("TV"), div.list-group-item-content p.m-0 span.badge-info:contains("Blu-Ray"), div.list-group-item-content p.m-0 span.badge-info:contains("BD50"), div.list-group-item-content p.m-0 span.badge-info:contains("MUX"), div.list-group-item-content p.m-0 span.badge-info:contains("DVD"), div.list-group-item-content p.m-0 span.badge-info:contains("320"), div.list-group-item-content p.m-0 span.badge-info:contains("CAM"), div.list-group-item-content p.m-0 span.badge-info:contains("rip")
|
||||
optional: true
|
||||
_language:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#b6249d;"]
|
||||
optional: true
|
||||
title:
|
||||
selector: a[href*="torrents-details.php?id="], a[href*="details-misc.php?id="]
|
||||
filters:
|
||||
# strip out the non-english title [to the left of the brackets] and drop the brackets enclosing the english title
|
||||
- name: re_replace
|
||||
args: ["^(.*?)[\\(](.*?)[\\)](.*?)$", "$2$3"]
|
||||
# add the year to the title
|
||||
- name: append
|
||||
args: "{{ if .Result._year }} {{ .Result._year }}{{ else }}{{ end }}"
|
||||
# add the quality to the title
|
||||
- name: append
|
||||
args: "{{ if .Result._quality }} {{ .Result._quality }}{{ else }}{{ end }}"
|
||||
# add the type to the title
|
||||
- name: append
|
||||
args: "{{ if .Result._type }} {{ .Result._type }}{{ else }}{{ end }}"
|
||||
# add audio to the title
|
||||
- name: append
|
||||
args: "{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}"
|
||||
- name: re_replace
|
||||
args: ["(Dual|[Nn]acional|[Dd]ublado)", "Brazilian $1"]
|
||||
details:
|
||||
selector: a[href*="torrents-details.php?id="], a[href*="details-misc.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="download.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: p:contains("Lançado:")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
default: now
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Lançado: (.+?)$"
|
||||
- name: re_replace
|
||||
args: [" (\\d:)", " 0$1"]
|
||||
- name: dateparse
|
||||
args: "dd/MM/yy HH:mm:ss"
|
||||
size:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-info
|
||||
seeders:
|
||||
selector: div.list-group-item-controls a:nth-child(1)
|
||||
leechers:
|
||||
selector: div.list-group-item-controls a:nth-child(2)
|
||||
grabs:
|
||||
selector: div.list-group-item-controls a:nth-child(3)
|
||||
genre:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#1c38c2;"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"span.badge-success:contains(\"FREE\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# engine n/a
|
||||
300
Prowlarr/config/Definitions/anilibria.yml
Normal file
300
Prowlarr/config/Definitions/anilibria.yml
Normal file
@ -0,0 +1,300 @@
|
||||
---
|
||||
id: anilibria
|
||||
name: AniLibria
|
||||
description: "AniLibria is a Public torrent tracker for anime, voiced in Russian by AniLibria team"
|
||||
language: ru-RU
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.anilibria.tv/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
Anime: TV/Anime
|
||||
Movies: Movies/Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: stripcyrillic
|
||||
type: checkbox
|
||||
label: Strip Cyrillic Letters
|
||||
default: false
|
||||
- name: sonarr_compatibility
|
||||
type: checkbox
|
||||
label: Improve Sonarr compatibility by trying to better parse Season information in release titles.
|
||||
default: false
|
||||
- name: addrussiantotitle
|
||||
type: checkbox
|
||||
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
|
||||
default: false
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/anilibria/docs/blob/master/api_v3.md
|
||||
- path: "https://api.anilibria.tv/v3/title/{{ if .Keywords }}search{{ else }}updates{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
filter: "names,posters.small.url,code,torrents.list,season.year,description"
|
||||
limit: 100
|
||||
|
||||
keywordsfilters:
|
||||
# strip season and/or ep
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:[SE]\\d{1,4}){1,2}\\b\\s?", ""]
|
||||
|
||||
rows:
|
||||
selector: list
|
||||
attribute: torrents.list
|
||||
multiple: true
|
||||
|
||||
fields:
|
||||
_episodes:
|
||||
selector: episodes.string
|
||||
optional: true
|
||||
category:
|
||||
text: "{{ if eq .Result._episodes \"Фильм\" }}Movies{{ else }}Anime{{ end }}"
|
||||
title_ru:
|
||||
selector: ..names.ru
|
||||
title_en:
|
||||
selector: ..names.en
|
||||
title_en_parsed:
|
||||
selector: ..names.en
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*1\\b", "Part One"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*2\\b", "Part Two"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*3\\b", "Part Three"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*4\\b", "Part Four"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*5\\b", "Part Five"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*6\\b", "Part Six"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*7\\b", "Part Seven"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*8\\b", "Part Eight"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*9\\b", "Part Nine"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bseason\\s*(\\d+)\\b", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d+)(st|nd|rd|th)\\s*season[\\s\\.]*", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d+)\\s*season\\b[\\s\\.]*", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bseason\\s*([IVXLCDM]+)\\b", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bI$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bII$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bIII$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bIV$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bV$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bVI$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bVII$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bVIII$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bIX$", ""]
|
||||
- name: re_replace
|
||||
args: ["\\bX$", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(\\d+)(?:st|nd|rd|th)?\\b", ""]
|
||||
- name: trim
|
||||
title_alternative:
|
||||
selector: ..names.alternative
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(\\([\\p{IsCyrillic}\\W]+\\))|(^[\\p{IsCyrillic}\\W\\d]+\\/ )|([\\p{IsCyrillic} \\-]+,+)|([\\p{IsCyrillic}]+)", "{{ if .Config.stripcyrillic }}{{ else }}$1$2$3$4{{ end }}"]
|
||||
- name: re_replace
|
||||
args: ["[\\[\\(\\{<«][\\s\\W]*[\\]\\)\\}>»]", ""]
|
||||
- name: re_replace
|
||||
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
|
||||
- name: re_replace
|
||||
args: ["^OVA$", ""]
|
||||
_season_number_en:
|
||||
selector: ..names.en
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*\\d+\\s*$", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\bseason\\s*(\\d+)\\b\\s*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\b(\\d+)(st|nd|rd|th)\\s*season\\b.*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\b(\\d+)\\s*season\\b.*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\bseason\\s*([IVXLCDM]+)\\b\\s*$)", "$1"]
|
||||
- name: re_replace
|
||||
args: ["(^.*X$)", "S10"]
|
||||
- name: re_replace
|
||||
args: ["(^.*IX$)", "S9"]
|
||||
- name: re_replace
|
||||
args: ["(^.*VIII$)", "S8"]
|
||||
- name: re_replace
|
||||
args: ["(^.*VII$)", "S7"]
|
||||
- name: re_replace
|
||||
args: ["(^.*VI$)", "S6"]
|
||||
- name: re_replace
|
||||
args: ["(^.*V$)", "S5"]
|
||||
- name: re_replace
|
||||
args: ["(^.*IV$)", "S4"]
|
||||
- name: re_replace
|
||||
args: ["(^.*III$)", "S3"]
|
||||
- name: re_replace
|
||||
args: ["(^.*II$)", "S2"]
|
||||
- name: re_replace
|
||||
args: ["(^.*I$)", "S1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\b(\\d+)(?:st|nd|rd|th)?\\b\\s*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)^(?!S\\d+).*", ""]
|
||||
_season_number_alternative:
|
||||
selector: ..names.alternative
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bPart\\s*\\d+\\s*$", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\bseason\\s*(\\d+)\\b\\s*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\b(\\d+)(st|nd|rd|th)\\s*season\\b\\s*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\b(\\d+)\\s*season\\b\\s*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\bseason\\s*([IVXLCDM]+)\\b\\s*$)", "$1"]
|
||||
- name: re_replace
|
||||
args: ["(^.*X$)", "S10"]
|
||||
- name: re_replace
|
||||
args: ["(^.*IX$)", "S9"]
|
||||
- name: re_replace
|
||||
args: ["(^.*VIII$)", "S8"]
|
||||
- name: re_replace
|
||||
args: ["(^.*VII$)", "S7"]
|
||||
- name: re_replace
|
||||
args: ["(^.*VI$)", "S6"]
|
||||
- name: re_replace
|
||||
args: ["(^.*V$)", "S5"]
|
||||
- name: re_replace
|
||||
args: ["(^.*IV$)", "S4"]
|
||||
- name: re_replace
|
||||
args: ["(^.*III$)", "S3"]
|
||||
- name: re_replace
|
||||
args: ["(^.*II$)", "S2"]
|
||||
- name: re_replace
|
||||
args: ["(^.*I$)", "S1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(^.*\\b(\\d+)(?:st|nd|rd|th)?\\b\\s*$)", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)^(?!S\\d+).*", ""]
|
||||
_season_number:
|
||||
text: "{{ .Result._season_number_en }}"
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ .Result._season_number_alternative }}"
|
||||
- name: re_replace
|
||||
args: ["^S1S1$", "S1"]
|
||||
- name: re_replace
|
||||
args: ["^S1(.+)$", "$1"]
|
||||
- name: re_replace
|
||||
args: ["^(S\\d+).*$", "$1"]
|
||||
- name: re_replace
|
||||
args: ["^$", "S1"]
|
||||
year:
|
||||
selector: ..season.year
|
||||
_quality:
|
||||
selector: quality.string
|
||||
_quality_type:
|
||||
selector: quality.type
|
||||
_quality_resolution:
|
||||
selector: quality.resolution
|
||||
_quality_encoder:
|
||||
selector: quality.encoder
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)^h", "x"]
|
||||
title_parsed:
|
||||
text: "{{ if .Config.stripcyrillic }}{{ else }}{{ .Result.title_ru }} / {{ end }}{{ .Result.title_en_parsed }} {{ .Result._season_number}}E{{ .Result._episodes }} [{{ .Result._quality_type }} {{ .Result._quality_resolution }} {{ .Result._quality_encoder }}]"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+EФильм\\b", "({{ .Result.year }}) MOVIE"]
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+EOVA\\b", "({{ .Result.year }}) OVA"]
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+EONA\\b", "({{ .Result.year }}) ONA"]
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+EMovie\\b", "({{ .Result.year }}) MOVIE"]
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+EП/м фильм\\b", "({{ .Result.year }}) MOVIE"]
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+EРекап\\b", "({{ .Result.year }}) RECAP"]
|
||||
- name: re_replace
|
||||
args: ["\\bS\\d+ETV-Special\\b", "({{ .Result.year }}) SPECIAL"]
|
||||
- name: append
|
||||
args: "{{ if .Config.addrussiantotitle }} - RUS{{ else }}{{ end }}"
|
||||
title_original:
|
||||
text: "{{ if .Config.stripcyrillic }}{{ else }}{{ .Result.title_ru }} / {{ end }}{{ .Result.title_en }}{{ if .Result.title_alternative }} / AKA {{ .Result.title_alternative }}{{ else }}{{ end }} ({{ .Result.year }}) [{{ .Result._quality }}]{{ if .Result._episodes }} - E{{ .Result._episodes }}{{ else }}{{ end }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: [" - \\bEФильм\\b", " - MOVIE"]
|
||||
- name: re_replace
|
||||
args: [" - \\bEMovie\\b", " - MOVIE"]
|
||||
- name: re_replace
|
||||
args: [" - \\bEП/м фильм\\b", " - MOVIE"]
|
||||
- name: re_replace
|
||||
args: [" - \\bEOVA\\b", " - OVA"]
|
||||
- name: re_replace
|
||||
args: [" - \\bEONA\\b", " - ONA"]
|
||||
- name: append
|
||||
args: "{{ if .Config.addrussiantotitle }} - RUS{{ else }}{{ end }}"
|
||||
title:
|
||||
text: "{{ if .Config.sonarr_compatibility }}{{ .Result.title_parsed }}{{ else }}{{ .Result.title_original }}{{ end }}"
|
||||
_code:
|
||||
selector: ..code
|
||||
details:
|
||||
text: "{{ .Config.sitelink }}release/{{ .Result._code }}.html"
|
||||
download_url:
|
||||
selector: url
|
||||
download:
|
||||
text: "{{ .Config.sitelink }}{{ .Result.download_url }}"
|
||||
magnet:
|
||||
selector: magnet
|
||||
poster:
|
||||
selector: ..posters.small.url
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "https://static.anilibria.tv"
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: downloads
|
||||
date:
|
||||
# unix
|
||||
selector: uploaded_timestamp
|
||||
size:
|
||||
selector: total_size
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
description:
|
||||
selector: ..description
|
||||
# json api v3
|
||||
145
Prowlarr/config/Definitions/anime-free.yml
Normal file
145
Prowlarr/config/Definitions/anime-free.yml
Normal file
@ -0,0 +1,145 @@
|
||||
---
|
||||
id: anime-free
|
||||
name: Anime-Free
|
||||
description: "Anime-Free is a RUSSIAN Semi-Private Torrent Tracker for Hentai manga, eroge and flash porn games"
|
||||
language: ru-RU
|
||||
type: semi-private
|
||||
encoding: windows-1251
|
||||
testlinktorrent: false
|
||||
links:
|
||||
- https://anime-free.one/
|
||||
legacylinks:
|
||||
- https://anime-free.net/ # redirects to *.biz
|
||||
- https://anime-free.biz/
|
||||
- http://anime-free.one/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 14, cat: TV/Anime, desc: "Аниме хентай"}
|
||||
- {id: 47, cat: TV/Anime, desc: " Хентай на Русском языке"}
|
||||
- {id: 48, cat: TV/Anime, desc: " Хентай Без русского перевода"}
|
||||
- {id: 45, cat: TV/Anime, desc: " Хентай Без цензуры"}
|
||||
- {id: 46, cat: TV/Anime, desc: " Хентай с цензурой"}
|
||||
- {id: 54, cat: Other, desc: "Косплей"}
|
||||
- {id: 51, cat: TV/Anime, desc: "[3D] хентай и анимация"}
|
||||
- {id: 5, cat: Books/Comics, desc: "Хентай манга"}
|
||||
- {id: 56, cat: Console, desc: "Игры"}
|
||||
- {id: 10, cat: Console, desc: " Эротические и хентай игры"}
|
||||
- {id: 55, cat: Console, desc: " 3DCG/3D-Animation игры"}
|
||||
- {id: 57, cat: Console, desc: " Игры на русском языке"}
|
||||
- {id: 58, cat: Other, desc: " Онлайн игры"}
|
||||
- {id: 52, cat: Books/Comics, desc: "Порно комиксы"}
|
||||
- {id: 49, cat: XXX/ImageSet, desc: "Хентай картинки, иллюстрации, обои и Art "}
|
||||
- {id: 43, cat: TV/Anime, desc: "Эччи (Легкая эротика)"}
|
||||
- {id: 4, cat: TV/Anime, desc: "Аниме Хентай"}
|
||||
- {id: 50, cat: Other, desc: "Хентай Онлайн"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: email
|
||||
type: text
|
||||
label: Email
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
|
||||
login:
|
||||
path: /
|
||||
method: form
|
||||
form: form.login-form
|
||||
inputs:
|
||||
login_name: "{{ .Config.email }}"
|
||||
login_password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.berrors
|
||||
test:
|
||||
path: /
|
||||
selector: a[href$="/index.php?action=logout"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href*="/engine/download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
# https://anime-free.biz/index.php?do=search&subaction=search&search_start=0&full_search=1&result_from=1&story=slaves+to+passion&all_word_seach=1&titleonly=3&searchuser=&replyless=0&replylimit=0&searchdate=0&beforeafter=after&sortby=date&resorder=desc&showposts=0&catlist[]=0
|
||||
paths:
|
||||
- path: index.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}catlist[]={{.}}&{{end}}"
|
||||
do: search
|
||||
subaction: search
|
||||
search_start: 0
|
||||
full_search: 1
|
||||
result_from: 1
|
||||
showposts: 0
|
||||
all_word_seach: 1
|
||||
# 0 article, 1 comments, 2 static pages, 3 article titles
|
||||
titleonly: "{{ if .Keywords }}3{{ else }}0{{ end }}"
|
||||
searchdate: 0
|
||||
searchuser: ""
|
||||
story: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
sortby: date
|
||||
resorder: desc
|
||||
|
||||
rows:
|
||||
selector: article
|
||||
|
||||
fields:
|
||||
category_optional:
|
||||
optional: true
|
||||
selector: a[href*="category="]
|
||||
attribute: href
|
||||
case:
|
||||
a[href$="3d_hentai"]: 51
|
||||
a[href$="3dcg_game"]: 55
|
||||
a[href$="censored"]: 46
|
||||
a[href$="comics"]: 52
|
||||
a[href$="cosplay"]: 54
|
||||
a[href$="etty"]: 43
|
||||
a[href$="h-game"]: 10
|
||||
a[href$="h-online"]: 50
|
||||
a[href$="hentai"]: 4
|
||||
a[href$="hentai_games"]: 56
|
||||
a[href$="hentai_manga"]: 5
|
||||
a[href$="hentai_raznoe"]: 49
|
||||
a[href$="hentai_rus"]: 47
|
||||
a[href$="online_games"]: 58
|
||||
a[href$="original_hentai"]: 48
|
||||
a[href$="rus-game"]: 57
|
||||
a[href$="uncensored"]: 45
|
||||
category:
|
||||
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}54{{ end }}"
|
||||
title:
|
||||
selector: h2.title a
|
||||
details:
|
||||
selector: h2.title a
|
||||
attribute: href
|
||||
download:
|
||||
selector: h2.title a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img.entry-image
|
||||
attribute: src
|
||||
description:
|
||||
selector: div[itemprop="description"]
|
||||
date:
|
||||
selector: li:has(img#adddate)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy, HH:mm"
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
size:
|
||||
selector: b.file_size
|
||||
optional: true
|
||||
default: 0 B
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
83
Prowlarr/config/Definitions/anime-time.yml
Normal file
83
Prowlarr/config/Definitions/anime-time.yml
Normal file
@ -0,0 +1,83 @@
|
||||
---
|
||||
id: anime-time
|
||||
name: Anime Time
|
||||
description: "Anime Time is a Public Torrent Tracker for ANIME."
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://animetime.cc/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
anime: TV/Anime
|
||||
books: Books
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
book-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://animetime.cc/search?query=
|
||||
- path: "{{ if .Keywords }}search{{ else }}{{ end }}"
|
||||
|
||||
inputs:
|
||||
query: "{{ .Keywords }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: trim
|
||||
- name: re_replace
|
||||
args: ["\\W+", "%"]
|
||||
|
||||
rows:
|
||||
selector: div.flow-root > div.divide-y > div.p-2.space-y-2
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: span.badge.badge-primary
|
||||
title:
|
||||
selector: a[href*="/view/"]
|
||||
details:
|
||||
selector: a[href*="/view/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: span[data-tip]
|
||||
attribute: data-tip
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: span.badge.badge-ghost
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
genre:
|
||||
selector: span.badge.badge-secondary, span.badge.badge-error
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["non english", "non_english"]
|
||||
- name: replace
|
||||
args: ["music video", "music_video"]
|
||||
- name: replace
|
||||
args: ["Anime Time", "Anime_Time"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
103
Prowlarr/config/Definitions/anime-timel.yml
Normal file
103
Prowlarr/config/Definitions/anime-timel.yml
Normal file
@ -0,0 +1,103 @@
|
||||
---
|
||||
id: anime-timel
|
||||
name: Anime TimeL
|
||||
description: "This is the Anime Time indexer with Login enabled in the config to include NSFW content."
|
||||
language: en-US
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://animetime.cc/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
anime: TV/Anime
|
||||
books: Books
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
|
||||
login:
|
||||
path: auth/log-in
|
||||
method: form
|
||||
form: form[action$="/auth/log-in"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember_me: true
|
||||
error:
|
||||
- selector: span.text-error
|
||||
test:
|
||||
path: /
|
||||
selector: form[action$="/auth/log-out"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://animetime.cc/search?query=
|
||||
- path: "{{ if .Keywords }}search{{ else }}{{ end }}"
|
||||
|
||||
inputs:
|
||||
query: "{{ .Keywords }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: trim
|
||||
- name: re_replace
|
||||
args: ["\\W+", "%"]
|
||||
|
||||
rows:
|
||||
selector: div.flow-root > div.divide-y > div.p-2.space-y-2
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: span.badge.badge-primary
|
||||
title:
|
||||
selector: a[href*="/view/"]
|
||||
details:
|
||||
selector: a[href*="/view/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: span[data-tip]
|
||||
attribute: data-tip
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: span.badge.badge-ghost
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
genre:
|
||||
selector: span.badge.badge-secondary, span.badge.badge-error
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["non english", "non_english"]
|
||||
- name: replace
|
||||
args: ["music video", "music_video"]
|
||||
- name: replace
|
||||
args: ["Anime Time", "Anime_Time"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
201
Prowlarr/config/Definitions/animelayer.yml
Normal file
201
Prowlarr/config/Definitions/animelayer.yml
Normal file
@ -0,0 +1,201 @@
|
||||
---
|
||||
id: animelayer
|
||||
name: AnimeLayer
|
||||
description: "AnimeLayer is a RUSSIAN Semi-Private Torrent Tracker for ANIME"
|
||||
language: ru-RU
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.animelayer.ru/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: аниме, cat: TV/Anime, desc: Аниме}
|
||||
- {id: музыка, cat: Audio, desc: Музыка}
|
||||
- {id: манга, cat: Books, desc: Манга}
|
||||
- {id: дорама, cat: TV, desc: Дорама}
|
||||
|
||||
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: category-id
|
||||
type: select
|
||||
label: Category
|
||||
default: anime
|
||||
options:
|
||||
anime: Аниме
|
||||
music: Музыка
|
||||
manga: Манга
|
||||
dorama: Дорама
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form#loginForm
|
||||
inputs:
|
||||
login: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.error
|
||||
test:
|
||||
path: /
|
||||
selector: a[href^="/auth/logout/"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "torrents/{{ .Config.category-id }}/"
|
||||
inputs:
|
||||
q: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: ul.torrents-list li.torrent-item:has(a[href^="/torrent/"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: label.category
|
||||
_resolution:
|
||||
selector: div.description
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Разрешение:\\s+\\d{3,4}\\D(\\d{3,4})"
|
||||
title:
|
||||
selector: img
|
||||
attribute: alt
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result._resolution }} [{{ .Result._resolution }}p]{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: append
|
||||
args: download/
|
||||
poster:
|
||||
selector: img
|
||||
attribute: data-original
|
||||
size:
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 2]
|
||||
date_noyear:
|
||||
# <span class="gray">Добавлен:</span> 18 августа в 21:39
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "н:\\s(\\d{1,2} \\D{3,8} в\\s\\d{1,2}:\\d{2})"
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: replace
|
||||
args: ["Обновлён:", ""]
|
||||
- name: replace
|
||||
args: ["Добавлен:", ""]
|
||||
- name: replace
|
||||
args: [" в ", " "]
|
||||
- name: replace
|
||||
args: ["января", "January {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["февраля", "February {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["марта", "March {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["апреля", "April {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["мая", "May {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["июня", "June {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["июля", "July {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["августа", "August {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["сентября", "September {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["октября", "October {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["ноября", "November {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["декабря", "December {{ .Today.Year }}"]
|
||||
- name: re_replace
|
||||
args: ["\\s(\\d\\:)", " 0$1"]
|
||||
date_year:
|
||||
# <span class="gray">Обновлён:</span> 3 октября 2019 в 6:02
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "н:\\s(\\d{1,2} \\D{3,8} \\d{4} в\\s\\d{1,2}:\\d{2})"
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: replace
|
||||
args: ["Обновлён:", ""]
|
||||
- name: replace
|
||||
args: ["Добавлен:", ""]
|
||||
- name: replace
|
||||
args: [" в ", " "]
|
||||
- name: replace
|
||||
args: ["января", "January"]
|
||||
- name: replace
|
||||
args: ["февраля", "February"]
|
||||
- name: replace
|
||||
args: ["марта", "March"]
|
||||
- name: replace
|
||||
args: ["апреля", "April"]
|
||||
- name: replace
|
||||
args: ["мая", "May"]
|
||||
- name: replace
|
||||
args: ["июня", "June"]
|
||||
- name: replace
|
||||
args: ["июля", "July"]
|
||||
- name: replace
|
||||
args: ["августа", "August"]
|
||||
- name: replace
|
||||
args: ["сентября", "September"]
|
||||
- name: replace
|
||||
args: ["октября", "October"]
|
||||
- name: replace
|
||||
args: ["ноября", "November"]
|
||||
- name: replace
|
||||
args: ["декабря", "December"]
|
||||
- name: re_replace
|
||||
args: ["\\s(\\d\\:)", " 0$1"]
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_noyear }}{{ or .Result.date_year .Result.date_noyear }}{{ else }}now{{ end }}"
|
||||
seeders:
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 0]
|
||||
leechers:
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 1]
|
||||
_subtitles:
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Субтитры:(.+?)\\n"
|
||||
_language:
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Язык:(.+?)\\n"
|
||||
description:
|
||||
text: "{{ if .Result._subtitles }}Субтитры: {{ .Result._subtitles }}{{ else }}{{ end }} - {{ if .Result._language }}Язык: {{ .Result._language }}{{ else }}{{ end }}"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
196
Prowlarr/config/Definitions/animelovers-api.yml
Normal file
196
Prowlarr/config/Definitions/animelovers-api.yml
Normal file
@ -0,0 +1,196 @@
|
||||
---
|
||||
id: animelovers-api
|
||||
name: AnimeLovers (API)
|
||||
description: "AnimeLovers is a Private tracker for ANIME / MANGA / DOUNGUA / MANHWA"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://animelovers.club/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies/Other, desc: "Anime Movies"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Anime Series"}
|
||||
- {id: 3, cat: TV/Anime, desc: "Anime OVA"}
|
||||
- {id: 11, cat: TV/Anime, desc: "Donghua Anime"}
|
||||
- {id: 9, cat: XXX, desc: "Doujinshi"}
|
||||
- {id: 4, cat: Books/Comics, desc: "Manhua/Manhwa"}
|
||||
- {id: 8, cat: Books/Comics, desc: "Manga"}
|
||||
- {id: 7, cat: XXX, desc: "Hentai"}
|
||||
- {id: 10, cat: Audio/Lossless, desc: "Lossless Music"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-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://animelovers.club/\" target=\"_blank\">AnimeLovers</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: "In order to not be disabled, you are required to login to AnimeLovers at least once every 90 days."
|
||||
|
||||
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://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
||||
- path: api/torrents/filter
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
selector: name
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
files:
|
||||
selector: num_file
|
||||
title:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
_featured:
|
||||
selector: featured
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
downloadvolumefactor_freeleech:
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
downloadvolumefactor:
|
||||
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
|
||||
uploadvolumefactor_double_upload:
|
||||
# api returns False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 8.3.4
|
||||
81
Prowlarr/config/Definitions/animetime.yml
Normal file
81
Prowlarr/config/Definitions/animetime.yml
Normal file
@ -0,0 +1,81 @@
|
||||
---
|
||||
id: animetime
|
||||
name: Anime Time
|
||||
description: "Anime Time is a PUBLIC torrent tracker for ANIME"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://animetime.cc/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
anime: TV/Anime
|
||||
books: Books
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
book-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://animetime.cc/search?query=
|
||||
- path: "{{ if .Keywords }}search{{ else }}{{ end }}"
|
||||
|
||||
inputs:
|
||||
query: "{{ .Keywords }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: trim
|
||||
- name: re_replace
|
||||
args: ["\\W+", "%"]
|
||||
|
||||
rows:
|
||||
selector: div.flow-root > div.divide-y > div.p-2.space-y-2
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: span.badge.badge-primary
|
||||
title:
|
||||
selector: a[href*="/view/"]
|
||||
details:
|
||||
selector: a[href*="/view/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: span[data-tip]
|
||||
attribute: data-tip
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: span.badge.badge-ghost
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
genre:
|
||||
selector: span.badge.badge-secondary
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["non english", "non_english"]
|
||||
- name: replace
|
||||
args: ["music video", "music_video"]
|
||||
- name: replace
|
||||
args: ["Anime Time", "Anime_Time"]
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
160
Prowlarr/config/Definitions/animetorrentsro.yml
Normal file
160
Prowlarr/config/Definitions/animetorrentsro.yml
Normal file
@ -0,0 +1,160 @@
|
||||
---
|
||||
id: animetorrentsro
|
||||
name: AnimeTorrents.ro
|
||||
description: "AnimeTorrents.ro (Anime Torrents Romania) is a ROMANIAN Private Torrent Tracker for ANIME / MANGA"
|
||||
language: ro-RO
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://animetorrents.ro/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV/Anime, desc: "ANIME"}
|
||||
- {id: 1, cat: Movies/Other, desc: "ANIME"} # for Radarr
|
||||
- {id: 2, cat: Books/Comics, desc: "MANGA"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-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: cat-id
|
||||
type: select
|
||||
label: Category
|
||||
default: 0
|
||||
options:
|
||||
0: All categories
|
||||
1: Anime
|
||||
2: Manga
|
||||
- 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
|
||||
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: "Inactive accounts under VIP and without parked are automatically deleted after about a year."
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
referer: /
|
||||
selectorinputs:
|
||||
csrf_token:
|
||||
selector: input[name="csrf_token"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: table.main:contains("esuat")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://animetorrents.ro/browse.php?search=2023&incldead=1&blah=0&cat=0
|
||||
- path: browse.php
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 all, 2 dead, 3 free
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
# 0 name, 1 genre
|
||||
blah: 0
|
||||
# site does not support multiple cats
|
||||
cat: "{{ .Config.cat-id }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# does not support imdbid search
|
||||
|
||||
rows:
|
||||
selector: td > table > tbody > tr:has(a[href^="download.php/"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["^(\\[.+?\\]).(.+)", "$2.$1"]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.+?) width"
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
date:
|
||||
selector: td:nth-last-child(6)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # auto adjusted by site account profile
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyyHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt="Free"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
genre:
|
||||
selector: a[href^="download.php/"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# engine n/a
|
||||
201
Prowlarr/config/Definitions/animeworld-api.yml
Normal file
201
Prowlarr/config/Definitions/animeworld-api.yml
Normal file
@ -0,0 +1,201 @@
|
||||
---
|
||||
id: animeworld-api
|
||||
name: AnimeWorld (API)
|
||||
description: "AnimeWorld (AW) is a GERMAN Private Torrent Tracker for ANIME / MANGA / HENTAI"
|
||||
language: de-DE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://animeworld.cx/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies/Other, desc: "Anime Filme"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Anime Serien"}
|
||||
- {id: 3, cat: Audio, desc: "Anime Musik / OSTs"}
|
||||
- {id: 4, cat: PC/Games, desc: "Anime Spiele"}
|
||||
- {id: 5, cat: XXX, desc: "Anime Hentai"}
|
||||
- {id: 6, cat: PC, desc: "Software"}
|
||||
- {id: 7, cat: Other, desc: "Sonstiges"}
|
||||
- {id: 8, cat: Movies, desc: "Filme"}
|
||||
- {id: 9, cat: TV, desc: "Serien"}
|
||||
- {id: 10, cat: PC/Games, desc: "Spiele"}
|
||||
- {id: 11, cat: Audio, desc: "Musik"}
|
||||
- {id: 12, cat: Books, desc: "Manga"}
|
||||
- {id: 13, cat: Movies, desc: "Cartoon Filme"}
|
||||
- {id: 14, cat: TV, desc: "Cartoon Serie"}
|
||||
- {id: 15, cat: XXX, desc: "H-Manga / Doujinshi"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, tvdbid, tmdbid]
|
||||
movie-search: [q, tmdbid]
|
||||
music-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://animeworld.cx/\" target=\"_blank\">AnimeWorld</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 are set as inactive by the system after 180 days. After 270 days in inactive status, the accounts are automatically deleted from the system."
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
inputs: {} # TODO: remove in v10
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
- selector: :root:contains("Account is Banned")
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
||||
- path: api/torrents/filter
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
# seasonNumber: "{{ .Query.Season }}" # disabled due to Prowlarr/Indexers#486
|
||||
# episodeNumber: "{{ .Query.Ep }}" # disabled due to Prowlarr/Indexers#486
|
||||
# imdbId: "{{ .Query.IMDBIDShort }}" # disabled due to #14776
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
selector: name
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
files:
|
||||
selector: num_file
|
||||
title:
|
||||
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
_featured:
|
||||
selector: featured
|
||||
case:
|
||||
False: "{{ .False }}"
|
||||
True: "{{ .True }}"
|
||||
downloadvolumefactor_freeleech:
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
downloadvolumefactor:
|
||||
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
|
||||
uploadvolumefactor_double_upload:
|
||||
# api returns False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
# global MR is 1.0 but torrents must be seeded for 7 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 1.0
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 8.1.3 (custom)
|
||||
87
Prowlarr/config/Definitions/anirena.yml
Normal file
87
Prowlarr/config/Definitions/anirena.yml
Normal file
@ -0,0 +1,87 @@
|
||||
---
|
||||
id: aniRena
|
||||
name: AniRena
|
||||
description: "AniRena is a Public torrent tracker for the latest anime and Japanese related torrents"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.anirena.com/
|
||||
|
||||
settings:
|
||||
- name: info_flaresolverr
|
||||
type: info_flaresolverr
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Anime
|
||||
- {id: 1, cat: TV/Anime, desc: "Raw Animes"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 3, cat: TV/Anime, desc: "Hentai"}
|
||||
- {id: 4, cat: TV/Anime, desc: "Drama"}
|
||||
- {id: 9, cat: TV/Anime, desc: "Anime Music Videos"}
|
||||
- {id: 10, cat: TV/Anime, desc: "Non-English"}
|
||||
# Software
|
||||
- {id: 5, cat: PC/ISO, desc: "DVD/ISO"}
|
||||
- {id: 6, cat: PC, desc: "Hentai-Game"}
|
||||
# Literature
|
||||
- {id: 7, cat: Books, desc: "Manga"}
|
||||
# Audio
|
||||
- {id: 8, cat: Audio, desc: "Audio"}
|
||||
# Other
|
||||
- {id: 11, cat: Other, desc: "Other"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
inputs:
|
||||
s: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: table tbody tr:has(td.torrents_small_type_data1)
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: .torrents_small_info_data1 div
|
||||
download:
|
||||
selector: .torrents_small_info_data2 a[title="Download Torrent"]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: .torrents_small_info_data2 a[title="Magnet Link"]
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: .torrents_small_size_data1
|
||||
seeders:
|
||||
selector: .torrents_small_seeders_data1 b big
|
||||
leechers:
|
||||
selector: .torrents_small_leechers_data1 b big
|
||||
grabs:
|
||||
selector: .torrents_small_downloads_data1
|
||||
category:
|
||||
selector: .torrents_small_type_data1 img
|
||||
attribute: src
|
||||
case:
|
||||
"[src=\"./styles/tracker/imageset/cat_raw_small.png\"]": 1
|
||||
"[src=\"./styles/tracker/imageset/cat_anime_small.png\"]": 2
|
||||
"[src=\"./styles/tracker/imageset/cat_hentai_small.png\"]": 3
|
||||
"[src=\"./styles/tracker/imageset/cat_drama_small.png\"]": 4
|
||||
"[src=\"./styles/tracker/imageset/cat_dvd_small.png\"]": 5
|
||||
"[src=\"./styles/tracker/imageset/cat_hgame2_small.png\"]": 6
|
||||
"[src=\"./styles/tracker/imageset/cat_manga_small.png\"]": 7
|
||||
"[src=\"./styles/tracker/imageset/cat_music_small.png\"]": 8
|
||||
"[src=\"./styles/tracker/imageset/cat_musicvid_small.png\"]": 9
|
||||
"[src=\"./styles/tracker/imageset/cat_noneng_small.png\"]": 10
|
||||
"[src=\"./styles/tracker/imageset/cat_other_small.png\"]": 11
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
87
Prowlarr/config/Definitions/anisource.yml
Normal file
87
Prowlarr/config/Definitions/anisource.yml
Normal file
@ -0,0 +1,87 @@
|
||||
---
|
||||
id: anisource
|
||||
name: AniSource
|
||||
description: "AniSource is a Public site for HD Anime raws."
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 5
|
||||
links:
|
||||
- https://asnet.pw/
|
||||
|
||||
settings: []
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV/Anime, desc: "Raw Animes"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /
|
||||
- path: /
|
||||
inputs:
|
||||
tpage: 2
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
|
||||
headers:
|
||||
# site blocks Jackett's User-Agents, so slightly alter it here (e.g. Chrome/87.0. > Chrome/97.0.)
|
||||
User-Agent: ["Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4280.88 Safari/537.36"]
|
||||
|
||||
rows:
|
||||
selector: div[class^="item"]
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
title:
|
||||
selector: a[href*="/showprofile/"]
|
||||
filters:
|
||||
# move group to the end
|
||||
- name: re_replace
|
||||
args: ["^(\\[.+?\\]) (.+?)$", "$2 $1"]
|
||||
details:
|
||||
selector: a[href*="/showprofile/"]
|
||||
attribute: href
|
||||
infohash:
|
||||
selector: a[href*="/showprofile/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([A-F|a-f|0-9]{40})
|
||||
date:
|
||||
selector: font[color="Black"]
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Date: (.+?) Central"
|
||||
- name: replace
|
||||
args: [" at ", " "]
|
||||
- name: append
|
||||
args: " -09:00" # CUS
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm zzz"
|
||||
size:
|
||||
selector: font[color="Black"]
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Size: (.+?) \\|"
|
||||
- name: replace
|
||||
args: ["b", "B"]
|
||||
files:
|
||||
selector: font[color="Black"]
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)$
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
164
Prowlarr/config/Definitions/anitoons.yml
Normal file
164
Prowlarr/config/Definitions/anitoons.yml
Normal file
@ -0,0 +1,164 @@
|
||||
---
|
||||
id: anitoons
|
||||
name: AniToons
|
||||
description: "AniToons is a BRAZILIAN Private Torrent Tracker for ANIME / CARTOONS"
|
||||
language: pt-BR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://anitoons.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 6, cat: XXX, desc: "Adult"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: APIKey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://anitoons.xyz/\" target=\"_blank\">AniToons</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: 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
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
inputs: {} # TODO: remove in v10
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
|
||||
- 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:
|
||||
selector: name
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Ficção científica)", "Ficção_científica"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
uploadvolumefactor:
|
||||
# api returns False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
# global MR is 0.4 but torrents must be seeded for 5 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 7.0.3
|
||||
180
Prowlarr/config/Definitions/anthelion-api.yml
Normal file
180
Prowlarr/config/Definitions/anthelion-api.yml
Normal file
@ -0,0 +1,180 @@
|
||||
---
|
||||
id: anthelion-api
|
||||
replaces:
|
||||
- tehconnectionme
|
||||
- anthelion
|
||||
name: Anthelion (API)
|
||||
description: "Anthelion (ANT) is a Private Torrent Tracker for MOVIES"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
# Status: https://ant.trackerstatus.info/
|
||||
links:
|
||||
- https://anthelion.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 2000, cat: Movies}
|
||||
- {id: 2030, cat: Movies/SD}
|
||||
- {id: 2040, cat: Movies/HD}
|
||||
- {id: 2045, cat: Movies/UHD}
|
||||
- {id: 2050, cat: Movies/BluRay}
|
||||
- {id: 2080, cat: Movies/WEB-DL}
|
||||
- {id: 8000, cat: Other}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
# note: the api any supports movie search so there is no tv season/episode support.
|
||||
# not using year search because torznab adds it to the q= which results in &q=keyword+2022&year=2022 sent to api !?!
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: APIKey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Key by accessing your <a href=\"https://anthelion.me/\" target=\"_blank\">Anthelion</a> account <i>Settings</i> page and scrolling down to the <b>API Key</b> section.<br>Tick the <b>Search</b> and <b>Download</b> checkboxes and click the <b>save profile</b> button to generate the key."
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Activity is defined as actually using your account, including the snatch/grab/seeding of torrents. You are also required to sign-in to the web frontend of Anthelion at least once per 3mo (90 days) (Note, using autodl/ARR does not satisfy this)."
|
||||
|
||||
login:
|
||||
path: api.php
|
||||
method: get
|
||||
inputs:
|
||||
api_key: "{{ .Config.apikey }}"
|
||||
error:
|
||||
- selector: ":root:contains(\"Unrecognized key\")"
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
- selector: ":root:contains(\"No API_KEY provided\")"
|
||||
message:
|
||||
text: "You did not enter an API key."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# docs: https://anthelion.me/forums.php?action=viewthread&threadid=1026
|
||||
- path: api.php
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
api_key: "{{ .Config.apikey }}"
|
||||
o: json
|
||||
t: movie
|
||||
q: "{{ .Keywords }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
# category filtering is disabled since it seems to rely on the AND operator that prevents some releases to show on search.
|
||||
# cat: "{{ join .Categories \",\" }}"
|
||||
limit: 100
|
||||
offset: 0
|
||||
|
||||
rows:
|
||||
selector: item
|
||||
count:
|
||||
selector: response.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category
|
||||
filters:
|
||||
- name: split
|
||||
args: [",", -1]
|
||||
year:
|
||||
selector: year
|
||||
optional: true
|
||||
_codec:
|
||||
selector: codec
|
||||
_container:
|
||||
selector: container
|
||||
filters:
|
||||
- name: toupper
|
||||
_media:
|
||||
selector: media
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["WEB", "WEB-DL"]
|
||||
_resolution:
|
||||
selector: resolution
|
||||
_audioFormat:
|
||||
selector: audioFormat
|
||||
_subbing:
|
||||
selector: subbing
|
||||
optional: true
|
||||
_flags:
|
||||
selector: flags
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: [",", " "]
|
||||
_language:
|
||||
selector: language
|
||||
optional: true
|
||||
_releaseGroup:
|
||||
selector: releaseGroup
|
||||
optional: true
|
||||
filters:
|
||||
- name: trim
|
||||
title_optional:
|
||||
selector: title
|
||||
filters:
|
||||
- name: htmldecode
|
||||
- name: append
|
||||
args: " {{ .Result.year }} {{ .Result._resolution }} {{ .Result._media }} {{ .Result._container }} {{ .Result._codec }} {{ .Result._audioFormat }}{{ if .Result._subbing }} Subs{{ else }}{{ end }}{{ if .Result._flags }} {{ .Result._flags }}{{ else }}{{ end }}{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}{{ if and (.Result._releaseGroup) (ne .Result._releaseGroup \"NULL\") }}-{{ .Result._releaseGroup }}{{ else }}{{ end }}"
|
||||
- name: replace
|
||||
args: ["M2TS H265", "M2TS HEVC"]
|
||||
- name: replace
|
||||
args: ["M2TS H264", "M2TS AVC"]
|
||||
details:
|
||||
selector: guid
|
||||
download:
|
||||
selector: link
|
||||
filters:
|
||||
- name: htmldecode
|
||||
infohash:
|
||||
selector: infohash
|
||||
imdbid:
|
||||
selector: imdb
|
||||
tmdbid:
|
||||
selector: tmdb
|
||||
genre:
|
||||
selector: tags
|
||||
filters:
|
||||
- name: replace
|
||||
args: [".", "_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: fileCount
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: grabs
|
||||
date:
|
||||
# 2022-08-07T20:56:06+0200
|
||||
selector: pubDate
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 day (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
_filename:
|
||||
selector: "files[0].name"
|
||||
filters:
|
||||
- name: htmldecode
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ if and (eq .Result.files \"1\") (.Result._filename) }}{{ .Result._filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
|
||||
# json api
|
||||
235
Prowlarr/config/Definitions/arabafenice.yml
Normal file
235
Prowlarr/config/Definitions/arabafenice.yml
Normal file
@ -0,0 +1,235 @@
|
||||
---
|
||||
id: arabafenice
|
||||
name: ArabaFenice
|
||||
description: "Araba Fenice (Phoenix) is an ITALIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: it-IT
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.arabafenice.me/
|
||||
legacylinks:
|
||||
- http://www.arabafenice.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# HRS
|
||||
- {id: 34, cat: Movies/HD, desc: "1080p HRS x264"}
|
||||
- {id: 47, cat: Movies/UHD, desc: "2160p 4K UHD HRS"}
|
||||
- {id: 35, cat: TV, desc: "Serie TV HRS"}
|
||||
- {id: 36, cat: Movies/SD, desc: "DVDRip HRS"}
|
||||
- {id: 41, cat: Movies/SD, desc: "BDRip 576p HRS"}
|
||||
- {id: 39, cat: Movies/HD, desc: "1080p HRS x265 HEVC"}
|
||||
# AREA SuperVip
|
||||
- {id: 33, cat: Movies/HD, desc: "[DD] Film 720p MP4"}
|
||||
- {id: 54, cat: Movies/HD, desc: "[DD] 1080p V.U. MKV"}
|
||||
- {id: 55, cat: Movies/BluRay, desc: "[DD] FULL BluRay"}
|
||||
- {id: 57, cat: Movies/UHD, desc: "[DD] 4K FULL BluRay"}
|
||||
- {id: 58, cat: XXX, desc: "[DD] XXX 1080p"}
|
||||
- {id: 59, cat: XXX, desc: "[DD] XXX 4K 2160p"}
|
||||
- {id: 60, cat: XXX, desc: "[DD] XXX 720p"}
|
||||
# VIDEO
|
||||
- {id: 1, cat: Movies, desc: "News Cinema"}
|
||||
- {id: 40, cat: TV/UHD, desc: "4K Video Untouched"}
|
||||
- {id: 2, cat: Movies/SD, desc: "BD-DVDRip"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "DVD 5"}
|
||||
- {id: 50, cat: Movies/UHD, desc: "4K 2160p UHD"}
|
||||
- {id: 6, cat: Movies/BluRay, desc: "BluRay Full"}
|
||||
- {id: 4, cat: Movies/HD, desc: "1080p 3D x264"}
|
||||
- {id: 7, cat: Movies/HD, desc: "1080p x264"}
|
||||
- {id: 46, cat: Movies/HD, desc: "1080p VideoUntouched"}
|
||||
- {id: 44, cat: Movies/HD, desc: "1080p x265 HEVC"}
|
||||
- {id: 5, cat: Movies/DVD, desc: "DVD 9"}
|
||||
- {id: 9, cat: TV/Anime, desc: "Cartoons"}
|
||||
- {id: 8, cat: TV/Anime, desc: "720p x264"}
|
||||
- {id: 12, cat: TV, desc: "Stagioni Concluse"}
|
||||
- {id: 13, cat: TV, desc: "Stagioni in Onda"}
|
||||
- {id: 14, cat: TV, desc: "TV Show"}
|
||||
- {id: 42, cat: TV, desc: "Serie Tv Sub Ita"}
|
||||
- {id: 15, cat: TV/Documentary, desc: "Documentari"}
|
||||
- {id: 53, cat: TV/HD, desc: "VIDEO MP4 720p"}
|
||||
- {id: 38, cat: XXX, desc: "xXx"}
|
||||
- {id: 43, cat: Other, desc: "Araba per il sociale"}
|
||||
# MUSICA
|
||||
- {id: 17, cat: Audio, desc: "Musica Italiana"}
|
||||
- {id: 45, cat: Audio, desc: "Discografie"}
|
||||
- {id: 18, cat: Audio, desc: "MusicaInternazionale"}
|
||||
- {id: 19, cat: Audio, desc: "Compilation"}
|
||||
# PDF
|
||||
- {id: 21, cat: Books, desc: "Ebook"}
|
||||
- {id: 22, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: 23, cat: Books, desc: "Newsstand"}
|
||||
- {id: 56, cat: Books/Mags, desc: "Riviste"}
|
||||
- {id: 48, cat: XXX/Other, desc: "Riviste xXx"}
|
||||
- {id: 49, cat: XXX/Other, desc: "Fumetti xXx"}
|
||||
# GAMES
|
||||
- {id: 25, cat: Console/PS4, desc: "Sony Games"}
|
||||
- {id: 26, cat: Console/XBox, desc: "XboX Games"}
|
||||
- {id: 27, cat: Console/Other, desc: "Nintendo Games"}
|
||||
- {id: 28, cat: PC/Games, desc: "PC Games"}
|
||||
# SOFTWARE
|
||||
- {id: 30, cat: PC/ISO, desc: "Windows APP"}
|
||||
- {id: 31, cat: PC/Mobile-iOS, desc: "Apple APP"}
|
||||
- {id: 32, cat: PC/Mobile-Android, desc: "Android APP"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-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: 3
|
||||
options:
|
||||
3: created
|
||||
5: seeders
|
||||
4: size
|
||||
2: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: 2
|
||||
options:
|
||||
2: desc
|
||||
1: asc
|
||||
- name: info
|
||||
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.
|
||||
|
||||
login:
|
||||
path: index.php?page=login
|
||||
method: post
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: body[onLoad^="makeAlert('"]
|
||||
message:
|
||||
selector: body[onLoad^="makeAlert('"]
|
||||
attribute: onLoad
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["makeAlert('Error' , '", ""]
|
||||
- name: replace
|
||||
args: ["');", ""]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: thanks.php
|
||||
method: post
|
||||
inputs:
|
||||
infohash: "{{ .DownloadUri.Query.id }}"
|
||||
thanks: 1
|
||||
rndval: "1487013827343"
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "^(.+?)&key="
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: index.php
|
||||
keywordsfilters:
|
||||
- name: diacritics
|
||||
args: replace
|
||||
- name: re_replace # S01 to 1
|
||||
args: ["(?i)\\bS0*(\\d+)\\b", "$1"]
|
||||
- name: re_replace # S01E01 to 1 1
|
||||
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1 $2"]
|
||||
inputs:
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBIDShort }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
page: torrents
|
||||
category: "{{ range .Categories }}{{.}};{{end}}"
|
||||
options: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
active: 0
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
|
||||
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="index.php?page=downloadcheck&id="]
|
||||
attribute: href
|
||||
title:
|
||||
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
|
||||
filters:
|
||||
- name: re_replace # S01 E01 to S01E01
|
||||
args: ["(?i)\\bS(\\d+)\\sE(\\d+)\\b", "S$1E$2"]
|
||||
- name: re_replace # 01x01 to S01E01
|
||||
args: ["(?i)(\\d{2})x(\\d+)", "S$1E$2"]
|
||||
- name: re_replace # 1x01 to S01E01
|
||||
args: ["(?i)\\b(\\d{1})x(\\d+)", "S0$1E$2"]
|
||||
- name: re_replace # Stagione X --> S0X
|
||||
args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\b|\\bSeason'?s?\\s?(\\d{1})\\b", "S0$1$2"]
|
||||
- name: re_replace # Stagione XX --> SXX
|
||||
args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\b|\\bSeason'?s?\\s?(\\d{2,})\\b", "S$1$2"]
|
||||
- name: re_replace # Episodio 4 to E4
|
||||
args: ["(?i)\\b(?:[\\/\\|]?Episodio\\s?(\\d+)|Puntata\\s?(\\d+))", "E$1$2"]
|
||||
- name: re_replace # Episodi 4 5 to E04-05
|
||||
args: ["(?i)\\b(?:Puntate\\s*)(\\d+)\\s?(\\d+)", "E0$1-0$2"]
|
||||
poster:
|
||||
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) "
|
||||
category:
|
||||
selector: a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
details:
|
||||
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
date:
|
||||
selector: td:nth-last-child(9)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "dd/MM/yyyy zzz"
|
||||
grabs:
|
||||
selector: td:nth-last-child(6)
|
||||
seeders:
|
||||
selector: td:nth-last-child(8)
|
||||
leechers:
|
||||
selector: td:nth-last-child(7)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt="Gold 100% Free"]: 0
|
||||
img[alt="Silver 50% Free"]: 0.5
|
||||
img[alt="Bronze 25% Free"]: 0.75
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[alt="2x Upload Multiplier"]: 2
|
||||
img[alt="3x Upload Multiplier"]: 3
|
||||
img[alt="4x Upload Multiplier"]: 4
|
||||
img[alt="5x Upload Multiplier"]: 5
|
||||
img[alt="6x Upload Multiplier"]: 6
|
||||
img[alt="7x Upload Multiplier"]: 7
|
||||
img[alt="8x Upload Multiplier"]: 8
|
||||
img[alt="9x Upload Multiplier"]: 9
|
||||
img[alt="10x Upload Multiplier"]: 10
|
||||
"*": 1
|
||||
# xbtitFM v1.16
|
||||
176
Prowlarr/config/Definitions/arabp2p.yml
Normal file
176
Prowlarr/config/Definitions/arabp2p.yml
Normal file
@ -0,0 +1,176 @@
|
||||
---
|
||||
id: arabp2p
|
||||
name: ArabP2P
|
||||
description: "ArabP2P is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: ar-AE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.arabp2p.net/
|
||||
legacylinks:
|
||||
- http://www.arabp2p.com/
|
||||
- https://www.arabp2p.com/
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 3
|
||||
options:
|
||||
3: created
|
||||
5: seeders
|
||||
4: size
|
||||
2: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: 2
|
||||
options:
|
||||
2: desc
|
||||
1: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "You must log in periodically. If the member is absent from the website for a period of 3 months, the account will be deleted without prior warning."
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# المرئيات العربية Arabic Movies
|
||||
- {id: 14, cat: Movies, desc: "اسلامي (Islamic)"}
|
||||
- {id: 19, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
|
||||
- {id: 70, cat: TV, desc: "تعليمي (Educational)"}
|
||||
- {id: 41, cat: Movies, desc: "افلام عربيه (Arabic Movies)"}
|
||||
- {id: 88, cat: Movies, desc: "افلام مدبلجه عربي (Arabic Dubbed Movies)"}
|
||||
- {id: 44, cat: TV, desc: "مسلسلات عربية (Arabic Series)"}
|
||||
- {id: 89, cat: TV, desc: "مسلسلات عربية كامله (Full Arabic Series)"}
|
||||
- {id: 52, cat: TV, desc: "مسرحيات (Plays)"}
|
||||
- {id: 71, cat: TV, desc: "مسلسلات مدبلجه عربي (Arabic Dubbed Series)"}
|
||||
- {id: 117, cat: TV, desc: "رمضان 2025 (Ramadan 2025)"}
|
||||
- {id: 90, cat: TV, desc: "برامج ومسابقات (Shows)"}
|
||||
# المرئيات الاجنبية Foreign Movies
|
||||
- {id: 92, cat: TV/Foreign, desc: "تعليمي (Educational)"}
|
||||
- {id: 93, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
|
||||
- {id: 45, cat: TV/Foreign, desc: "مسلسلات وبرامج اجنبيه (Serials)"}
|
||||
- {id: 57, cat: TV/Foreign, desc: "مسلسلات آسيوية (Asian Series)"}
|
||||
- {id: 42, cat: Movies/Foreign, desc: "افلام اجنبيه (Foreign)"}
|
||||
- {id: 74, cat: Movies/HD, desc: "جودة عالية HD"}
|
||||
- {id: 113, cat: TV/Foreign, desc: "مسلسلات لاتينية مترجم.مدبلج(Latin Series"}
|
||||
- {id: 59, cat: Movies/Foreign, desc: "افلام آسيوية (Asian Movies)"}
|
||||
- {id: 86, cat: Movies/Foreign, desc: "افلام هنديه (Indian Movies)"}
|
||||
- {id: 114, cat: Movies/Foreign, desc: "افلام لاتينية مترجم.مدبلج (Latin Movies)"}
|
||||
- {id: 115, cat: TV/Foreign, desc: "مسلسلات تركية مترجم.مدبلج (Turkish Series)"}
|
||||
- {id: 116, cat: Movies/Foreign, desc: "افلام تركية مترجم.مدبلج (Turkish Movies)"}
|
||||
# انمي مدبلج عربي Anime Arabic dubbed
|
||||
- {id: 98, cat: TV/Anime, desc: "افلام (Movies)"}
|
||||
- {id: 100, cat: TV/Anime, desc: "مسلسلات (Series)"}
|
||||
- {id: 102, cat: TV/Anime, desc: "حلقات (Episdoes)"}
|
||||
# انمي مترجم عربي Anime Arabic translator
|
||||
- {id: 99, cat: TV/Anime, desc: "افلام (Movies)"}
|
||||
- {id: 101, cat: TV/Anime, desc: "مسلسلات (Series)"}
|
||||
- {id: 103, cat: TV/Anime, desc: "حلقات (Episodes)"}
|
||||
- {id: 85, cat: TV/Anime, desc: "الكارتون الصامت والكلاسيكي (Cartoons)"}
|
||||
# صوتيات Audio
|
||||
- {id: 25, cat: Audio, desc: "القران الكريم (The Holy Quran)"}
|
||||
- {id: 27, cat: Audio, desc: "محاضرات (Lectures)"}
|
||||
- {id: 26, cat: Audio, desc: "اناشيد (Chants)"}
|
||||
- {id: 118, cat: Audio, desc: "برامج صوتية (Programs)"}
|
||||
# برامج Software
|
||||
- {id: 22, cat: PC, desc: "برامج عربية (Arabic Software)"}
|
||||
- {id: 23, cat: PC, desc: "برامج عامه (Public Software)"}
|
||||
# اخرى Other
|
||||
- {id: 17, cat: Books, desc: "كتب (Books)"}
|
||||
- {id: 65, cat: Other, desc: "صور (Images)"}
|
||||
- {id: 56, cat: Other, desc: "رياضي (Sport)"}
|
||||
- {id: 46, cat: Other, desc: "منوع (Misc)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
login:
|
||||
path: index.php
|
||||
method: form
|
||||
form: form[action^="index.php?page=login"]
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: tr td span[style="color:#FF0000;"]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?t="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://www.arabp2p.net/index.php?page=torrents&search=&category=0&active=0&internel=0&order=3&by=2
|
||||
- path: index.php
|
||||
inputs:
|
||||
page: torrents
|
||||
search: "{{ .Keywords }}"
|
||||
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{ else }}0{{ end }}"
|
||||
# 0 all 1 activeonly 2 deadonly
|
||||
active: 0
|
||||
# 0 all 1 internal 2 external
|
||||
internel: 0
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
# does not support imdbid search or provide imdb link in results
|
||||
|
||||
rows:
|
||||
selector: table#torrents_list_p > tbody > tr:has(a[href^="download.php?id="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="index.php?page=torrents&category="]:last-child
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
selector: a[href^="index.php?page=torrent-details"]
|
||||
details:
|
||||
selector: a[href^="index.php?page=torrent-details"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
optional: true
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
optional: true
|
||||
date:
|
||||
selector: span.upload-date > span
|
||||
attribute: title
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "MM-yy-dd HH:mm:ss tt"
|
||||
size:
|
||||
selector: span.size
|
||||
seeders:
|
||||
selector: span[title="Seeders"]
|
||||
leechers:
|
||||
selector: span[title="Leechers"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
span.free: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.8
|
||||
minimumseedtime:
|
||||
text: 259200 # 3 days
|
||||
# xbtit
|
||||
221
Prowlarr/config/Definitions/arabtorrents.yml
Normal file
221
Prowlarr/config/Definitions/arabtorrents.yml
Normal file
@ -0,0 +1,221 @@
|
||||
---
|
||||
id: arabtorrents
|
||||
name: ArabTorrents
|
||||
description: "ArabTorrents is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: ar-AE
|
||||
type: private
|
||||
encoding: windows-1256
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://arab-torrents.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Movies
|
||||
- {id: 36, cat: Movies, desc: "Movies/Dubbed"}
|
||||
- {id: 134, cat: Movies, desc: "HD Section"}
|
||||
- {id: 135, cat: Movies/HD, desc: "Movies/HD Section"}
|
||||
- {id: 204, cat: Movies/HD, desc: "R5/HD Section"}
|
||||
- {id: 119, cat: Movies/SD, desc: "Movies/SD TV"}
|
||||
- {id: 205, cat: Movies/Foreign, desc: "Foreign"}
|
||||
- {id: 208, cat: Movies/Foreign, desc: "Stranger/Foreign"}
|
||||
- {id: 209, cat: Movies/Foreign, desc: "Turkish/Foreign"}
|
||||
- {id: 207, cat: Movies/Foreign, desc: "Indian/Foreign"}
|
||||
- {id: 191, cat: Movies, desc: "Movies/Golden-VIP"}
|
||||
- {id: 190, cat: Movies, desc: "Movies/Super VIP"}
|
||||
- {id: 212, cat: Movies, desc: "Movies/VIP"}
|
||||
- {id: 181, cat: Movies, desc: "Classic Movies/WEB-DL"}
|
||||
- {id: 167, cat: Movies, desc: "Movies/WEB-DL"}
|
||||
# Shows
|
||||
- {id: 186, cat: TV, desc: "Dubbed"}
|
||||
- {id: 166, cat: TV/WEB-DL, desc: "WEB-DL"}
|
||||
- {id: 168, cat: TV/WEB-DL, desc: "Series/WEB-DL"}
|
||||
- {id: 171, cat: TV/WEB-DL, desc: "TV Shows/WEB-DL"}
|
||||
- {id: 180, cat: TV/WEB-DL, desc: "Classic Series/WEB-DL"}
|
||||
- {id: 169, cat: TV/WEB-DL, desc: "Full-Pack/WEB-DL"}
|
||||
- {id: 210, cat: Other, desc: "VIP"}
|
||||
- {id: 211, cat: TV, desc: "TV Shows/VIP"}
|
||||
- {id: 213, cat: TV, desc: "Full-Pack/VIP"}
|
||||
- {id: 94, cat: TV, desc: "Super VIP"}
|
||||
- {id: 189, cat: TV, desc: "TV Shows/Super VIP"}
|
||||
- {id: 201, cat: TV, desc: "Full-Pack/Super VIP"}
|
||||
- {id: 197, cat: TV, desc: "TV Shows/Ramadan 2022"}
|
||||
- {id: 148, cat: TV/Other, desc: "Series/OSN"}
|
||||
- {id: 149, cat: TV/Other, desc: "TV Show/OSN"}
|
||||
- {id: 165, cat: TV, desc: "Golden-VIP"}
|
||||
- {id: 185, cat: TV, desc: "Series/Golden-VIP"}
|
||||
- {id: 200, cat: TV, desc: "Full-Pack/Golden-VIP"}
|
||||
- {id: 26, cat: TV/SD, desc: "SD TV"}
|
||||
- {id: 78, cat: TV/SD, desc: "Series/SD TV"}
|
||||
- {id: 124, cat: TV/SD, desc: "FullPack/SD TV"}
|
||||
- {id: 136, cat: TV/HD, desc: "Series/HD Section"}
|
||||
- {id: 137, cat: TV/HD, desc: "TV Shows/HD Section"}
|
||||
- {id: 182, cat: TV/HD, desc: "Full Pack/HD Section"}
|
||||
- {id: 187, cat: TV/Foreign, desc: "TV Shows/Dubbed"}
|
||||
- {id: 188, cat: TV/Foreign, desc: "Full-Pack/Dubbed"}
|
||||
# Anime
|
||||
- {id: 33, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 51, cat: TV/Anime, desc: "Series/Anime"}
|
||||
- {id: 129, cat: Movies/BluRay, desc: "Blu-Ray/Anime"}
|
||||
- {id: 125, cat: TV, desc: "Full-Pack/Anime"}
|
||||
- {id: 50, cat: Movies, desc: "Movies/Anime"}
|
||||
# Islamic
|
||||
- {id: 67, cat: Other, desc: "Islamic"}
|
||||
- {id: 126, cat: TV, desc: "Full-Packs/Islamic"}
|
||||
- {id: 91, cat: Audio/MP3, desc: "MP3/Islamic"}
|
||||
- {id: 92, cat: Other, desc: "Video/Islamic"}
|
||||
# Music
|
||||
- {id: 16, cat: Audio, desc: "Music"}
|
||||
- {id: 177, cat: Audio, desc: "Flac/Music"}
|
||||
- {id: 127, cat: Audio, desc: "Full-Packs/Music"}
|
||||
- {id: 17, cat: Audio/MP3, desc: "MP3/Music"}
|
||||
- {id: 19, cat: Audio/Video, desc: "Videos/Music"}
|
||||
# OSN
|
||||
- {id: 146, cat: TV/Other, desc: "OSN"}
|
||||
- {id: 147, cat: TV/Other, desc: "Arabic/OSN"}
|
||||
- {id: 153, cat: TV/Other, desc: "English/OSN"}
|
||||
- {id: 179, cat: TV/Other, desc: "Old/OSN"}
|
||||
# Ramadan 2022
|
||||
- {id: 192, cat: Other, desc: "Ramadan 2022"}
|
||||
- {id: 198, cat: Other, desc: "Full Pack/Ramadan 2022"}
|
||||
- {id: 193, cat: Other, desc: "Ramadan HD/Ramadan 2022"}
|
||||
- {id: 195, cat: Other, desc: "Ramadan Khaliji/Ramadan 2022"}
|
||||
- {id: 194, cat: Other, desc: "Ramadan SD/Ramadan 2022"}
|
||||
- {id: 196, cat: Other, desc: "Ramadan Web/Ramadan 2022"}
|
||||
# Sports
|
||||
- {id: 120, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 159, cat: TV/Sport, desc: "Full Matches/Sports"}
|
||||
- {id: 155, cat: TV/Sport, desc: "Goals/Sports"}
|
||||
# Rest
|
||||
- {id: 102, cat: TV/Other, desc: "Other/SD TV"}
|
||||
- {id: 202, cat: Other, desc: "AT"}
|
||||
- {id: 203, cat: Other, desc: "AT/AT"}
|
||||
- {id: 34, cat: Other, desc: "Misc"}
|
||||
- {id: 132, cat: PC/Mobile-Android, desc: "Android/Misc"}
|
||||
- {id: 163, cat: TV/Documentary, desc: "Documentary/Misc"}
|
||||
- {id: 122, cat: Other, desc: "Other/Misc"}
|
||||
- {id: 121, cat: Other, desc: "Theater/Misc"}
|
||||
- {id: 214, cat: Other, desc: "Other/VIP"}
|
||||
|
||||
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: 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
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table:has(td.thead:contains("حدث خطأ"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href*="logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: takethanks.php
|
||||
method: post
|
||||
inputs:
|
||||
torrentid: "{{ re_replace .DownloadUri.PathAndQuery \".*download-torrent-(\\d+).*\" \"$1\"}}"
|
||||
|
||||
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 }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\W+", "*"]
|
||||
- name: re_replace
|
||||
args: ["^(.+)$", "*$1*"]
|
||||
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:has(span > a[href*="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td a[href*="/torrent-category-"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "torrent-category-(\\d+)\/"
|
||||
title:
|
||||
selector: td div.tooltip-target
|
||||
details:
|
||||
selector: span a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download-torrent-"]
|
||||
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.05
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# TS Special Edition v.7.4
|
||||
201
Prowlarr/config/Definitions/arenabg.yml
Normal file
201
Prowlarr/config/Definitions/arenabg.yml
Normal file
@ -0,0 +1,201 @@
|
||||
---
|
||||
id: arenabg
|
||||
name: ArenaBG
|
||||
description: "ArenaBG is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GENERAL"
|
||||
language: bg-BG
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://arenabg.com/
|
||||
legacylinks:
|
||||
- https://arenabg.ch/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 8, cat: Movies, desc: "Movies / ArenaBG.TV"}
|
||||
- {id: 9, cat: Movies/SD, desc: "Movies / XviD"}
|
||||
- {id: 10, cat: Movies/DVD, desc: "Movies / DVD-R"}
|
||||
- {id: 11, cat: Movies/HD, desc: "Movies / x264"}
|
||||
- {id: 12, cat: TV/Anime, desc: "Movies / Anime & Manga"}
|
||||
- {id: 13, cat: TV/Documentary, desc: "Movies / Documentaries"}
|
||||
- {id: 14, cat: Movies/BluRay, desc: "Movies / Blu-ray"}
|
||||
- {id: 15, cat: Movies, desc: "Movies / Weekend"}
|
||||
- {id: 16, cat: Movies, desc: "Movies / Boxset"}
|
||||
- {id: 17, cat: Movies/HD, desc: "Movies / x264 Boxset"}
|
||||
- {id: 18, cat: Movies/HD, desc: "Movies / HDTV"}
|
||||
- {id: 19, cat: Movies/3D, desc: "Movies / 3D"}
|
||||
- {id: 20, cat: Movies/HD, desc: "Movies / Movies HD"}
|
||||
- {id: 21, cat: Movies/HD, desc: "Movies / x265"}
|
||||
- {id: 22, cat: Movies/UHD, desc: "Movies / 4K"}
|
||||
- {id: 59, cat: Movies/HD, desc: "Movies / AV1"}
|
||||
- {id: 2, cat: TV, desc: "Series"}
|
||||
- {id: 23, cat: TV/HD, desc: "Series / TV Episodes HD"}
|
||||
- {id: 24, cat: TV, desc: "Series / TV Episodes"}
|
||||
- {id: 25, cat: TV, desc: "Series / TV Boxset"}
|
||||
- {id: 26, cat: TV/HD, desc: "Series / TV Boxset HD"}
|
||||
- {id: 60, cat: TV/UHD, desc: "Series / 4K"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
- {id: 27, cat: Audio/MP3, desc: "Music / MP3"}
|
||||
- {id: 28, cat: Audio/Video, desc: "Music / Video"}
|
||||
- {id: 29, cat: Audio/Lossless, desc: "Music / FLAC"}
|
||||
- {id: 30, cat: Audio, desc: "Music / DVD"}
|
||||
- {id: 31, cat: Audio/Lossless, desc: "Music / APE"}
|
||||
- {id: 32, cat: Audio, desc: "Music / DTS"}
|
||||
- {id: 33, cat: Audio, desc: "Music / WavePack"}
|
||||
- {id: 34, cat: Audio, desc: "Music / OST"}
|
||||
- {id: 4, cat: PC/Games, desc: "Games"}
|
||||
- {id: 35, cat: PC/Games, desc: "Games / PC ISO"}
|
||||
- {id: 36, cat: PC, desc: "Games / PC RIP"}
|
||||
- {id: 37, cat: Console, desc: "Games / PS2"}
|
||||
- {id: 38, cat: Console/PSP, desc: "Games / PSP"}
|
||||
- {id: 39, cat: Console/XBox, desc: "Games / XBOX"}
|
||||
- {id: 40, cat: Console/XBox 360, desc: "Games / XBOX-360"}
|
||||
- {id: 41, cat: Console/PS3, desc: "Games / PS3"}
|
||||
- {id: 42, cat: Console/Wii, desc: "Games / WII"}
|
||||
- {id: 43, cat: Console/NDS, desc: "Games / NDS"}
|
||||
- {id: 44, cat: Console/PS4, desc: "Games / PS4"}
|
||||
- {id: 5, cat: PC, desc: "Software"}
|
||||
- {id: 45, cat: PC/ISO, desc: "Software / PC ISO"}
|
||||
- {id: 46, cat: PC/Mobile-Other, desc: "Software / Smartphone"}
|
||||
- {id: 47, cat: PC, desc: "Software / Tutorial"}
|
||||
- {id: 48, cat: PC/Mac, desc: "Software / MAC"}
|
||||
- {id: 49, cat: PC/Mobile-Android, desc: "Software / Android"}
|
||||
- {id: 50, cat: PC/Mobile-iOS, desc: "Software / iOS"}
|
||||
- {id: 51, cat: PC/Mobile-Other, desc: "Software / WM7"}
|
||||
- {id: 6, cat: XXX, desc: "XXX"}
|
||||
- {id: 52, cat: XXX, desc: "XXX / Porn"}
|
||||
- {id: 53, cat: XXX, desc: "XXX / XXX HD"}
|
||||
- {id: 7, cat: Other, desc: "Misc"}
|
||||
- {id: 54, cat: Other/Misc, desc: "Misc / Other"}
|
||||
- {id: 55, cat: Books/EBook, desc: "Misc / e-Books"}
|
||||
- {id: 56, cat: Other, desc: "Misc / Banned"}
|
||||
- {id: 57, cat: TV/Sport, desc: "Misc / Sports"}
|
||||
- {id: 58, cat: PC/0day, desc: "Misc / 0-Day"}
|
||||
|
||||
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: downloadlink
|
||||
type: select
|
||||
label: Download link
|
||||
default: "magnet:?xt="
|
||||
options:
|
||||
"/en/torrents/download/?key=": ".torrent"
|
||||
"magnet:?xt=": "magnet"
|
||||
- name: downloadlink2
|
||||
type: select
|
||||
label: Download link (fallback)
|
||||
default: "/en/torrents/download/?key="
|
||||
options:
|
||||
"/en/torrents/download/?key=": ".torrent"
|
||||
"magnet:?xt=": "magnet"
|
||||
- name: info_download
|
||||
type: info
|
||||
label: About the Download links
|
||||
default: You can optionally set as a fallback an automatic alternate link, so if the .torrent download link fails your download will still be successful.
|
||||
|
||||
login:
|
||||
path: en/users/signin/
|
||||
method: form
|
||||
form: form[action="/en/users/signin/"]
|
||||
inputs:
|
||||
username_or_email: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[src="/captcha.php"]
|
||||
input: captcha
|
||||
error:
|
||||
- selector: div.row div#container div.alert
|
||||
test:
|
||||
path: en/
|
||||
selector: a[href="/en/users/logout/"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="{{ .Config.downloadlink }}"]
|
||||
attribute: href
|
||||
- selector: a[href^="{{ .Config.downloadlink2 }}"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://arenabg.com/en/torrents/?text=ice+s01e01
|
||||
- path: en/torrents/
|
||||
inputs:
|
||||
text: "{{ .Keywords }}"
|
||||
subtitles: ""
|
||||
audio: ""
|
||||
# does not support multi-cats so defaulting to all
|
||||
category: ""
|
||||
|
||||
rows:
|
||||
selector: tr:has(a[href^="/en/torrents/?category="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td.category a[href^="/en/torrents/?category="]:last-of-type
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
_english:
|
||||
selector: span[title="English"]
|
||||
attribute: title
|
||||
optional: true
|
||||
_bulgarian:
|
||||
selector: span[title="Bulgarian"]
|
||||
attribute: title
|
||||
optional: true
|
||||
title:
|
||||
selector: td.filename a.title
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result._bulgarian }} {{ .Result._bulgarian }}{{ else }}{{ end }}{{ if .Result._english }} {{ .Result._english }}{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: td.filename a.title
|
||||
attribute: href
|
||||
download:
|
||||
selector: td.filename a.title
|
||||
attribute: href
|
||||
poster:
|
||||
selector: td.filename a.title
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\"(.+?)\""
|
||||
- name: replace
|
||||
args: ["\\", ""]
|
||||
date:
|
||||
# 2 January 2021, Saturday @ 20:46
|
||||
selector: small
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(.+?, .+? @ [0-9]{2}:[0-9]{2})"
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "d MMMM yyyy, dddd @ HH:mm zzz"
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
seeders:
|
||||
selector: td:nth-child(4)
|
||||
leechers:
|
||||
selector: td:nth-child(5)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
194
Prowlarr/config/Definitions/asiancinema.yml
Normal file
194
Prowlarr/config/Definitions/asiancinema.yml
Normal file
@ -0,0 +1,194 @@
|
||||
---
|
||||
id: asiancinema
|
||||
name: AsianCinema
|
||||
description: "AsianCinema is a Private Tracker for ASIAN MOVIES / TV / MUSIC"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://eiga.moi/
|
||||
legacylinks:
|
||||
- https://asiancinema.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: 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: 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: "Your account will be automatically deleted from the database after 90 days of inactivity. If you return or visit the site with your account before that amount of time passes, then the inactivity timer will reset and your account will be fine for another 90 days.<br>Keep in mind that 'activity' is considered a visit to any page and that torrent traffic is not counted as account activity. In order to reset the inactivity timer all you have to do is visit a single page while logged in with your account. If your account is deleted for inactivity, please do not ask the site staff to un-delete it for you. The deletion is performed automatically by the server and, as such, your account cannot be recovered after it has been deleted."
|
||||
|
||||
login:
|
||||
# note APIKEY is broken on this 5.3.0 site
|
||||
path: login
|
||||
method: form
|
||||
form: form[action$="/login"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: on
|
||||
selectorinputs:
|
||||
_token:
|
||||
selector: input[name="_token"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: div#ERROR_COPY
|
||||
# test:
|
||||
# path: /
|
||||
# selector: a[href$="/logout"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents/filter
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
sorting: "{{ .Config.sort }}"
|
||||
direction: "{{ .Config.type }}"
|
||||
qty: 100
|
||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
# can support genre search but you need to know the id. &genre[]=10759 for Action & Adventure
|
||||
# does not have genre in results, they are on the details page.
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/categories/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "/categories/(\\d+)"
|
||||
title:
|
||||
selector: a.view-torrent
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
details:
|
||||
selector: a.view-torrent
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div.torrent-poster img
|
||||
attribute: src
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "https://images.weserv.nl/?url=" # for display on dashboard
|
||||
- name: append
|
||||
args: "&w=180&h=270" # for display on dashboard
|
||||
- name: replace
|
||||
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/600x900&w=180&h=270", ""]
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
grabs:
|
||||
selector: td:nth-last-child(1)
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
tmdbid:
|
||||
selector: a[href*="themoviedb.org/movie/"], a[href*="themoviedb.org/tv/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: time
|
||||
filters:
|
||||
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
|
||||
- name: re_replace
|
||||
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
|
||||
- name: re_replace
|
||||
args: ["(?i) (ay)", "month"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
|
||||
- name: re_replace
|
||||
args: ["(?i) (an)", "year"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(För |und)", ""] # Misc removals
|
||||
- name: timeago
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
|
||||
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
|
||||
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
|
||||
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
|
||||
i[class*="fa-star text-gold"]: 0 # Freeleech
|
||||
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
|
||||
i[class*="fa-globe text-green"]: 2 # Global Double Upload
|
||||
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.4
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# UNIT3D 5.3.0
|
||||
162
Prowlarr/config/Definitions/asiandvdclub.yml
Normal file
162
Prowlarr/config/Definitions/asiandvdclub.yml
Normal file
@ -0,0 +1,162 @@
|
||||
---
|
||||
id: asiandvdclub
|
||||
name: AsianDVDClub
|
||||
description: "AsianDVDClub (ADC) is a Private Torrent Tracker for ASIAN DVD and BluRay"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://asiandvdclub.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 3, cat: Movies, desc: "Japan"}
|
||||
- {id: 5, cat: Movies, desc: "China"}
|
||||
- {id: 4, cat: Movies, desc: "Korea"}
|
||||
- {id: 2, cat: Movies, desc: "Hong Kong"}
|
||||
- {id: 6, cat: Movies, desc: "Philippines"}
|
||||
- {id: 7, cat: Movies, desc: "Taiwan"}
|
||||
- {id: 8, cat: Movies, desc: "Thailand"}
|
||||
- {id: 9, cat: Movies, desc: "Vietnam"}
|
||||
- {id: 10, cat: Movies, desc: "Malaysia"}
|
||||
- {id: 11, cat: Movies, desc: "Other Asian"}
|
||||
- {id: 12, cat: Other, desc: "Miscellaneous"}
|
||||
- {id: 15, cat: TV, desc: "TV Series"}
|
||||
- {id: 16, cat: Audio, desc: "Music/OST"}
|
||||
|
||||
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: added
|
||||
options:
|
||||
added: created
|
||||
up: seeders
|
||||
size: size
|
||||
title: 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: "No special action required for red ribbons and permanent sponsors and above regardless of time, for others after 1 year of zero activity on tracker and/or website account will be closed."
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: post
|
||||
inputs:
|
||||
apple: evil
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: b:contains("Try again")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="/logout"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents/
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}countries[]={{.}}&{{end}}"
|
||||
searchbox: "{{ .Keywords }}"
|
||||
search: Search
|
||||
golden: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
column: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.torrenttable_helper > tbody > tr:has(img)
|
||||
|
||||
fields:
|
||||
category_optional:
|
||||
selector: img[class^="cat-"]
|
||||
attribute: class
|
||||
optional: true
|
||||
case:
|
||||
img.cat-anime: 1
|
||||
img.cat-hk: 2
|
||||
img.cat-japan: 3
|
||||
img.cat-korea: 4
|
||||
img.cat-china: 5
|
||||
img.cat-phil: 6
|
||||
img.cat-taiwan: 7
|
||||
img.cat-thai: 8
|
||||
img.cat-viet: 9
|
||||
img.cat-malaysia: 10
|
||||
img.cat-rest: 11
|
||||
img.cat-india: 11
|
||||
img.cat-misc: 12
|
||||
img.cat-pinku: 12
|
||||
img.cat-drama: 15
|
||||
img.cat-ost: 16
|
||||
category:
|
||||
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}12{{ end }}"
|
||||
title:
|
||||
selector: span[id]
|
||||
details:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["torrent", "download"]
|
||||
poster:
|
||||
selector: span[id]
|
||||
attribute: data-ot
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src='(.+?)'
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
date:
|
||||
selector: td:nth-child(9) span.small
|
||||
filters:
|
||||
- name: timeago
|
||||
grabs:
|
||||
selector: td:nth-child(10)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="images/golden.gif"]: 0
|
||||
img[src$="images/silver.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.5
|
||||
minimumseedtime:
|
||||
# 45 days (as seconds = 45 x 24 x 60 x 60)
|
||||
text: 3888000
|
||||
# Engine n/a
|
||||
168
Prowlarr/config/Definitions/at12project.yml
Normal file
168
Prowlarr/config/Definitions/at12project.yml
Normal file
@ -0,0 +1,168 @@
|
||||
---
|
||||
id: at12project
|
||||
name: AT-12 Project
|
||||
description: "AT-12 Project is a Private Torrent Tracker for JAPANESE MOVIES / TV"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://at-12project.cc/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 7, cat: Movies, desc: "MOVIE"}
|
||||
- {id: 8, cat: TV, desc: "TV"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: APIKey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://at-12project.cc/\" target=\"_blank\">AT-12 Project</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
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
inputs: {} # TODO: remove in v10
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.x.x)
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L476
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
headers:
|
||||
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title_optional:
|
||||
selector: name
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||
selector: created_at
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
uploadvolumefactor:
|
||||
# api returns False, True
|
||||
selector: double_upload
|
||||
case:
|
||||
False: 1 # normal
|
||||
True: 2 # double
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
title_filename:
|
||||
selector: "files[0].name"
|
||||
optional: true
|
||||
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 }}"
|
||||
# json UNIT3D 8.0.1
|
||||
170
Prowlarr/config/Definitions/audiences.yml
Normal file
170
Prowlarr/config/Definitions/audiences.yml
Normal file
@ -0,0 +1,170 @@
|
||||
---
|
||||
id: audiences
|
||||
name: Audiences
|
||||
description: "Audiences is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://audiences.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "电影/Movies"}
|
||||
- {id: 402, cat: TV, desc: "剧集/TV-Series"}
|
||||
- {id: 403, cat: TV, desc: "综艺/TV-Show"}
|
||||
- {id: 406, cat: TV/Documentary, desc: "纪录片/Documentary"}
|
||||
- {id: 408, cat: Audio, desc: "音乐/Music"}
|
||||
- {id: 404, cat: Audio/Audiobook, desc: "有声书/Audiobook"}
|
||||
- {id: 405, cat: Books, desc: "电子书/Ebook"}
|
||||
- {id: 407, cat: TV/Sport, desc: "体育/Sports"}
|
||||
- {id: 410, cat: PC/Games, desc: "游戏/Game"}
|
||||
- {id: 411, cat: PC/0day, desc: "软件/Software"}
|
||||
- {id: 410, cat: TV, desc: "学习/Study"}
|
||||
- {id: 409, cat: Other, desc: "其他/Other"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-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>Users with Extreme User and above will be retained forever</li><li>Starting from 20230701, the non-login ban time will be adjusted to:<ul><li>(Home Alone) User - 40 days</li><li>(Young and vigorous) Power User - 60 days</li><li>(Children of Jianghu) Elite User - 80 days</li><li>(Street Fighter) Crazy User - 100 days</li><li>(non-stop) Insane User - 120 days</li><li>(Outstanding Citizen) Veteran User - 180 days</li></ul></li><li>Users with no traffic (i.e. uploading/downloading data) If it is 0) If you do not log in for 7 consecutive days will be disabled</li><li>'Parked accounts' no longer enjoy the benefits of retaining accounts, and are also subject to the above rules.</li></ol>"
|
||||
|
||||
login:
|
||||
# using cookie method because site regularly disables login page for certain events during the year
|
||||
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 justdead
|
||||
incldead: 0
|
||||
# promotion: 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x 50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 2 title or imdb or douban url, 3 uploader, 4 imdb
|
||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}2{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 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:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td: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: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: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: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, img
|
||||
# NexusPHP Standard v1.5 Beta 4
|
||||
334
Prowlarr/config/Definitions/audionews.yml
Normal file
334
Prowlarr/config/Definitions/audionews.yml
Normal file
@ -0,0 +1,334 @@
|
||||
---
|
||||
id: audionews
|
||||
name: AudioNews
|
||||
description: "AudioNews (AN) is a Private Torrent Tracker for AUDIO SOFTWARE / SAMPLES / ETC"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://audionews.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 106, cat: PC/Mobile-Other, desc: "Mobile Apps"}
|
||||
- {id: 161, cat: PC/Mobile-iOS, desc: "Mobile Apps iOS"}
|
||||
- {id: 160, cat: PC/Mobile-Android, desc: "Mobile Apps Android"}
|
||||
- {id: 12, cat: PC, desc: "AUDIOAPPS"}
|
||||
- {id: 32, cat: PC, desc: "AUDIOAPPS DAW Apps"}
|
||||
- {id: 175, cat: PC, desc: "AUDIOAPPS Ableton"}
|
||||
- {id: 177, cat: PC, desc: "AUDIOAPPS Cakewalk"}
|
||||
- {id: 176, cat: PC, desc: "AUDIOAPPS REAPER"}
|
||||
- {id: 174, cat: PC, desc: "AUDIOAPPS Steinberg"}
|
||||
- {id: 34, cat: PC, desc: "AUDIOAPPS Mastering &Audio Editor Apps"}
|
||||
- {id: 37, cat: PC, desc: "AUDIOAPPS DJ Apps"}
|
||||
- {id: 13, cat: Audio, desc: "SAMPLE LIBRARIES"}
|
||||
- {id: 62, cat: Audio, desc: "SAMPLE LIBRARIES AMG"}
|
||||
- {id: 117, cat: Audio, desc: "SAMPLE LIBRARIES Bela D Media"}
|
||||
- {id: 118, cat: Audio, desc: "SAMPLE LIBRARIES Beta Monkey Music"}
|
||||
- {id: 51, cat: Audio, desc: "SAMPLE LIBRARIES Best Service"}
|
||||
- {id: 46, cat: Audio, desc: "SAMPLE LIBRARIES Big Fish"}
|
||||
- {id: 66, cat: Audio, desc: "SAMPLE LIBRARIES Bigga Giggas"}
|
||||
- {id: 122, cat: Audio, desc: "SAMPLE LIBRARIES Bluezone Corporation"}
|
||||
- {id: 123, cat: Audio, desc: "SAMPLE LIBRARIES Bunker 8"}
|
||||
- {id: 126, cat: Audio, desc: "SAMPLE LIBRARIES Cinematique Instruments"}
|
||||
- {id: 127, cat: Audio, desc: "SAMPLE LIBRARIES CineSamples"}
|
||||
- {id: 128, cat: Audio, desc: "SAMPLE LIBRARIES ClusterSound"}
|
||||
- {id: 121, cat: Audio, desc: "SAMPLE LIBRARIES Dan Dean"}
|
||||
- {id: 195, cat: Audio, desc: "SAMPLE LIBRARIES Diginoiz"}
|
||||
- {id: 52, cat: Audio, desc: "SAMPLE LIBRARIES Digital Juice"}
|
||||
- {id: 134, cat: Audio, desc: "SAMPLE LIBRARIES Digital-Redux"}
|
||||
- {id: 65, cat: Audio, desc: "SAMPLE LIBRARIES Digital Vision"}
|
||||
- {id: 59, cat: Audio, desc: "SAMPLE LIBRARIES Discovery Firm"}
|
||||
- {id: 61, cat: Audio, desc: "SAMPLE LIBRARIES Drumdrops"}
|
||||
- {id: 40, cat: Audio, desc: "SAMPLE LIBRARIES East West"}
|
||||
- {id: 74, cat: Audio, desc: "SAMPLE LIBRARIES Electronisounds"}
|
||||
- {id: 80, cat: Audio, desc: "SAMPLE LIBRARIES EMU format"}
|
||||
- {id: 82, cat: Audio, desc: "SAMPLE LIBRARIES ENSONIQ format"}
|
||||
- {id: 111, cat: Audio, desc: "SAMPLE LIBRARIES Fatloud"}
|
||||
- {id: 135, cat: Audio, desc: "SAMPLE LIBRARIES Fox Samples"}
|
||||
- {id: 41, cat: Audio, desc: "SAMPLE LIBRARIES FxPansion"}
|
||||
- {id: 130, cat: Audio, desc: "SAMPLE LIBRARIES Goldbaby"}
|
||||
- {id: 54, cat: Audio, desc: "SAMPLE LIBRARIES Hollywood Edge"}
|
||||
- {id: 64, cat: Audio, desc: "SAMPLE LIBRARIES IK Multimedia"}
|
||||
- {id: 75, cat: Audio, desc: "SAMPLE LIBRARIES Ilio"}
|
||||
- {id: 108, cat: Audio, desc: "SAMPLE LIBRARIES Industrial Strength Records"}
|
||||
- {id: 81, cat: Audio, desc: "SAMPLE LIBRARIES KURZWEIL format"}
|
||||
- {id: 91, cat: Audio, desc: "SAMPLE LIBRARIES Loopmasters"}
|
||||
- {id: 92, cat: Audio, desc: "SAMPLE LIBRARIES Masterbits"}
|
||||
- {id: 58, cat: Audio, desc: "SAMPLE LIBRARIES M-Audio"}
|
||||
- {id: 112, cat: Audio, desc: "SAMPLE LIBRARIES Mutekki"}
|
||||
- {id: 137, cat: Audio, desc: "SAMPLE LIBRARIES Mystic Kingz"}
|
||||
- {id: 47, cat: Audio, desc: "SAMPLE LIBRARIES Native Instruments"}
|
||||
- {id: 60, cat: Audio, desc: "SAMPLE LIBRARIES Nine Volt Audio"}
|
||||
- {id: 129, cat: Audio, desc: "SAMPLE LIBRARIES OrangeTree"}
|
||||
- {id: 203, cat: Audio, desc: "SAMPLE LIBRARIES Origin Sound"}
|
||||
- {id: 154, cat: Audio, desc: "SAMPLE LIBRARIES P5Audio"}
|
||||
- {id: 133, cat: Audio, desc: "SAMPLE LIBRARIES Peace Love Productions"}
|
||||
- {id: 140, cat: Audio, desc: "SAMPLE LIBRARIES Pound Audio"}
|
||||
- {id: 110, cat: Audio, desc: "SAMPLE LIBRARIES Prime Loops"}
|
||||
- {id: 180, cat: Audio, desc: "SAMPLE LIBRARIES Producer Loops"}
|
||||
- {id: 50, cat: Audio, desc: "SAMPLE LIBRARIES Prominy"}
|
||||
- {id: 171, cat: Audio, desc: "SAMPLE LIBRARIES Pulsed Records"}
|
||||
- {id: 132, cat: Audio, desc: "SAMPLE LIBRARIES Puremagnetik"}
|
||||
- {id: 49, cat: Audio, desc: "SAMPLE LIBRARIES Refills"}
|
||||
- {id: 99, cat: Audio, desc: "SAMPLE LIBRARIES reFX Nexus"}
|
||||
- {id: 125, cat: Audio, desc: "SAMPLE LIBRARIES Realsamples"}
|
||||
- {id: 83, cat: Audio, desc: "SAMPLE LIBRARIES ROLAND format"}
|
||||
- {id: 109, cat: Audio, desc: "SAMPLE LIBRARIES Sample Magic"}
|
||||
- {id: 136, cat: Audio, desc: "SAMPLE LIBRARIES Samplephonics"}
|
||||
- {id: 43, cat: Audio, desc: "SAMPLE LIBRARIES Sampletekk"}
|
||||
- {id: 48, cat: Audio, desc: "SAMPLE LIBRARIES Scarbee"}
|
||||
- {id: 178, cat: Audio, desc: "SAMPLE LIBRARIES SFX (Sound FX libraries)"}
|
||||
- {id: 90, cat: Audio, desc: "SAMPLE LIBRARIES Smartsound"}
|
||||
- {id: 172, cat: Audio, desc: "SAMPLE LIBRARIES Sonart Audio"}
|
||||
- {id: 116, cat: Audio, desc: "SAMPLE LIBRARIES SonicCouture"}
|
||||
- {id: 42, cat: Audio, desc: "SAMPLE LIBRARIES Sonic Implants"}
|
||||
- {id: 115, cat: Audio, desc: "SAMPLE LIBRARIES Sonic Reality"}
|
||||
- {id: 53, cat: Audio, desc: "SAMPLE LIBRARIES Sound Ideas"}
|
||||
- {id: 56, cat: Audio, desc: "SAMPLE LIBRARIES Sony"}
|
||||
- {id: 139, cat: Audio, desc: "SAMPLE LIBRARIES Sounds To Sample"}
|
||||
- {id: 76, cat: Audio, desc: "SAMPLE LIBRARIES Spectrasonics"}
|
||||
- {id: 162, cat: Audio, desc: "SAMPLE LIBRARIES Spitfire Audio"}
|
||||
- {id: 193, cat: Audio, desc: "SAMPLE LIBRARIES studiolinked"}
|
||||
- {id: 68, cat: Audio, desc: "SAMPLE LIBRARIES Synthogy"}
|
||||
- {id: 179, cat: Audio, desc: "SAMPLE LIBRARIES The Loop Loft"}
|
||||
- {id: 96, cat: Audio, desc: "SAMPLE LIBRARIES Tonehammer, 8dio, SoundIron"}
|
||||
- {id: 67, cat: Audio, desc: "SAMPLE LIBRARIES Toontrack, Drumkit From Hell, DFHS"}
|
||||
- {id: 69, cat: Audio, desc: "SAMPLE LIBRARIES Ueberschall"}
|
||||
- {id: 157, cat: Audio, desc: "SAMPLE LIBRARIES USB Soundscan"}
|
||||
- {id: 120, cat: Audio, desc: "SAMPLE LIBRARIES Valentino Production"}
|
||||
- {id: 173, cat: Audio, desc: "SAMPLE LIBRARIES vandalism sounds"}
|
||||
- {id: 170, cat: Audio, desc: "SAMPLE LIBRARIES Vanilla Groove Studios"}
|
||||
- {id: 119, cat: Audio, desc: "SAMPLE LIBRARIES Vengeance Sound"}
|
||||
- {id: 114, cat: Audio, desc: "SAMPLE LIBRARIES Video Helper"}
|
||||
- {id: 44, cat: Audio, desc: "SAMPLE LIBRARIES Vienna"}
|
||||
- {id: 77, cat: Audio, desc: "SAMPLE LIBRARIES Vipzone"}
|
||||
- {id: 131, cat: Audio, desc: "SAMPLE LIBRARIES Wavesfactory"}
|
||||
- {id: 89, cat: Audio, desc: "SAMPLE LIBRARIES West one"}
|
||||
- {id: 113, cat: Audio, desc: "SAMPLE LIBRARIES Wusik.com"}
|
||||
- {id: 78, cat: Audio, desc: "SAMPLE LIBRARIES Yellowtools"}
|
||||
- {id: 138, cat: Audio, desc: "SAMPLE LIBRARIES YnK.Audio"}
|
||||
- {id: 100, cat: Audio, desc: "SAMPLE LIBRARIES Zenhiser"}
|
||||
- {id: 57, cat: Audio, desc: "SAMPLE LIBRARIES Zero-G"}
|
||||
- {id: 15, cat: PC, desc: "VSTi + FX"}
|
||||
- {id: 72, cat: PC, desc: "VSTi + FX FX"}
|
||||
- {id: 181, cat: PC, desc: "VSTi + FX VSTi"}
|
||||
- {id: 18, cat: PC/Mac, desc: "MAC"}
|
||||
- {id: 186, cat: PC/Mac, desc: "MAC Apps"}
|
||||
- {id: 188, cat: PC/Mac, desc: "MAC FX"}
|
||||
- {id: 189, cat: PC/Mac, desc: "MAC Instruments"}
|
||||
- {id: 190, cat: PC/Mac, desc: "MAC TUTORIAL"}
|
||||
- {id: 187, cat: PC/Mac, desc: "MAC Samples"}
|
||||
- {id: 19, cat: Other, desc: "MISC"}
|
||||
- {id: 185, cat: Other, desc: "MISC Utilities"}
|
||||
- {id: 84, cat: Books, desc: "SHEET MUSIC"}
|
||||
- {id: 87, cat: Books, desc: "SHEET MUSIC Full Score"}
|
||||
- {id: 86, cat: Books, desc: "SHEET MUSIC Guitar"}
|
||||
- {id: 88, cat: Books, desc: "SHEET MUSIC Other instruments"}
|
||||
- {id: 85, cat: Books, desc: "SHEET MUSIC Piano"}
|
||||
- {id: 20, cat: Books, desc: "LEARNING"}
|
||||
- {id: 197, cat: Books, desc: "LEARNING Academy.FM"}
|
||||
- {id: 183, cat: Books, desc: "LEARNING ADSR"}
|
||||
- {id: 141, cat: Books, desc: "LEARNING Alfred"}
|
||||
- {id: 142, cat: Books, desc: "LEARNING Ask Video"}
|
||||
- {id: 27, cat: Books, desc: "LEARNING Books"}
|
||||
- {id: 143, cat: Books, desc: "LEARNING FaderPro"}
|
||||
- {id: 144, cat: Books, desc: "LEARNING Groove3"}
|
||||
- {id: 145, cat: Books, desc: "LEARNING Hal Leonard"}
|
||||
- {id: 105, cat: Books, desc: "LEARNING Hardware manuals"}
|
||||
- {id: 196, cat: Books, desc: "LEARNING Jam Track Central"}
|
||||
- {id: 146, cat: Books, desc: "LEARNING Lick Library"}
|
||||
- {id: 147, cat: Books, desc: "LEARNING Lynda.com"}
|
||||
- {id: 148, cat: Books, desc: "LEARNING MacProVideo"}
|
||||
- {id: 101, cat: Books, desc: "LEARNING Magazines"}
|
||||
- {id: 93, cat: Books, desc: "LEARNING Music Video (Concerts, DVD, DVDrip)"}
|
||||
- {id: 199, cat: Books, desc: "LEARNING PUREMIX"}
|
||||
- {id: 149, cat: Books, desc: "LEARNING Riff Interactive"}
|
||||
- {id: 194, cat: Books, desc: "LEARNING SkillShare"}
|
||||
- {id: 150, cat: Books, desc: "LEARNING Sonic Academy"}
|
||||
- {id: 151, cat: Books, desc: "LEARNING Total training"}
|
||||
- {id: 152, cat: Books, desc: "LEARNING TrueFire"}
|
||||
- {id: 182, cat: Books, desc: "LEARNING Udemy"}
|
||||
- {id: 28, cat: Books, desc: "LEARNING Video"}
|
||||
- {id: 153, cat: Books, desc: "LEARNING VTC"}
|
||||
- {id: 29, cat: Audio/Other, desc: "PRESETS"}
|
||||
- {id: 167, cat: Audio/Other, desc: "PRESETS Ableton Live"}
|
||||
- {id: 184, cat: Audio/Other, desc: "PRESETS Impulse Responses"}
|
||||
- {id: 166, cat: Audio/Other, desc: "PRESETS Massive"}
|
||||
- {id: 163, cat: Audio/Other, desc: "PRESETS Nebula"}
|
||||
- {id: 200, cat: Audio/Other, desc: "PRESETS Omnisphere"}
|
||||
- {id: 165, cat: Audio/Other, desc: "PRESETS Reaktor"}
|
||||
- {id: 201, cat: Audio/Other, desc: "PRESETS Xfer Serum"}
|
||||
- {id: 164, cat: Audio/Other, desc: "PRESETS Sylenth"}
|
||||
- {id: 168, cat: Audio/Other, desc: "PRESETS Toontrack"}
|
||||
- {id: 239, cat: Books, desc: "Service Manuals"}
|
||||
- {id: 21, cat: Other, desc: "UPDATE"}
|
||||
- {id: 222, cat: Other, desc: "GFXNEWS 3D"}
|
||||
- {id: 235, cat: Other, desc: "GFXNEWS APPS ANDROID & IOS"}
|
||||
- {id: 207, cat: Other, desc: "GFXNEWS APPS WIN"}
|
||||
- {id: 215, cat: Other, desc: "GFXNEWS APPS LINUX"}
|
||||
- {id: 214, cat: Other, desc: "GFXNEWS APPS MAC"}
|
||||
- {id: 211, cat: Other, desc: "GFXNEWS BOOKS"}
|
||||
- {id: 224, cat: Other, desc: "GFXNEWS CAD/CAM"}
|
||||
- {id: 237, cat: Other, desc: "GFXNEWS DAZ3D"}
|
||||
- {id: 212, cat: Other, desc: "GFXNEWS FONTS"}
|
||||
- {id: 213, cat: Other, desc: "GFXNEWS FOOTAGE"}
|
||||
- {id: 233, cat: Other, desc: "GFXNEWS GAME DEVELOPMENT"}
|
||||
- {id: 226, cat: Other, desc: "GFXNEWS MAGAZINE"}
|
||||
- {id: 234, cat: Other, desc: "GFXNEWS MATERIAL"}
|
||||
- {id: 243, cat: Other, desc: "GFXNEWS OTHER GRAPHICS"}
|
||||
- {id: 244, cat: Other, desc: "GFXNEWS OTHER GRAPHICS Zbrush, Substance tools"}
|
||||
- {id: 216, cat: Other, desc: "GFXNEWS PHOTOSTOCK"}
|
||||
- {id: 220, cat: Other, desc: "GFXNEWS PHOTOGRAPHY - ART"}
|
||||
- {id: 227, cat: Other, desc: "GFXNEWS 2D Graphics"}
|
||||
- {id: 250, cat: Other, desc: "GFXNEWS 2D Graphics Effects"}
|
||||
- {id: 228, cat: Other, desc: "GFXNEWS 2D Graphics Actions, Pattern & Styles"}
|
||||
- {id: 229, cat: Other, desc: "GFXNEWS 2D Graphics Background & PSD Source"}
|
||||
- {id: 230, cat: Other, desc: "GFXNEWS 2D Graphics Brushes & Gradient"}
|
||||
- {id: 246, cat: Other, desc: "GFXNEWS 2D Graphics Mockup"}
|
||||
- {id: 247, cat: Other, desc: "GFXNEWS 2D Graphics Overlays"}
|
||||
- {id: 249, cat: Other, desc: "GFXNEWS 2D Graphics Preset"}
|
||||
- {id: 231, cat: Other, desc: "GFXNEWS 2D Graphics Toolkits, Papers & Objects"}
|
||||
- {id: 245, cat: Other, desc: "GFXNEWS GFX Plugins"}
|
||||
- {id: 210, cat: Other, desc: "GFXNEWS PLUGINS WIN"}
|
||||
- {id: 223, cat: Other, desc: "GFXNEWS PLUGINS MAC"}
|
||||
- {id: 225, cat: Other, desc: "GFXNEWS PLUGINS LINUX"}
|
||||
- {id: 217, cat: Other, desc: "GFXNEWS SCRIPTS - WEB PROGRAMMING"}
|
||||
- {id: 218, cat: Other, desc: "GFXNEWS TEMPLATES"}
|
||||
- {id: 232, cat: Other, desc: "GFXNEWS TEXTURES"}
|
||||
- {id: 219, cat: Other, desc: "GFXNEWS TUTORIALS"}
|
||||
- {id: 238, cat: Other, desc: "GFXNEWS VECTOR GRAPHICS"}
|
||||
- {id: 221, cat: Other, desc: "GFXNEWS VIDEO PRODUCTION"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
book-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: 1
|
||||
options:
|
||||
1: created
|
||||
10: seeders
|
||||
7: size
|
||||
2: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: 2
|
||||
options:
|
||||
2: desc
|
||||
1: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "You must stay active on the site...<ol><li>Any New users that have no stats for one month will have their account deleted</li><li>Any disabled accounts will be deleted after 6 months</li><li>Any accounts inactive for more than 6 months will be deleted</li><li>Donor accounts will be left untouched.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: post
|
||||
inputs:
|
||||
"login_username": "{{ .Config.username }}"
|
||||
"login_password": "{{ .Config.password }}"
|
||||
autologin: 1
|
||||
login: "Log in"
|
||||
redirect: "/"
|
||||
error:
|
||||
- selector: table.error
|
||||
message:
|
||||
selector: table.error tr td div.msg
|
||||
test:
|
||||
path: /
|
||||
selector: li a[href^="./login.php?logout=1"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: tracker.php
|
||||
method: post
|
||||
inputs:
|
||||
$raw: "{{ if .Categories }}{{ range .Categories }}f[]={{.}}&{{end}}{{ else }}f[]=-1{{ end }}"
|
||||
prev_allw: 1
|
||||
prev_a: 0
|
||||
prev_dla: 0
|
||||
prev_dlc: 0
|
||||
prev_dld: 0
|
||||
prev_dlw: 0
|
||||
prev_my: 0
|
||||
prev_new: 0
|
||||
prev_sd: 0
|
||||
prev_da: 1
|
||||
prev_dc: 0
|
||||
prev_df: 1
|
||||
prev_ds: 0
|
||||
pre_tor_type: 0
|
||||
prev_date_from: ""
|
||||
prev_date_to: ""
|
||||
prev_hide_rereg: 0
|
||||
o: "{{ .Config.sort }}"
|
||||
s: "{{ .Config.type }}"
|
||||
df: 1
|
||||
da: 1
|
||||
nm: "{{ .Keywords }}"
|
||||
pn: ""
|
||||
submit: "Search"
|
||||
|
||||
rows:
|
||||
selector: table.forumline > tbody > tr:has(a[href*="/dl.php?id="])
|
||||
dateheaders:
|
||||
selector: td[colspan="20"] > strong
|
||||
filters:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "MM-dd-yyyy zzz"
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: td a[href*="/viewtopic.php?t="]
|
||||
details:
|
||||
selector: td a[href*="/viewtopic.php?t="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: td a[href*="/dl.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: td a[href*="/tracker.php?f="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: f
|
||||
size:
|
||||
selector: td:contains(\00a0GB), td:contains(\00a0MB), td:contains(\00a0KB), td:contains(\00a0B)
|
||||
optional: true
|
||||
default: 0
|
||||
seeders:
|
||||
selector: td[title="Seeders"]
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: td[title="Leechers"]
|
||||
optional: true
|
||||
default: 0
|
||||
grabs:
|
||||
selector: td[title^="Replies:"]
|
||||
optional: true
|
||||
default: 0
|
||||
description:
|
||||
case:
|
||||
span.tor-approved: Verified
|
||||
span.tor-not-approved: Unverified
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.8
|
||||
# engine n/a
|
||||
92
Prowlarr/config/Definitions/aussierules.yml
Normal file
92
Prowlarr/config/Definitions/aussierules.yml
Normal file
@ -0,0 +1,92 @@
|
||||
---
|
||||
id: aussierules
|
||||
name: Aussierul.es
|
||||
description: "AussieRul.es is a Private Torrent Tracker for AUSTRALIAN RULES FOOTBALL"
|
||||
language: en-AU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://aussierul.es/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: TV/Sport
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: type
|
||||
label: Search Type
|
||||
type: select
|
||||
default: t_name
|
||||
options:
|
||||
t_name: Torrent Name
|
||||
t_description: Torrent Description
|
||||
t_both: Name & Description
|
||||
t_uploader: Uploader
|
||||
t_genre: IMDB Genre
|
||||
- name: dead
|
||||
label: Include Dead Torrents
|
||||
type: select
|
||||
default: no
|
||||
options:
|
||||
yes: Yes
|
||||
no: No
|
||||
|
||||
login:
|
||||
method: form
|
||||
form: form
|
||||
path: login.php
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table:contains("An error has occured!")
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href*="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
search_type: "{{ .Config.type }}"
|
||||
include_dead_torrents: "{{ .Config.dead }}"
|
||||
keywords: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:not(:first-child)
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
title:
|
||||
selector: td:nth-child(2) > div:nth-child(1) > a > strong
|
||||
details:
|
||||
selector: td:nth-child(2) > div:nth-child(1) > a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="download.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
# 27-03-2021 18:34
|
||||
selector: td:nth-child(2) > div:nth-child(2)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "d-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)
|
||||
# TS Special Edition v.7.4
|
||||
157
Prowlarr/config/Definitions/azusa.yml
Normal file
157
Prowlarr/config/Definitions/azusa.yml
Normal file
@ -0,0 +1,157 @@
|
||||
---
|
||||
id: azusa
|
||||
name: Azusa (梓喵)
|
||||
description: "Azusa (梓喵) is a CHINESE Private Torrent Tracker focusing on COMICS"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://azusa.wiki/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 404, cat: PC/Games, desc: "Game"}
|
||||
- {id: 402, cat: Books/Comics, desc: "Comic"}
|
||||
- {id: 403, cat: Books/EBook, desc: "Light Novel"}
|
||||
- {id: 407, cat: Other, desc: "CG"}
|
||||
- {id: 409, cat: Audio, desc: "Music"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
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.
|
||||
|
||||
login:
|
||||
# using cookie method because site regularly disables login page for certain events during the year
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?csrf_token="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 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: 0
|
||||
# 0 AND, 1 OR, 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
|
||||
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: a[href$="dllist=1#seeders"]
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: a[href$="dllist=1#leechers"]
|
||||
optional: true
|
||||
default: 0
|
||||
grabs:
|
||||
selector: a[href^="viewsnatches.php?id="]
|
||||
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
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.7.20 2022-08-05 (custom)
|
||||
186
Prowlarr/config/Definitions/backups.yml
Normal file
186
Prowlarr/config/Definitions/backups.yml
Normal file
@ -0,0 +1,186 @@
|
||||
---
|
||||
id: backups
|
||||
name: Back-ups
|
||||
description: "Back-Ups is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://back-ups.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 15, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 35, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 51, cat: PC/Mac, desc: "Apple"}
|
||||
- {id: 3, cat: PC, desc: "Apps"}
|
||||
- {id: 64, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: 71, cat: Console, desc: "Batocera"}
|
||||
- {id: 4, cat: Movies/BluRay, desc: "Blu-Ray"}
|
||||
- {id: 86, cat: Console, desc: "Chinese Systems"}
|
||||
- {id: 22, cat: Console, desc: "CoinOps"}
|
||||
- {id: 42, cat: Console, desc: "CoinOPS Official"}
|
||||
- {id: 65, cat: Console, desc: "CoinOps Unofficial"}
|
||||
- {id: 63, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: 60, cat: Console, desc: "Core"}
|
||||
- {id: 72, cat: Console, desc: "CORE Community"}
|
||||
- {id: 44, cat: Console, desc: "CP78"}
|
||||
- {id: 16, cat: TV/Documentary, desc: "Docu"}
|
||||
- {id: 41, cat: Console, desc: "Dragon"}
|
||||
- {id: 5, cat: Books, desc: "EBooks"}
|
||||
- {id: 80, cat: PC, desc: "Emulation Media"}
|
||||
- {id: 61, cat: PC, desc: "emuxtras"}
|
||||
- {id: 69, cat: TV, desc: "Entertainment"}
|
||||
- {id: 84, cat: TV, desc: "GOG DRM FREE"}
|
||||
- {id: 77, cat: PC, desc: "Hyperspin"}
|
||||
- {id: 34, cat: TV, desc: "Kids"}
|
||||
- {id: 43, cat: Console, desc: "LB No Intro"}
|
||||
- {id: 85, cat: PC, desc: "MAME Rom Sets"}
|
||||
- {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
|
||||
- {id: 32, cat: Movies, desc: "Movie Pack"}
|
||||
- {id: 6, cat: Movies, desc: "Movies/XVID"}
|
||||
- {id: 82, cat: PC, desc: "MS-DOS"}
|
||||
- {id: 7, cat: Audio, desc: "Music"}
|
||||
- {id: 31, cat: Console, desc: "Nintendo"}
|
||||
- {id: 59, cat: Console, desc: "P-R-U"}
|
||||
- {id: 8, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 50, cat: Console, desc: "PlayBox"}
|
||||
- {id: 87, cat: Console, desc: "Playnite"}
|
||||
- {id: 30, cat: Console, desc: "Playstation"}
|
||||
- {id: 62, cat: PC, desc: "RaspberryPi"}
|
||||
- {id: 83, cat: PC, desc: "Retro eXo"}
|
||||
- {id: 56, cat: PC, desc: "Retro Minis"}
|
||||
- {id: 81, cat: PC, desc: "Retro Scene Releases"}
|
||||
- {id: 67, cat: PC, desc: "Retrobat"}
|
||||
- {id: 88, cat: PC, desc: "RetroFE"}
|
||||
- {id: 79, cat: PC, desc: "RGB-Pi"}
|
||||
- {id: 76, cat: Console, desc: "RGS"}
|
||||
- {id: 27, cat: PC, desc: "Roms and Emulators"}
|
||||
- {id: 68, cat: PC, desc: "Schmoomer's"}
|
||||
- {id: 57, cat: Console, desc: "Sega"}
|
||||
- {id: 74, cat: PC, desc: "Sleyk/SGC"}
|
||||
- {id: 40, cat: TV, desc: "Soaps"}
|
||||
- {id: 29, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 9, cat: TV, desc: "TV-Boxsets"}
|
||||
- {id: 11, cat: TV, desc: "TV/x264"}
|
||||
- {id: 10, cat: TV, desc: "TV/Xvid"}
|
||||
- {id: 75, cat: Audio, desc: "Video Game Music"}
|
||||
- {id: 73, cat: Console, desc: "Wolfanoz"}
|
||||
- {id: 14, cat: TV/Sport, desc: "WWE"}
|
||||
- {id: 26, cat: Console, desc: "Xbox"}
|
||||
- {id: 12, cat: Console, desc: "XBOX360"}
|
||||
- {id: 23, cat: XXX, desc: "xxx18+"}
|
||||
|
||||
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_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>40</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "To keep records updated regularly, 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: td:contains("remaining tries")
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href*="/logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
keywordsfilters:
|
||||
# remove words <= 3 characters and surrounding special characters
|
||||
- name: re_replace
|
||||
args: ["(?:^|\\s)[_\\+\\/\\.\\-\\(\\)]*[\\S]{0,3}[_\\+\\/\\.\\-\\(\\)]*(?:\\s|$)", " "]
|
||||
inputs:
|
||||
do: search
|
||||
keywords: "{{ .Keywords }}"
|
||||
# t_name, t_description, t_both, t_uploader, t_genre
|
||||
search_type: t_name
|
||||
category: 0 # multi cat search not supported
|
||||
# yes, no
|
||||
include_dead_torrents: yes
|
||||
# sort is done via do=quick_sort, and freeleech sorting is part of that set
|
||||
|
||||
rows:
|
||||
selector: "table#sortabletable > tbody > tr:has(a[href*=\"/details.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"freedownload.gif\"]){{ else }}{{ end }}"
|
||||
filters:
|
||||
- name: andmatch
|
||||
args: 66
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/browse.php?category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title_default:
|
||||
selector: a[href*="/details.php?id="]
|
||||
title:
|
||||
selector: div.tooltip-content > div
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download.php?id="]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
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
|
||||
attribute: src
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="freedownload.gif"]: 0
|
||||
img[src$="silverdownload.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src$="x2.gif"]: 2
|
||||
"*": 1
|
||||
date:
|
||||
selector: "td:nth-child(2) > div:has(span[style=\"float: right;\"])"
|
||||
remove: span
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm zzz"
|
||||
# TS Special Edition v.8.0
|
||||
104
Prowlarr/config/Definitions/badasstorrents.yml
Normal file
104
Prowlarr/config/Definitions/badasstorrents.yml
Normal file
@ -0,0 +1,104 @@
|
||||
---
|
||||
id: badasstorrents
|
||||
name: Badass Torrents
|
||||
description: "Badass Torrents is a Public torrent site for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 5
|
||||
links:
|
||||
- https://badasstorrents.com/
|
||||
legacylinks:
|
||||
- https://badasstorrents.mrunblock.bond/
|
||||
- https://badasstorrents.nocensor.cloud/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
Anime: TV/Anime
|
||||
Apps: PC
|
||||
Books: Books
|
||||
Games: PC/Games
|
||||
Movies: Movies
|
||||
Music: Audio
|
||||
Other: Other
|
||||
TV: TV
|
||||
XXX: XXX
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q, album, artist]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: downloadlink
|
||||
type: select
|
||||
label: Download link
|
||||
default: "magnet:?xt="
|
||||
options:
|
||||
"/d/": ".torrent"
|
||||
"magnet:?xt=": "magnet"
|
||||
- name: downloadlink2
|
||||
type: select
|
||||
label: Download link (fallback)
|
||||
default: "/d/"
|
||||
options:
|
||||
"/d/": ".torrent"
|
||||
"magnet:?xt=": "magnet"
|
||||
- name: info_download
|
||||
type: info
|
||||
label: About the Download links
|
||||
default: You can optionally set as a fallback an automatic alternate link, so if the .torrent download link fails your download will still be successful.
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href*="{{ .Config.downloadlink }}"]
|
||||
attribute: href
|
||||
- selector: a[href*="{{ .Config.downloadlink2 }}"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# search has 10 torrents per page, latest has 100 torrents per page.
|
||||
- path: "{{ if .Keywords }}s/{{ .Keywords }}{{ else }}latest.html{{ end }}"
|
||||
- path: "{{ if .Keywords }}s/{{ .Keywords }}&page=10{{ else }}{{ end }}"
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[\\s]+", "-"]
|
||||
- name: tolower
|
||||
|
||||
rows:
|
||||
selector: table.table-hover > tbody > tr
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="/c/"]
|
||||
title:
|
||||
selector: a[href*="/v/"]
|
||||
details:
|
||||
selector: a[href*="/v/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/v/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(3)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
81
Prowlarr/config/Definitions/bangumi-moe.yml
Normal file
81
Prowlarr/config/Definitions/bangumi-moe.yml
Normal file
@ -0,0 +1,81 @@
|
||||
---
|
||||
id: bangumi-moe
|
||||
name: Bangumi Moe
|
||||
description: "Bangumi Moe is a Public torrent site for ANIME"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 3
|
||||
links:
|
||||
- https://bangumi.moe/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 549ef207fe682f7549f1ea90, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 54967e14ff43b99e284d0bf7, cat: TV/Anime, desc: "Anime Pack"}
|
||||
- {id: 549cc9369310bc7d04cddf9f, cat: Movies, desc: "Anime Movie"}
|
||||
- {id: 549eef6ffe682f7549f1ea8b, cat: Audio, desc: "Music"}
|
||||
- {id: 549eefebfe682f7549f1ea8c, cat: Books/Comics, desc: "Comic"}
|
||||
- {id: 549ef015fe682f7549f1ea8d, cat: Console, desc: "Game"}
|
||||
- {id: 549ef250fe682f7549f1ea91, cat: Other, desc: "Other"}
|
||||
- {id: 549ff1db30bcfc225bf9e607, cat: Console, desc: "Dorama"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://bangumi.moe/api/torrent/latest
|
||||
# https://bangumi.moe/api/v2/torrent/search
|
||||
- path: "{{ if .Keywords }}api/v2/torrent/search{{ else }}api/torrent/latest{{ end }}"
|
||||
method: "{{ if .Keywords }}post{{ else }}get{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
# $raw: "{{ if .Keywords }}query={{ .Keywords }}{{ else }}{{ end }}"
|
||||
query: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: torrents
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_tag_id
|
||||
title:
|
||||
selector: title
|
||||
details:
|
||||
text: /
|
||||
infohash:
|
||||
selector: infoHash
|
||||
poster:
|
||||
selector: introduction
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=\\\"(.+?)\\\""
|
||||
description:
|
||||
selector: category_tag.locale.en
|
||||
date:
|
||||
# 2021-10-19T06:10:15.772Z
|
||||
selector: publish_time
|
||||
size:
|
||||
selector: size
|
||||
optional: true
|
||||
default: 0 B
|
||||
grabs:
|
||||
selector: downloads
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# json api v2
|
||||
171
Prowlarr/config/Definitions/beitai.yml
Normal file
171
Prowlarr/config/Definitions/beitai.yml
Normal file
@ -0,0 +1,171 @@
|
||||
---
|
||||
id: beitai
|
||||
name: BeiTai (备胎)
|
||||
description: "BeiTai (备胎) is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.beitai.pt/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/剧集"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐MV"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports/运体"}
|
||||
- {id: 409, cat: Other, desc: "Misc/其他"}
|
||||
- {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
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: 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 be deleted if they do not log in for 150 consecutive days</li><li>Users with no traffic (ie, upload/download data are both 0) will be deleted if they do not log in for 100 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
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 .Query.DoubanID }}/{{ .Query.DoubanID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}{{ .Keywords }}{{ 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 (4 does not appear to work).
|
||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: div.imdb_100 > a
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td: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: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:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td: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
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP Standard v1.5 Beta 4
|
||||
159
Prowlarr/config/Definitions/beload.yml
Normal file
159
Prowlarr/config/Definitions/beload.yml
Normal file
@ -0,0 +1,159 @@
|
||||
---
|
||||
id: beload
|
||||
name: Beload
|
||||
description: "Beload is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://beload.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 27, cat: Movies/DVD, desc: "Animáció/DVD/Eng"}
|
||||
- {id: 26, cat: Movies/DVD, desc: "Animáció/DVD/Hun"}
|
||||
- {id: 25, cat: Movies/HD, desc: "Animáció/HD/Eng"}
|
||||
- {id: 24, cat: Movies/HD, desc: "Animáció/HD/Hun"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Animáció/SD/Hun"}
|
||||
- {id: 12, cat: Movies/SD, desc: "Film/Cam/Eng"}
|
||||
- {id: 11, cat: Movies/SD, desc: "Film/Cam/Hun"}
|
||||
- {id: 4, cat: Movies/DVD, desc: "Film/DVD-R/Eng"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "Film/DVD-R/Hun"}
|
||||
- {id: 6, cat: Movies/DVD, desc: "Film/DVD9/Eng"}
|
||||
- {id: 5, cat: Movies/DVD, desc: "Film/DVD9/Hun"}
|
||||
- {id: 2, cat: Movies/Foreign, desc: "Film/HD/Eng"}
|
||||
- {id: 1, cat: Movies/HD, desc: "Film/HD/Hun"}
|
||||
- {id: 8, cat: Movies/Foreign, desc: "Film/SD/Eng"}
|
||||
- {id: 7, cat: Movies/SD, desc: "Film/SD/Hun"}
|
||||
- {id: 10, cat: Movies/Foreign, desc: "Film/XviD/Eng"}
|
||||
- {id: 9, cat: Movies/SD, desc: "Film/XviD/Hun"}
|
||||
- {id: 31, cat: Audio/Audiobook, desc: "Hangoskönyv"}
|
||||
- {id: 42, cat: PC/Games, desc: "Játék/ISO"}
|
||||
- {id: 43, cat: PC/Games, desc: "Játék/RIP"}
|
||||
- {id: 30, cat: Books/Foreign, desc: "Könyv/Eng"}
|
||||
- {id: 29, cat: Books/EBook, desc: "Könyv/Hun"}
|
||||
- {id: 44, cat: PC/ISO, desc: "Program/ISO"}
|
||||
- {id: 45, cat: PC, desc: "Program/RIP"}
|
||||
- {id: 14, cat: TV/Foreign, desc: "Sorozat/HD/Eng"}
|
||||
- {id: 13, cat: TV/HD, desc: "Sorozat/HD/Hun"}
|
||||
- {id: 16, cat: TV/Foreign, desc: "Sorozat/SD/Eng"}
|
||||
- {id: 15, cat: TV/SD, desc: "Sorozat/SD/hun"}
|
||||
- {id: 38, cat: XXX/SD, desc: "XXX/HD"}
|
||||
- {id: 41, cat: XXX/ImageSet, desc: "XXX/Kép"}
|
||||
- {id: 40, cat: XXX/SD, desc: "XXX/SD"}
|
||||
- {id: 20, cat: Audio/Foreign, desc: "Zene/Mp3/Eng"}
|
||||
- {id: 19, cat: Audio/MP3, desc: "Zene/Mp3/Hun"}
|
||||
|
||||
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
|
||||
|
||||
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 both, 2 dead, 3 my uploa, 4 waiting for seeds
|
||||
incldead: 1
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# does not support imdbid searches
|
||||
|
||||
rows:
|
||||
selector: "div.torrents-container > table > tbody > tr > td.text > table > tbody > tr:has(a[href^=\"details.php?id=\"]):not(:has(a[href=\"browse.php?cat=0\"]))"
|
||||
after: 1
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="][title]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a.preview
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-last-child(6) > a
|
||||
attribute: title
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
size:
|
||||
selector: td:nth-last-child(5) b
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
description:
|
||||
case:
|
||||
i.fa-check: Verified
|
||||
i.fa-question: Unverified
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"span[style=\"font-size: 10px;\"]:contains(\"0x\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"span[style=\"font-size: 10px;\"]:contains(\"2x\")": 2
|
||||
"span[style=\"font-size: 10px;\"]:contains(\"4x\")": 4
|
||||
"*": 1
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# engine n/a
|
||||
120
Prowlarr/config/Definitions/best-torrents.yml
Normal file
120
Prowlarr/config/Definitions/best-torrents.yml
Normal file
@ -0,0 +1,120 @@
|
||||
---
|
||||
id: best-torrents
|
||||
name: Best-Torrents
|
||||
description: "Best-Torrents is a POLISH Semi-Private PAY2DL Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: pl-PL
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://best-torrents.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 774, cat: Movies, desc: Filmy Polskie}
|
||||
- {id: 642, cat: Movies, desc: Filmy/Bajki}
|
||||
- {id: 1, cat: Movies/SD, desc: Filmy XviD/DivX}
|
||||
- {id: 20, cat: Movies/DVD, desc: Filmy DVD}
|
||||
- {id: 23, cat: Movies/HD, desc: Filmy x264}
|
||||
- {id: 573, cat: Movies/UHD, desc: Filmy 4K UHD}
|
||||
- {id: 17, cat: Movies/HD, desc: Filmy HD}
|
||||
- {id: 265, cat: Movies/HD, desc: Filmy x265 HEVC}
|
||||
- {id: 12, cat: Movies/3D, desc: Filmy 3D}
|
||||
- {id: 530, cat: Movies/SD, desc: Filmy TS/CAM}
|
||||
- {id: 9, cat: PC, desc: Programy}
|
||||
- {id: 7, cat: Console, desc: Konsole}
|
||||
- {id: 6, cat: PC/Games, desc: Gry}
|
||||
- {id: 5, cat: Audio, desc: Muzyka}
|
||||
- {id: 305, cat: Audio/Video, desc: Teledyski}
|
||||
- {id: 22, cat: TV, desc: TV}
|
||||
- {id: 228, cat: XXX, desc: Erotyka}
|
||||
- {id: 25, cat: Books/EBook, desc: Książki}
|
||||
- {id: 739, cat: Audio/Audiobook, desc: AudioBooki}
|
||||
- {id: 26, cat: Books/Comics, desc: Komiksy}
|
||||
- {id: 27, cat: PC/Mac, desc: Linux/Mac}
|
||||
- {id: 28, cat: TV/Sport, desc: Sport}
|
||||
- {id: 29, cat: TV/Anime, desc: Anime}
|
||||
- {id: 31, cat: PC/Mobile-Other, desc: GSM/PDA}
|
||||
- {id: 32, cat: Other, desc: Inne}
|
||||
|
||||
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
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.komunikaty:contains("Nazwa użytkownika bądź hasło jest nieprawidłowe")
|
||||
test:
|
||||
path: /
|
||||
selector: a[href$="/logout.php"]
|
||||
|
||||
search:
|
||||
# https://best-torrents.com/szukaj.php?search=%25&cat=774&full_name=no
|
||||
paths:
|
||||
- path: szukaj.php
|
||||
inputs:
|
||||
# does not appear to support multi category searches
|
||||
cat: 0
|
||||
# no, 0 Standard mode, 1 Initial mode, 2 Full Phrase mode, 3 Final mode
|
||||
full_name: no
|
||||
search: "{{ if .Keywords }}{{ .Keywords }}{{ else }}%{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: div#torrents_browse-standard-all
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: div#torrents_browse-standard-category a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: kategorii/(.+?)/gatunku
|
||||
title:
|
||||
selector: div#torrents_browse-standard-torrent-name a
|
||||
details:
|
||||
selector: div#torrents_browse-standard-torrent-name a
|
||||
attribute: href
|
||||
download:
|
||||
selector: div#torrents_browse-standard-download a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div#torrents_browse-standard-poster img
|
||||
attribute: src
|
||||
date:
|
||||
selector: div#torrents_browse-standard-time
|
||||
remove: b
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: div#torrents_browse-standard-size
|
||||
remove: b
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d{1,4}\.\d{2}\s+?[T|G|M|k]B)
|
||||
seeders:
|
||||
selector: div#torrents_browse-standard-seeds span font
|
||||
leechers:
|
||||
selector: div#torrents_browse-standard-peers span font
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
209
Prowlarr/config/Definitions/bestcore.yml
Normal file
209
Prowlarr/config/Definitions/bestcore.yml
Normal file
@ -0,0 +1,209 @@
|
||||
---
|
||||
id: bestcore
|
||||
name: Best-Core
|
||||
description: "Best-Core is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- https://best-core.info/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 81, cat: Movies/3D, desc: "3D"}
|
||||
- {id: 83, cat: Movies/UHD, desc: "4K/UHD"}
|
||||
- {id: 80, cat: Movies/Other, desc: "Best-Core"}
|
||||
- {id: 51, cat: Books/EBook, desc: "E-book"}
|
||||
- {id: 88, cat: Audio/Audiobook, desc: "E-book/Hangoskönyv"}
|
||||
- {id: 77, cat: Movies/HD, desc: "Film/BDRip/Eng"}
|
||||
- {id: 86, cat: Movies/HD, desc: "Film/BDRip/Ger"}
|
||||
- {id: 76, cat: Movies/HD, desc: "Film/BDRip/Hun"}
|
||||
- {id: 75, cat: Movies/BluRay, desc: "Film/Blu-ray/Eng"}
|
||||
- {id: 74, cat: Movies/BluRay, desc: "Film/Blu-ray/Hun"}
|
||||
- {id: 25, cat: Movies/DVD, desc: "Film/DVD/Eng"}
|
||||
- {id: 24, cat: Movies/DVD, desc: "Film/DVD/Hun"}
|
||||
- {id: 85, cat: Movies/DVD, desc: "Film/DVD9"}
|
||||
- {id: 21, cat: Movies/HD, desc: "Film/HD/Eng"}
|
||||
- {id: 53, cat: Movies/HD, desc: "Film/HD/Hun"}
|
||||
- {id: 20, cat: Movies/SD, desc: "Film/XviD/Eng"}
|
||||
- {id: 34, cat: Movies/SD, desc: "Film/XviD/Hun"}
|
||||
- {id: 90, cat: Movies/SD, desc: "Film/XviD/Pack"}
|
||||
- {id: 26, cat: PC/Games, desc: "Játék/ISO"}
|
||||
- {id: 52, cat: PC/Games, desc: "Játék/Rip"}
|
||||
- {id: 89, cat: Movies/SD, desc: "Kamerás/Eng"}
|
||||
- {id: 82, cat: Movies/SD, desc: "Kamerás/Hun"}
|
||||
- {id: 38, cat: Other, desc: "Képek"}
|
||||
- {id: 43, cat: Console/PS3, desc: "Konzol/PS"}
|
||||
- {id: 45, cat: Console/PSP, desc: "Konzol/PSP"}
|
||||
- {id: 44, cat: Console/XBox, desc: "Konzol/Xbox"}
|
||||
- {id: 73, cat: TV/Anime, desc: "Mese/Eng"}
|
||||
- {id: 70, cat: TV/Anime, desc: "Mese/Hun"}
|
||||
- {id: 37, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||
- {id: 1, cat: PC/ISO, desc: "Program/ISO"}
|
||||
- {id: 22, cat: PC/0day, desc: "Program/Rip"}
|
||||
- {id: 54, cat: TV/SD, desc: "Sorozat/DVD/Eng"}
|
||||
- {id: 55, cat: TV/SD, desc: "Sorozat/DVD/Hun"}
|
||||
- {id: 58, cat: TV/SD, desc: "Sorozat/Xvid/Eng"}
|
||||
- {id: 7, cat: TV/SD, desc: "Sorozat/Xvid/Hun"}
|
||||
- {id: 62, cat: Audio/Video, desc: "Videoklip"}
|
||||
- {id: 64, cat: XXX/DVD, desc: "XXX/DVD"}
|
||||
- {id: 48, cat: XXX/ImageSet, desc: "XXX/Képek"}
|
||||
- {id: 9, cat: XXX/XviD, desc: "XXX/Xvid"}
|
||||
- {id: 40, cat: Audio/MP3, desc: "Zene/Eng"}
|
||||
- {id: 6, cat: Audio/MP3, desc: "Zene/Hun"}
|
||||
- {id: 87, cat: Audio/Lossless, desc: "Zene/Lossless"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
book-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: 4
|
||||
options:
|
||||
1: title
|
||||
4: added
|
||||
5: size
|
||||
7: seeders
|
||||
- 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>Torrent oldalankén:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_login
|
||||
type: info
|
||||
label: About login error
|
||||
default: If you get a <b>Login Failed, got redirected.</b> error during your config <i>save</i> then most likely you have used an incorrect username or password.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "<ol><li>Users who have not accessed the site for 180 days will be deleted!</li><li>If the vacation mode is set, the system will not delete the given user for 365 days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: :root:contains("Sikertelen bejelentkezés")
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?c="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
# 0 active, 1 all, 2 deadonly, 3 freeleech
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: tr.torrent_h
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category_optional:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
optional: true
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
category:
|
||||
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}38{{ end }}"
|
||||
title_default:
|
||||
# can be abbreviated
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
# usually full length
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) "
|
||||
- name: replace
|
||||
args: ["https://i.kek.sh/null", ""]
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2})"
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
files:
|
||||
selector: td:nth-child(5)
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: x \d(\d+) x$
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
description:
|
||||
case:
|
||||
img[src="pic/yes.png"]: Verified
|
||||
img[src="pic/nincs.png"]: Unverified
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/free.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
selector: td:nth-child(7) b
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
minimumratio:
|
||||
text: 0.8
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# custom v3.0
|
||||
133
Prowlarr/config/Definitions/beyond-hd.yml
Normal file
133
Prowlarr/config/Definitions/beyond-hd.yml
Normal file
@ -0,0 +1,133 @@
|
||||
---
|
||||
id: beyond-hd
|
||||
name: Beyond-HD
|
||||
description: "Without BeyondHD, your HDTV is just a TV"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://beyond-hd.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
|
||||
settings:
|
||||
- name: info_oid
|
||||
type: info
|
||||
label: "About 2FA"
|
||||
default: "If you want to enable 2FA then use the Beyond-HD (API) indexer instead."
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- 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
|
||||
|
||||
login:
|
||||
path: login
|
||||
method: form
|
||||
form: form[action$="/login"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[src^="/captcha?_CAPTCHA"]
|
||||
input: key
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: on
|
||||
selectorinputs:
|
||||
_token:
|
||||
selector: input[name="_token"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: form[action$="/login"] .text-red
|
||||
- selector: script:contains("toastr.error")
|
||||
message:
|
||||
selector: script:contains("toastr.error")
|
||||
# test:
|
||||
# path: torrents
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
sorting: "{{ .Config.sort }}"
|
||||
direction: "{{ .Config.type }}"
|
||||
qty: 100
|
||||
|
||||
rows:
|
||||
selector: div.table-torrents > table > tbody > tr[id^="torrentposter"]
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="/categories/"]
|
||||
attribute: href
|
||||
optional: true
|
||||
default: 1
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "/categories/.*?\\.(\\d+)"
|
||||
title:
|
||||
selector: a.torrent-name
|
||||
details:
|
||||
selector: a.torrent-name
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:not(a[href$="/history"]) span.text-orange
|
||||
filters:
|
||||
- name: timeago
|
||||
size:
|
||||
selector: td span.text-blue
|
||||
seeders:
|
||||
selector: a[href$="/peers"] span.text-green
|
||||
leechers:
|
||||
selector: a[href$="/peers"] span.text-red
|
||||
grabs:
|
||||
selector: a[href$="/history"]
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
tmdbid:
|
||||
selector: a[href*="themoviedb.org/movie/"], a[href*="themoviedb.org/tv/"]
|
||||
attribute: href
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
i[data-original-title="100% Free"]: 0
|
||||
i[data-original-title="100% Free (Limited UL)"]: 0
|
||||
i[data-original-title="25% Promo"]: 0.75
|
||||
i[data-original-title="50% Promo"]: 0.5
|
||||
i[data-original-title="75% Promo"]: 0.25
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# UNIT3D (custom)
|
||||
141
Prowlarr/config/Definitions/bibliotik.yml
Normal file
141
Prowlarr/config/Definitions/bibliotik.yml
Normal file
@ -0,0 +1,141 @@
|
||||
---
|
||||
id: bibliotik
|
||||
name: Bibliotik
|
||||
description: "Bibliotik is a Private Torrent Tracker for EBOOKS and AUDIOBOOKS"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bibliotik.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: PC, desc: "Applications"}
|
||||
- {id: 3, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: 4, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: 5, cat: Books/EBook, desc: "eBooks"}
|
||||
- {id: 7, cat: Books/Mags, desc: "Magazines"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
book-search: [q, title, author]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: orderby
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
"@relevance": relevance
|
||||
title: title
|
||||
size: size
|
||||
added: added
|
||||
seeders: seeders
|
||||
- name: order
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: DESC
|
||||
options:
|
||||
DESC: desc
|
||||
ASC: asc
|
||||
|
||||
login:
|
||||
path: /
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
keeplogged: 1
|
||||
login: "Log In!"
|
||||
error:
|
||||
- selector: center:first-of-type
|
||||
test:
|
||||
path: torrents/
|
||||
selector: div#pre_header
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents/
|
||||
inputs:
|
||||
search: "{{ if .Query.Author }} @authors {{ .Query.Author }}{{ else }}{{ end }}{{ if .Query.Title }} @title {{ .Query.Title }}{{ else }}{{ end }}{{ .Keywords }}"
|
||||
$raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
|
||||
orderby: "{{ .Config.orderby }}"
|
||||
order: "{{ .Config.order }}"
|
||||
|
||||
rows:
|
||||
selector: table#torrents_table > tbody > tr:has(.title)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td:first-child
|
||||
case:
|
||||
div[title="Applications"]: 1
|
||||
div[title="Audiobooks"]: 3
|
||||
div[title="Comics"]: 4
|
||||
div[title="Ebooks"]: 5
|
||||
div[title="Magazines"]: 7
|
||||
_editor:
|
||||
selector: .editorLink
|
||||
optional: true
|
||||
author:
|
||||
selector: .authorLink
|
||||
optional: true
|
||||
default: "{{ .Result._editor }}"
|
||||
year:
|
||||
selector: .torYear
|
||||
optional: true
|
||||
_filetype:
|
||||
selector: .torFormat
|
||||
optional: true
|
||||
_retail:
|
||||
selector: .torRetail
|
||||
optional: true
|
||||
booktitle:
|
||||
selector: .title a
|
||||
title:
|
||||
text: "{{ .Result.booktitle }}"
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result.author }} by {{ .Result.author }}{{ else }}{{ end }}{{ if .Result.year }} {{ .Result.year }}{{ else }}{{ end }}{{ if .Result._filetype }} {{ .Result._filetype }}{{ else }}{{ end }}{{ if .Result._retail }} {{ .Result._retail }}{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: .title a
|
||||
attribute: href
|
||||
date:
|
||||
selector: .t_files_size_added time
|
||||
attribute: datetime
|
||||
optional: true
|
||||
default: now
|
||||
download:
|
||||
selector: a[title="Download"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: .t_files_size_added
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "^\\s*(\\d+)\\s*file"
|
||||
size:
|
||||
selector: .t_files_size_added span
|
||||
attribute: data-bytecount
|
||||
seeders:
|
||||
selector: .seeders
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: .leechers
|
||||
optional: true
|
||||
default: 0
|
||||
grabs:
|
||||
selector: .snatches
|
||||
optional: true
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
232
Prowlarr/config/Definitions/bigfangroup.yml
Normal file
232
Prowlarr/config/Definitions/bigfangroup.yml
Normal file
@ -0,0 +1,232 @@
|
||||
---
|
||||
id: bigfangroup
|
||||
name: BigFANGroup
|
||||
description: "BigFANGroup is a RUSSIAN Public Torrent Tracker for MOVIES / TV"
|
||||
language: ru-RU
|
||||
type: public
|
||||
encoding: windows-1251
|
||||
links:
|
||||
- https://bigfangroup.org/
|
||||
- https://www.freebfg.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 51, cat: Movies/3D, desc: "3D"}
|
||||
- {id: 12, cat: TV, desc: "Анимация"}
|
||||
- {id: 35, cat: Audio/Audiobook, desc: "Аудио-книги"}
|
||||
- {id: 13, cat: Movies, desc: "Боевик"}
|
||||
- {id: 52, cat: Movies, desc: "Биография"}
|
||||
- {id: 33, cat: Movies, desc: "Военный"}
|
||||
- {id: 45, cat: Audio/Video, desc: "Видеоклипы"}
|
||||
- {id: 48, cat: Movies, desc: "Вестерн"}
|
||||
- {id: 21, cat: Movies, desc: "Драма"}
|
||||
- {id: 32, cat: TV/Documentary, desc: "Документальный"}
|
||||
- {id: 39, cat: Movies, desc: "Детектив"}
|
||||
- {id: 44, cat: Audio, desc: "Зарубежная музыка"}
|
||||
- {id: 5, cat: PC/Games, desc: "Игры"}
|
||||
- {id: 28, cat: Movies, desc: "Исторический"}
|
||||
- {id: 18, cat: Movies, desc: "Катастрофа"}
|
||||
- {id: 24, cat: Movies, desc: "Комедия"}
|
||||
- {id: 36, cat: Movies, desc: "Криминал"}
|
||||
- {id: 38, cat: Books, desc: "Книги и журналы"}
|
||||
- {id: 53, cat: Movies, desc: "Классика"}
|
||||
- {id: 54, cat: Audio, desc: "Классическая музыка"}
|
||||
- {id: 19, cat: Movies, desc: "Мелодрама"}
|
||||
- {id: 20, cat: Movies, desc: "Мультфильм"}
|
||||
- {id: 31, cat: Movies, desc: "Мистика"}
|
||||
- {id: 46, cat: Audio, desc: "Муз. сборники"}
|
||||
- {id: 29, cat: Movies/Foreign, desc: "Наше кино"}
|
||||
- {id: 49, cat: TV, desc: "Научно-популярное"}
|
||||
- {id: 50, cat: TV, desc: "Новости"}
|
||||
- {id: 27, cat: Movies, desc: "Приключения"}
|
||||
- {id: 9, cat: Other, desc: "Разное"}
|
||||
- {id: 43, cat: Audio/Foreign, desc: "Русская музыка"}
|
||||
- {id: 1, cat: PC, desc: "Софт"}
|
||||
- {id: 11, cat: TV, desc: "Сериалы"}
|
||||
- {id: 37, cat: TV/Sport, desc: "Спорт"}
|
||||
- {id: 47, cat: Movies, desc: "Сказки"}
|
||||
- {id: 55, cat: Audio, desc: "Саундтрек"}
|
||||
- {id: 25, cat: TV, desc: "ТВ-шоу"}
|
||||
- {id: 22, cat: Movies, desc: "Триллер"}
|
||||
- {id: 26, cat: Movies, desc: "Ужасы"}
|
||||
- {id: 23, cat: Movies, desc: "Фантастика"}
|
||||
- {id: 30, cat: Movies, desc: "Фэнтази"}
|
||||
- {id: 42, cat: XXX, desc: "Эротика"}
|
||||
- {id: 14, cat: Movies/HD, desc: "HDTV"}
|
||||
- {id: 15, cat: Movies/DVD, desc: "DVD"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: stripcyrillic
|
||||
type: checkbox
|
||||
label: Strip Cyrillic Letters
|
||||
default: false
|
||||
- name: addrussiantotitle
|
||||
type: checkbox
|
||||
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seed: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://bigfangroup.org/browse.php?ajax=1&search=the+librarian&cat=0&incldead=0&year=0&format=0
|
||||
- path: browse.php
|
||||
inputs:
|
||||
ajax: 1
|
||||
search: "{{ .Keywords }}"
|
||||
cat: "{{ if .Keywords }}0{{ else }}{{ end }}"
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 gold, 4 noseed, 5 silver, 7 BFG
|
||||
incldead: "{{ if .Keywords }}1{{ else }}{{ end }}"
|
||||
year: "{{ if .Keywords }}0{{ else }}1{{ end }}"
|
||||
format: "{{ if .Keywords }}0{{ else }}{{ end }}"
|
||||
s: "{{ if .Keywords }}{{ .Config.sort }}{{ else }}{{ end }}"
|
||||
d: "{{ if .Keywords }}{{ .Config.type }}{{ else }}{{ end }}"
|
||||
|
||||
keywordsfilters:
|
||||
# strip season and/or ep
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(?:[SE]\\d{1,4}){1,2}\\b\\s?", ""]
|
||||
|
||||
rows:
|
||||
selector: table > tbody#highlighted > tr:has(a[href^="browse.php?cat="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
filters:
|
||||
# normalize to SXXEYY format
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))[\\s:]*(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езоны?.+?(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))?", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езоны?.+?(\\d+(?:-\\d+)?)\\s*(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))\\s+из\\s*(\\w?)", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))?", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))\\s+из\\s*(\\w?)", "S$1E$2 of $3"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))[\\s:]*(\\d+(?:-\\d+)?)", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езоны?.+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?)", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езоны?", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))[\\s:]*(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)", "E$1 of $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "E$1 of $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))\\s+из\\s*(\\w?)", "E$1 of $2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))[\\s:]*(\\d+(?:-\\d+)?)", "E$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "E$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\s\\|\\sот\\s([\\w\\p{P}\\p{S}]+)$", "-$1"]
|
||||
- name: re_replace
|
||||
args: ["\\s\\|\\s(\\w{4,})$", "-$1"]
|
||||
- name: re_replace
|
||||
args: ["(\\([\\p{IsCyrillic}\\W]+\\))|(^[\\p{IsCyrillic}\\W\\d]+\\/ )|([\\p{IsCyrillic} \\-]+,+)|([\\p{IsCyrillic}]+)", "{{ if .Config.stripcyrillic }}{{ else }}$1$2$3$4{{ end }}"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bHDTV[-\\s]?Rip\\b", "HDTV"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bSAT[-\\s]?Rip\\b", "HDTV"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB[-\\s]?DL[-\\s]?Rip\\b", "WEB-DL"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB\\sRip\\b", "WEBRip"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bWEB\\sDL\\b", "WEB-DL"]
|
||||
- name: re_replace
|
||||
args: ["[\\[\\(\\{<«][\\s\\W]*[\\]\\)\\}>»]", ""]
|
||||
- name: re_replace
|
||||
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
|
||||
- name: append
|
||||
args: "{{ if .Config.addrussiantotitle }} RUS{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details", "download"]
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
date:
|
||||
selector: img[src="pic/time.png"]
|
||||
attribute: title
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" в ", " "]
|
||||
- name: replace
|
||||
args: ["января", "January"]
|
||||
- name: replace
|
||||
args: ["февраля", "February"]
|
||||
- name: replace
|
||||
args: ["марта", "March"]
|
||||
- name: replace
|
||||
args: ["апреля", "April"]
|
||||
- name: replace
|
||||
args: ["мая", "May"]
|
||||
- name: replace
|
||||
args: ["июня", "June"]
|
||||
- name: replace
|
||||
args: ["июля", "July"]
|
||||
- name: replace
|
||||
args: ["августа", "August"]
|
||||
- name: replace
|
||||
args: ["сентября", "September"]
|
||||
- name: replace
|
||||
args: ["октября", "October"]
|
||||
- name: replace
|
||||
args: ["ноября", "November"]
|
||||
- name: replace
|
||||
args: ["декабря", "December"]
|
||||
- name: append
|
||||
args: " +03:00" # MSK
|
||||
- name: dateparse
|
||||
args: "d MMMM yyyy HH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
description:
|
||||
selector: a[href^="details.php?id="]
|
||||
# engine n/a
|
||||
184
Prowlarr/config/Definitions/bitbazis.yml
Normal file
184
Prowlarr/config/Definitions/bitbazis.yml
Normal file
@ -0,0 +1,184 @@
|
||||
---
|
||||
id: bitbazis
|
||||
name: Bit-Bázis
|
||||
description: "Bit-Bázis is a HUNGARIAN Private Tracker for MOVIES / TV"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://bitbazis.net/
|
||||
|
||||
caps:
|
||||
# dont forget to update the path categories in the search block
|
||||
categorymappings:
|
||||
- {id: 15, cat: Movies/SD, desc: "Film-SD", default: true}
|
||||
- {id: 83, cat: Movies/HD, desc: "Film-HD", default: true}
|
||||
- {id: 94, cat: Movies/HD, desc: "Film-FHD", default: true}
|
||||
- {id: 85, cat: Movies/SD, desc: "Film-Cam", default: true}
|
||||
- {id: 22, cat: TV, desc: "Sorozat-Hun", default: true}
|
||||
- {id: 25, cat: Audio/MP3, desc: "Mp3-Hun", default: true}
|
||||
- {id: 26, cat: Audio/MP3, desc: "Mp3-Eng", default: true}
|
||||
- {id: 84, cat: Audio/Lossless, desc: "FLAC-Hun", default: true}
|
||||
- {id: 71, cat: Audio/Lossless, desc: "FLAC-Eng", default: true}
|
||||
- {id: 27, cat: Books/EBook, desc: "Könyv", default: true}
|
||||
- {id: 81, cat: PC/0day, desc: "Program", default: true}
|
||||
- {id: 31, cat: PC/Games, desc: "Játék", default: true}
|
||||
- {id: 69, cat: TV/Anime, desc: "Mese-SD", default: true}
|
||||
- {id: 91, cat: TV/Anime, desc: "Mese-HD", default: true}
|
||||
- {id: 64, cat: Movies, desc: "Film-Pack", default: true}
|
||||
- {id: 92, cat: Movies/UHD, desc: "Film-UHD", default: true}
|
||||
- {id: 66, cat: XXX/ImageSet, desc: "XXX", default: false}
|
||||
- {id: 33, cat: XXX/SD, desc: "XXX-SD", default: false}
|
||||
- {id: 89, cat: XXX/x264, desc: "XXX-HD", default: false}
|
||||
- {id: 24, cat: Audio/Video, desc: "Klip", default: true}
|
||||
- {id: 14, cat: Other, desc: "Egyéb", default: true}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
1: title
|
||||
4: added
|
||||
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>50</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "If the user does not access the site for 1 month, he will receive an e-mail notification. If you stay away for 9 months, your account will be suspended and deleted. After the 9-month absence, the user cannot register again."
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: i.fa-arrow-right-from-bracket[title="Kilépés"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
categories: [15, 83, 94, 85, 22, 25, 26, 84, 71, 27, 81, 31, 69, 91, 64, 92, 24, 14]
|
||||
inputs:
|
||||
# 0 all, 1 active, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
|
||||
incldead: 0
|
||||
- path: browse.php
|
||||
categories: [33, 66, 89]
|
||||
inputs:
|
||||
xxx: 1
|
||||
# 0 active, 1 all, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
|
||||
incldead: 1
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# site does not support imdbid searching
|
||||
# can support genre searching but you need to know the id, eg &genre23=1 for Comedy (id is 23)
|
||||
|
||||
rows:
|
||||
selector: "tr[class^=\"toriadatok\"]:has(i.status-yes){{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: td[class^="catpic_"]
|
||||
attribute: class
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["catpic_", ""]
|
||||
title:
|
||||
selector: span.torrent-name
|
||||
_id:
|
||||
selector: tr[data-torrent-id]
|
||||
attribute: data-torrent-id
|
||||
details:
|
||||
text: "details.php?id={{ .Result._id }}#adatlap"
|
||||
download:
|
||||
text: "download.php?torrent={{ .Result._id }}"
|
||||
poster:
|
||||
selector: a.preview
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td.torrent-size
|
||||
date:
|
||||
# 36 perce
|
||||
# 13 órája és 59 perce
|
||||
# 2 napja és 10 órája
|
||||
# 1 hete és 1 napja
|
||||
# 1 éve és 30 hete
|
||||
selector: span.uploader
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["és ", " "]
|
||||
- name: replace
|
||||
args: ["perce", "minute"]
|
||||
- name: replace
|
||||
args: ["órája", "hour"]
|
||||
- name: replace
|
||||
args: ["napja", "day"]
|
||||
- name: replace
|
||||
args: ["hete", "week"]
|
||||
- name: replace
|
||||
args: ["éve", "year"]
|
||||
- name: timeago
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
optional: true
|
||||
default: 0
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
optional: true
|
||||
default: 0
|
||||
genre:
|
||||
selector: span.torrent-genre
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"i:contains(\"(Free)\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"i:contains(\"(2x)\")": 2
|
||||
"i:contains(\"(3x)\")": 3
|
||||
"i:contains(\"(4x)\")": 4
|
||||
"*": 1
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 1 x 24 x 60 x 60)
|
||||
text: 86400
|
||||
# engine n/a
|
||||
146
Prowlarr/config/Definitions/bitded.yml
Normal file
146
Prowlarr/config/Definitions/bitded.yml
Normal file
@ -0,0 +1,146 @@
|
||||
---
|
||||
id: bitded
|
||||
name: Bitded
|
||||
description: "Bitded is a THAI Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: th-TH
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.dedbit.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Other, desc: "ในพระราชสำนัก (in the royal court)"}
|
||||
- {id: 4, cat: TV, desc: "รายการทีวี (TV)"}
|
||||
- {id: 7, cat: TV, desc: "ภาพยนตร์ชุด (Series)"}
|
||||
- {id: 12, cat: Books/EBook, desc: "หนังสือ สื่อการสอน (Books)"}
|
||||
- {id: 13, cat: Other/Misc, desc: "ทั่วไป (General)"}
|
||||
- {id: 14, cat: TV/Sport, desc: "กีฬา (Sport)"}
|
||||
- {id: 16, cat: TV/Documentary, desc: "สารคดี (Documentary)"}
|
||||
- {id: 18, cat: TV/Other, desc: "ธรรมะ (Dharma)"}
|
||||
- {id: 21, cat: Books/Comics, desc: "หนังสือการ์ตูน (Comics)"}
|
||||
- {id: 22, cat: TV/Anime, desc: "การ์ตูนอนิเมชั่น (Anime)"}
|
||||
- {id: 31, cat: Movies, desc: "ภาพยนตร์ (Movies)"}
|
||||
- {id: 34, cat: Movies/DVD, desc: "ภาพยนตร์ DVD (Movies DVD)"}
|
||||
- {id: 35, cat: Movies/HD, desc: "วีดีโอความละเอียดสูง (Movies HD)"}
|
||||
- {id: 41, cat: Audio/MP3, desc: "เพลง (Music)"}
|
||||
- {id: 43, cat: Audio/Video, desc: "มิวสิควีดีโอ (Music video)"}
|
||||
- {id: 53, cat: PC/0day, desc: "โปรแกรม/Windows (Software Windows)"}
|
||||
- {id: 54, cat: PC/Mac, desc: "โปรแกรม/Mac, Linux (Software Mac/Linux)"}
|
||||
- {id: 55, cat: PC/Mobile-Other, desc: "โปรแกรม/Mobile (Software Mobile)"}
|
||||
- {id: 61, cat: PC/Games, desc: "เกม-Computer (PC Games)"}
|
||||
- {id: 62, cat: Console, desc: "เกม-Console (Console)"}
|
||||
- {id: 63, cat: Console, desc: "เกมส์-พกพา (Console portable)"}
|
||||
- {id: 72, cat: Other, desc: "รูปภาพ (Pics)"}
|
||||
- {id: 74, cat: Other, desc: "J-IDOL"}
|
||||
|
||||
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: Search freeleech only
|
||||
default: false
|
||||
- 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: 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
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
x: axion
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:contains("Login failed!")
|
||||
test:
|
||||
path: my.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://www.dedbit.com/browse.php?c12=1&c13=1&incldead=1&freeload=1&search=&sort=added&h=6&d=DESC
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
freeload: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
search: "{{ .Keywords }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
d: "{{ .Config.type }}"
|
||||
# site does not support imdbid searching and does not display imdb links in results.
|
||||
|
||||
rows:
|
||||
selector: table.torrenttable tbody tr:has(a[href^="download.php"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-last-child(9)
|
||||
date:
|
||||
selector: td:nth-last-child(7)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +07:00" # ICT
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="pic/freeload.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# engine n/a
|
||||
160
Prowlarr/config/Definitions/bitgamer.yml
Normal file
160
Prowlarr/config/Definitions/bitgamer.yml
Normal file
@ -0,0 +1,160 @@
|
||||
---
|
||||
id: bitgamer
|
||||
name: bitGAMER
|
||||
description: "bitGAMER is a Private Torrent Tracker for GAMES"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bitgamer.ch/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: XXX/Other, desc: "Adult Games"}
|
||||
- {id: 3, cat: PC/0day, desc: "Burning/Ripping Tools"}
|
||||
- {id: 4, cat: Books/Other, desc: "Guides/Game Documents"}
|
||||
- {id: 13, cat: Movies/Other, desc: "Movies/TV/Video"}
|
||||
- {id: 48, cat: Audio/Other, desc: "Music/OST"}
|
||||
- {id: 52, cat: Console/Other, desc: "Amiga"}
|
||||
- {id: 18, cat: PC/Mobile-iOS, desc: "Apple - iPhone/iPod/iPad"}
|
||||
- {id: 54, cat: Console/Other, desc: "Arcade"}
|
||||
- {id: 19, cat: Console/Other, desc: "Atari"}
|
||||
- {id: 51, cat: Console/Other, desc: "Commodore 64"}
|
||||
- {id: 22, cat: PC/Mobile-Android, desc: "Google - Android"}
|
||||
- {id: 61, cat: Console/Other, desc: "Hyperspin"}
|
||||
- {id: 24, cat: Console/XBox, desc: "Microsoft - Xbox"}
|
||||
- {id: 25, cat: Console/XBox 360, desc: "Microsoft - Xbox 360"}
|
||||
- {id: 49, cat: Console/XBox 360, desc: "Microsoft - Xbox 360 JTAG"}
|
||||
- {id: 57, cat: Console/XBox One, desc: "Microsoft - Xbox One"}
|
||||
- {id: 27, cat: Console/Other, desc: "Neo Geo"}
|
||||
- {id: 55, cat: Console/3DS, desc: "Nintendo - 3DS"}
|
||||
- {id: 28, cat: Console/NDS, desc: "Nintendo - DS"}
|
||||
- {id: 29, cat: Console/Other, desc: "Nintendo - Game Boy Advance"}
|
||||
- {id: 30, cat: Console/Other, desc: "Nintendo - Gameboy"}
|
||||
- {id: 31, cat: Console/Other, desc: "Nintendo - Gamecube "}
|
||||
- {id: 33, cat: Console/Other, desc: "Nintendo - N64 "}
|
||||
- {id: 35, cat: Console/Other, desc: "Nintendo - NES"}
|
||||
- {id: 50, cat: Console/Other, desc: "Nintendo - SNES"}
|
||||
- {id: 63, cat: Console/Other, desc: "Nintendo - Switch"}
|
||||
- {id: 37, cat: Console/Wii, desc: "Nintendo - Wii"}
|
||||
- {id: 59, cat: Console/WiiU, desc: "Nintendo - Wii U"}
|
||||
- {id: 53, cat: PC/Games, desc: "PC - DOS"}
|
||||
- {id: 64, cat: PC/Games, desc: "PC - Linux"}
|
||||
- {id: 39, cat: PC/Mac, desc: "PC - Mac OS X"}
|
||||
- {id: 40, cat: PC/Games, desc: "PC - Windows"}
|
||||
- {id: 41, cat: Console/Other, desc: "Sega"}
|
||||
- {id: 42, cat: Console/Other, desc: "Sega - Dreamcast"}
|
||||
- {id: 43, cat: Console/Other, desc: "Sega - Megadrive"}
|
||||
- {id: 44, cat: Console/Other, desc: "Sony - Playstation"}
|
||||
- {id: 45, cat: Console/Other, desc: "Sony - Playstation 2"}
|
||||
- {id: 46, cat: Console/PS3, desc: "Sony - Playstation 3"}
|
||||
- {id: 56, cat: Console/PS4, desc: "Sony - Playstation 4"}
|
||||
- {id: 47, cat: Console/PSP, desc: "Sony - Playstation Portable "}
|
||||
- {id: 58, cat: Console/PS Vita, desc: "Sony - Playstation Vita"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
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: 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
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td:has(:contains("Login failed"))
|
||||
test:
|
||||
path: my.php
|
||||
selector: a[href^="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
# multi-cat search appears to be broken on site
|
||||
category: 0
|
||||
# 0: name, 1: descr, 2: both
|
||||
blah: 0
|
||||
# 0: include dead, 1: alive, 2: dead, 3: freeleech
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: .outer > form > table > tbody > tr:has(a[href^="download.php"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php"][title]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[href^="details.php"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php"]
|
||||
attribute: href
|
||||
date:
|
||||
# several old torrents with `0000-00-00 00:00:00` dates
|
||||
selector: td:nth-child(5):not(:contains("000-00-0000:00:00"))
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
optional: true
|
||||
default: now
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(10)
|
||||
leechers:
|
||||
selector: td:nth-child(11)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src*="/freeleech.png"]: 0
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# engine n/a
|
||||
176
Prowlarr/config/Definitions/bithorlo.yml
Normal file
176
Prowlarr/config/Definitions/bithorlo.yml
Normal file
@ -0,0 +1,176 @@
|
||||
---
|
||||
id: bithorlo
|
||||
name: Bithorlo
|
||||
description: "Bithorlo (BHO) is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.bithorlo.info/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# E-book
|
||||
- {id: 40, cat: Books, desc: "E-book/Eng"}
|
||||
- {id: 19, cat: Books, desc: "E-book/Hun"}
|
||||
# Játék
|
||||
- {id: 38, cat: Console, desc: "Játék/Consol"}
|
||||
- {id: 37, cat: PC/Games, desc: "Játék/Rip"}
|
||||
- {id: 15, cat: PC/Games, desc: "Játék/ISO"}
|
||||
# Filmek
|
||||
- {id: 2, cat: Movies/DVD, desc: "DVD/Eng"}
|
||||
- {id: 51, cat: Movies/SD, desc: "Cam/Eng"}
|
||||
- {id: 50, cat: Movies/SD, desc: "Cam/Hun"}
|
||||
- {id: 42, cat: Movies/DVD, desc: "Dvd9/Eng"}
|
||||
- {id: 41, cat: Movies/DVD, desc: "Dvd9/Hun"}
|
||||
- {id: 33, cat: TV, desc: "Sorozat/Eng"}
|
||||
- {id: 29, cat: Movies/HD, desc: "HD/Eng"}
|
||||
- {id: 28, cat: Movies/HD, desc: "HD/Hun"}
|
||||
- {id: 52, cat: TV/HD, desc: "Sorozat/Eng/HD"}
|
||||
- {id: 53, cat: TV/HD, desc: "Sorozat/Hun/HD"}
|
||||
- {id: 1, cat: Movies/DVD, desc: "DVD/Hun"}
|
||||
- {id: 5, cat: TV, desc: "Sorozat/Hun"}
|
||||
- {id: 4, cat: Movies/SD, desc: "Xvid/Eng"}
|
||||
- {id: 3, cat: Movies/SD, desc: "Xvid/Hun"}
|
||||
# Zene
|
||||
- {id: 13, cat: Audio, desc: "Zene/Hun"}
|
||||
- {id: 12, cat: Audio, desc: "Zene/Eng"}
|
||||
# Egyéb
|
||||
- {id: 21, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||
- {id: 20, cat: Other, desc: "Képek"}
|
||||
# Program
|
||||
- {id: 54, cat: PC/0day, desc: "Win/Program/ISO"}
|
||||
- {id: 23, cat: PC/0day, desc: "Win/Program/Rip"}
|
||||
# Felnőtt tartalom
|
||||
- {id: 10, cat: XXX, desc: "XXX/Kép"}
|
||||
- {id: 9, cat: XXX, desc: "XXX/Film"}
|
||||
|
||||
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: useragent
|
||||
type: text
|
||||
label: User-Agent
|
||||
- name: info_useragent
|
||||
type: info_useragent
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sortBy
|
||||
type: select
|
||||
label: SortBy requested from site
|
||||
default: 2
|
||||
options:
|
||||
2: created
|
||||
5: seeders
|
||||
3: size
|
||||
1: title
|
||||
- name: orderBy
|
||||
type: select
|
||||
label: OrderBy requested from site
|
||||
default: 0
|
||||
options:
|
||||
0: desc
|
||||
1: asc
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Vacation mode is used to avoid deletion due to inactivity for 90 days. You can turn it on or off in the Profile menu, set the appropriate option and save your changes."
|
||||
|
||||
login:
|
||||
# using cookie method because login page has embedded Google reCAPTCHA
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index/
|
||||
selector: a[href="/logout/"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://www.bithorlo.info/torrents/?action=search&categories[]=29&categories[]=4&search_text=&incldead=1&torrent_tags=
|
||||
- path: torrents/
|
||||
inputs:
|
||||
action: search
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
search_text: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 freeleech, 5 waiting for seed, 6 multiple upload
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
sort: "{{ .Config.sortBy }}"
|
||||
order_by: "{{ .Config.orderBy }}"
|
||||
|
||||
headers:
|
||||
User-Agent: ["{{ .Config.useragent }}"]
|
||||
|
||||
rows:
|
||||
selector: table#torrenttable > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td.fixed-width-category > a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: categories[]
|
||||
title:
|
||||
selector: a.torrent-name
|
||||
details:
|
||||
selector: a.torrent-name
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/download/"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: span.custom-popover
|
||||
attribute: data-bs-content
|
||||
filters:
|
||||
- name: regexp
|
||||
args: \"(.+?)\"
|
||||
date:
|
||||
selector: span.bg-green
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td.fixed-width-size > span
|
||||
grabs:
|
||||
selector: td.fixed-width-completed
|
||||
seeders:
|
||||
selector: td.fixed-width-seeders
|
||||
leechers:
|
||||
selector: td.fixed-width-leechers
|
||||
description:
|
||||
case:
|
||||
img[src="./themes/Born/nemlatta.png"]: Unverified
|
||||
"*": Verified
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"span:contains(\"FREE\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"span:contains(\"2x\")": 2
|
||||
"span:contains(\"3x\")": 3
|
||||
"span:contains(\"4x\")": 4
|
||||
"span:contains(\"5x\")": 5
|
||||
"span:contains(\"6x\")": 6
|
||||
"span:contains(\"7x\")": 7
|
||||
"span:contains(\"8x\")": 8
|
||||
"span:contains(\"9x\")": 9
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# engine n/a
|
||||
160
Prowlarr/config/Definitions/bithumen.yml
Normal file
160
Prowlarr/config/Definitions/bithumen.yml
Normal file
@ -0,0 +1,160 @@
|
||||
---
|
||||
id: bithumen
|
||||
name: BitHUmen
|
||||
description: "BitHUmen is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- https://bithumen.be/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 23, cat: Movies/SD, desc: "Film/Hun/SD"}
|
||||
- {id: 24, cat: Movies/DVD, desc: "Film/Hun/DVD-R"}
|
||||
- {id: 25, cat: Movies/HD, desc: "Film/Hun/720p"}
|
||||
- {id: 37, cat: Movies/HD, desc: "Film/Hun/1080p"}
|
||||
- {id: 33, cat: Movies/BluRay, desc: "Film/Hun/Blu-ray"}
|
||||
- {id: 30, cat: XXX, desc: "XXX/SD"}
|
||||
- {id: 19, cat: Movies/SD, desc: "Film/Eng/SD"}
|
||||
- {id: 20, cat: Movies/DVD, desc: "Film/Eng/DVD-R"}
|
||||
- {id: 5, cat: Movies/HD, desc: "Film/Eng/720p"}
|
||||
- {id: 39, cat: Movies/HD, desc: "Film/Eng/1080p"}
|
||||
- {id: 40, cat: Movies/BluRay, desc: "Film/Eng/Blu-ray"}
|
||||
- {id: 34, cat: XXX, desc: "XXX/HD"}
|
||||
- {id: 7, cat: TV/SD, desc: "Sorozat/Hun/SD"}
|
||||
- {id: 41, cat: TV/HD, desc: "Sorozat/Hun/HD"}
|
||||
- {id: 26, cat: TV/SD, desc: "Sorozat/Eng/SD"}
|
||||
- {id: 42, cat: TV/HD, desc: "Sorozat/Eng/HD"}
|
||||
- {id: 28, cat: Books, desc: "eBook/Hun"}
|
||||
- {id: 29, cat: Books, desc: "eBook/Eng"}
|
||||
- {id: 9, cat: Audio/MP3, desc: "Mp3/Hun"}
|
||||
- {id: 35, cat: Audio/Lossless, desc: "Lossless/Hun"}
|
||||
- {id: 1, cat: PC/0day, desc: "Programok/ISO"}
|
||||
- {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
|
||||
- {id: 31, cat: Console/PS4, desc: "Játékok/PS"}
|
||||
- {id: 36, cat: Console/Wii, desc: "Játékok/Wii"}
|
||||
- {id: 6, cat: Audio/MP3, desc: "Mp3/Eng"}
|
||||
- {id: 38, cat: Audio/Lossless, desc: "Lossless/Eng"}
|
||||
- {id: 22, cat: PC, desc: "Programok/egyéb"}
|
||||
- {id: 21, cat: PC, desc: "Játékok/Rip/Dox"}
|
||||
- {id: 32, cat: Console/XBox 360, desc: "Játékok/Xbox360"}
|
||||
- {id: 27, cat: Other, desc: "Klipek"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("bejelentkezés"))
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href*="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
incldead: 1
|
||||
|
||||
rows:
|
||||
selector: table#torrenttable > tbody > tr:has(a[href^="details.php?id="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
# download button can be disbled in the profile, use details link instead
|
||||
# download:
|
||||
# selector: a[href^="download.php/"]
|
||||
# attribute: href
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details.php?id=", "download.php/"]
|
||||
- name: append
|
||||
args: "/invalid.torrent"
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[onmouseover^="bithumen.UI.images.coverShow"]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\"(.*?)\""
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: /\s*([\d,]+)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
size:
|
||||
selector: td:nth-child(6) > u
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
selector: td:nth-child(5) > nobr > font:contains(" × ")
|
||||
optional: true
|
||||
default: 1
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["×", ""]
|
||||
date_year:
|
||||
selector: td:nth-child(5):contains('.')
|
||||
optional: true
|
||||
remove: font
|
||||
filters:
|
||||
- name: replace
|
||||
args: [". ", " "]
|
||||
- name: prepend
|
||||
args: "{{ .Today.Year }}."
|
||||
- name: re_replace
|
||||
args: ["([0-9]{4}).([0-9]+).([0-9]+) (.*)", "$2.$3.$1 $4"]
|
||||
date_day:
|
||||
selector: td:nth-child(5):contains('ma'), td:nth-child(5):contains("tegnap"), td:nth-child(5):contains('-')
|
||||
optional: true
|
||||
remove: font
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["ma", "today"]
|
||||
- name: replace
|
||||
args: ["tegnap", "yesterday"]
|
||||
date:
|
||||
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
|
||||
82
Prowlarr/config/Definitions/bitmagnet.yml
Normal file
82
Prowlarr/config/Definitions/bitmagnet.yml
Normal file
@ -0,0 +1,82 @@
|
||||
---
|
||||
id: bitmagnet
|
||||
name: BitMagnet (Local DHT)
|
||||
description: "BitMagnet is a self-hosted BitTorrent DHT search engine"
|
||||
language: en-US
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://127.0.0.1:3333/
|
||||
- http://bitmagnet:3333/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 2000, cat: Movies, desc: "movie"}
|
||||
- {id: 2030, cat: Movies/SD, desc: "movie_sd"} # unverified
|
||||
- {id: 2040, cat: Movies/HD, desc: "movie_hd"} # unverified
|
||||
- {id: 2045, cat: Movies/UHD, desc: "movie_uhd"} # unverified
|
||||
- {id: 2060, cat: Movies/3D, desc: "movie_3d"} # unverified
|
||||
- {id: 3000, cat: Audio, desc: "music"}
|
||||
- {id: 3030, cat: Audio/Audiobook, desc: "audiobook"}
|
||||
- {id: 4000, cat: PC, desc: "software"}
|
||||
- {id: 4050, cat: PC/Games, desc: "game"} # unverified
|
||||
- {id: 5000, cat: TV, desc: "tv_show"}
|
||||
- {id: 5030, cat: TV/SD, desc: "tv_show_sd"} # unverified
|
||||
- {id: 5040, cat: TV/HD, desc: "tv_show_hd"} # unverified
|
||||
- {id: 5045, cat: TV/UHD, desc: "tv_show_uhd"} # unverified
|
||||
- {id: 6000, cat: XXX, desc: "xxx"}
|
||||
- {id: 6070, cat: XXX/Other, desc: "xxx_other"} # unverified
|
||||
- {id: 7000, cat: Books, desc: "book"} # unverified
|
||||
- {id: 7020, cat: Books/EBook, desc: "ebook"}
|
||||
- {id: 7030, cat: Books/Comics, desc: "comic"}
|
||||
- {id: 8000, cat: Other, desc: "Unknown"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torznab/api
|
||||
response:
|
||||
type: xml
|
||||
inputs:
|
||||
t: "{{ .Query.Type }}"
|
||||
q: "{{ .Keywords }}"
|
||||
cat: "{{ join .Categories \",\" }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
season: "{{ .Query.Season }}"
|
||||
ep: "{{ .Query.Ep }}"
|
||||
limit: 100
|
||||
|
||||
rows:
|
||||
selector: rss > channel > item
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: category
|
||||
title:
|
||||
selector: title
|
||||
details:
|
||||
text: /
|
||||
date:
|
||||
selector: pubDate
|
||||
infohash:
|
||||
selector: guid
|
||||
size:
|
||||
selector: size
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# torznab xml
|
||||
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