mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-10 13:48:02 +02:00
Compare commits
308 Commits
v0.20.2930
...
v0.20.3670
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c830af6ee2 | ||
![]() |
805b7a5302 | ||
![]() |
f69879a2ee | ||
![]() |
0c5dfd4d62 | ||
![]() |
1aff9befb4 | ||
![]() |
dbf1d43744 | ||
![]() |
36abce2ef9 | ||
![]() |
8a5c55ab6e | ||
![]() |
fcad92d7f4 | ||
![]() |
a7fec0ba4a | ||
![]() |
42636b02a7 | ||
![]() |
7d27cde205 | ||
![]() |
76e5157393 | ||
![]() |
0f9f173cc5 | ||
![]() |
bffb505748 | ||
![]() |
e689e94fc2 | ||
![]() |
980a91cf99 | ||
![]() |
8f24aceafb | ||
![]() |
e59a904936 | ||
![]() |
ea118ef614 | ||
![]() |
cb625b9823 | ||
![]() |
a63708bfff | ||
![]() |
3c42aa15d2 | ||
![]() |
a68d1969c0 | ||
![]() |
6c2ccb5b1d | ||
![]() |
2059c67370 | ||
![]() |
fd58412143 | ||
![]() |
d4a3f4a84c | ||
![]() |
69df16e395 | ||
![]() |
ebca542ba7 | ||
![]() |
035b31827f | ||
![]() |
9395e8464b | ||
![]() |
20aa0dde29 | ||
![]() |
aff88be54f | ||
![]() |
a9b73e9f8c | ||
![]() |
479d289597 | ||
![]() |
6fa5694691 | ||
![]() |
6bca8d85ec | ||
![]() |
e80a43e861 | ||
![]() |
c0cbe78301 | ||
![]() |
bb390e59f8 | ||
![]() |
4b483a04ca | ||
![]() |
30d55e839c | ||
![]() |
45484006d2 | ||
![]() |
975a3eaa5c | ||
![]() |
5f023b2335 | ||
![]() |
023f863c01 | ||
![]() |
3047673bf0 | ||
![]() |
64ba5e2405 | ||
![]() |
3fcdccf8f8 | ||
![]() |
294e500087 | ||
![]() |
127471233f | ||
![]() |
b0794de532 | ||
![]() |
e48557dd25 | ||
![]() |
6580265d8a | ||
![]() |
2d3a72b433 | ||
![]() |
dd89ef8e73 | ||
![]() |
5b880033fb | ||
![]() |
c7e9d4e72b | ||
![]() |
7e8111f6cd | ||
![]() |
0a908c988c | ||
![]() |
b8d4d9a03c | ||
![]() |
8cb82021ef | ||
![]() |
a3e0f49cd0 | ||
![]() |
2f93492b98 | ||
![]() |
50f8fc3371 | ||
![]() |
1b46239ea3 | ||
![]() |
71eedc7aa8 | ||
![]() |
05e8e1e94f | ||
![]() |
c1f019bb37 | ||
![]() |
8f735b474e | ||
![]() |
0a4b80a939 | ||
![]() |
7a183ebb83 | ||
![]() |
ec55d71c6c | ||
![]() |
851f02fe48 | ||
![]() |
6eac3953a3 | ||
![]() |
0c10704eae | ||
![]() |
bbeca179d9 | ||
![]() |
cfa154be16 | ||
![]() |
dc948d6e75 | ||
![]() |
954e1cd37a | ||
![]() |
8729652e86 | ||
![]() |
dcaa587853 | ||
![]() |
6293a12358 | ||
![]() |
1d417bf3ad | ||
![]() |
faba3f1b63 | ||
![]() |
6878822043 | ||
![]() |
951a9628b1 | ||
![]() |
381212f783 | ||
![]() |
a51fab1fc9 | ||
![]() |
80691060ea | ||
![]() |
6e20120c72 | ||
![]() |
eecb6f00da | ||
![]() |
9df4e7bbd1 | ||
![]() |
6fc1e19184 | ||
![]() |
e867d5c1aa | ||
![]() |
5c56661654 | ||
![]() |
51471adc0b | ||
![]() |
40e7a658e7 | ||
![]() |
c232eaf7c7 | ||
![]() |
aa64c75908 | ||
![]() |
192254d402 | ||
![]() |
27c001c08d | ||
![]() |
e4e625c922 | ||
![]() |
0a2de978b9 | ||
![]() |
c2b9a42f31 | ||
![]() |
9f913d14d7 | ||
![]() |
579fd81e87 | ||
![]() |
8ca2c23641 | ||
![]() |
02fa828f44 | ||
![]() |
69e4061d0b | ||
![]() |
aa6e8e4bf1 | ||
![]() |
a3f0bd5b87 | ||
![]() |
045f39313c | ||
![]() |
1d62b859e0 | ||
![]() |
fdb2e68efd | ||
![]() |
f7b6813e21 | ||
![]() |
c0dbf39cf6 | ||
![]() |
e293aa9e4b | ||
![]() |
2a9702cad6 | ||
![]() |
a99093386a | ||
![]() |
f7e6884720 | ||
![]() |
37ff7ed991 | ||
![]() |
39129cf0f8 | ||
![]() |
378d5eeaa4 | ||
![]() |
b2e8c08311 | ||
![]() |
90fb5137b7 | ||
![]() |
49ee065a5a | ||
![]() |
1da4332901 | ||
![]() |
7e52ea52e1 | ||
![]() |
37455119e1 | ||
![]() |
1ec507b6e0 | ||
![]() |
8de1592d1f | ||
![]() |
8b3d9f4b5c | ||
![]() |
90438e04cb | ||
![]() |
adac51b136 | ||
![]() |
011a2ec61a | ||
![]() |
de1dc433cb | ||
![]() |
0465dd3f82 | ||
![]() |
0f17c4b499 | ||
![]() |
8c9cb785a5 | ||
![]() |
fd65431f74 | ||
![]() |
df83d786a7 | ||
![]() |
5b26eec5a4 | ||
![]() |
1d5ae12886 | ||
![]() |
c122921fc8 | ||
![]() |
38dc2f123b | ||
![]() |
96ab46566c | ||
![]() |
a16873dfdc | ||
![]() |
01347b9792 | ||
![]() |
ede19a9b73 | ||
![]() |
91c7c52f19 | ||
![]() |
e07024b371 | ||
![]() |
f126663e2e | ||
![]() |
653888f6d9 | ||
![]() |
f7c12f9522 | ||
![]() |
fdaedb46bf | ||
![]() |
4f052f9f1f | ||
![]() |
3ac0528766 | ||
![]() |
692f8d07a8 | ||
![]() |
ab0835c0e8 | ||
![]() |
52adc219db | ||
![]() |
a16cb0d40f | ||
![]() |
419723ec38 | ||
![]() |
8a078aede6 | ||
![]() |
1829090c99 | ||
![]() |
5ce4e5ee6f | ||
![]() |
b4f682660c | ||
![]() |
b7025d48e5 | ||
![]() |
d0b5d36208 | ||
![]() |
bfcee86892 | ||
![]() |
4014d98ebd | ||
![]() |
c2d530f1ea | ||
![]() |
ae56ab5c05 | ||
![]() |
4dac28fdde | ||
![]() |
8d3a2b229f | ||
![]() |
c92dcb1cac | ||
![]() |
a846613c7b | ||
![]() |
17d85d4df1 | ||
![]() |
e96f8a8422 | ||
![]() |
f7c7e0693e | ||
![]() |
45440d575d | ||
![]() |
2b22c249a5 | ||
![]() |
a4b9b023dc | ||
![]() |
007873a16a | ||
![]() |
07ce6c3318 | ||
![]() |
760066e93c | ||
![]() |
2c3dcf399e | ||
![]() |
15d0ba5725 | ||
![]() |
4f9b2210e1 | ||
![]() |
37fb4b32f0 | ||
![]() |
d49d9fa691 | ||
![]() |
d3df21459e | ||
![]() |
cd800b58de | ||
![]() |
b751db6936 | ||
![]() |
ff305cdef7 | ||
![]() |
b7646ec2b3 | ||
![]() |
b484be361a | ||
![]() |
ae90c982f3 | ||
![]() |
d87f613171 | ||
![]() |
ad2377a53b | ||
![]() |
8ae91c23c1 | ||
![]() |
0f02c1b87c | ||
![]() |
5edb39dafb | ||
![]() |
d2353c4611 | ||
![]() |
61a8bf73d8 | ||
![]() |
37d144b71c | ||
![]() |
a0c28b201e | ||
![]() |
94a2960003 | ||
![]() |
e796754e2c | ||
![]() |
e71f01cd42 | ||
![]() |
9fdd5d322f | ||
![]() |
9d023d05e2 | ||
![]() |
d4ca65c641 | ||
![]() |
2543ebdcac | ||
![]() |
ad626d688a | ||
![]() |
0150e10671 | ||
![]() |
6f49388b5c | ||
![]() |
e4c327bd1f | ||
![]() |
c3e3a33164 | ||
![]() |
b34c881a8c | ||
![]() |
35cfd7145f | ||
![]() |
2b34be06a7 | ||
![]() |
5512d86f29 | ||
![]() |
c32fb862ee | ||
![]() |
fcbe60afb8 | ||
![]() |
aede7449f7 | ||
![]() |
bb298424f0 | ||
![]() |
2321c14584 | ||
![]() |
3adf750973 | ||
![]() |
34ab812355 | ||
![]() |
376c8ba13b | ||
![]() |
6fb12e1732 | ||
![]() |
3ceb131ce8 | ||
![]() |
8b511127ff | ||
![]() |
d0820cc9ad | ||
![]() |
efc0a1ca69 | ||
![]() |
b0e9392ddb | ||
![]() |
e14a89643e | ||
![]() |
b0b719b163 | ||
![]() |
56b7449dbe | ||
![]() |
7d565cd0e9 | ||
![]() |
313df3e1b6 | ||
![]() |
0ca18d1664 | ||
![]() |
d5e8d4f0f0 | ||
![]() |
1f30b653d1 | ||
![]() |
0acade153b | ||
![]() |
104eb3da60 | ||
![]() |
aaf567a87d | ||
![]() |
556b0ee7dd | ||
![]() |
c89cd64190 | ||
![]() |
cbdb599027 | ||
![]() |
f82bdc3808 | ||
![]() |
41e56f1f30 | ||
![]() |
fc79f23d32 | ||
![]() |
0d3bc6a503 | ||
![]() |
008f6307ec | ||
![]() |
bb7c97a590 | ||
![]() |
f78bc29140 | ||
![]() |
5c81983434 | ||
![]() |
a445696bc6 | ||
![]() |
91710c8454 | ||
![]() |
b03d3fb8e2 | ||
![]() |
cfc23d1b45 | ||
![]() |
a595432b87 | ||
![]() |
eb63aecf8b | ||
![]() |
d7437f2a0f | ||
![]() |
bd3baeb657 | ||
![]() |
e27f784736 | ||
![]() |
2125c9a42e | ||
![]() |
325a998c8f | ||
![]() |
7f7437c7f1 | ||
![]() |
c454973730 | ||
![]() |
cc86e63b57 | ||
![]() |
0d06426aed | ||
![]() |
35628e93d8 | ||
![]() |
f00b421539 | ||
![]() |
5fe25448fa | ||
![]() |
99d67575f0 | ||
![]() |
b6634f8329 | ||
![]() |
49ec063ee7 | ||
![]() |
4791401843 | ||
![]() |
45a68fa915 | ||
![]() |
cc628ff5b9 | ||
![]() |
eb93dbb903 | ||
![]() |
f7c08f69e1 | ||
![]() |
372b526ad0 | ||
![]() |
a2729841c0 | ||
![]() |
8572ebf3b6 | ||
![]() |
9231506ddb | ||
![]() |
66c8dad9ca | ||
![]() |
d733a71bac | ||
![]() |
ebf6838b3f | ||
![]() |
a53b5d4ce0 | ||
![]() |
c50b9dfb0b | ||
![]() |
2fbcea8b5b | ||
![]() |
4e0538fa2a | ||
![]() |
7f9de141e3 | ||
![]() |
971934dbad | ||
![]() |
bbc0706c0a | ||
![]() |
300825ebbf | ||
![]() |
04872dfc4c | ||
![]() |
64503396c7 | ||
![]() |
4f817e9dfb | ||
![]() |
be6c5c49db | ||
![]() |
3e1270f961 | ||
![]() |
fe93e54ac1 | ||
![]() |
8a35175d31 |
@@ -75,7 +75,7 @@ indent_size=2
|
||||
|
||||
# JavaScript/HTML
|
||||
[*.{js,ts,json,html,cshtml}]
|
||||
indent_size=2
|
||||
indent_size=4
|
||||
|
||||
# Code files
|
||||
[*.{cs,csx,vb,vbx}]
|
||||
@@ -220,7 +220,7 @@ csharp_style_var_when_type_is_apparent=true:suggestion
|
||||
csharp_style_var_elsewhere=true:suggestion
|
||||
# Expression-bodied members
|
||||
csharp_style_expression_bodied_methods=when_on_single_line:suggestion
|
||||
csharp_style_expression_bodied_constructors=when_on_single_line:suggestion
|
||||
csharp_style_expression_bodied_constructors=false:suggestion
|
||||
csharp_style_expression_bodied_operators=when_on_single_line:suggestion
|
||||
csharp_style_expression_bodied_properties=true:suggestion
|
||||
csharp_style_expression_bodied_indexers=true:suggestion
|
||||
|
2
.github/workflows/winget.yml
vendored
2
.github/workflows/winget.yml
vendored
@@ -8,7 +8,7 @@ jobs:
|
||||
publish:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: vedantmgoyal2009/winget-releaser@v1
|
||||
- uses: vedantmgoyal2009/winget-releaser@v2
|
||||
with:
|
||||
identifier: Jackett.Jackett
|
||||
token: ${{ secrets.WINGET }}
|
||||
|
@@ -33,19 +33,13 @@ Before you submit a bug-report or do any other troubleshooting, make sure your J
|
||||
We are releasing bug fixes almost daily, so your issue may have been fixed already.
|
||||
Bugs that are submitted without being on the latest version may be closed.
|
||||
|
||||
**Error "An error occurred while sending the request: Error: TrustFailure (A call to SSPI failed, see inner exception.)"**
|
||||
|
||||
This is often caused by missing CA certificates.
|
||||
Try reimporting the certificates in this case:
|
||||
- On Linux (as user root): `wget -O - https://curl.haxx.se/ca/cacert.pem | cert-sync /dev/stdin`
|
||||
- On macOS: `curl -sS https://curl.haxx.se/ca/cacert.pem | cert-sync --user /dev/stdin`
|
||||
|
||||
**Tracker isn't working**
|
||||
|
||||
If you are experiencing an issue with a tracker, then:
|
||||
- Use your browser to check you can access the site directly, and if a login is required,
|
||||
check you can login and that you do not have any outstanding account issues.
|
||||
- If you haven't already, try upgrading to the latest version of Jackett.
|
||||
- Check our [Troubleshooting wiki](https://github.com/Jackett/Jackett/wiki/Troubleshooting) for common issues.
|
||||
- If it is still not working for you, then a **full enhanced log must be included**.
|
||||
|
||||
**Enable enhanced logging**
|
||||
@@ -68,9 +62,9 @@ Your issue should have the following information.
|
||||
- **Descriptive Title** - The title of your bug should include keywords and a descriptive summary of what you're experiencing
|
||||
to help others avoid duplicating your bug report
|
||||
- Keywords in the title should be as follows:
|
||||
- Tracker bugs should start with the tracker in brackets e.g. [**AnimeBytes**]
|
||||
- Feature requests should start with [**REQ**]
|
||||
- New trackers should begin with [**New**] and the tracker type [**Public**/**Private**/**Semi-Private**] e.g. **[New][Public] ThePirateBay**
|
||||
- Indexer bugs should start with the indexer ID in brackets e.g. **[thepiratebay]**
|
||||
- Feature requests should start with **[req]**
|
||||
- Indexers requests should start with **[req]** and the name of the tracker e.g. **[req] ThePirateBay**
|
||||
- **Environment Details** - These are things like your OS version, Jackett type and version, mono/.Net-core/framework version(s).
|
||||
These are asked for by the issue template when you create a new issue on GitHub.
|
||||
- **Steps** to cause the problem, if applicable. These should be specific and repeatable.
|
||||
@@ -112,15 +106,15 @@ If you use something else, please add it here for others.
|
||||
<details open=true> <summary> Visual Studio 2022 </summary>
|
||||
|
||||
- Install [Visual Studio Community 2022](https://visualstudio.microsoft.com/vs/) for free.
|
||||
- About 2GB download. 8GB installed.
|
||||
- About 2GB download, 8GB installed.
|
||||
- Make sure it includes the following Workload and Individual Components:
|
||||
- .NET desktop development
|
||||
- .Net Framework 4.6.1 SDK
|
||||
- .Net Framework 4.6.1 targeting pack
|
||||
- .Net Framework 4.6.2 SDK
|
||||
- .Net Framework 4.6.2 targeting pack
|
||||
- From the `Get Started` screen:
|
||||
- `Clone a repository -> Browse a repository -> GitHub -> Sign in -> clone your forked repository`
|
||||
- Double-click `Jackett.sln` in `Solution Explorer` to load your project
|
||||
- Ensure `Jackett.Server` is the Startup Project (instead of `Jackett.Service`) and the Run Target (instead of `IIS Express`)
|
||||
- Ensure `Jackett.Server` is the Startup Project and the Run Target (instead of `Jackett.Service`)
|
||||
- Open `Tools -> NuGet Package Manager -> Package Manager Console`
|
||||
- From the PMC, with `Jackett.Service` as the default project, run:
|
||||
- `dotnet tool install -g dotnet-format`
|
||||
|
65
README.md
65
README.md
@@ -14,7 +14,7 @@ Please see our [troubleshooting and contributing guidelines](CONTRIBUTING.md) be
|
||||
|
||||
Jackett works as a proxy server: it translates queries from apps ([Sonarr](https://github.com/Sonarr/Sonarr), [Radarr](https://github.com/Radarr/Radarr), [SickRage](https://sickrage.github.io/), [CouchPotato](https://couchpota.to/), [Mylar3](https://github.com/mylar3/mylar3), [Lidarr](https://github.com/lidarr/lidarr), [DuckieTV](https://github.com/SchizoDuckie/DuckieTV), [qBittorrent](https://www.qbittorrent.org/), [Nefarious](https://github.com/lardbit/nefarious) etc.) into tracker-site-specific http queries, parses the html or json response, and then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.
|
||||
|
||||
Developer note: The software implements the [Torznab](https://github.com/Sonarr/Sonarr/wiki/Implementing-a-Torznab-indexer) (with hybrid [nZEDb](https://github.com/nZEDb/nZEDb/blob/b485fa326a0ff1f47ce144164eb1f070e406b555/resources/db/schema/data/10-categories.tsv)/[Newznab](https://newznab.readthedocs.io/en/latest/misc/api/#predefined-categories) [category numbering](https://github.com/Jackett/Jackett/wiki/Jackett-Categories)) and [TorrentPotato](https://github.com/RuudBurger/CouchPotatoServer/wiki/Couchpotato-torrent-provider) APIs.
|
||||
Developer note: The software implements the [Torznab](https://web.archive.org/web/20220517013745/https://github.com/Sonarr/Sonarr/wiki/Implementing-a-Torznab-indexer) (with hybrid [nZEDb](https://github.com/nZEDb/nZEDb/blob/b485fa326a0ff1f47ce144164eb1f070e406b555/resources/db/schema/data/10-categories.tsv)/[Newznab](https://newznab.readthedocs.io/en/latest/misc/api/#predefined-categories) [category numbering](https://github.com/Jackett/Jackett/wiki/Jackett-Categories)) and [TorrentPotato](https://github.com/RuudBurger/CouchPotatoServer/wiki/Couchpotato-torrent-provider) APIs.
|
||||
|
||||
A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](https://github.com/webtor-io/go-jackett)
|
||||
|
||||
@@ -31,7 +31,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* ACGsou (36DM)
|
||||
* Anidex
|
||||
* AniLibria
|
||||
* AnimeClipse
|
||||
* Anime Tosho
|
||||
* AniRena
|
||||
* AniSource
|
||||
@@ -48,7 +47,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* BTSOW
|
||||
* BullTorrent
|
||||
* Byrutor
|
||||
* CloudTorrents
|
||||
* comicat
|
||||
* ConCen
|
||||
* cpasbien
|
||||
@@ -59,6 +57,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* dmhy
|
||||
* Dodder (菟丝子资源社区)
|
||||
* DonTorrent
|
||||
* EBook Bay (EBB)
|
||||
* E-Hentai
|
||||
* EpubLibre
|
||||
* EXT Torrents
|
||||
@@ -73,7 +72,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* GkTorrent
|
||||
* GloDLS
|
||||
* GTorrent.pro
|
||||
* IBit
|
||||
* Idope
|
||||
* Il CorSaRo Blu
|
||||
* Il Corsaro Nero
|
||||
@@ -84,7 +82,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* kickasstorrents.to
|
||||
* kickasstorrents.ws
|
||||
* Knaben
|
||||
* Legit Torrents
|
||||
* LePorno.info
|
||||
* LimeTorrents
|
||||
* LimeTorrents clone
|
||||
@@ -107,8 +104,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* ParnuXi
|
||||
* PC-torrent
|
||||
* PiratBit
|
||||
* Pornforall
|
||||
* PornLeech
|
||||
* PornosLab
|
||||
* PornoTorrent
|
||||
* Portugas
|
||||
@@ -183,8 +178,10 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* DimeADozen (EzTorrent)
|
||||
* DXP (Deaf Experts)
|
||||
* Electro-Torrent
|
||||
* EliteTorrent-pl
|
||||
* EniaHD
|
||||
* Erai-Raws
|
||||
* Ex-torrenty
|
||||
* ExKinoRay
|
||||
* ExtremlymTorrents
|
||||
* Fenyarnyek-Tracker
|
||||
@@ -192,10 +189,12 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Gay-Torrents.net
|
||||
* Genesis-Movement
|
||||
* HD-CzTorrent
|
||||
* HellTorrents
|
||||
* HDGalaKtik
|
||||
* HunTorrent
|
||||
* Kinorun
|
||||
* Kinozal
|
||||
* Lightning-Tor
|
||||
* LostFilm.tv
|
||||
* Magnetico (Local DHT) [[site](https://github.com/boramalper/magnetico)]
|
||||
* Marine Tracker
|
||||
@@ -224,6 +223,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Torrents-Local
|
||||
* TribalMixes
|
||||
* Union Fansub
|
||||
* UniOtaku
|
||||
* vTorrent
|
||||
* xTorrenty
|
||||
* YggTorrent (YGG)
|
||||
@@ -243,7 +243,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* 52PT
|
||||
* Abnormal
|
||||
* ABtorrents (ABT + RNS)
|
||||
* Acervos
|
||||
* Acervos [![(invite needed)][inviteneeded]](#)
|
||||
* Acid Lounge (A-L)
|
||||
* AcrossTheTasman [![(invite needed)][inviteneeded]](#)
|
||||
* Aftershock
|
||||
@@ -253,11 +253,12 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* AmigosShareClub
|
||||
* AnimeBytes (AB)
|
||||
* AnimeTracker
|
||||
* AnimeTorrents (AnT) [![(invite needed)][inviteneeded]](#)
|
||||
* AnimeTorrents (AnT)
|
||||
* AnimeWorld
|
||||
* Anthelion
|
||||
* Araba Fenice (Phoenix) [![(invite needed)][inviteneeded]](#)
|
||||
* ArabP2P
|
||||
* ArabTorrents [![(invite needed)][inviteneeded]](#)
|
||||
* aro.lol
|
||||
* AsianCinema
|
||||
* AsianDVDClub
|
||||
@@ -290,7 +291,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* BroadcasTheNet (BTN)
|
||||
* BroadCity
|
||||
* BrokenStones [![(invite needed)][inviteneeded]](#)
|
||||
* BrSociety
|
||||
* BrSociety [![(invite needed)][inviteneeded]](#)
|
||||
* BTNext (BTNT) [![(invite needed)][inviteneeded]](#)
|
||||
* BTSCHOOL
|
||||
* BWTorrents
|
||||
@@ -318,11 +319,11 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* CrnaBerza
|
||||
* DANISH BYTES
|
||||
* Darius Tracker
|
||||
* Dark-Shadow
|
||||
* DataScene (DS)
|
||||
* DataTalli
|
||||
* DesiTorrents
|
||||
* Diablo Torrent [![(invite needed)][inviteneeded]](#)
|
||||
* DICMusic
|
||||
* DigitalCore
|
||||
* DiscFan
|
||||
* DivTeam
|
||||
@@ -347,12 +348,11 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* FunFile (FF)
|
||||
* FunkyTorrents (FT)
|
||||
* Fuzer (FZ)
|
||||
* GainBound
|
||||
* GainBound [![(invite needed)][inviteneeded]](#)
|
||||
* Gay-Torrents.org
|
||||
* GAYtorrent.ru
|
||||
* GazelleGames (GGn) [![(invite needed)][inviteneeded]](#)
|
||||
* Generation-Free
|
||||
* GFXPeers
|
||||
* GigaTorrents
|
||||
* GimmePeers (formerly ILT)
|
||||
* GiroTorrent
|
||||
@@ -371,7 +371,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* HD-Torrents (HDT)
|
||||
* HD-UNiT3D
|
||||
* HD4FANS [![(invite needed)][inviteneeded]](#)
|
||||
* HDAI
|
||||
* HDArea (HDA)
|
||||
* HDAtmos
|
||||
* HDBits [![(invite needed)][inviteneeded]](#)
|
||||
@@ -404,6 +403,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* JoyHD [![(invite needed)][inviteneeded]](#)
|
||||
* JPopsuki
|
||||
* JPTV
|
||||
* KamePT [![(invite needed)][inviteneeded]](#)
|
||||
* Karagarga
|
||||
* Keep Friends [![(invite needed)][inviteneeded]](#)
|
||||
* Korsar
|
||||
@@ -471,12 +471,12 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* PTerClub
|
||||
* PTFiles (PTF)
|
||||
* PThome [![(invite needed)][inviteneeded]](#)
|
||||
* PTMSG
|
||||
* PTSBAO
|
||||
* PTtime
|
||||
* Punk's Horror Tracker
|
||||
* PuntoTorrent
|
||||
* PuTao
|
||||
* Puur-Hollands
|
||||
* PWTorrents (PWT)
|
||||
* R3V WTF! [![(invite needed)][inviteneeded]](#)
|
||||
* Racing4Everyone (R4E)
|
||||
@@ -501,6 +501,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* SiamBIT
|
||||
* SkipTheCommercials
|
||||
* SkipTheTrailers
|
||||
* slosoul
|
||||
* SnowPT (SSPT)
|
||||
* SoulVoice
|
||||
* SpeedApp (SceneFZ, XtreMeZone / MYXZ, ICE Torrent)
|
||||
@@ -576,7 +577,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* UnleashTheCartoons
|
||||
* UnlimitZ
|
||||
* White Angel
|
||||
* wOOt [![(invite needed)][inviteneeded]](#)
|
||||
* World-In-HD [![(invite needed)][inviteneeded]](#)
|
||||
* World-of-Tomorrow
|
||||
* x-ite.me (XM)
|
||||
@@ -636,6 +636,39 @@ The "filter" indexer at `/api/v2.0/indexers/tag:group1,!type:private+lang:en/res
|
||||
Example 2:
|
||||
The "filter" indexer at `/api/v2.0/indexers/!status:failing,test:passed` will query all the configured indexers not `failing` or which `passed` its last test.
|
||||
|
||||
### Search modes and parameters
|
||||
|
||||
A list of supported API search modes and parameters:
|
||||
|
||||
```
|
||||
t=search:
|
||||
params : q
|
||||
t=tvsearch:
|
||||
params : q, season, ep, imdbid, tvdbid, rid, tmdbid, tvmazeid, traktid, doubanid, year, genre
|
||||
t=movie:
|
||||
params : q, imdbid, tmdbid, traktid, doubanid, year, genre
|
||||
t=music:
|
||||
params : q, album, artist, label, track, year, genre
|
||||
t=book:
|
||||
params : q, title, author, publisher, year, genre
|
||||
```
|
||||
|
||||
Examples:
|
||||
|
||||
```
|
||||
.../api?apikey=APIKEY&t=search&cat=1,3&q=Show+Title+S01E02
|
||||
|
||||
.../api?apikey=APIKEY&t=tvsearch&cat=1,3&q=Show+Title&season=1&ep=2
|
||||
.../api?apikey=APIKEY&t=tvsearch&cat=1,3&genre=comedy&season=2023&ep=02/13
|
||||
|
||||
.../api?apikey=APIKEY&t=movie&cat=2&q=Movie+Title&year=2023
|
||||
.../api?apikey=APIKEY&t=movie&cat=2&imdbid=tt1234567
|
||||
|
||||
.../api?apikey=APIKEY&t=music&cat=4&album=Title&artist=Name
|
||||
|
||||
.../api?apikey=APIKEY&t=book&cat=5,6&genre=horror&publisher=Stuff
|
||||
```
|
||||
|
||||
## Installation on Windows
|
||||
We recommend you install Jackett as a Windows service using the supplied installer. You may also download the zipped version if you would like to configure everything manually.
|
||||
|
||||
|
@@ -385,7 +385,7 @@ stages:
|
||||
npm install -g ajv-cli-servarr ajv-formats
|
||||
# set fail as false
|
||||
fail=0
|
||||
ajv test -d "src/Jackett.Common/Definitions/*.yml" -s "src/Jackett.Common/Definitions/schema.json" --valid --all-errors -c ajv-formats
|
||||
ajv test -d "src/Jackett.Common/Definitions/*.yml" -s "src/Jackett.Common/Definitions/schema.json" --valid --all-errors -c ajv-formats --spec=draft2019
|
||||
if [ "$?" -ne 0 ]; then
|
||||
fail=1
|
||||
fi
|
||||
|
@@ -322,8 +322,8 @@ function displayUnconfiguredIndexersList() {
|
||||
indexersTable.find('.indexer-setup').each(function (i, btn) {
|
||||
var indexer = unconfiguredIndexers[i];
|
||||
$(btn).click(function () {
|
||||
$('#select-indexer-modal').modal('hide').on('hidden.bs.modal', function (e) {
|
||||
displayIndexerSetup(indexer.id, indexer.name, indexer.caps, indexer.link, indexer.alternativesitelinks, indexer.description);
|
||||
$('#select-indexer-modal').modal('hide').on('hidden.bs.modal', function () {
|
||||
displayIndexerSetup(indexer.id, indexer.name, indexer.caps, indexer.site_link, indexer.alternativesitelinks, indexer.description);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -660,7 +660,7 @@ function prepareSetupButtons(element) {
|
||||
var indexer = configuredIndexers.find(i => i.id === id);
|
||||
if (indexer)
|
||||
$btn.click(function () {
|
||||
displayIndexerSetup(indexer.id, indexer.name, indexer.caps, indexer.link, indexer.alternativesitelinks, indexer.description);
|
||||
displayIndexerSetup(indexer.id, indexer.name, indexer.caps, indexer.site_link, indexer.alternativesitelinks, indexer.description);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@@ -700,7 +700,7 @@
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">{{title}} - <a target="_blank" href="{{link}}">{{link}}</a></h4>
|
||||
<h4 class="modal-title">{{title}} - <a target="_blank" href="{{link}}" rel="noreferrer">{{link}}</a></h4>
|
||||
{{#if description}}
|
||||
<div class="alert alert-info">{{description}}</div>
|
||||
{{/if}}
|
||||
|
@@ -151,7 +151,7 @@ search:
|
||||
- name: append
|
||||
args: " +03:00" # MSK
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
|
@@ -13,14 +13,12 @@ links:
|
||||
- https://x1337x.ws/
|
||||
- https://x1337x.eu/
|
||||
- https://x1337x.se/
|
||||
- https://1337x.unblockit.ink/
|
||||
- https://1337x.nocensor.art/
|
||||
- https://1337x.unblockit.boo/
|
||||
- https://1337x.mrunblock.guru/
|
||||
- https://1337x.unblockninja.com/
|
||||
legacylinks:
|
||||
- https://1337x.is/
|
||||
- https://1337x.nocensor.work/
|
||||
- https://1337x.unblockit.bz/
|
||||
- https://1337x.unblockit.tv/
|
||||
- https://1337x.unblockit.how/
|
||||
- https://1337x.unblockit.cam/
|
||||
- https://1337x.nocensor.biz/
|
||||
@@ -38,6 +36,9 @@ legacylinks:
|
||||
- https://1337x.unblockit.page/
|
||||
- https://1337x.unblockit.pet/
|
||||
- https://1337x.nocensor.lol/
|
||||
- https://1337x.unblockit.ink/
|
||||
- https://1337x.nocensor.art/
|
||||
- https://1337x.unblockit.bio/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -183,6 +184,7 @@ search:
|
||||
- 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 }}/"
|
||||
|
||||
rows:
|
||||
selector: tr:has(a[href^="/torrent/"])
|
||||
@@ -255,7 +257,7 @@ search:
|
||||
- name: re_replace
|
||||
args: ["st|nd|rd|th", ""]
|
||||
- name: dateparse
|
||||
args: "3pm Jan. 2"
|
||||
args: "htt MMM. d"
|
||||
date_years:
|
||||
# (more than a year ago) Apr. 18th '11
|
||||
optional: true
|
||||
@@ -266,7 +268,7 @@ search:
|
||||
- name: re_replace
|
||||
args: ["st|nd|rd|th", ""]
|
||||
- name: dateparse
|
||||
args: "Jan. 2 06"
|
||||
args: "MMM. d yy"
|
||||
date_today:
|
||||
# (today) 12:25am
|
||||
optional: true
|
||||
|
@@ -36,7 +36,7 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -85,6 +85,7 @@ search:
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
@@ -98,12 +99,11 @@ search:
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
@@ -125,7 +125,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00"
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-last-of-type(6):not(:has(span))
|
||||
@@ -134,7 +134,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
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:
|
||||
|
@@ -97,22 +97,22 @@ settings:
|
||||
default: false
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTI by another language in release name
|
||||
label: Replace MULTi by another language in release name
|
||||
default: false
|
||||
- name: multilanguage
|
||||
type: select
|
||||
label: Replace MULTI by this language
|
||||
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"
|
||||
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 with ENGLISH
|
||||
label: Replace VOSTFR and SUBFRENCH with ENGLISH
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
@@ -178,22 +178,20 @@ search:
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" - (Nouveau!)", ""]
|
||||
title_multilang:
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\smulti\\s)", " {{ .Config.multilanguage }} "]
|
||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||
title_phase2:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_vostfr:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\svostfr\\s)", " ENGLISH "]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\ssubfrench\\s)", " ENGLISH "]
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
|
@@ -127,6 +127,7 @@ search:
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
||||
@@ -140,12 +141,11 @@ search:
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
@@ -172,7 +172,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
@@ -181,7 +181,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
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:
|
||||
|
@@ -99,6 +99,7 @@ search:
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
# does not return imdb link in results
|
||||
|
||||
rows:
|
||||
@@ -113,12 +114,11 @@ search:
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
@@ -140,7 +140,7 @@ search:
|
||||
- name: append
|
||||
args: " +07:00" # ICT
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(5):not(:has(span))
|
||||
@@ -149,7 +149,7 @@ search:
|
||||
- name: append
|
||||
args: " +07:00" # ICT
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
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:
|
||||
|
@@ -131,18 +131,17 @@ search:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "02/01/2006 -07:00"
|
||||
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_optional:
|
||||
grabs:
|
||||
selector: a[href^="index.php?page=torrent_history"]
|
||||
optional: true
|
||||
grabs:
|
||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/50off.png"]: 0.5
|
||||
|
@@ -35,7 +35,7 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -89,6 +89,7 @@ search:
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
# does not return imdb or doubanid in results
|
||||
|
||||
rows:
|
||||
@@ -97,12 +98,11 @@ search:
|
||||
fields:
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
@@ -124,7 +124,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
@@ -133,7 +133,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
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:
|
||||
|
@@ -156,43 +156,39 @@ search:
|
||||
selector: table.tableinborder > tbody > tr:has(a[href^="/download.php"])
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="details.php"]
|
||||
attribute: title
|
||||
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_optional:
|
||||
grabs:
|
||||
selector: a[title="Snatcher"]
|
||||
optional: true
|
||||
grabs:
|
||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
||||
files_optional:
|
||||
default: 0
|
||||
files:
|
||||
selector: a[title="Files"]
|
||||
optional: true
|
||||
files:
|
||||
text: "{{ if .Result.files_optional }}{{ .Result.files_optional }}{{ else }}0{{ end }}"
|
||||
default: 0
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders_optional:
|
||||
seeders:
|
||||
selector: a[title="Seeder"]
|
||||
optional: true
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
default: 0
|
||||
leechers:
|
||||
selector: a[title="Leecher"]
|
||||
optional: true
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
default: 0
|
||||
# 2 flavours of dates
|
||||
date_day:
|
||||
# Heute 13:30:04
|
||||
@@ -218,7 +214,7 @@ search:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "02.01.2006 15:04:05 -07:00"
|
||||
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:
|
||||
|
@@ -37,22 +37,22 @@ settings:
|
||||
label: Password
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTI by another language in release name
|
||||
label: Replace MULTi by another language in release name
|
||||
default: false
|
||||
- name: multilanguage
|
||||
type: select
|
||||
label: Replace MULTI by this language
|
||||
label: Replace MULTi by this language
|
||||
default: FRENCH
|
||||
options:
|
||||
FRENCH: FRENCH
|
||||
MULTI.FRENCH: MULTI.FRENCH
|
||||
MULTi.FRENCH: MULTi.FRENCH
|
||||
ENGLISH: ENGLISH
|
||||
MULTI.ENGLISH: MULTI.ENGLISH
|
||||
MULTi.ENGLISH: MULTi.ENGLISH
|
||||
VOSTFR: VOSTFR
|
||||
MULTI.VOSTFR: MULTI.VOSTFR
|
||||
MULTi.VOSTFR: MULTi.VOSTFR
|
||||
- name: vostfr
|
||||
type: checkbox
|
||||
label: Replace VOSTFR with ENGLISH
|
||||
label: Replace VOSTFR and SUBFRENCH with ENGLISH
|
||||
default: false
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
@@ -124,22 +124,20 @@ search:
|
||||
args: SelectedCats
|
||||
title_phase1:
|
||||
selector: td.grid-release-column > a
|
||||
title_multilang:
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\.multi\\.)", " {{ .Config.multilanguage }} "]
|
||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||
title_phase2:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_vostfr:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\.vostfr\\.)", " ENGLISH "]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\.subfrench\\.)", " ENGLISH "]
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="/Torrent/Details?ReleaseId="]
|
||||
attribute: href
|
||||
|
@@ -89,7 +89,7 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -152,7 +152,7 @@ search:
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "Jan 2 2006 3:04 PM"
|
||||
args: "MMM d yyyy h:mm tt"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
|
@@ -12,14 +12,14 @@ caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Filmes"}
|
||||
- {id: 2, cat: TV, desc: "Séries"}
|
||||
- {id: 8, cat: TV/Anime, desc: "Animes"}
|
||||
- {id: 5, cat: Other, desc: "Cursos"}
|
||||
- {id: 6, cat: Other, desc: "Materiais de Apoio"}
|
||||
- {id: 7, cat: Books, desc: "eBooks / Revistas / Apostilas"}
|
||||
- {id: 9, cat: Audio/Video, desc: "Shows"}
|
||||
- {id: 10, cat: PC, desc: "Programas"}
|
||||
- {id: 11, cat: TV/Documentary, desc: "Documentários"}
|
||||
- {id: 6, cat: TV/Anime, desc: "Animes"}
|
||||
- {id: 3, cat: TV/Documentary, desc: "Documentários"}
|
||||
- {id: 7, cat: Audio/Video, desc: "Shows"}
|
||||
- {id: 4, cat: Console, desc: "Games"}
|
||||
- {id: 8, cat: Other, desc: "Cursos"}
|
||||
- {id: 9, cat: Books, desc: "eBooks / Revistas / Apostilas"}
|
||||
- {id: 5, cat: PC, desc: "Programas"}
|
||||
- {id: 10, cat: Other, desc: "Materiais de Apoio"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -78,8 +78,14 @@ search:
|
||||
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
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
@@ -119,14 +125,12 @@ search:
|
||||
_reg:
|
||||
selector: region
|
||||
optional: true
|
||||
description:
|
||||
text: "{{ .Result._cat }} {{ .Result._type }} {{ .Result._res }} {{ .Result._reg }}"
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: poster
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
@@ -136,6 +140,15 @@ search:
|
||||
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._cat }} {{ .Result._type }} {{ .Result._res }} {{ .Result._reg }} {{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
@@ -151,7 +164,7 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "01/02/2006 15:04:05 -07:00"
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
@@ -176,4 +189,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 6.1.0
|
||||
# json UNIT3D 6.4.1 (custom)
|
||||
|
@@ -6,6 +6,7 @@ language: zh-CN
|
||||
type: public
|
||||
followredirect: true
|
||||
encoding: UTF-8
|
||||
requestDelay: 5
|
||||
links:
|
||||
- https://www.36dm.club/
|
||||
- https://www.36dm.com/
|
||||
@@ -61,10 +62,6 @@ search:
|
||||
# https://www.acgsou.com/search.php?keyword=test
|
||||
- path: "{{ if .Keywords }}search.php?keyword={{ .Keywords }}{{ else }}1.html{{ end }}"
|
||||
|
||||
headers:
|
||||
# site blocks Jackett's User-Agents, so slightly alter it here (e.g. Safari/537.36 > Safari/537.35)
|
||||
User-Agent: ["Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.35"]
|
||||
|
||||
rows:
|
||||
selector: table tbody tr[class^="alt"]:has(td:nth-child(3) a)
|
||||
|
||||
@@ -90,7 +87,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "01/02 15:04 -07:00"
|
||||
args: "MM/dd HH:mm zzz"
|
||||
date_years:
|
||||
selector: td:nth-child(1):not(:contains(":"))
|
||||
optional: true
|
||||
@@ -98,7 +95,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006/01/02 -07:00"
|
||||
args: "yyyy/MM/dd zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_years }}{{ or .Result.date_year .Result.date_years }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
|
@@ -157,7 +157,7 @@ search:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td.torrent_table_size
|
||||
grabs:
|
||||
|
@@ -65,7 +65,7 @@ search:
|
||||
selector: td:nth-child(1)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "Jan 02, 2006"
|
||||
args: "MMM dd, yyyy"
|
||||
title:
|
||||
selector: td:nth-child(4) > span:nth-child(1)
|
||||
filters:
|
||||
|
@@ -168,7 +168,7 @@ search:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
span.icon_gift: 0
|
||||
|
@@ -38,7 +38,7 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -118,7 +118,7 @@ search:
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "060102 15:04:05"
|
||||
args: "yyMMdd HH:mm:ss"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/freeleech.png"]: 0 # dl not counted
|
||||
|
@@ -78,8 +78,14 @@ search:
|
||||
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
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=100{{ else }}{{ end }}"
|
||||
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
|
||||
@@ -143,7 +149,7 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "01/02/2006 15:04:05 -07:00"
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
|
@@ -297,19 +297,18 @@ search:
|
||||
"[src$=\"/Scripts.png\"]": 128
|
||||
"[src$=\"/Vetores.png\"]": 124
|
||||
"[src$=\"/outros2.png\"]": 130
|
||||
date_optional:
|
||||
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: "02/01/06 15:04:05"
|
||||
date:
|
||||
text: "{{ if .Result.date_optional }}{{ .Result.date_optional }}{{ else }}now{{ end }}"
|
||||
args: "dd/MM/yy HH:mm:ss"
|
||||
size:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-info
|
||||
seeders:
|
||||
|
@@ -9,35 +9,53 @@ links:
|
||||
- https://www.anilibria.tv/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV/Anime, desc: Anime}
|
||||
categories:
|
||||
Anime: TV/Anime
|
||||
Movies: Movies/Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings: []
|
||||
settings:
|
||||
- name: striprussian
|
||||
type: checkbox
|
||||
label: Strip Russian
|
||||
default: false
|
||||
- name: addrussian
|
||||
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_v2.md
|
||||
- path: "https://api.anilibria.tv/v2/{{ if .Keywords }}searchTitles?filter=names,poster.url,code,torrents.list,season.year&limit=100&search={{ .Keywords }}{{ else }}getUpdates?filter=names,poster.url,code,torrents.list,season.year&limit=100{{ end }}"
|
||||
# https://github.com/anilibria/docs/blob/master/api_v3.md
|
||||
- path: "https://api.anilibria.tv/v3/{{ if .Keywords }}searchTitles{{ else }}getUpdates{{ end }}"
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
filter: "names,posters.small.url,code,torrents.list,season.year,description"
|
||||
limit: 100
|
||||
|
||||
keywordsfilters:
|
||||
# strip season and ep
|
||||
- name: re_replace
|
||||
args: ["(?i)(?:[SE]?\\d{1,4}){1,2}$", ""]
|
||||
|
||||
rows:
|
||||
selector: $
|
||||
selector: list
|
||||
attribute: torrents.list
|
||||
multiple: true
|
||||
|
||||
fields:
|
||||
_episodes:
|
||||
selector: episodes.string
|
||||
optional: true
|
||||
category:
|
||||
text: 1
|
||||
text: "{{ if eq .Result._episodes \"Фильм\" }}Movies{{ else }}Anime{{ end }}"
|
||||
title_ru:
|
||||
selector: ..names.ru
|
||||
title_en:
|
||||
@@ -45,15 +63,26 @@ search:
|
||||
title_alternative:
|
||||
selector: ..names.alternative
|
||||
optional: true
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["([А-Яа-яЁё]+)", "{{ if .Config.striprussian }}{{ else }}$1{{ end }}"]
|
||||
- name: re_replace
|
||||
args: ["^[\\.\\s\\d,\\-—:]+", ""]
|
||||
- name: re_replace
|
||||
args: ["^OVA$", ""]
|
||||
year:
|
||||
selector: ..season.year
|
||||
_quality:
|
||||
selector: quality.string
|
||||
_series:
|
||||
selector: series.string
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ .Result.title_ru }} / {{ .Result.title_en }}{{ if .Result.title_alternative }} / {{ .Result.title_alternative }}{{ else }}{{ end }} ({{ .Result.year }}) [{{ .Result._quality }}]{{ if .Result._series }} - {{ .Result._series }}{{ else }}{{ end }}"
|
||||
text: "{{ if .Config.striprussian }}{{ 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: [" - \\bEOVA\\b", " - OVA"]
|
||||
- name: append
|
||||
args: "{{ if .Config.addrussian }} - RUS{{ else }}{{ end }}"
|
||||
_code:
|
||||
selector: ..code
|
||||
details:
|
||||
@@ -63,11 +92,13 @@ search:
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Config.sitelink }}"
|
||||
magnet:
|
||||
selector: magnet
|
||||
poster:
|
||||
selector: ..poster.url
|
||||
selector: ..posters.small.url
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "https://static.anilibria.tv/"
|
||||
args: "https://static.anilibria.tv"
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
@@ -83,4 +114,6 @@ search:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# json api v2
|
||||
description:
|
||||
selector: ..description
|
||||
# json api v3
|
||||
|
@@ -7,9 +7,11 @@ type: semi-private
|
||||
encoding: windows-1251
|
||||
testlinktorrent: false
|
||||
links:
|
||||
- https://anime-free.biz/
|
||||
- https://anime-free.one/
|
||||
legacylinks:
|
||||
- https://anime-free.net/ # redirects to *.biz
|
||||
- https://anime-free.biz/
|
||||
- http://anime-free.one/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -50,7 +52,6 @@ login:
|
||||
inputs:
|
||||
login_name: "{{ .Config.email }}"
|
||||
login_password: "{{ .Config.password }}"
|
||||
login: submit
|
||||
error:
|
||||
- selector: div.berrors
|
||||
test:
|
||||
@@ -87,10 +88,11 @@ search:
|
||||
selector: article
|
||||
|
||||
fields:
|
||||
category_optional:
|
||||
optional: true
|
||||
category:
|
||||
selector: a[href*="category="]
|
||||
attribute: href
|
||||
optional: true
|
||||
default: 54
|
||||
case:
|
||||
a[href$="3d_hentai"]: 51
|
||||
a[href$="3dcg_game"]: 55
|
||||
@@ -109,8 +111,6 @@ search:
|
||||
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:
|
||||
@@ -129,16 +129,15 @@ search:
|
||||
selector: li:has(img#adddate)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "02-01-2006, 15:04"
|
||||
args: "dd-MM-yyyy, HH:mm"
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
size_optional:
|
||||
optional: true
|
||||
selector: b.file_size
|
||||
size:
|
||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}0 B{{ end }}"
|
||||
selector: b.file_size
|
||||
optional: true
|
||||
default: 0 B
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
|
@@ -1,90 +0,0 @@
|
||||
---
|
||||
id: animeclipse
|
||||
name: AnimeClipse
|
||||
description: "AnimeClipse is a Public site for Hellenic Fansubs Anime."
|
||||
language: el-GR
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.animeclipse.com/ # does not support https ERR_CONNECTION_REFUSED
|
||||
|
||||
settings:
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: DESC
|
||||
options:
|
||||
DESC: desc
|
||||
ASC: asc
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV/Anime, desc: "Anime"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# http://www.animeclipse.com/index.php?ind=btitracker&search=sword&category=0&active=0&tor_page=10
|
||||
- path: index.php
|
||||
inputs:
|
||||
ind: btitracker
|
||||
# replace spaces with wildcard (percent symbol) as site's default search is exact string.
|
||||
search: "{{ re_replace .Keywords \"[\\s]+\" \"%\" }}"
|
||||
# does not support multi cats searching so defaulting to all.
|
||||
category: 0
|
||||
# 0 all, 1 active, 2 dead
|
||||
active: 0
|
||||
tor_page: 50
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: tr.torrentRow
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
title:
|
||||
selector: a[href*="/download/"]
|
||||
filters:
|
||||
# move group to the end
|
||||
- name: re_replace
|
||||
args: ["^(\\[.+?\\])(.+?)$", "$2 $1"]
|
||||
- name: re_replace
|
||||
args: ["(_|\\[|\\])", " "]
|
||||
details:
|
||||
text: "{{ .Config.sitelink }}"
|
||||
download:
|
||||
selector: a[href*="/download/"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:contains("[size:") > span.torrentInfoData
|
||||
date:
|
||||
selector: td:contains("[Added:") > span.torrentInfoData
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "02/01/2006 15:04:05 -07:00"
|
||||
grabs:
|
||||
selector: td:contains("[Completed:") > span.torrentInfoData
|
||||
seeders:
|
||||
selector: td:contains("Seeders") > span.torrentInfoData
|
||||
leechers:
|
||||
selector: td:contains("Leechers") > span.torrentInfoData
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# btitracker
|
@@ -80,8 +80,14 @@ search:
|
||||
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
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
@@ -143,7 +149,7 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "01/02/2006 15:04:05 -07:00"
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
|
@@ -83,8 +83,14 @@ search:
|
||||
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
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range $i, $e := .Categories }}&categories[{{$i}}]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
@@ -131,7 +137,7 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "01/02/2006 15:04:05 -07:00"
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
|
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
certificates:
|
||||
- f400d50a4dac4dd6546c869ac75669846205a0d2 # expired 26 Aug 2022
|
||||
- 7b36f0dc75d3340727b6f74bbdbde46ec59b7037 # expired 12 Feb 2023
|
||||
links:
|
||||
- https://asnet.pw/
|
||||
|
||||
@@ -70,7 +70,7 @@ search:
|
||||
- name: append
|
||||
args: " -09:00" # CUS
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm zzz"
|
||||
size:
|
||||
selector: font[color="Black"]
|
||||
filters:
|
||||
|
@@ -206,7 +206,7 @@ search:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "02/01/2006 -07:00"
|
||||
args: "dd/MM/yyyy zzz"
|
||||
grabs:
|
||||
selector: td:nth-last-child(6)
|
||||
seeders:
|
||||
|
@@ -88,6 +88,7 @@ caps:
|
||||
- {id: 65, cat: Other, desc: "صور (Images)"}
|
||||
- {id: 56, cat: Other, desc: "رياضي (Sport)"}
|
||||
- {id: 46, cat: Other, desc: "منوع (Misc)"}
|
||||
- {id: 112, cat: Other, desc: "رمضان 2023"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -151,7 +152,7 @@ search:
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05"
|
||||
args: "yyyy-MM-dd HH:mm:ss"
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
|
221
src/Jackett.Common/Definitions/arabtorrents.yml
Normal file
221
src/Jackett.Common/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-AR
|
||||
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: "{{ .DownloadUri.Query.id }}"
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
|
||||
inputs:
|
||||
do: search
|
||||
keywords: "{{ .Keywords }}"
|
||||
# t_name, t_description, t_both, t_uploader, t_genre
|
||||
search_type: t_both
|
||||
# does not support multi category searching so defaulting to all.
|
||||
category: 0
|
||||
include_dead_torrents: yes
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\W+", "*"]
|
||||
- name: re_replace
|
||||
args: ["^(.+)$", "*$1*"]
|
||||
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:has(div > a[href*="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td a[href*="/browse.php?category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
selector: td a[href*="/details.php?id="]
|
||||
details:
|
||||
selector: td a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(2) > div:nth-child(3)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{2}-\\d{2}-\\d{4} \\d{2}:\\d{2})"
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
poster:
|
||||
selector: div.tooltip-content > img[src*="/torrents/"]
|
||||
attribute: src
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="torrent_flags/freedownload.gif"]: 0
|
||||
img[src$="torrent_flags/silverdownload.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src$="torrent_flags/x2.gif"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.05
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# TS Special Edition v.7.4
|
@@ -187,7 +187,7 @@ search:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "2 January 2006, Monday @ 15:04 -07:00"
|
||||
args: "d MMMM yyyy, dddd @ HH:mm zzz"
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
seeders:
|
||||
|
@@ -72,15 +72,9 @@ search:
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
description: ""
|
||||
uploader: ""
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
mal: ""
|
||||
igdb: ""
|
||||
start_year: ""
|
||||
end_year: ""
|
||||
sorting: "{{ .Config.sort }}"
|
||||
direction: "{{ .Config.type }}"
|
||||
qty: 100
|
||||
|
@@ -36,7 +36,7 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -86,6 +86,7 @@ search:
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
@@ -121,7 +122,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
@@ -130,7 +131,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
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:
|
||||
|
@@ -1,198 +0,0 @@
|
||||
---
|
||||
id: audiobookbay
|
||||
name: AudioBookBay
|
||||
description: "AudioBook Bay (ABB) is a public Torrent Tracker for AUDIOBOOKS"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://audiobookbay.li/
|
||||
- https://audiobookbay.se/
|
||||
- https://audiobookbay.unblockit.ink/
|
||||
legacylinks:
|
||||
- https://audiobookbay.la/
|
||||
- http://audiobookbay.net/
|
||||
- https://audiobookbay.unblockit.bz/
|
||||
- https://audiobookbay.unblockit.tv/
|
||||
- http://audiobookbay.nl/
|
||||
- http://audiobookbay.ws/
|
||||
- https://audiobookbay.unblockit.how/
|
||||
- https://audiobookbay.unblockit.cam/
|
||||
- https://audiobookbay.unblockit.biz/
|
||||
- https://audiobookbay.unblockit.day/
|
||||
- https://audiobookbay.unblockit.llc/
|
||||
- https://audiobookbay.unblockit.blue/
|
||||
- https://audiobookbay.unblockit.name/
|
||||
- http://audiobookbay.fi/
|
||||
- http://audiobookbay.se/
|
||||
- http://audiobookbayabb.com/
|
||||
- https://audiobookbay.unblockit.ist/
|
||||
- https://audiobookbay.unblockit.bet/
|
||||
- https://audiobookbay.unblockit.cat/
|
||||
- https://audiobookbay.unblockit.nz/
|
||||
- https://audiobookbay.fi/
|
||||
- https://audiobookbay.unblockit.page/
|
||||
- https://audiobookbay.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: "(Post)apocalyptic", cat: Audio/Audiobook, desc: "(Post)apocalyptic"}
|
||||
- {id: Action, cat: Audio/Audiobook, desc: "Action"}
|
||||
- {id: Adults, cat: Audio/Audiobook, desc: "Adults"}
|
||||
- {id: Adventure, cat: Audio/Audiobook, desc: "Adventure"}
|
||||
- {id: Anthology, cat: Audio/Audiobook, desc: "Anthology"}
|
||||
- {id: Art, cat: Audio/Audiobook, desc: "Art"}
|
||||
- {id: Autobiography, cat: Audio/Audiobook, desc: "Autobiography & Biographies"}
|
||||
- {id: Bestsellers, cat: Audio/Audiobook, desc: "Bestsellers"}
|
||||
- {id: Business, cat: Audio/Audiobook, desc: "Business"}
|
||||
- {id: Children, cat: Audio/Audiobook, desc: "Children"}
|
||||
- {id: Classic, cat: Audio/Audiobook, desc: "Classic"}
|
||||
- {id: Computer, cat: Audio/Audiobook, desc: "Computer"}
|
||||
- {id: Contemporary, cat: Audio/Audiobook, desc: "Contemporary"}
|
||||
- {id: Crime, cat: Audio/Audiobook, desc: "Crime"}
|
||||
- {id: Detective, cat: Audio/Audiobook, desc: "Detective"}
|
||||
- {id: Doctor, cat: Audio/Audiobook, desc: "Doctor Who"}
|
||||
- {id: Documentary, cat: Audio/Audiobook, desc: "Documentary"}
|
||||
- {id: Education, cat: Audio/Audiobook, desc: "Education"}
|
||||
- {id: Fantasy, cat: Audio/Audiobook, desc: "Fantasy"}
|
||||
- {id: Full, cat: Audio/Audiobook, desc: "Full Cast"}
|
||||
- {id: Gay, cat: Audio/Audiobook, desc: "Gay"}
|
||||
- {id: General, cat: Audio/Audiobook, desc: "General Fiction"}
|
||||
- {id: Historical, cat: Audio/Audiobook, desc: "Historical Fiction"}
|
||||
- {id: History, cat: Audio/Audiobook, desc: "History"}
|
||||
- {id: Horror, cat: Audio/Audiobook, desc: "Horror"}
|
||||
- {id: Humor, cat: Audio/Audiobook, desc: "Humor"}
|
||||
- {id: Lecture, cat: Audio/Audiobook, desc: "Lecture"}
|
||||
- {id: Lesbian, cat: Audio/Audiobook, desc: "Lesbian"}
|
||||
- {id: LGBT, cat: Audio/Audiobook, desc: "LGBT"}
|
||||
- {id: Libertarian, cat: Audio/Audiobook, desc: "Libertarian"}
|
||||
- {id: Literature, cat: Audio/Audiobook, desc: "Literature"}
|
||||
- {id: LitRPG, cat: Audio/Audiobook, desc: "LitRPG"}
|
||||
- {id: Military, cat: Audio/Audiobook, desc: "Military"}
|
||||
- {id: Misc., cat: Audio/Audiobook, desc: "Misc. Non-fiction"}
|
||||
- {id: Mystery, cat: Audio/Audiobook, desc: "Mystery"}
|
||||
- {id: Novel, cat: Audio/Audiobook, desc: "Novel"}
|
||||
- {id: Other, cat: Audio/Audiobook, desc: "Other"}
|
||||
- {id: Paranormal, cat: Audio/Audiobook, desc: "Paranormal"}
|
||||
- {id: Plays, cat: Audio/Audiobook, desc: "Plays & Theater"}
|
||||
- {id: Poetry, cat: Audio/Audiobook, desc: "Poetry"}
|
||||
- {id: Political, cat: Audio/Audiobook, desc: "Political"}
|
||||
- {id: Radio, cat: Audio/Audiobook, desc: "Radio Productions"}
|
||||
- {id: Romance, cat: Audio/Audiobook, desc: "Romance"}
|
||||
- {id: Sci-Fi, cat: Audio/Audiobook, desc: "Sci-Fi"}
|
||||
- {id: Science, cat: Audio/Audiobook, desc: "Science"}
|
||||
- {id: Self-help, cat: Audio/Audiobook, desc: "Self-help"}
|
||||
- {id: Sex, cat: Audio/Audiobook, desc: "Sex Scenes"}
|
||||
- {id: Short, cat: Audio/Audiobook, desc: "Short Story"}
|
||||
- {id: Spiritual, cat: Audio/Audiobook, desc: "Spiritual & Religious"}
|
||||
- {id: Sport, cat: Audio/Audiobook, desc: "Sport & Recreation"}
|
||||
- {id: Suspense, cat: Audio/Audiobook, desc: "Suspense"}
|
||||
- {id: Teen, cat: Audio/Audiobook, desc: "Teen & Young Adult"}
|
||||
- {id: Thriller, cat: Audio/Audiobook, desc: "Thriller"}
|
||||
- {id: "True", cat: Audio/Audiobook, desc: "True Crime"}
|
||||
- {id: Tutorial, cat: Audio/Audiobook, desc: "Tutorial"}
|
||||
- {id: Violence, cat: Audio/Audiobook, desc: "Violence"}
|
||||
- {id: Westerns, cat: Audio/Audiobook, desc: "Westerns"}
|
||||
- {id: Zombies, cat: Audio/Audiobook, desc: "Zombies"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
infohash:
|
||||
hash:
|
||||
selector: td:contains("Info Hash:") ~ td
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([A-F|a-f|0-9]{40})
|
||||
title:
|
||||
selector: h1
|
||||
filters:
|
||||
- name: trim
|
||||
- name: validfilename
|
||||
|
||||
search:
|
||||
paths:
|
||||
# with just 7 results per page, try to grab up to 35 results
|
||||
# http://audiobookbay.nl/?s=teeth
|
||||
# http://audiobookbay.nl/page/2/?s=teeth
|
||||
- path: "{{ if .Keywords }}?s={{ .Keywords }}&tt=1{{ else }}{{ end }}"
|
||||
- path: "page/2/{{ if .Keywords }}?s={{ .Keywords }}&tt=1{{ else }}{{ end }}"
|
||||
- path: "page/3/{{ if .Keywords }}?s={{ .Keywords }}&tt=1{{ else }}{{ end }}"
|
||||
- path: "page/4/{{ if .Keywords }}?s={{ .Keywords }}&tt=1{{ else }}{{ end }}"
|
||||
- path: "page/5/{{ if .Keywords }}?s={{ .Keywords }}&tt=1{{ else }}{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: div.post:has(div[class="postTitle"])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: div.postInfo
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Category: (.+?)\\s"
|
||||
_format:
|
||||
optional: true
|
||||
selector: div.postContent
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Format: (.+?) /"
|
||||
- name: replace
|
||||
args: ["?", ""]
|
||||
_bitrate:
|
||||
optional: true
|
||||
selector: div.postContent
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Bitrate: (.+?)File"
|
||||
- name: replace
|
||||
args: ["?", ""]
|
||||
title:
|
||||
selector: div.postTitle
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result._format }} [{{ .Result._format }}]{{ else }}{{ end }}{{ if .Result._bitrate }} [{{ .Result._bitrate }}]{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: div.postTitle h2 a
|
||||
attribute: href
|
||||
download:
|
||||
selector: div.postTitle h2 a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
date_optional:
|
||||
optional: true
|
||||
selector: div.postContent
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{1,2} \\D{3} \\d{4})"
|
||||
- name: dateparse
|
||||
args: "2 Jan 2006"
|
||||
date:
|
||||
text: "{{ if .Result.date_optional }}{{ .Result.date_optional }}{{ else }}now{{ end }}"
|
||||
size_optional:
|
||||
optional: true
|
||||
selector: div.postContent
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "File Size: (.+?)$"
|
||||
- name: replace
|
||||
args: ["s", ""]
|
||||
size:
|
||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}0 B{{ end }}"
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
@@ -184,11 +184,14 @@ caps:
|
||||
- {id: 228, cat: Other, desc: "GFXNEWS PHOTOSHOP Actions, Pattern & Styles"}
|
||||
- {id: 229, cat: Other, desc: "GFXNEWS PHOTOSHOP Background & PSD Source"}
|
||||
- {id: 230, cat: Other, desc: "GFXNEWS PHOTOSHOP Brushes & Gradient"}
|
||||
- {id: 246, cat: Other, desc: "GFXNEWS PHOTOSHOP Mockup"}
|
||||
- {id: 247, cat: Other, desc: "GFXNEWS PHOTOSHOP Overlays"}
|
||||
- {id: 249, cat: Other, desc: "GFXNEWS PHOTOSHOP Preset"}
|
||||
- {id: 231, cat: Other, desc: "GFXNEWS PHOTOSHOP Toolkits, Papers & Objects"}
|
||||
- {id: 245, cat: Other, desc: "GFXNEWS PLUGINS"}
|
||||
- {id: 225, cat: Other, desc: "GFXNEWS PLUGINS LINUX"}
|
||||
- {id: 223, cat: Other, desc: "GFXNEWS PLUGINS MAC"}
|
||||
- {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"}
|
||||
@@ -280,7 +283,7 @@ search:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "01-02-2006 -07:00"
|
||||
args: "MM-dd-yyyy zzz"
|
||||
|
||||
fields:
|
||||
title:
|
||||
@@ -297,26 +300,22 @@ search:
|
||||
filters:
|
||||
- name: querystring
|
||||
args: f
|
||||
size_optional:
|
||||
optional: true
|
||||
selector: td:contains(\00a0GB), td:contains(\00a0MB), td:contains(\00a0kB), td:contains(\00a0B)
|
||||
size:
|
||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}0 B{{ end }}"
|
||||
seeders_optional:
|
||||
selector: td:contains(\00a0GB), td:contains(\00a0MB), td:contains(\00a0kB), td:contains(\00a0B)
|
||||
optional: true
|
||||
selector: td[title="Seeders"]
|
||||
default: 0
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
selector: td[title="Seeders"]
|
||||
optional: true
|
||||
selector: td[title="Leechers"]
|
||||
default: 0
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
grabs_optional:
|
||||
selector: td[title="Leechers"]
|
||||
optional: true
|
||||
selector: td[title^="Replies:"]
|
||||
default: 0
|
||||
grabs:
|
||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
||||
selector: td[title^="Replies:"]
|
||||
optional: true
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
|
@@ -79,7 +79,7 @@ search:
|
||||
selector: td:nth-child(2) > div:nth-child(2)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "2-01-2006 15:04"
|
||||
args: "d-MM-yyyy HH:mm"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
|
@@ -15,6 +15,7 @@ caps:
|
||||
- {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: 22, cat: Console, desc: "CoinOps"}
|
||||
- {id: 42, cat: Console, desc: "CoinOPS Official"}
|
||||
@@ -121,11 +122,10 @@ search:
|
||||
args: category
|
||||
title_default:
|
||||
selector: a[href*="/details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
selector: div.tooltip-content > div
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
selector: div.tooltip-content > div
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
@@ -162,5 +162,5 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04 -07:00"
|
||||
args: "dd-MM-yyyy HH:mm zzz"
|
||||
# TS Special Edition v.8.0
|
||||
|
@@ -5,16 +5,17 @@ description: "Badass Torrents is a Public torrent site for MOVIES / TV / GENERAL
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
requestDelay: 5
|
||||
links:
|
||||
- https://badasstorrents.com/
|
||||
- https://badasstorrents.nocensor.art/
|
||||
- https://badasstorrents.mrunblock.guru/
|
||||
legacylinks:
|
||||
- https://badasstorrents.nocensor.work/
|
||||
- https://badasstorrents.nocensor.biz/
|
||||
- https://badasstorrents.nocensor.sbs/
|
||||
- https://badasstorrents.nocensor.world/
|
||||
- https://badasstorrents.nocensor.lol/
|
||||
- https://badasstorrents.nocensor.art/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
@@ -81,8 +82,6 @@ search:
|
||||
paths:
|
||||
- path: "torrents/{{ if .Keywords }}search/{{ .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}"
|
||||
- path: "torrents/{{ if .Keywords }}search/{{ .Keywords }}/{{ else }}{{ end }}26/{{ .Config.sort }}/{{ .Config.type }}"
|
||||
- path: "torrents/{{ if .Keywords }}search/{{ .Keywords }}/{{ else }}{{ end }}51/{{ .Config.sort }}/{{ .Config.type }}"
|
||||
- path: "torrents/{{ if .Keywords }}search/{{ .Keywords }}/{{ else }}{{ end }}76/{{ .Config.sort }}/{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.table-hover > tbody > tr:has(a[href*="/torrent/"])
|
||||
|
@@ -64,11 +64,10 @@ search:
|
||||
date:
|
||||
# 2021-10-19T06:10:15.772Z
|
||||
selector: publish_time
|
||||
size_optional:
|
||||
optional: true
|
||||
selector: size
|
||||
size:
|
||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}0 B{{ end }}"
|
||||
selector: size
|
||||
optional: true
|
||||
default: 0 B
|
||||
grabs:
|
||||
selector: downloads
|
||||
seeders:
|
||||
|
@@ -90,6 +90,7 @@ search:
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
@@ -97,12 +98,11 @@ search:
|
||||
fields:
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
@@ -127,7 +127,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
@@ -136,7 +136,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
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:
|
||||
|
@@ -135,13 +135,12 @@ search:
|
||||
title_default:
|
||||
# can be abbreviated
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
title:
|
||||
# usually full length
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
@@ -169,7 +168,7 @@ search:
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
files:
|
||||
selector: td:nth-child(5)
|
||||
size:
|
||||
|
@@ -76,7 +76,6 @@ search:
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
uploader: ""
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
sorting: "{{ .Config.sort }}"
|
||||
@@ -87,15 +86,14 @@ search:
|
||||
selector: div.table-torrents > table > tbody > tr[id^="torrentposter"]
|
||||
|
||||
fields:
|
||||
category_optional:
|
||||
category:
|
||||
selector: a[href*="/categories/"]
|
||||
optional: true
|
||||
attribute: href
|
||||
optional: true
|
||||
default: 1
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "/categories/.*?\\.(\\d+)"
|
||||
category:
|
||||
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}1{{ end }}"
|
||||
title:
|
||||
selector: a.torrent-name
|
||||
details:
|
||||
|
@@ -80,14 +80,13 @@ search:
|
||||
div[title="Comics"]: 4
|
||||
div[title="Ebooks"]: 5
|
||||
div[title="Magazines"]: 7
|
||||
author_optional:
|
||||
selector: .authorLink
|
||||
optional: true
|
||||
_editor:
|
||||
selector: .editorLink
|
||||
optional: true
|
||||
author:
|
||||
text: "{{ or .Result.author_optional .Result._editor }}"
|
||||
selector: .authorLink
|
||||
optional: true
|
||||
default: "{{ .Result._editor }}"
|
||||
year:
|
||||
selector: .torYear
|
||||
optional: true
|
||||
@@ -108,9 +107,10 @@ search:
|
||||
selector: .title a
|
||||
attribute: href
|
||||
date:
|
||||
optional: true
|
||||
selector: .t_files_size_added time
|
||||
attribute: datetime
|
||||
optional: true
|
||||
default: now
|
||||
download:
|
||||
selector: a[title="Download"]
|
||||
attribute: href
|
||||
@@ -122,21 +122,18 @@ search:
|
||||
size:
|
||||
selector: .t_files_size_added span
|
||||
attribute: data-bytecount
|
||||
seeders_optional:
|
||||
optional: true
|
||||
selector: .seeders
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
selector: .seeders
|
||||
optional: true
|
||||
selector: .leechers
|
||||
default: 0
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
grabs_optional:
|
||||
selector: .leechers
|
||||
optional: true
|
||||
selector: .snatches
|
||||
default: 0
|
||||
grabs:
|
||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
||||
selector: .snatches
|
||||
optional: true
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
|
@@ -183,7 +183,7 @@ search:
|
||||
- name: append
|
||||
args: " +03:00" # MSK
|
||||
- name: dateparse
|
||||
args: "2 January 2006 15:04:05 -07:00"
|
||||
args: "d MMMM yyyy HH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
|
@@ -63,7 +63,7 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
@@ -117,49 +117,39 @@ search:
|
||||
# can support genre searching but you need to know the id, eg &genre23=1 for Comedy (id is 23)
|
||||
|
||||
rows:
|
||||
selector: "table[width=\"100%\"][align=\"center\"]:first-child tbody tr:has(div.tooltip){{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
|
||||
selector: "tr[class^=\"toriadatok_\"]{{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: img[src^="pic/kategoria/"]
|
||||
attribute: title
|
||||
genre:
|
||||
selector: span.tooltiptext
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
title:
|
||||
selector: div.tooltip
|
||||
remove: span
|
||||
selector: a.preview
|
||||
_id:
|
||||
selector: td.tori_infok
|
||||
attribute: id
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
text: "details.php?id={{ .Result._id }}#adatlap"
|
||||
download:
|
||||
text: "download.php?torrent={{ .Result._id }}"
|
||||
poster:
|
||||
selector: a.preview
|
||||
attribute: href
|
||||
download_1:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
optional: true
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
download_2:
|
||||
selector: input[onclick*="download.php?torrent="]
|
||||
optional: true
|
||||
attribute: onclick
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["window.open('", ""]
|
||||
- name: replace
|
||||
args: ["', '_self');", ""]
|
||||
download:
|
||||
text: "{{ if or .Result.download_1 .Result.download_2 }}{{ or .Result.download_1 .Result.download_2 }}{{ else }}{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
selector: td[id^="tsize_"]
|
||||
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: td:nth-child(7) span:last-child
|
||||
selector: td[id^="t_added_"] > span
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["és ", " "]
|
||||
@@ -180,6 +170,10 @@ search:
|
||||
selector: td:nth-child(3)
|
||||
leechers:
|
||||
selector: td:nth-child(4)
|
||||
genre:
|
||||
selector: span[style="font-size:small;"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"i:contains(\"(Free)\")": 0
|
||||
|
@@ -126,7 +126,7 @@ search:
|
||||
- name: append
|
||||
args: " +07:00" # ICT
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
|
@@ -59,7 +59,7 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -137,7 +137,7 @@ search:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[title="Ingyenes letöltés"]: 0
|
||||
|
@@ -87,12 +87,11 @@ search:
|
||||
args: "/invalid.torrent"
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
@@ -126,14 +125,13 @@ search:
|
||||
selector: td:nth-child(6) > u
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor_optional:
|
||||
optional: true
|
||||
uploadvolumefactor:
|
||||
selector: td:nth-child(5) > nobr > font:contains(" × ")
|
||||
optional: true
|
||||
default: 1
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["×", ""]
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result.uploadvolumefactor_optional }}{{ .Result.uploadvolumefactor_optional }}{{ else }}1{{ end }}"
|
||||
date_year:
|
||||
selector: td:nth-child(5):contains('.')
|
||||
optional: true
|
||||
|
@@ -111,7 +111,7 @@ search:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
|
@@ -131,7 +131,7 @@ search:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
|
@@ -166,7 +166,7 @@ search:
|
||||
- name: append
|
||||
args: " +03:00" # MSK
|
||||
- name: dateparse
|
||||
args: "02 January 2006 15:04 -07:00"
|
||||
args: "dd MMMM yyyy HH:mm zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_today .Result.date_year }}{{ or .Result.date_today .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
|
@@ -7,6 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bitsearch.to/
|
||||
- https://bitsearch.mrunblock.guru/
|
||||
legacylinks:
|
||||
- https://bitsearch.nocensor.biz/
|
||||
- https://bitsearch.nocensor.sbs/
|
||||
@@ -134,7 +135,7 @@ search:
|
||||
selector: div.stats div:has(img[alt="Date"])
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "Jan 2, 2006"
|
||||
args: "MMM d, yyyy"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
|
@@ -161,7 +161,7 @@ search:
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "Jan 2 2006 03:04 PM"
|
||||
args: "MMM d yyyy hh:mm tt"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
|
@@ -4,7 +4,7 @@ name: Bitspyder
|
||||
description: "Bitspyder is a Private site for Educational BOOKS / AUDIO"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: windows-1252
|
||||
encoding: iso-8859-1
|
||||
links:
|
||||
- https://bitspyder.net/
|
||||
legacylinks:
|
||||
@@ -87,7 +87,8 @@ login:
|
||||
error:
|
||||
- selector: td.msg_info > font > b
|
||||
test:
|
||||
path: browse.php
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
@@ -154,7 +155,7 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_upload:
|
||||
optional: true
|
||||
selector: a[title^="Upploaded at"]
|
||||
@@ -167,7 +168,7 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_upload .Result.date_added }}{{ or .Result.date_upload .Result.date_added }}{{ else }}now{{ end }}"
|
||||
downloadvolumefactor:
|
||||
|
@@ -96,7 +96,7 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: Layout
|
||||
default: "<ol><li>Only the English Classic profile is supported.<li>Make sure to set the <b>Torrent Listing (Listeleme Biçimi)</b> option in your profile to <b>Classic (Klasik)</b><li>And set the <b>Language (Dil)</b> to <b>English</b><li>Using the <i>Modern</i> theme will prevent results, and using <i>Turkish</i> will prevent upload dates.</ol>"
|
||||
default: "<ol><li>Only the English Classic profile is supported.</li><li>Make sure to set the <b>Torrent Listing (Listeleme Biçimi)</b> option in your profile to <b>Classic (Klasik)</b></li><li>And set the <b>Language (Dil)</b> to <b>English</b></li><li>Using the <i>Modern</i> theme will prevent results, and using <i>Turkish</i> will prevent upload dates.</li></ol>"
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
@@ -193,7 +193,7 @@ search:
|
||||
- name: regexp
|
||||
args: "Uploaded (.+?) by"
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04"
|
||||
args: "dd-MM-yyyy HH:mm"
|
||||
date_unix:
|
||||
# within the hour (unix)
|
||||
selector: abbr[data-time]
|
||||
|
@@ -72,8 +72,14 @@ search:
|
||||
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
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free[]=100{{ else }}{{ end }}"
|
||||
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
|
||||
@@ -137,7 +143,7 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "01/02/2006 15:04:05 -07:00"
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
|
@@ -106,26 +106,22 @@ search:
|
||||
poster:
|
||||
selector: img[src*="/thbx/imgx/"]
|
||||
attribute: src
|
||||
files_optional:
|
||||
files:
|
||||
selector: a[href$="filelist=1"]
|
||||
optional: true
|
||||
files:
|
||||
text: "{{ if .Result.files_optional }}{{ .Result.files_optional }}{{ else }}1{{ end }}"
|
||||
size_optional:
|
||||
default: 1
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
optional: true
|
||||
size:
|
||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}0 B{{ end }}"
|
||||
seeders_optional:
|
||||
default: 0
|
||||
seeders:
|
||||
selector: a[href$="toseeders=1"]
|
||||
optional: true
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
default: 0
|
||||
leechers:
|
||||
selector: a[href$="todlers=1"]
|
||||
optional: true
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
default: 0
|
||||
date:
|
||||
text: now
|
||||
downloadvolumefactor:
|
||||
|
@@ -121,7 +121,7 @@ search:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
|
@@ -49,7 +49,7 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
@@ -109,7 +109,7 @@ search:
|
||||
- name: append
|
||||
args: " +03:00" # TRT
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04 -07:00"
|
||||
args: "dd-MM-yyyy HH:mm zzz"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
|
@@ -66,10 +66,30 @@ search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
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
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
$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
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
@@ -77,32 +97,41 @@ search:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: category
|
||||
category:
|
||||
selector: category_id
|
||||
title:
|
||||
selector: name
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
size:
|
||||
selector: size
|
||||
magnet:
|
||||
selector: magnet_link
|
||||
optional: true
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: poster
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/400x600", ""]
|
||||
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 }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
@@ -118,13 +147,19 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "01/02/2006 15:04:05 -07:00"
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
# api returns 0=false, 1=true
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0: 1 # not free
|
||||
1: 0 # freeleech
|
||||
0%: 1 # not free
|
||||
25%: 0.75
|
||||
50%: 0.5
|
||||
75%: 0.25
|
||||
100%: 0 # freeleech
|
||||
"*": 0 # catch errors
|
||||
uploadvolumefactor:
|
||||
# api returns 0=false, 1=true
|
||||
selector: double_upload
|
||||
@@ -136,4 +171,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 5.3.0
|
||||
# json UNIT3D 6.5.0
|
||||
|
@@ -61,7 +61,7 @@ search:
|
||||
selector: span:nth-last-child(5) b
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "2006-01-02"
|
||||
args: "yyyy-MM-dd"
|
||||
files:
|
||||
selector: span:nth-last-child(4) b
|
||||
size:
|
||||
|
@@ -7,13 +7,13 @@ type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://btdig.com/
|
||||
- https://btdigggink2pdqzqrik3blmqemsbntpzwxottujilcdjfz56jumzfsyd.onion.ly/
|
||||
- https://btdigggink2pdqzqrik3blmqemsbntpzwxottujilcdjfz56jumzfsyd.tor2web.to/
|
||||
legacylinks:
|
||||
- http://btdiggwzoyrwwbiv.onion.ly/
|
||||
- https://btdiggwzoyrwwbiv.onion.ly/
|
||||
- https://btdigggink2pdqzqrik3blmqemsbntpzwxottujilcdjfz56jumzfsyd.onion.ws/ # redirects to spam
|
||||
- https://btdigggink2pdqzqrik3blmqemsbntpzwxottujilcdjfz56jumzfsyd.onion.pet/ # not found
|
||||
- https://btdigggink2pdqzqrik3blmqemsbntpzwxottujilcdjfz56jumzfsyd.onion.ly/ # 504 gateway timeout
|
||||
- https://btdigggink2pdqzqrik3blmqemsbntpzwxottujilcdjfz56jumzfsyd.tor2web.to/ # 504 gateway timeout
|
||||
|
||||
caps:
|
||||
categories:
|
||||
@@ -71,11 +71,10 @@ search:
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["found ", ""]
|
||||
files_optional:
|
||||
files:
|
||||
selector: span.torrent_files
|
||||
optional: true
|
||||
files:
|
||||
text: "{{ if .Result.files_optional }}{{ .Result.files_optional }}{{ else }}1{{ end }}"
|
||||
default: 1
|
||||
size:
|
||||
selector: span.torrent_size
|
||||
seeders:
|
||||
|
@@ -61,7 +61,7 @@ search:
|
||||
- name: replace
|
||||
args: [" ", " 0"]
|
||||
- name: dateparse
|
||||
args: "01/02 15:04"
|
||||
args: "MM/dd HH:mm"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
|
@@ -114,7 +114,7 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: Layout
|
||||
default: "<ol><li>Only the English Classic profile is supported.<li>Make sure to set the <b>Torrent Listing (Lista de Torrents)</b> option in your profile to <b>Classic (Clássico)</b><li>Using the <i>Moderna</i> theme will prevent results.</ol>"
|
||||
default: "<ol><li>Only the English Classic profile is supported.</li><li>Make sure to set the <b>Torrent Listing (Lista de Torrents)</b> option in your profile to <b>Classic (Clássico)</b></li><li>Using the <i>Moderna</i> theme will prevent results.</li></ol>"
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
@@ -238,7 +238,7 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # WET
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04 -07:00"
|
||||
args: "dd-MM-yyyy HH:mm zzz"
|
||||
date_day:
|
||||
selector: td.torrent_name:not(:has(abbr.timeago)):contains("day"), td.torrent_name:not(:has(abbr.timeago)):contains("Domingo"), td.torrent_name:not(:has(abbr.timeago)):contains("Sábado"), td.torrent_name:not(:has(abbr.timeago)):contains("Quinta"), td.torrent_name:not(:has(abbr.timeago)):contains("Sexta"), td.torrent_name:not(:has(abbr.timeago)):contains("Quarta"), td.torrent_name:not(:has(abbr.timeago)):contains("Terça"), td.torrent_name:not(:has(abbr.timeago)):contains("Segunda"), td.torrent_name:not(:has(abbr.timeago)):contains("ontem"), td.torrent_name:not(:has(abbr.timeago)):contains("Hoje")
|
||||
optional: true
|
||||
|
@@ -82,6 +82,7 @@ search:
|
||||
search_mode: 0
|
||||
sort: 4
|
||||
type: desc
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
@@ -111,7 +112,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
@@ -120,7 +121,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
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:
|
||||
|
@@ -7,9 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
# use https://tellme.pw/btsow to find the new domain
|
||||
links:
|
||||
- https://btsow.beauty/
|
||||
- https://btsow.boats/
|
||||
legacylinks:
|
||||
- https://btsow.store/
|
||||
- https://btsow.surf/
|
||||
- https://btsow.com/
|
||||
- https://btsow.cam/
|
||||
@@ -24,6 +23,8 @@ legacylinks:
|
||||
- https://btsow.sbs/
|
||||
- https://btsow.quest/
|
||||
- https://btsow.autos/
|
||||
- https://btsow.beauty/
|
||||
- https://btsow.mom/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
@@ -72,7 +73,7 @@ search:
|
||||
- name: append
|
||||
args: " -00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "2006-01-02 -07:00"
|
||||
args: "yyyy-MM-dd zzz"
|
||||
size:
|
||||
selector: div.size
|
||||
seeders:
|
||||
|
@@ -7,6 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.bulltorrent.com/
|
||||
- https://toros.mrunblock.guru/
|
||||
legacylinks:
|
||||
- https://toros.nocensor.space/
|
||||
- https://toros.nocensor.work/
|
||||
@@ -108,7 +109,7 @@ search:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2 Jan -07:00"
|
||||
args: "d MMM zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_ago .Result.date_day }}{{ or .Result.date_year .Result.date_ago .Result.date_day }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
|
@@ -7,6 +7,9 @@ type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bwtorrents.tv/
|
||||
- https://bwtorrents.co/
|
||||
- https://bwtorrents.cc/
|
||||
legacylinks:
|
||||
- https://bwtorrents.fun/
|
||||
- https://bwtorrents.xyz/
|
||||
- https://bwtorrents.us/
|
||||
@@ -187,7 +190,7 @@ search:
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "02-01-200615:04:05"
|
||||
args: "dd-MM-yyyyHH:mm:ss"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
download:
|
||||
|
@@ -98,6 +98,7 @@ search:
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
@@ -111,12 +112,11 @@ search:
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
@@ -135,7 +135,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-last-of-type(6):not(:has(span))
|
||||
@@ -144,7 +144,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
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:
|
||||
|
@@ -383,7 +383,7 @@ search:
|
||||
- name: regexp
|
||||
args: ".*/(\\d{4}-\\d{2})/.*"
|
||||
- name: dateparse
|
||||
args: "2006-01"
|
||||
args: "yyyy-MM"
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
@@ -391,6 +391,7 @@ search:
|
||||
size_rus:
|
||||
selector: div.shor_subtitles span:nth-child(2):contains("Б")
|
||||
optional: true
|
||||
default: "0 B"
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["ТБ", "TB"]
|
||||
@@ -400,11 +401,10 @@ search:
|
||||
args: ["МБ", "MB"]
|
||||
- name: replace
|
||||
args: ["КБ", "KB"]
|
||||
size_eng:
|
||||
size:
|
||||
selector: div.shor_subtitles span:nth-child(2):contains("B")
|
||||
optional: true
|
||||
size:
|
||||
text: "{{ if or .Result.size_rus .Result.size_eng }}{{ or .Result.size_rus .Result.size_eng }}{{ else }}0 B{{ end }}"
|
||||
default: "{{ .Result.size_rus }}"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
|
@@ -57,7 +57,7 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -154,7 +154,7 @@ search:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
files:
|
||||
selector: td:nth-last-child(7)
|
||||
size:
|
||||
|
@@ -102,6 +102,7 @@ search:
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
||||
@@ -115,12 +116,11 @@ search:
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
@@ -147,7 +147,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
@@ -156,7 +156,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
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:
|
||||
|
@@ -173,7 +173,7 @@ search:
|
||||
- name: re_replace
|
||||
args: ["[,]|[\\s+]|[//\xa0],\\/g", " "]
|
||||
- name: dateparse
|
||||
args: "January 02 2006 03:04:05 PM"
|
||||
args: "MMMM dd yyyy hh:mm:ss tt"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
seeders:
|
||||
|
@@ -146,7 +146,7 @@ search:
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "Jan 02 2006, 15:04"
|
||||
args: "MMM dd yyyy, HH:mm"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
|
@@ -135,7 +135,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"font[color=\"#C20603\"]:contains(\"免费\")": 0
|
||||
|
@@ -96,6 +96,7 @@ search:
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
# can support genre searching but you need to know the id, eg &team10=1 for Drama (id is 10)
|
||||
|
||||
rows:
|
||||
@@ -110,12 +111,11 @@ search:
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
@@ -134,7 +134,7 @@ search:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
@@ -143,7 +143,7 @@ search:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
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:
|
||||
|
@@ -60,8 +60,13 @@ settings:
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
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 }}"
|
||||
@@ -90,6 +95,7 @@ search:
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
@@ -103,12 +109,11 @@ search:
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
@@ -132,7 +137,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
@@ -141,7 +146,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
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 }}"
|
||||
downloadvolumefactor:
|
||||
|
@@ -83,12 +83,9 @@ search:
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
|
||||
description: ""
|
||||
uploader: ""
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
mal: ""
|
||||
sorting: "{{ .Config.sort }}"
|
||||
direction: "{{ .Config.type }}"
|
||||
qty: 100
|
||||
|
@@ -84,7 +84,7 @@ search:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
|
@@ -45,7 +45,7 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -56,15 +56,15 @@ settings:
|
||||
default: false
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTI & PL by another language in release name
|
||||
label: Replace MULTi by another language in release name
|
||||
default: false
|
||||
- name: multilanguage
|
||||
type: select
|
||||
label: Replace MULTI & PL by this language
|
||||
label: Replace MULTi by this language
|
||||
default: POLISH
|
||||
options:
|
||||
POLISH: POLISH
|
||||
MULTI.POLISH: MULTI.POLISH
|
||||
MULTi POLISH: MULTi POLISH
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
@@ -122,9 +122,9 @@ search:
|
||||
text: "{{ .Result.title_raw }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\[multi\\])", " {{ .Config.multilanguage }} "]
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:POLISH|ENGLISH|\\bPL\\b)))\\b", "{{ .Config.multilanguage }}"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\[pl\\])", " {{ .Config.multilanguage }} "]
|
||||
args: ["(?i)\\b(pl)\\b", "POLISH"]
|
||||
title_phase1:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_raw }}{{ end }}"
|
||||
title_stripped:
|
||||
@@ -170,7 +170,7 @@ search:
|
||||
- name: append
|
||||
args: " +02:00" # EET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
seeders:
|
||||
|
@@ -1,81 +0,0 @@
|
||||
---
|
||||
id: cloudtorrents
|
||||
name: CloudTorrents
|
||||
description: "CloudTorrents is a Public Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://cloudtorrents.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: anime, cat: TV/Anime, desc: Anime}
|
||||
- {id: applications, cat: PC, desc: Applications}
|
||||
- {id: books, cat: Books, desc: Books}
|
||||
- {id: games, cat: Console, desc: Games}
|
||||
- {id: movies, cat: Movies, desc: Movies}
|
||||
- {id: music, cat: Audio, desc: Music}
|
||||
- {id: other, cat: Other, desc: Other}
|
||||
- {id: tv, cat: TV, desc: TV}
|
||||
- {id: xxx, cat: XXX, desc: XXX}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
headers:
|
||||
# site blocks automation User-Agents, so slightly alter it here (e.g. Safari/537.37 > Safari/537.36)
|
||||
User-Agent: ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"]
|
||||
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}search?query={{ .Keywords }}{{ else }}latest{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr:has(a)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: split
|
||||
args: ["/", 1]
|
||||
title:
|
||||
selector: a b
|
||||
details:
|
||||
selector: a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a
|
||||
attribute: href
|
||||
seeders:
|
||||
selector: td[data-title="Se"]
|
||||
leechers:
|
||||
selector: td[data-title="Le"]
|
||||
date:
|
||||
selector: span[title]
|
||||
attribute: title
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "02 Jan, 2006 15:04 -07:00"
|
||||
size:
|
||||
selector: td[data-title="Size"]
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
@@ -71,7 +71,7 @@ settings:
|
||||
- name: info_free
|
||||
type: info
|
||||
label: About Freeleech and OnlyUpload at Coastal Crew
|
||||
default: <li>FreeLeech are torrents where neither the download or upload is counted. (On the Jackett dashboard search results these are tagged as NoUpload).</li><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>
|
||||
default: "<ul><li>FreeLeech are torrents where neither the download or upload is counted. (On the Jackett dashboard search results these are tagged as NoUpload).</li><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
|
||||
@@ -157,7 +157,7 @@ search:
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: dateparse
|
||||
args: "02.01.2006 15:04:05 -07:00"
|
||||
args: "dd.MM.yyyy HH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/oupic.gif"]: 0 # only upload is counted
|
||||
|
@@ -67,7 +67,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST (China)
|
||||
- name: dateparse
|
||||
args: "2006/01/02 -07:00"
|
||||
args: "yyyy/MM/dd zzz"
|
||||
date_today:
|
||||
selector: td:nth-child(1):contains("今天")
|
||||
optional: true
|
||||
@@ -77,7 +77,7 @@ search:
|
||||
- name: append
|
||||
args: " +08:00" # CST (China)
|
||||
- name: timeparse
|
||||
args: "15:04 -07:00"
|
||||
args: "HH:mm zzz"
|
||||
date_yday:
|
||||
selector: td:nth-child(1):contains("昨天")
|
||||
optional: true
|
||||
|
@@ -7,8 +7,9 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://labastidevivante.fr/
|
||||
- https://cpasbiens911.fr/
|
||||
legacylinks:
|
||||
- https://labastidevivante.fr/
|
||||
- http://www.cpasbiens.cc/
|
||||
- http://www.cpabien.cm/
|
||||
- http://cpabien.cm/
|
||||
@@ -66,22 +67,22 @@ settings:
|
||||
default: cpasbien does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTI by another language in release name
|
||||
label: Replace MULTi by another language in release name
|
||||
default: false
|
||||
- name: multilanguage
|
||||
type: select
|
||||
label: Replace MULTI by this language
|
||||
label: Replace MULTi by this language
|
||||
default: FRENCH
|
||||
options:
|
||||
FRENCH: FRENCH
|
||||
MULTI.FRENCH: MULTI.FRENCH
|
||||
MULTi FRENCH: MULTi FRENCH
|
||||
ENGLISH: ENGLISH
|
||||
MULTI.ENGLISH: MULTI.ENGLISH
|
||||
MULTi ENGLISH: MULTi ENGLISH
|
||||
VOSTFR: VOSTFR
|
||||
MULTI.VOSTFR: MULTI.VOSTFR
|
||||
MULTi VOSTFR: MULTi VOSTFR
|
||||
- name: vostfr
|
||||
type: checkbox
|
||||
label: Replace VOSTFR with ENGLISH
|
||||
label: Replace VOSTFR and SUBFRENCH with ENGLISH
|
||||
default: false
|
||||
|
||||
download:
|
||||
@@ -109,45 +110,25 @@ search:
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
_site_date:
|
||||
selector: a
|
||||
filters:
|
||||
# date is at the end of the title, so we get it and name it _site_date
|
||||
- name: regexp
|
||||
args: "(19|20\\d{2})$"
|
||||
title_phase1:
|
||||
selector: a
|
||||
filters:
|
||||
# now we put the date at the right place according scene naming rules using .Result._site_date
|
||||
- name: re_replace
|
||||
args: ["(?i)( FRENCH)", " {{ .Result._site_date }} FRENCH"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( MULTI)", " {{ .Result._site_date }} MULTI"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( TRUEFRENCH)", " {{ .Result._site_date }} TRUEFRENCH"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( VOSTFR)", " {{ .Result._site_date }} VOSTFR"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( SUBFRENCH)", " {{ .Result._site_date }} SUBFRENCH"]
|
||||
# and we delete it at the end
|
||||
- name: re_replace
|
||||
args: ["(19|20\\d{2})$", ""]
|
||||
title_multilang:
|
||||
args: ["(?i)\\b(FRENCH|MULTI|TRUEFRENCH|VOSTFR|SUBFRENCH)\\b(.+?)(\\b(19|20\\d{2})\\b)$", "$3 $1$2"]
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\smulti\\s)", " {{ .Config.multilanguage }} "]
|
||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||
title_phase2:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_vostfr:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\svostfr\\s)", " ENGLISH "]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\ssubfrench\\s)", " ENGLISH "]
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a
|
||||
attribute: href
|
||||
@@ -158,16 +139,14 @@ search:
|
||||
selector: div.poid
|
||||
date:
|
||||
text: now
|
||||
seeders_optional:
|
||||
seeders:
|
||||
selector: div.up
|
||||
optional: true
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
default: 0
|
||||
leechers:
|
||||
selector: div.down
|
||||
optional: true
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
|
@@ -39,22 +39,22 @@ settings:
|
||||
default: cpasbienclone does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTI by another language in release name
|
||||
label: Replace MULTi by another language in release name
|
||||
default: false
|
||||
- name: multilanguage
|
||||
type: select
|
||||
label: Replace MULTI by this language
|
||||
label: Replace MULTi by this language
|
||||
default: FRENCH
|
||||
options:
|
||||
FRENCH: FRENCH
|
||||
MULTI.FRENCH: MULTI.FRENCH
|
||||
MULTi FRENCH: MULTi FRENCH
|
||||
ENGLISH: ENGLISH
|
||||
MULTI.ENGLISH: MULTI.ENGLISH
|
||||
MULTi ENGLISH: MULTi ENGLISH
|
||||
VOSTFR: VOSTFR
|
||||
MULTI.VOSTFR: MULTI.VOSTFR
|
||||
MULTi VOSTFR: MULTi VOSTFR
|
||||
- name: vostfr
|
||||
type: checkbox
|
||||
label: Replace VOSTFR with ENGLISH
|
||||
label: Replace VOSTFR and SUBFRENCH with ENGLISH
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
@@ -88,45 +88,25 @@ search:
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
_site_date:
|
||||
selector: a
|
||||
filters:
|
||||
# year can be at the end of the title, so we get it and name it _site_date
|
||||
- name: regexp
|
||||
args: "(19|20\\d{2})$"
|
||||
title_phase1:
|
||||
selector: a
|
||||
filters:
|
||||
# now we put the date at the right place according scene naming rules using .Result._site_date
|
||||
- name: re_replace
|
||||
args: ["(?i)( FRENCH)", " {{ .Result._site_date }} FRENCH"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( MULTI)", " {{ .Result._site_date }} MULTI"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( TRUEFRENCH)", " {{ .Result._site_date }} TRUEFRENCH"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( VOSTFR)", " {{ .Result._site_date }} VOSTFR"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( SUBFRENCH)", " {{ .Result._site_date }} SUBFRENCH"]
|
||||
# and we delete it at the end
|
||||
- name: re_replace
|
||||
args: ["(19|20\\d{2})$", ""]
|
||||
title_multilang:
|
||||
args: ["(?i)\\b(FRENCH|MULTI|TRUEFRENCH|VOSTFR|SUBFRENCH)\\b(.+?)(\\b(19|20\\d{2})\\b)$", "$3 $1$2"]
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\smulti\\s)", " {{ .Config.multilanguage }} "]
|
||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||
title_phase2:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_vostfr:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\svostfr\\s)", " ENGLISH "]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\ssubfrench\\s)", " ENGLISH "]
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a
|
||||
attribute: href
|
||||
@@ -159,16 +139,14 @@ search:
|
||||
args: ["(\\d+)\\.\\d", "$1 MB"]
|
||||
date:
|
||||
text: now
|
||||
seeders_optional:
|
||||
seeders:
|
||||
selector: div.up
|
||||
optional: true
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
default: 0
|
||||
leechers:
|
||||
selector: div.down
|
||||
optional: true
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
|
@@ -24,22 +24,22 @@ settings:
|
||||
default: cpasbiensi does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTI by another language in release name
|
||||
label: Replace MULTi by another language in release name
|
||||
default: false
|
||||
- name: multilanguage
|
||||
type: select
|
||||
label: Replace MULTI by this language
|
||||
label: Replace MULTi by this language
|
||||
default: FRENCH
|
||||
options:
|
||||
FRENCH: FRENCH
|
||||
MULTI.FRENCH: MULTI.FRENCH
|
||||
MULTi FRENCH: MULTi FRENCH
|
||||
ENGLISH: ENGLISH
|
||||
MULTI.ENGLISH: MULTI.ENGLISH
|
||||
MULTi ENGLISH: MULTi ENGLISH
|
||||
VOSTFR: VOSTFR
|
||||
MULTI.VOSTFR: MULTI.VOSTFR
|
||||
MULTi VOSTFR: MULTi VOSTFR
|
||||
- name: vostfr
|
||||
type: checkbox
|
||||
label: Replace VOSTFR with ENGLISH
|
||||
label: Replace VOSTFR and SUBFRENCH with ENGLISH
|
||||
default: false
|
||||
|
||||
download:
|
||||
@@ -57,45 +57,25 @@ search:
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
_site_date:
|
||||
selector: a
|
||||
filters:
|
||||
# year can be at the end of the title, so we get it and name it _site_date
|
||||
- name: regexp
|
||||
args: "(19|20\\d{2})$"
|
||||
title_phase1:
|
||||
selector: a
|
||||
filters:
|
||||
# now we put the date at the right place according scene naming rules using .Result._site_date
|
||||
- name: re_replace
|
||||
args: ["(?i)( FRENCH)", " {{ .Result._site_date }} FRENCH"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( MULTI)", " {{ .Result._site_date }} MULTI"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( TRUEFRENCH)", " {{ .Result._site_date }} TRUEFRENCH"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( VOSTFR)", " {{ .Result._site_date }} VOSTFR"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( SUBFRENCH)", " {{ .Result._site_date }} SUBFRENCH"]
|
||||
# and we delete it at the end
|
||||
- name: re_replace
|
||||
args: ["(19|20\\d{2})$", ""]
|
||||
title_multilang:
|
||||
args: ["(?i)\\b(FRENCH|MULTI|TRUEFRENCH|VOSTFR|SUBFRENCH)\\b(.+?)(\\b(19|20\\d{2})\\b)$", "$3 $1$2"]
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\smulti\\s)", " {{ .Config.multilanguage }} "]
|
||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||
title_phase2:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_vostfr:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\svostfr\\s)", " ENGLISH "]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\ssubfrench\\s)", " ENGLISH "]
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a
|
||||
attribute: href
|
||||
@@ -106,16 +86,14 @@ search:
|
||||
selector: div.poid
|
||||
date:
|
||||
text: now
|
||||
seeders_optional:
|
||||
seeders:
|
||||
selector: div.up
|
||||
optional: true
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
default: 0
|
||||
leechers:
|
||||
selector: div.down
|
||||
optional: true
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
default: 0
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
|
@@ -96,14 +96,14 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: useragent
|
||||
type: text
|
||||
label: User-Agent
|
||||
- name: info_useragent
|
||||
type: info
|
||||
label: How to get the User-Agent
|
||||
default: "<ol><li>From the same place you fetched the cookie,<li>Find <b>'user-agent:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole user-agent string <i>(everything after 'user-agent: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>From the same place you fetched the cookie,</li><li>Find <b>'user-agent:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole user-agent string <i>(everything after 'user-agent: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -203,7 +203,7 @@ search:
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "02/01/2006"
|
||||
args: "dd/MM/yyyy"
|
||||
seeders:
|
||||
selector: div.torrent-seeder
|
||||
leechers:
|
||||
|
@@ -113,29 +113,29 @@ settings:
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTI by another language in release name
|
||||
label: Replace MULTi by another language in release name
|
||||
default: false
|
||||
- name: multilanguage
|
||||
type: select
|
||||
label: Replace MULTI by this language
|
||||
label: Replace MULTi by this language
|
||||
default: FRENCH
|
||||
options:
|
||||
FRENCH: FRENCH
|
||||
MULTI.FRENCH: MULTI.FRENCH
|
||||
MULTi FRENCH: MULTi FRENCH
|
||||
ENGLISH: ENGLISH
|
||||
MULTI.ENGLISH: MULTI.ENGLISH
|
||||
MULTi ENGLISH: MULTi ENGLISH
|
||||
VOSTFR: VOSTFR
|
||||
MULTI.VOSTFR: MULTI.VOSTFR
|
||||
MULTi VOSTFR: MULTi VOSTFR
|
||||
- name: vostfr
|
||||
type: checkbox
|
||||
label: Replace VOSTFR with ENGLISH
|
||||
label: Replace VOSTFR and SUBFRENCH with ENGLISH
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
@@ -208,22 +208,20 @@ search:
|
||||
args: ["-NoTag", ""]
|
||||
title_phase2:
|
||||
text: "{{ if .Result.title_phase1 }}{{ .Result.title_phase1 }}{{ else }}{{ .Result.title_phase0 }}{{ end }}"
|
||||
title_multilang:
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\smulti\\s)", " {{ .Config.multilanguage }} "]
|
||||
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
|
||||
title_phase3:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
title_vostfr:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase3 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\svostfr\\s)", " ENGLISH "]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\ssubfrench\\s)", " ENGLISH "]
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase3 }}{{ end }}"
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase3 }}{{ end }}"
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
attribute: href
|
||||
@@ -274,7 +272,7 @@ search:
|
||||
- name: regexp
|
||||
args: "Partagé Voilà : </b>(.*?)<br"
|
||||
- name: dateparse
|
||||
args: "01-02-2006"
|
||||
args: "MM-dd-yyyy"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/Torrents/free.png"]: 0
|
||||
|
@@ -13,6 +13,7 @@ legacylinks:
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 65, cat: Movies/3D, desc: "3D Film"}
|
||||
- {id: 82, cat: Movies/UHD, desc: "4K video"}
|
||||
- {id: 79, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 37, cat: Movies, desc: "Deca"}
|
||||
- {id: 43, cat: TV/Documentary, desc: "Dokumentarci"}
|
||||
@@ -26,12 +27,12 @@ caps:
|
||||
- {id: 61, cat: Movies/HD, desc: "HD Mesano"}
|
||||
- {id: 50, cat: PC/Games, desc: "Igre"}
|
||||
- {id: 44, cat: Books, desc: "Knjige"}
|
||||
- {id: 80, cat: TV, desc: "Paketi"}
|
||||
- {id: 46, cat: Audio, desc: "Koncerti"}
|
||||
- {id: 58, cat: Audio/Lossless, desc: "Lossless/Domaće"}
|
||||
- {id: 59, cat: Audio/Lossless, desc: "Lossless/Strano"}
|
||||
- {id: 5, cat: Audio/MP3, desc: "MP3/Domaće"}
|
||||
- {id: 57, cat: Audio/MP3, desc: "MP3/Strano"}
|
||||
- {id: 80, cat: TV, desc: "Paketi"}
|
||||
- {id: 49, cat: PC, desc: "Programi"}
|
||||
- {id: 28, cat: Other, desc: "Razno"}
|
||||
- {id: 62, cat: TV/SD, desc: "SD Boxset"}
|
||||
@@ -155,7 +156,7 @@ search:
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "Jan 2 2006 03:04 PM"
|
||||
args: "MMM d yyyy hh:mm tt"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
|
@@ -28,7 +28,7 @@ settings:
|
||||
- name: info_cookie
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
default: "<ol><li>Login to this tracker with your browser</li><li>Open the <b>DevTools</b> panel by pressing <b>F12</b></li><li>Select the <b>Network</b> tab</li><li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)</li><li>Refresh the page by pressing <b>F5</b></li><li>Click on the first row entry</li><li>Select the <b>Headers</b> tab on the Right panel</li><li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section</li><li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</li></ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -136,7 +136,7 @@ search:
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "Jan 02 2006, 15:04"
|
||||
args: "MMM dd yyyy, HH:mm"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
|
@@ -77,10 +77,23 @@ login:
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "/api/torrents/v2/filter?api_token={{ .Config.apikey }}&search={{ .Keywords }}{{ if .Query.IMDBIDShort }}&imdb={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdb={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdb={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&freeleech=1{{ else }}{{ end }}&sorting={{ .Config.sort }}&direction={{ .Config.type }}&qty=100&page=1"
|
||||
- path: api/torrents/v2/filter
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
tvdb: "{{ .Query.TVDBID }}"
|
||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
sorting: "{{ .Config.sort }}"
|
||||
direction: "{{ .Config.type }}"
|
||||
qty: 100
|
||||
page: 1
|
||||
|
||||
rows:
|
||||
selector: torrents
|
||||
count:
|
||||
@@ -124,7 +137,7 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "01/02/2006 15:04:05 -07:00"
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
|
@@ -143,7 +143,7 @@ search:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
size:
|
||||
selector: td:nth-last-child(4) b
|
||||
grabs:
|
||||
|
@@ -1,230 +0,0 @@
|
||||
---
|
||||
id: dark-shadow
|
||||
name: Dark-Shadow
|
||||
description: "Dark-Shadow is a German Private site for TV / MOVIES / GENERAL"
|
||||
language: de-DE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://dark-shadow.me/
|
||||
legacylinks:
|
||||
- https://dark-shadow.ml/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Movie
|
||||
- {id: 28, cat: Movies/SD, desc: "Filme SD"}
|
||||
- {id: 32, cat: Movies/HD, desc: "Filme HD"}
|
||||
- {id: 114, cat: Movies/UHD, desc: "Filme UHD"}
|
||||
- {id: 140, cat: Movies/BluRay, desc: "Filme BluRay"}
|
||||
- {id: 138, cat: Movies, desc: "Filme Pack`s"}
|
||||
# Kids
|
||||
- {id: 143, cat: Movies, desc: "Kids Filme"}
|
||||
- {id: 144, cat: TV, desc: "Kids Serien"}
|
||||
- {id: 145, cat: Audio, desc: "Kids Music"}
|
||||
- {id: 146, cat: Audio, desc: "Kids Audio"}
|
||||
- {id: 147, cat: Books, desc: "Kids EBook"}
|
||||
# Serien
|
||||
- {id: 60, cat: TV/SD, desc: "Serien SD"}
|
||||
- {id: 57, cat: TV/HD, desc: "Serien HD"}
|
||||
- {id: 139, cat: TV/UHD, desc: "Serien UHD"}
|
||||
- {id: 59, cat: TV, desc: "Serien Pack`s"}
|
||||
# Audio
|
||||
- {id: 110, cat: Audio/MP3, desc: "Audio MP3"}
|
||||
- {id: 48, cat: Audio/Lossless, desc: "Audio Flac"}
|
||||
- {id: 52, cat: Audio, desc: "Audio Pack"}
|
||||
- {id: 63, cat: Audio/Audiobook, desc: "Audio Hörbuch"}
|
||||
- {id: 120, cat: Audio/Video, desc: "Audio Videos"}
|
||||
# App
|
||||
- {id: 12, cat: PC/0day, desc: "Apps Windows"}
|
||||
- {id: 125, cat: PC/Mac, desc: "Apps Mac-OSX"}
|
||||
- {id: 11, cat: PC/Mobile-Other, desc: "Apps Mobil"}
|
||||
- {id: 141, cat: PC/ISO, desc: "Apps Other"}
|
||||
# Doku
|
||||
- {id: 15, cat: TV/Documentary, desc: "Doku SD"}
|
||||
- {id: 14, cat: TV/Documentary, desc: "Doku HD"}
|
||||
- {id: 123, cat: TV/Documentary, desc: "Doku Reihe"}
|
||||
# Spiel
|
||||
- {id: 126, cat: Console/Other, desc: "Spiel Mobil"}
|
||||
- {id: 17, cat: PC/Games, desc: "Spiel PC"}
|
||||
- {id: 24, cat: Console, desc: "Spiel Konsole"}
|
||||
- {id: 121, cat: Console, desc: "Spiel Wimmelbild"}
|
||||
# Sport
|
||||
- {id: 61, cat: TV/Sport, desc: "Sport HD"}
|
||||
- {id: 62, cat: TV/Sport, desc: "Sport SD"}
|
||||
# Paper
|
||||
- {id: 96, cat: Books/Mags, desc: "ePaper Zeitungen"}
|
||||
- {id: 136, cat: Books/EBook, desc: "ePaper E-Book"}
|
||||
- {id: 137, cat: Books/Comics, desc: "ePaper Comics"}
|
||||
# XXX
|
||||
- {id: 76, cat: XXX/XviD, desc: "XXX SD"}
|
||||
- {id: 73, cat: XXX/x264, desc: "XXX HD"}
|
||||
- {id: 75, cat: XXX/Pack, desc: "XXX Pack"}
|
||||
- {id: 142, cat: XXX/ImageSet, desc: "XXX Pic´s"}
|
||||
# Internal
|
||||
- {id: 129, cat: Movies/SD, desc: "Internal Film SD"}
|
||||
- {id: 128, cat: Movies/HD, desc: "Internal Film HD"}
|
||||
- {id: 131, cat: TV/SD, desc: "Internal Serie SD"}
|
||||
- {id: 130, cat: TV/HD, desc: "Internal Serien HD"}
|
||||
- {id: 132, cat: Other, desc: "Internal Sonstiges"}
|
||||
|
||||
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_pin
|
||||
type: info
|
||||
label: About Pin
|
||||
default: If you have not set a Pin for your account then leave this box empty.
|
||||
- name: pin
|
||||
type: text
|
||||
label: Pin
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter 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
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="/login.php"]
|
||||
cookies: ["JAVA=OK"] # avoid jscheck redirect
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[src^="cap/captcha_math.php"]
|
||||
input: stringCaptcha
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
pin: "{{ .Config.pin }}"
|
||||
error:
|
||||
- selector: div#login_error
|
||||
test:
|
||||
path: selection.php
|
||||
|
||||
download:
|
||||
before:
|
||||
path: ajax_det_poll.php
|
||||
method: post
|
||||
inputs:
|
||||
set_thanks: thanks
|
||||
det_id: "{{ .DownloadUri.Query.torrent }}"
|
||||
ajax: yes
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: selection.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 name, 1 descr, 2 both
|
||||
# name searching is broken. #10788
|
||||
blah: 1
|
||||
orderby: "{{ .Config.sort }}"
|
||||
sort: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: "div.selection_wrap{{ if .Config.freeleech }}:root:has(div.onlyup){{ else }}{{ end }}"
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category_p1:
|
||||
selector: div.kat_cat_pic_name
|
||||
category_p2:
|
||||
selector: div.kat_cat_pic_name_b
|
||||
categorydesc:
|
||||
text: "{{ .Result.category_p1 }} {{ .Result.category_p2 }}"
|
||||
title:
|
||||
selector: a.selection_a
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["^(\\[.*\\])(.*)", "$2"]
|
||||
details:
|
||||
selector: a.selection_a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a.selection_a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details.php?id=", "download_ssl.php?torrent="]
|
||||
poster:
|
||||
selector: div[id^="details"] img
|
||||
attribute: src
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: div.selection_unter_ad
|
||||
grabs:
|
||||
selector: div.selection_unter_ae
|
||||
date_day:
|
||||
# Heute 13:30:04
|
||||
# Gestern 09:10:10
|
||||
selector: div.selection_unter_ab:not(:contains("."))
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Heute", "Today"]
|
||||
- name: replace
|
||||
args: ["Gestern", "Yesterday"]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
date_year:
|
||||
# 30.02.2018 um 23:12:50
|
||||
selector: div.selection_unter_ab:contains(".")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" um", ""]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "02.01.2006 15:04:05 -07:00"
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
|
||||
description:
|
||||
selector: selection_unter_af
|
||||
seeders:
|
||||
selector: div.selection_unter_aa
|
||||
leechers:
|
||||
selector: div.selection_unter_aaa
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
":root:has(div.onlyup)": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# 3xT
|
@@ -79,8 +79,14 @@ search:
|
||||
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
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
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
|
||||
@@ -144,7 +150,7 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "01/02/2006 15:04:05 -07:00"
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
@@ -169,4 +175,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 6.4.1
|
||||
# json UNIT3D 6.5.0
|
||||
|
@@ -116,7 +116,7 @@ search:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user