mirror of
https://github.com/Jackett/Jackett.git
synced 2025-12-19 21:06:42 +01:00
Compare commits
104 Commits
v0.20.2431
...
v0.20.2617
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c70e8bb189 | ||
|
|
967ce651ba | ||
|
|
f050791933 | ||
|
|
4521fceae4 | ||
|
|
16ae35a710 | ||
|
|
91cd7a82d5 | ||
|
|
0400bd81fd | ||
|
|
6aeb9e5d5b | ||
|
|
de00289965 | ||
|
|
d0ad1f0b52 | ||
|
|
bd24ec37cd | ||
|
|
79eaf5c152 | ||
|
|
8b76e04b7c | ||
|
|
60ea6edda9 | ||
|
|
54fd12428c | ||
|
|
b8c5a00b97 | ||
|
|
5e069e5d74 | ||
|
|
ac5d6f5764 | ||
|
|
1685c0c8b9 | ||
|
|
6e234ff303 | ||
|
|
462860e6b0 | ||
|
|
c31ce0a8be | ||
|
|
d0ebdea164 | ||
|
|
d7c885306e | ||
|
|
33f59521aa | ||
|
|
3771801c41 | ||
|
|
6485122cd3 | ||
|
|
cbd8d88bf6 | ||
|
|
d751eb84dc | ||
|
|
9a69317f68 | ||
|
|
761ec2b7f6 | ||
|
|
92c711eb19 | ||
|
|
89d6f4a656 | ||
|
|
9861c2565d | ||
|
|
263d26f8e6 | ||
|
|
034ca38368 | ||
|
|
e7384b73e4 | ||
|
|
f1470fc3c5 | ||
|
|
ac535dc7ad | ||
|
|
cb10294900 | ||
|
|
8442a7980f | ||
|
|
aac2e5500e | ||
|
|
c95d268a94 | ||
|
|
b6611b1bb5 | ||
|
|
733c8d0249 | ||
|
|
ad635c442b | ||
|
|
1ca2edf9b7 | ||
|
|
d76325d6bc | ||
|
|
f2a3de351a | ||
|
|
b77177bbf3 | ||
|
|
9cfffe4ea1 | ||
|
|
1036f2c462 | ||
|
|
df515dc38a | ||
|
|
9eb5d0de3f | ||
|
|
ba19357572 | ||
|
|
db901dc3ec | ||
|
|
77a8a60136 | ||
|
|
5a4b0e4e30 | ||
|
|
35c051b97e | ||
|
|
8c57a6a03d | ||
|
|
df50d290c5 | ||
|
|
6f6cc47cab | ||
|
|
ee86c57ac8 | ||
|
|
6cc81b6266 | ||
|
|
6d3b40b80d | ||
|
|
6409a8e119 | ||
|
|
a1e0aa8efe | ||
|
|
a9bd16f681 | ||
|
|
24e3d930ec | ||
|
|
c82e4ae627 | ||
|
|
ef71118f74 | ||
|
|
fc4f36e68e | ||
|
|
0a18ddfe4e | ||
|
|
89858199ed | ||
|
|
29be6f4c80 | ||
|
|
aa72f5b80e | ||
|
|
db6457319b | ||
|
|
ef269a1358 | ||
|
|
8f7375ff90 | ||
|
|
18ac5ddf31 | ||
|
|
1fd731aaf8 | ||
|
|
01e9a73fa7 | ||
|
|
8ffe670b29 | ||
|
|
279caca6af | ||
|
|
ec8eb929e6 | ||
|
|
9678329b2e | ||
|
|
34f77fc376 | ||
|
|
1774fda60a | ||
|
|
c413f72db0 | ||
|
|
de6effabb2 | ||
|
|
3a0403958a | ||
|
|
134c6b34a6 | ||
|
|
cc6acd8efb | ||
|
|
f3a785bd2d | ||
|
|
33c82015af | ||
|
|
9490a8382f | ||
|
|
07081bcf42 | ||
|
|
5500a0e66f | ||
|
|
451bd7809e | ||
|
|
9fece7551b | ||
|
|
59c2801528 | ||
|
|
d60ae9f408 | ||
|
|
0c82b4144e | ||
|
|
23f1ea6a7b |
10
.github/workflows/codeql-analysis.yml
vendored
10
.github/workflows/codeql-analysis.yml
vendored
@@ -35,7 +35,7 @@ on:
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: windows-2019
|
||||
runs-on: windows-2022
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
@@ -62,11 +62,6 @@ jobs:
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
- name: Set up dotnet
|
||||
uses: actions/setup-dotnet@v2
|
||||
with:
|
||||
dotnet-version: '6.0.*'
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
|
||||
@@ -85,5 +80,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
||||
|
||||
uses: github/codeql-action/analyze@v2
|
||||
|
||||
10
README.md
10
README.md
@@ -60,7 +60,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Dodder (菟丝子资源社区)
|
||||
* DonTorrent
|
||||
* E-Hentai
|
||||
* elitetorrent
|
||||
* EpubLibre
|
||||
* EXT Torrents
|
||||
* ExtraTorrent.st
|
||||
@@ -111,7 +110,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Pornforall
|
||||
* PornLeech
|
||||
* PornosLab
|
||||
* PornoTor
|
||||
* PornoTorrent
|
||||
* Portugas
|
||||
* ProPorn
|
||||
@@ -126,7 +124,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* seleZen
|
||||
* Sexy-Pics
|
||||
* Shana Project
|
||||
* ShizaProject
|
||||
* ShowRSS
|
||||
* Solid Torrents
|
||||
* sosulki
|
||||
@@ -226,6 +223,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Torrents-Local
|
||||
* TribalMixes
|
||||
* Union Fansub
|
||||
* xTorrenty
|
||||
* YggTorrent (YGG)
|
||||
* ZOMB
|
||||
* Ztracker
|
||||
@@ -275,6 +273,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Bitded
|
||||
* Bithorlo (BHO)
|
||||
* BitHUmen [![(invite needed)][inviteneeded]](#)
|
||||
* Bit Of Valor
|
||||
* BitSexy
|
||||
* Bitspyder
|
||||
* BitTorrentFiles
|
||||
@@ -428,7 +427,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* MMA-Torrents [![(invite needed)][inviteneeded]](#)
|
||||
* MNV (Max-New-Vision)
|
||||
* MOJBLiNK
|
||||
* Mononoké-BT [![(invite needed)][inviteneeded]](#)
|
||||
* MoreThanTV (MTV)
|
||||
* MouseBits
|
||||
* Movie-Torrentz
|
||||
@@ -444,7 +442,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* OshenPT
|
||||
* Ourbits (HDPter) [![(invite needed)][inviteneeded]](#)
|
||||
* P2PBG
|
||||
* P2PElite
|
||||
* Partis
|
||||
* PassThePopcorn (PTP)
|
||||
* Peeratiko
|
||||
@@ -484,7 +481,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Romanian Metal Torrents (RMT) [![(invite needed)][inviteneeded]](#)
|
||||
* RPTorrents
|
||||
* SceneHD [![(invite needed)][inviteneeded]](#)
|
||||
* ScenePalace (SP)
|
||||
* SceneRush
|
||||
* SceneTime
|
||||
* SDBits [![(invite needed)][inviteneeded]](#)
|
||||
@@ -528,7 +524,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* The Vault [![(invite needed)][inviteneeded]](#)
|
||||
* The-Crazy-Ones
|
||||
* The-New-Fun
|
||||
* TheAudioScene
|
||||
* TheEmpire (TE)
|
||||
* TheLeachZone (TLZ)
|
||||
* TheScenePlace (TSP)
|
||||
@@ -563,7 +558,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* TvRoad
|
||||
* TVstore
|
||||
* Twilight Torrents
|
||||
* Twilights Zoom
|
||||
* U2 (U2分享園@動漫花園) [![(invite needed)][inviteneeded]](#)
|
||||
* UHDBits
|
||||
* UnionGang
|
||||
|
||||
@@ -7,7 +7,7 @@ variables:
|
||||
jackettVersion: $(majorVersion).$(minorVersion).$(patchVersion)
|
||||
buildConfiguration: Release
|
||||
netCoreFramework: net6.0
|
||||
netCoreSdkVersion: 6.0.x
|
||||
netCoreSdkVersion: 6.0.403 # #13806 & dotnet/runtime#79796
|
||||
# system.debug: true
|
||||
|
||||
trigger:
|
||||
@@ -26,7 +26,7 @@ stages:
|
||||
jobs:
|
||||
- job: Build
|
||||
workspace:
|
||||
clean: outputs
|
||||
clean: all
|
||||
strategy:
|
||||
matrix:
|
||||
Windows:
|
||||
@@ -52,50 +52,50 @@ stages:
|
||||
artifactName: Jackett.Binaries.macOSARM64.tar.gz
|
||||
LinuxAMDx64:
|
||||
buildDescription: Linux AMD x64
|
||||
imageName: ubuntu-20.04
|
||||
imageName: ubuntu-22.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-x64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxAMDx64.tar.gz
|
||||
LinuxARM32:
|
||||
buildDescription: Linux ARM32
|
||||
imageName: ubuntu-20.04
|
||||
imageName: ubuntu-22.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-arm
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxARM32.tar.gz
|
||||
LinuxARM64:
|
||||
buildDescription: Linux ARM64
|
||||
imageName: ubuntu-20.04
|
||||
imageName: ubuntu-22.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-arm64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxARM64.tar.gz
|
||||
LinuxMuslAMDx64:
|
||||
buildDescription: Linux musl AMD x64
|
||||
imageName: ubuntu-20.04
|
||||
imageName: ubuntu-22.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-musl-x64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxMuslAMDx64.tar.gz
|
||||
LinuxMuslARM32:
|
||||
buildDescription: Linux musl ARM32
|
||||
imageName: ubuntu-20.04
|
||||
imageName: ubuntu-22.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-musl-arm
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxMuslARM32.tar.gz
|
||||
LinuxMuslARM64:
|
||||
buildDescription: Linux musl ARM64
|
||||
imageName: ubuntu-20.04
|
||||
imageName: ubuntu-22.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-musl-arm64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxMuslARM64.tar.gz
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-20.04
|
||||
framework: net461
|
||||
imageName: ubuntu-22.04
|
||||
framework: net462
|
||||
runtime: linux-x64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.Mono.tar.gz
|
||||
@@ -104,7 +104,6 @@ stages:
|
||||
displayName: ${{ variables.buildDescription }}
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: Install .NET Core SDK
|
||||
@@ -113,8 +112,23 @@ stages:
|
||||
version: $(netCoreSdkVersion)
|
||||
installationPath: $(Agent.ToolsDirectory)/dotnet
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Build DateTimeRoutines
|
||||
# this task is not mandatory since DateTimeRoutines is build in the next task, but the purpose is to fix:
|
||||
# error MSB4018: System.IO.IOException: The process cannot access the file
|
||||
# '/home/vsts/work/1/net6.0-linux-musl-arm/src/DateTimeRoutines/bin/Release/netstandard2.0/DateTimeRoutines.deps.json'
|
||||
# because it is being used by another process.
|
||||
inputs:
|
||||
command: build
|
||||
projects: 'src/DateTimeRoutines/DateTimeRoutines.csproj'
|
||||
publishWebProjects: false
|
||||
zipAfterPublish: false
|
||||
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework netstandard2.0'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Build Jackett Server
|
||||
# the retries are just in case the previous task doesn't fix the error
|
||||
retryCountOnTaskFailure: 3
|
||||
inputs:
|
||||
command: publish
|
||||
projects: 'src/Jackett.Server/Jackett.Server.csproj'
|
||||
@@ -303,12 +317,11 @@ stages:
|
||||
- job: Linting_Dotnet
|
||||
displayName: Linting Dotnet
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
vmImage: ubuntu-22.04
|
||||
workspace:
|
||||
clean: outputs
|
||||
clean: all
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: Install .NET Core SDK
|
||||
@@ -337,12 +350,11 @@ stages:
|
||||
- job: Linting_YAML
|
||||
displayName: Linting YAML
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
vmImage: ubuntu-22.04
|
||||
workspace:
|
||||
clean: outputs
|
||||
clean: all
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: UsePythonVersion@0
|
||||
displayName: Install Python
|
||||
@@ -358,12 +370,11 @@ stages:
|
||||
- job: Validate_YAML_Schema
|
||||
displayName: Validate YAML Schema
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
vmImage: ubuntu-22.04
|
||||
workspace:
|
||||
clean: outputs
|
||||
clean: all
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: Bash@3
|
||||
displayName: Validate YAML Schema
|
||||
@@ -393,7 +404,7 @@ stages:
|
||||
jobs:
|
||||
- job: UnitTest
|
||||
workspace:
|
||||
clean: outputs
|
||||
clean: all
|
||||
strategy:
|
||||
matrix:
|
||||
Windows:
|
||||
@@ -408,20 +419,19 @@ stages:
|
||||
runtime: osx-x64
|
||||
LinuxAMDx64:
|
||||
buildDescription: Linux AMD x64
|
||||
imageName: ubuntu-20.04
|
||||
imageName: ubuntu-22.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-x64
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-20.04
|
||||
framework: net461
|
||||
imageName: ubuntu-22.04
|
||||
framework: net462
|
||||
runtime: linux-x64
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
displayName: ${{ variables.buildDescription }}
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: Install .NET Core SDK
|
||||
@@ -430,15 +440,6 @@ stages:
|
||||
version: $(netCoreSdkVersion)
|
||||
installationPath: $(Agent.ToolsDirectory)/dotnet
|
||||
|
||||
# this task is a workaround to fix a bug in Azure (not required under normal circumstances)
|
||||
# https://developercommunity.visualstudio.com/content/problem/983843/dotnet-build-task-does-not-use-nugetorg-for-one-pr.html
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Restore Test Project
|
||||
inputs:
|
||||
command: restore
|
||||
projects: '**/*.Test*/*.csproj'
|
||||
includeNuGetOrg: true
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Unit Tests (Mono, Linux and macOS)
|
||||
condition: and(succeeded(), not(startsWith(variables['runtime'], 'win')))
|
||||
@@ -487,7 +488,7 @@ stages:
|
||||
jobs:
|
||||
- job: IntegrationTest
|
||||
workspace:
|
||||
clean: outputs
|
||||
clean: all
|
||||
strategy:
|
||||
matrix:
|
||||
Windows:
|
||||
@@ -504,22 +505,21 @@ stages:
|
||||
runtime: osx-x64
|
||||
LinuxAMDx64:
|
||||
buildDescription: Linux AMD x64
|
||||
imageName: ubuntu-20.04
|
||||
imageName: ubuntu-22.04
|
||||
artifactName: Jackett.Binaries.LinuxAMDx64.tar.gz
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-x64
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-20.04
|
||||
imageName: ubuntu-22.04
|
||||
artifactName: Jackett.Binaries.Mono.tar.gz
|
||||
framework: net461
|
||||
framework: net462
|
||||
runtime: linux-x64
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
displayName: ${{ variables.buildDescription }}
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download artifacts for integration tests
|
||||
@@ -556,15 +556,6 @@ stages:
|
||||
version: $(netCoreSdkVersion)
|
||||
installationPath: $(Agent.ToolsDirectory)/dotnet
|
||||
|
||||
# this task is a workaround to fix a bug in Azure (not required under normal circumstances)
|
||||
# https://developercommunity.visualstudio.com/content/problem/983843/dotnet-build-task-does-not-use-nugetorg-for-one-pr.html
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Restore IntegrationTest Project
|
||||
inputs:
|
||||
command: restore
|
||||
projects: '**/*IntegrationTest*/*.csproj'
|
||||
includeNuGetOrg: true
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Integration Tests (Mono, Linux and macOS)
|
||||
condition: and(succeeded(), not(startsWith(variables['runtime'], 'win')))
|
||||
@@ -592,12 +583,11 @@ stages:
|
||||
jobs:
|
||||
- job: Publish
|
||||
workspace:
|
||||
clean: outputs
|
||||
clean: all
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
vmImage: ubuntu-22.04
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download Artifacts for Publish
|
||||
|
||||
@@ -8,6 +8,7 @@ JACKETT_DIR="$(dirname "$(readlink -f "$0")")"
|
||||
|
||||
# Launch Jackett (with CLI parameters)
|
||||
"${JACKETT_DIR}/jackett" --NoRestart "$@"
|
||||
ec=$?
|
||||
|
||||
# Get user running the service
|
||||
JACKETT_USER=$(whoami)
|
||||
@@ -16,3 +17,5 @@ JACKETT_USER=$(whoami)
|
||||
while pgrep -u "${JACKETT_USER}" JackettUpdater > /dev/null; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
exit $ec
|
||||
|
||||
@@ -1 +1 @@
|
||||
span.multiselect-native-select{position:relative}span.multiselect-native-select select{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px -1px -1px -3px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;left:50%;top:30px}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0}.multiselect-container .input-group{margin:5px}.multiselect-container>li{padding:0}.multiselect-container>li>a.multiselect-all label{font-weight:700}.multiselect-container>li.multiselect-group label{margin:0;padding:3px 20px 3px 20px;height:100%;font-weight:700}.multiselect-container>li.multiselect-group-clickable label{cursor:pointer}.multiselect-container>li>a{padding:0}.multiselect-container>li>a>label{margin:0;height:100%;cursor:pointer;font-weight:400;padding:3px 20px 3px 40px}.multiselect-container>li>a>label.radio,.multiselect-container>li>a>label.checkbox{margin:0}.multiselect-container>li>a>label>input[type=checkbox]{margin-bottom:5px}.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.form-inline .multiselect-container label.checkbox,.form-inline .multiselect-container label.radio{padding:3px 20px 3px 40px}.form-inline .multiselect-container li a label.checkbox input[type=checkbox],.form-inline .multiselect-container li a label.radio input[type=radio]{margin-left:-20px;margin-right:0}
|
||||
span.multiselect-native-select{position:relative}span.multiselect-native-select select{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px -1px -1px -3px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;left:50%;top:30px}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0}.multiselect-container .input-group{margin:5px}.multiselect-container .multiselect-reset .input-group{width:93%}.multiselect-container>li{padding:0}.multiselect-container>li>a.multiselect-all label{font-weight:700}.multiselect-container>li.multiselect-group label{margin:0;padding:3px 20px;height:100%;font-weight:700}.multiselect-container>li.multiselect-group-clickable label{cursor:pointer}.multiselect-container>li>a{padding:0}.multiselect-container>li>a>label{margin:0;height:100%;cursor:pointer;font-weight:400;padding:3px 20px 3px 40px}.multiselect-container>li>a>label.checkbox,.multiselect-container>li>a>label.radio{margin:0}.multiselect-container>li>a>label>input[type=checkbox]{margin-bottom:5px}.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.form-inline .multiselect-container label.checkbox,.form-inline .multiselect-container label.radio{padding:3px 20px 3px 40px}.form-inline .multiselect-container li a label.checkbox input[type=checkbox],.form-inline .multiselect-container li a label.radio input[type=radio]{margin-left:-20px;margin-right:0}
|
||||
|
||||
@@ -1256,7 +1256,7 @@ function setSavedPresets(presets) {
|
||||
}
|
||||
|
||||
function setSavePresetsButtonState(table, element, state = false) {
|
||||
var button = element.find("button[id=jackett-search-results-datatable_savepreset_button]")
|
||||
var button = element.find("button[id=jackett-search-results-datatable_savepreset_button]")
|
||||
if (state) {
|
||||
button.attr("class", "btn btn-danger btn-sm");
|
||||
button.on("click", function () {
|
||||
@@ -1403,6 +1403,8 @@ function updateSearchResultTable(element, results) {
|
||||
newKeyword = "^((?!" + $.fn.dataTable.util.escapeRegex(keyword.substring(1)) + ").)*$";
|
||||
else
|
||||
newKeyword = '(' + keyword.split('|').map(k => $.fn.dataTable.util.escapeRegex(k)).join('|') + ')';
|
||||
// fix search filters with "-", "." or "_" characters in the middle of the word => #13628
|
||||
newKeyword = newKeyword.replace("\\-", "\\-\u200B?").replace("\\.", "\\.\u200B?").replace("_", "_\u200B?");
|
||||
newKeywords.push(newKeyword);
|
||||
});
|
||||
var filterText = newKeywords.join(" ");
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<script type="text/javascript" src="../libs/handlebarsextend.js?changed=2017083001"></script>
|
||||
<script type="text/javascript" src="../bootstrap/bootstrap.min.js?changed=2017083001"></script>
|
||||
<script type="text/javascript" src="../libs/bootstrap-notify.js?changed=2017083001"></script>
|
||||
<script type="text/javascript" src="../libs/bootstrap-multiselect.js?changed=2017083001"></script>
|
||||
<script type="text/javascript" src="../libs/bootstrap-multiselect.js?changed=20230107001"></script>
|
||||
<script type="text/javascript" src="../libs/tagify.min.js?changed=11662"></script>
|
||||
<script type="text/javascript" src="../libs/jQuery.tagify.min.js?changed=11662"></script>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="../custom.css?changed=20220721002" media="only screen and (min-device-width: 480px)">
|
||||
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=20220721002" media="only screen and (max-device-width: 480px)">
|
||||
<link rel="stylesheet" type="text/css" href="../css/jquery.dataTables.min.css?changed=2017083001">
|
||||
<link rel="stylesheet" type="text/css" href="../css/bootstrap-multiselect.css?changed=2017083001" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/bootstrap-multiselect.css?changed=20230107001" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/font-awesome.min.css?changed=2017083001">
|
||||
<title>Jackett</title>
|
||||
</head>
|
||||
@@ -756,6 +756,6 @@
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="../libs/api.js?changed=2017083001"></script>
|
||||
<script type="text/javascript" src="../custom.js?changed=20221221"></script>
|
||||
<script type="text/javascript" src="../custom.js?changed=2023010701"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
3248
src/Jackett.Common/Content/libs/bootstrap-multiselect.js
vendored
3248
src/Jackett.Common/Content/libs/bootstrap-multiselect.js
vendored
File diff suppressed because it is too large
Load Diff
@@ -13,13 +13,12 @@ links:
|
||||
- https://x1337x.ws/
|
||||
- https://x1337x.eu/
|
||||
- https://x1337x.se/
|
||||
- https://1337x.unblockit.pet/
|
||||
- https://1337x.unblockit.ink/
|
||||
- https://1337x.nocensor.lol/
|
||||
- https://1337x.unblockninja.com/
|
||||
legacylinks:
|
||||
- https://1337x.is/
|
||||
- https://1337x.nocensor.work/
|
||||
- https://1337x.unblockit.kim/
|
||||
- https://1337x.unblockit.bz/
|
||||
- https://1337x.unblockit.tv/
|
||||
- https://1337x.unblockit.how/
|
||||
@@ -37,6 +36,7 @@ legacylinks:
|
||||
- https://1337x.unblockit.nz/
|
||||
- https://1337x.nocensor.world/
|
||||
- https://1337x.unblockit.page/
|
||||
- https://1337x.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -129,6 +129,7 @@ search:
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
remove: span
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
|
||||
@@ -61,6 +61,10 @@ 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)
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ search:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
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 }}"
|
||||
$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 }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
@@ -168,4 +168,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 6.4.0
|
||||
# json UNIT3D 6.5.0
|
||||
|
||||
@@ -9,11 +9,10 @@ requestDelay: 2
|
||||
links:
|
||||
- https://audiobookbay.li/
|
||||
- https://audiobookbay.se/
|
||||
- https://audiobookbay.unblockit.pet/
|
||||
- https://audiobookbay.unblockit.ink/
|
||||
legacylinks:
|
||||
- https://audiobookbay.la/
|
||||
- http://audiobookbay.net/
|
||||
- https://audiobookbay.unblockit.kim/
|
||||
- https://audiobookbay.unblockit.bz/
|
||||
- https://audiobookbay.unblockit.tv/
|
||||
- http://audiobookbay.nl/
|
||||
@@ -34,6 +33,7 @@ legacylinks:
|
||||
- https://audiobookbay.unblockit.nz/
|
||||
- https://audiobookbay.fi/
|
||||
- https://audiobookbay.unblockit.page/
|
||||
- https://audiobookbay.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -10,33 +10,49 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 12, cat: Console, desc: "XBOX360"}
|
||||
- {id: 9, cat: TV, desc: "TV-Boxsets"}
|
||||
- {id: 15, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 35, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 51, cat: PC/Mac, desc: "Apple"}
|
||||
- {id: 3, cat: PC, desc: "Apps"}
|
||||
- {id: 24, cat: PC, desc: "Apple"}
|
||||
- {id: 11, cat: TV, desc: "TV/x264"}
|
||||
- {id: 23, cat: Console, desc: "Visionary"}
|
||||
- {id: 14, cat: TV/Sport, desc: "WWE"}
|
||||
- {id: 26, cat: Console, desc: "Xbox"}
|
||||
- {id: 13, cat: Console, desc: "XBOX-JTAG"}
|
||||
- {id: 35, cat: Movies/Other, desc: "Anime"}
|
||||
- {id: 64, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: 4, cat: Movies/BluRay, desc: "Blu-Ray"}
|
||||
- {id: 6, cat: Movies, desc: "Movies/XVID"}
|
||||
- {id: 10, cat: TV, desc: "TV/Xvid"}
|
||||
- {id: 29, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 40, cat: TV, desc: "Soaps"}
|
||||
- {id: 27, cat: Console, desc: "Roms and Emulators"}
|
||||
- {id: 30, cat: Console, desc: "Playstation"}
|
||||
- {id: 7, cat: Audio, desc: "Music"}
|
||||
- {id: 22, cat: Console, desc: "CoinOps"}
|
||||
- {id: 42, cat: Console, desc: "CoinOPS Official"}
|
||||
- {id: 65, cat: Console, desc: "CoinOps Unofficial"}
|
||||
- {id: 63, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: 60, cat: Console, desc: "Core"}
|
||||
- {id: 44, cat: Console, desc: "CP78"}
|
||||
- {id: 16, cat: TV/Documentary, desc: "Docu"}
|
||||
- {id: 41, cat: Console, desc: "Dragon"}
|
||||
- {id: 5, cat: Books, desc: "EBooks"}
|
||||
- {id: 38, cat: Console, desc: "Hyperspin Bolt-on Edition"}
|
||||
- {id: 61, cat: Console, desc: "emuxtras"}
|
||||
- {id: 69, cat: TV, desc: "Entertainment"}
|
||||
- {id: 34, cat: TV, desc: "Kids"}
|
||||
- {id: 8, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 22, cat: PC/Games, desc: "CoinOPS"}
|
||||
- {id: 43, cat: Console, desc: "LB No Intro"}
|
||||
- {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
|
||||
- {id: 32, cat: Movies, desc: "Movie Pack"}
|
||||
- {id: 6, cat: Movies, desc: "Movies/XVID"}
|
||||
- {id: 7, cat: Audio, desc: "Music"}
|
||||
- {id: 31, cat: Console, desc: "Nintendo"}
|
||||
- {id: 59, cat: Console, desc: "P-R-U"}
|
||||
- {id: 8, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 50, cat: Console, desc: "PlayBox"}
|
||||
- {id: 30, cat: Console, desc: "Playstation"}
|
||||
- {id: 62, cat: Console, desc: "RaspberryPi"}
|
||||
- {id: 56, cat: Console, desc: "Retro Minis"}
|
||||
- {id: 67, cat: Console, desc: "Retrobat"}
|
||||
- {id: 27, cat: Console, desc: "Roms and Emulators"}
|
||||
- {id: 68, cat: Console, desc: "Schmoomer's"}
|
||||
- {id: 57, cat: Console, desc: "Sega"}
|
||||
- {id: 40, cat: TV, desc: "Soaps"}
|
||||
- {id: 29, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 9, cat: TV, desc: "TV-Boxsets"}
|
||||
- {id: 11, cat: TV, desc: "TV/x264"}
|
||||
- {id: 10, cat: TV, desc: "TV/Xvid"}
|
||||
- {id: 14, cat: TV/Sport, desc: "WWE"}
|
||||
- {id: 26, cat: Console, desc: "Xbox"}
|
||||
- {id: 12, cat: Console, desc: "XBOX360"}
|
||||
- {id: 23, cat: XXX, desc: "xxx18+"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -45,6 +61,22 @@ caps:
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>40</b> on your account profile.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
@@ -67,12 +99,15 @@ search:
|
||||
inputs:
|
||||
do: search
|
||||
keywords: "{{ .Keywords }}"
|
||||
# t_name, t_description, t_both, t_uploader, t_genre
|
||||
search_type: t_name
|
||||
category: 0 # multi cat search not supported
|
||||
# yes, no
|
||||
include_dead_torrents: yes
|
||||
# sort is done via do=quick_sort, and freeleech sorting is part of that set
|
||||
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:has(a[href*="/details.php?id="])
|
||||
selector: "table#sortabletable > tbody > tr:has(a[href*=\"/details.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"freedownload.gif\"]){{ else }}{{ end }}"
|
||||
filters:
|
||||
- name: andmatch
|
||||
args: 66
|
||||
@@ -108,6 +143,18 @@ search:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
poster:
|
||||
selector: div.tooltip-content > img
|
||||
attribute: src
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="freedownload.gif"]: 0
|
||||
img[src$="silverdownload.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src$="x2.gif"]: 2
|
||||
"*": 1
|
||||
date:
|
||||
selector: "td:nth-child(2) > div:has(span[style=\"float: right;\"])"
|
||||
remove: span
|
||||
@@ -116,14 +163,4 @@ search:
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04 -07:00"
|
||||
poster:
|
||||
selector: div.tooltip-content > img
|
||||
attribute: src
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt^="Free Torrent "]: 0
|
||||
img[alt^="Silver Torrent "]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine tbd
|
||||
# TS Special Edition v.8.0
|
||||
|
||||
@@ -12,7 +12,7 @@ caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Other, desc: "ในพระราชสำนัก (in the royal court)"}
|
||||
- {id: 4, cat: TV, desc: "รายการทีวี (TV)"}
|
||||
- {id: 7, cat: Movies, desc: "ภาพยนตร์ชุด (Movie Packs)"}
|
||||
- {id: 7, cat: TV, desc: "ภาพยนตร์ชุด (Series)"}
|
||||
- {id: 12, cat: Books/EBook, desc: "หนังสือ สื่อการสอน (Books)"}
|
||||
- {id: 13, cat: Other/Misc, desc: "ทั่วไป (General)"}
|
||||
- {id: 14, cat: TV/Sport, desc: "กีฬา (Sport)"}
|
||||
|
||||
161
src/Jackett.Common/Definitions/bitofvalor.yml
Normal file
161
src/Jackett.Common/Definitions/bitofvalor.yml
Normal file
@@ -0,0 +1,161 @@
|
||||
---
|
||||
id: bitofvalor
|
||||
name: Bit Of Valor
|
||||
description: "Bit Of Valor is a HUNGARIAN Private Tracker for MOVIES / TV"
|
||||
language: hu-HU
|
||||
type: private
|
||||
encoding: ISO-8859-2
|
||||
links:
|
||||
- https://bitvalor.hu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 26, cat: Books, desc: "E-Book/ENG"}
|
||||
- {id: 27, cat: Books, desc: "E-Book/HUN"}
|
||||
- {id: 28, cat: PC/Games, desc: "Játék/ISO"}
|
||||
- {id: 29, cat: PC/Games, desc: "Játék/RIP"}
|
||||
- {id: 30, cat: Movies/SD, desc: "Cam/ENG"}
|
||||
- {id: 31, cat: Movies/SD, desc: "Cam/HUN"}
|
||||
- {id: 32, cat: Movies/HD, desc: "HD/ENG"}
|
||||
- {id: 33, cat: Movies/HD, desc: "HD/HUN"}
|
||||
- {id: 34, cat: Movies/DVD, desc: "Dvd9/HUN"}
|
||||
- {id: 35, cat: Movies/DVD, desc: "DVD/ENG"}
|
||||
- {id: 36, cat: Movies/DVD, desc: "DVD/HUN"}
|
||||
- {id: 37, cat: TV, desc: "Sorozat/ENG"}
|
||||
- {id: 38, cat: TV, desc: "Sorozat/HUN"}
|
||||
- {id: 39, cat: Movies/SD, desc: "Xvid/ENG"}
|
||||
- {id: 40, cat: Movies/SD, desc: "Xvid/HUN"}
|
||||
- {id: 41, cat: Audio, desc: "Zene/ENG"}
|
||||
- {id: 42, cat: Audio, desc: "Zene/HUN"}
|
||||
- {id: 43, cat: Other, desc: "Képek"}
|
||||
- {id: 44, cat: PC/Mobile-Other, desc: "Mobil"}
|
||||
- {id: 45, cat: PC, desc: "Program/ISO/RIP"}
|
||||
- {id: 46, cat: XXX/WEB-DL, desc: "XXX/Film"}
|
||||
- {id: 47, cat: XXX/ImageSet, desc: "XXX/Kép"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search FreeLeech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
1: title
|
||||
4: added
|
||||
5: size
|
||||
7: seeders
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrent oldalankén:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.error
|
||||
test:
|
||||
path: /
|
||||
selector: a[href^="logout.php"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 all, 2 deadonly, 3 freeleech, 4 seedless
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# does not support imdbid search nor has imdbid link in results
|
||||
|
||||
rows:
|
||||
selector: tr:has(a[onmouseover]):not(:has(td.outer))
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[onmouseover]
|
||||
details:
|
||||
selector: a[onmouseover]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) "
|
||||
download:
|
||||
selector: a[onmouseover]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
genre:
|
||||
selector: i
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: validate
|
||||
args: "Akció, Animációs, Kaland, Életrajzi, Vígjáték, Krimi, Dokumentum, Dráma, Családi, Fantasztikus, Film-noir, Bünügyi, Történelmi, Horror, Musical, Zenés, Misztikus, Hírek, Valóságshow, Romantikus, Sci-fi, Rövidfilm, Sport, Talkshow, Thriller, Háborús, Bemutató, XXX, Western, 60s, 70s, 80s, 90s, Alternative, Blues, Breaks, Classic, Country, Dance, Electronic, Folk, Funk, Hardcore, Hip.Hop, Haus, Metal, Pop, Pop.Rock, Rock, Soul, Techno, Disco, Trance, Live, Latin, Jazz"
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/free.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumseedtime:
|
||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
||||
text: 345600
|
||||
# Engine n/a
|
||||
@@ -25,7 +25,6 @@ caps:
|
||||
- {id: 5, cat: Movies/WEB-DL, desc: "HD - WEB-DL"}
|
||||
- {id: 14, cat: Movies/HD, desc: "HD - WEBRip"}
|
||||
- {id: 40, cat: Movies/HD, desc: "PTer"}
|
||||
- {id: 32, cat: PC/Games, desc: "Oyunlar (Games)"}
|
||||
- {id: 9, cat: Movies/SD, desc: "SD"}
|
||||
- {id: 23, cat: Movies/SD, desc: "SD - BluRay"}
|
||||
- {id: 10, cat: Movies/DVD, desc: "SD - DVD"}
|
||||
@@ -60,12 +59,19 @@ login:
|
||||
path: index.php
|
||||
selector: a[href*="/logout.php?logouthash="]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: takethanks.php
|
||||
method: post
|
||||
inputs:
|
||||
torrentid: "{{ .DownloadUri.Query.id }}"
|
||||
selectors:
|
||||
- selector: a[href*="download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
keywordsfilters:
|
||||
- name: re_replace # E01 to BL01
|
||||
args: ["(?i)\\bE(\\d+)\\b", "E$1"]
|
||||
inputs:
|
||||
# does not support multi categories so defaulting to ALL
|
||||
do: search
|
||||
@@ -86,14 +92,11 @@ search:
|
||||
args: category
|
||||
title:
|
||||
selector: div[id^="port-target-"] a
|
||||
filters:
|
||||
- name: re_replace # BL01 to E01
|
||||
args: ["(?i)\\bBL(\\d+)\\b", " E$1 "]
|
||||
details:
|
||||
selector: div[id^="port-target-"] a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="download.php?id="]
|
||||
selector: div[id^="port-target-"] a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: div[id^="port-content-"] img
|
||||
|
||||
@@ -88,9 +88,13 @@ search:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
date_day:
|
||||
selector: td:nth-child(2):contains("day")
|
||||
selector: td:nth-child(2):contains("day"), td:nth-child(2):contains("Hoy"), td:nth-child(2):contains("Ayer")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Hoy", "Today"]
|
||||
- name: replace
|
||||
args: ["Ayer", "Yesterday"]
|
||||
- name: fuzzytime
|
||||
date_ago:
|
||||
selector: td:nth-child(2):contains("ago")
|
||||
@@ -98,7 +102,7 @@ search:
|
||||
filters:
|
||||
- name: timeago
|
||||
date_year:
|
||||
selector: td:nth-child(2):not(:contains("ago")):not(:contains("day"))
|
||||
selector: td:nth-child(2):not(:contains("ago")):not(:contains("day")):not(:contains("Hoy")):not(:contains("Ayer"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
|
||||
@@ -83,7 +83,7 @@ search:
|
||||
# http://www.cartoonchaos.org/index.php?page=torrents&search=transformers&category=30;21;20;26;15;16;17&options=0&active=0
|
||||
- path: index.php
|
||||
keywordsfilters:
|
||||
# if searching for season packs switch S01 to season 1 #11775
|
||||
# if searching for season packs switch S01 to season 1 #11775
|
||||
- name: re_replace
|
||||
args: ["(?i)(S0)(\\d{1,2})$", "season $2"]
|
||||
- name: re_replace
|
||||
@@ -103,6 +103,24 @@ search:
|
||||
selector: "table.lista tr td table.lista tr:has(a[href^=\"index.php?page=torrent-details\"]):not(:has(a[href=\"index.php?page=torrents&category=0\"])){{ if .Config.freeleech }}:has(img[src=\"gold/gold.gif\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
title_torrent:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: f
|
||||
- name: replace
|
||||
args: ["&", "&"]
|
||||
- name: replace
|
||||
args: ["'", "'"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\.torrent$", ""]
|
||||
title_text:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
filters:
|
||||
# #11775
|
||||
- name: re_replace
|
||||
args: ["(?i)(season )", "S"]
|
||||
category:
|
||||
selector: td a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
@@ -110,11 +128,7 @@ search:
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
filters:
|
||||
# #11775
|
||||
- name: re_replace
|
||||
args: ["(?i)(season )", "S"]
|
||||
text: "{{ if .Result.title_torrent }}{{ .Result.title_torrent }}{{ else }}{{ .Result.title_text }}{{ end }}"
|
||||
details:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
attribute: href
|
||||
|
||||
@@ -104,12 +104,18 @@ search:
|
||||
title:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
filters:
|
||||
- name: re_replace # Seasons X-Y --> SX-SY
|
||||
args: ["(?i)seasons?\\s*(\\d+)\\s*-\\s*(\\d+)", "S$1-S$2"]
|
||||
- name: re_replace # Seasons X-Y --> S0X-S0Y
|
||||
args: ["(?i)seasons?\\s*(\\d)\\s*-\\s*(\\d)\\b", "S0$1-S0$2"]
|
||||
- name: re_replace # Seasons X-YY --> S0X-SYY
|
||||
args: ["(?i)seasons?\\s*(\\d)\\s*-\\s*(\\d+)\\b", "S0$1-S$2"]
|
||||
- name: re_replace # Seasons XX-YY --> SXX-SYY
|
||||
args: ["(?i)seasons?\\s*(\\d+)\\s*-\\s*(\\d+)\\b", "S$1-S$2"]
|
||||
- name: re_replace # Season X --> S0X
|
||||
args: ["(?i)season\\s*(\\d+)", "S$1"]
|
||||
args: ["(?i)season\\s*(\\d)\\b", "S0$1"]
|
||||
- name: re_replace # Season XX --> SXX
|
||||
args: ["(?i)season\\s*(\\d+)\\b", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)Complete\\s+Series", ""]
|
||||
args: ["(?i)\\bComplete\\s+Series\\b", ""]
|
||||
details:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
attribute: href
|
||||
|
||||
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://cpasbiens3.fr/
|
||||
- https://labastidevivante.fr/
|
||||
legacylinks:
|
||||
- http://www.cpasbiens.cc/
|
||||
- http://www.cpabien.cm/
|
||||
@@ -44,6 +44,7 @@ legacylinks:
|
||||
- https://www2.cpasbien-fr.fr/
|
||||
- https://www.cpasbien-fr.nz/
|
||||
- https://vwwvwvwvvw.cpasbien-fr.nz/
|
||||
- https://cpasbiens3.fr/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
||||
@@ -94,12 +94,18 @@ search:
|
||||
title:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
filters:
|
||||
- name: re_replace # Seasons X-Y --> SX-SY
|
||||
args: ["(?i)seasons?\\s*(\\d+)\\s*-\\s*(\\d+)", "S$1-S$2"]
|
||||
- name: re_replace # Seasons X-Y --> S0X-S0Y
|
||||
args: ["(?i)seasons?\\s*(\\d)\\s*-\\s*(\\d)\\b", "S0$1-S0$2"]
|
||||
- name: re_replace # Seasons X-YY --> S0X-SYY
|
||||
args: ["(?i)seasons?\\s*(\\d)\\s*-\\s*(\\d+)\\b", "S0$1-S$2"]
|
||||
- name: re_replace # Seasons XX-YY --> SXX-SYY
|
||||
args: ["(?i)seasons?\\s*(\\d+)\\s*-\\s*(\\d+)\\b", "S$1-S$2"]
|
||||
- name: re_replace # Season X --> S0X
|
||||
args: ["(?i)season\\s*(\\d+)", "S$1"]
|
||||
args: ["(?i)season\\s*(\\d)\\b", "S0$1"]
|
||||
- name: re_replace # Season XX --> SXX
|
||||
args: ["(?i)season\\s*(\\d+)\\b", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)Complete\\s+Series", ""]
|
||||
args: ["(?i)\\bComplete\\s+Series\\b", ""]
|
||||
details:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
attribute: href
|
||||
|
||||
@@ -12,12 +12,11 @@ links:
|
||||
- https://www.dnoid.pw/
|
||||
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.onion.ly/
|
||||
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.tor2web.to/
|
||||
- https://demonoid.unblockit.pet/
|
||||
- https://demonoid.unblockit.ink/
|
||||
- https://demonoid.torrentbay.to/
|
||||
- https://demonoid.nocensor.lol/
|
||||
legacylinks:
|
||||
- https://demonoid.nocensor.work/
|
||||
- https://demonoid.unblockit.kim/
|
||||
- https://demonoid.unblockit.bz/
|
||||
- https://demonoid.unblockit.tv/
|
||||
- https://demonoid.unblockit.how/
|
||||
@@ -36,10 +35,13 @@ legacylinks:
|
||||
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.onion.ws/
|
||||
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.onion.pet/
|
||||
- https://demonoid.unblockit.page/
|
||||
- https://demonoid.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# fetch these from https://www.demonoid.is/cached/torrent_categories_script.js?v5
|
||||
# Everything
|
||||
- {id: 0, cat: Other/Misc, desc: "Miscellaneous"}
|
||||
# Applications
|
||||
- {id: 1, cat: PC/Mobile-Android, desc: "Applications Android"}
|
||||
- {id: 2, cat: PC/Mobile-iOS, desc: "Applications phone / Ipod touch"}
|
||||
@@ -369,6 +371,8 @@ search:
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 0
|
||||
category|noappend:
|
||||
selector: span.table__column__subtext > a:nth-child(2)
|
||||
attribute: href
|
||||
optional: true
|
||||
|
||||
@@ -12,26 +12,18 @@ caps:
|
||||
categorymappings:
|
||||
- {id: 49, cat: Movies/SD, desc: "film / Cam"}
|
||||
- {id: 21, cat: Movies/SD, desc: "film / Cam [magyar]"}
|
||||
- {id: 6, cat: Movies/SD, desc: "film / DVDRip/XviD"}
|
||||
- {id: 5, cat: Movies/SD, desc: "film / DVDRip/XviD [magyar]"}
|
||||
- {id: 32, cat: Movies/SD, desc: "film / BDRip/XviD"}
|
||||
- {id: 33, cat: Movies/SD, desc: "film / BDRip/XviD [magyar]"}
|
||||
- {id: 50, cat: Movies/SD, desc: "film / BDRip/x264"}
|
||||
- {id: 51, cat: Movies/SD, desc: "film / BDRip/x264 [magyar]"}
|
||||
- {id: 4, cat: Movies/DVD, desc: "film / DVD-R"}
|
||||
- {id: 3, cat: Movies/DVD, desc: "film / DVD-R [magyar]"}
|
||||
- {id: 45, cat: Movies/DVD, desc: "film / DVD9"}
|
||||
- {id: 46, cat: Movies/DVD, desc: "film / DVD9 [magyar]"}
|
||||
- {id: 30, cat: Movies/HD, desc: "film / HD"}
|
||||
- {id: 31, cat: Movies/HD, desc: "film / HD [magyar]"}
|
||||
- {id: 48, cat: Movies/BluRay, desc: "film / Bluray"}
|
||||
- {id: 47, cat: Movies/BluRay, desc: "film / Bluray [magyar]"}
|
||||
- {id: 10, cat: TV/SD, desc: "Sorozat / XviD"}
|
||||
- {id: 11, cat: TV/SD, desc: "Sorozat / XviD [magyar]"}
|
||||
- {id: 43, cat: TV/SD, desc: "Sorozat / DVD-R"}
|
||||
- {id: 41, cat: TV/SD, desc: "Sorozat / DVD-R [magyar]"}
|
||||
- {id: 44, cat: TV/HD, desc: "Sorozat / HD"}
|
||||
- {id: 42, cat: TV/HD, desc: "Sorozat / HD [magyar]"}
|
||||
- {id: 102, cat: Movies/SD, desc: "film / SD"}
|
||||
- {id: 101, cat: Movies/SD, desc: "film / SD [magyar]"}
|
||||
- {id: 106, cat: Movies/DVD, desc: "film / DVD-R"}
|
||||
- {id: 105, cat: Movies/DVD, desc: "film / DVD-R [magyar]"}
|
||||
- {id: 104, cat: Movies/HD, desc: "film / HD"}
|
||||
- {id: 103, cat: Movies/HD, desc: "film / HD [magyar]"}
|
||||
- {id: 108, cat: TV/SD, desc: "Sorozat / SD"}
|
||||
- {id: 107, cat: TV/SD, desc: "Sorozat / SD [magyar]"}
|
||||
- {id: 110, cat: TV/SD, desc: "Sorozat / DVD-R"}
|
||||
- {id: 109, cat: TV/SD, desc: "Sorozat / DVD-R [magyar]"}
|
||||
- {id: 112, cat: TV/HD, desc: "Sorozat / HD"}
|
||||
- {id: 111, cat: TV/HD, desc: "Sorozat / HD [magyar]"}
|
||||
- {id: 8, cat: Audio/MP3, desc: "Zene / MP3"}
|
||||
- {id: 9, cat: Audio/MP3, desc: "Zene / MP3 [magyar]"}
|
||||
- {id: 38, cat: Audio/Lossless, desc: "Zene / Lossless"}
|
||||
@@ -45,9 +37,9 @@ caps:
|
||||
- {id: 16, cat: PC/ISO, desc: "Programok / PC"}
|
||||
- {id: 24, cat: PC/Mobile-Other, desc: "Programok / Mobil"}
|
||||
- {id: 53, cat: PC/0day, desc: "Programok / Egyéb"}
|
||||
- {id: 17, cat: XXX/XviD, desc: "Pornó / XviD"}
|
||||
- {id: 113, cat: XXX/XviD, desc: "Pornó / SD"}
|
||||
- {id: 34, cat: XXX/DVD, desc: "Pornó / DVD-R"}
|
||||
- {id: 35, cat: XXX, desc: "Pornó / HD"}
|
||||
- {id: 114, cat: XXX, desc: "Pornó / HD"}
|
||||
- {id: 36, cat: XXX, desc: "Pornó / Képek"}
|
||||
- {id: 20, cat: Books, desc: "E-Book / Magyar"}
|
||||
- {id: 52, cat: Books, desc: "E-Book / Egyéb"}
|
||||
|
||||
@@ -110,7 +110,7 @@ search:
|
||||
limit: 100
|
||||
order: "{{ .Config.type }}"
|
||||
page: search
|
||||
searchText: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
searchText: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }} {{ else }}{{ end }}{{ .Keywords }}"
|
||||
section: all
|
||||
sort: "{{ .Config.sort }}"
|
||||
stereoscopic: false
|
||||
|
||||
@@ -215,4 +215,7 @@ search:
|
||||
case:
|
||||
"img[src$=\"/torrent_multiple_upload.png\"]": 2
|
||||
"*": 1
|
||||
minimumseedtime:
|
||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
||||
text: 345600
|
||||
# TSUE 2.2
|
||||
|
||||
@@ -1,157 +0,0 @@
|
||||
---
|
||||
id: elitetorrent-biz
|
||||
name: EliteTorrent.biz
|
||||
description: "EliteTorrent.biz is a Public torrent site for TV, movies and documentaries"
|
||||
language: es-ES
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://www.elitetorrent.com/
|
||||
- https://elitetorrent.nocensor.lol/
|
||||
legacylinks:
|
||||
- https://www.elitetorrent.nu/
|
||||
- https://www.elitetorrent.tv/
|
||||
- https://www.elitetorrent.li/
|
||||
- https://www.elitetorrent.bz/
|
||||
- https://www.elitetorrent.nl/
|
||||
- https://wwvv.elitetorrent.nl/
|
||||
- https://wvvw.elitetorrent.nl/
|
||||
- https://vvww.elitetorrent.nl/
|
||||
- https://www.elitetorrent.to/
|
||||
- https://www.elitetorrent.se/
|
||||
- https://elitetorrent.si/
|
||||
- https://elitetorrent.nocensor.work/
|
||||
- https://elitetorrent.com/
|
||||
- https://elitetorrent.app/
|
||||
- https://elitetorrent.nocensor.biz/
|
||||
- https://elitetorrent.la/
|
||||
- https://www.elitetorrent.wtf/
|
||||
- https://www.elitetorrent.dev/
|
||||
- https://elitetorrent.nocensor.sbs/
|
||||
- https://elitetorrent.nocensor.world/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
series: TV
|
||||
peliculas: Movies
|
||||
other: Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?"]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
# site returns just 30 results, attempt to fetch up to 90
|
||||
paths:
|
||||
- path: /
|
||||
- path: /page/2/
|
||||
followredirect: true
|
||||
- path: /page/3/
|
||||
followredirect: true
|
||||
keywordsfilters:
|
||||
# most ES/ITA TV torrents are in XXxYY format, so we search without S/E prefixes and filter later
|
||||
- name: re_replace
|
||||
args: ["(?i)S0?(\\d{1,2})", " $1 "]
|
||||
- name: re_replace
|
||||
args: ["(?i)E(\\d{2,3})", " $1 "]
|
||||
inputs:
|
||||
s: "{{ .Keywords }}"
|
||||
$raw: "&x=0&y=0"
|
||||
|
||||
rows:
|
||||
selector: "#principal .miniboxs-ficha li:has(span:nth-of-type(2))"
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category_movie:
|
||||
selector: .meta a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "^.*/(peliculas)/.*$"
|
||||
category_tv:
|
||||
selector: .meta a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "^.*/(series)/.*$"
|
||||
category:
|
||||
text: "{{ if or .Result.category_movie .Result.category_tv }}{{ or .Result.category_movie .Result.category_tv }}{{ else }}other{{ end }}"
|
||||
_quality:
|
||||
selector: span:nth-of-type(2) > i
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["---", ""]
|
||||
_language:
|
||||
selector: span#idiomacio > i > img
|
||||
attribute: title
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Pelicula en ", ""]
|
||||
- name: replace
|
||||
args: ["Español Latino", "LATiN SPANiSH"]
|
||||
- name: replace
|
||||
args: ["Español Castellano", "SPANiSH"]
|
||||
- name: replace
|
||||
args: ["Ingles", "English"]
|
||||
- name: replace
|
||||
args: ["Subtitulado", " SPASUBS"]
|
||||
- name: replace
|
||||
args: ["VOSE", ""]
|
||||
title:
|
||||
selector: div.imagen > a
|
||||
attribute: title
|
||||
# normalize to SXXEYY format
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" – ", " "]
|
||||
- name: replace
|
||||
args: ["(", ""]
|
||||
- name: replace
|
||||
args: [")", ""]
|
||||
- name: re_replace
|
||||
args: ["(\\d{2})×(\\d{2})", "S$1E$2"]
|
||||
- name: re_replace
|
||||
args: ["(\\d{1})×(\\d{2})", "S0$1E$2"]
|
||||
- name: append
|
||||
args: " {{ .Result._quality }} {{ .Result._language }}"
|
||||
details:
|
||||
selector: .meta a
|
||||
attribute: href
|
||||
download:
|
||||
selector: .meta a
|
||||
attribute: href
|
||||
poster:
|
||||
selector: .imagen img
|
||||
attribute: data-src
|
||||
size_optional:
|
||||
selector: .voto1
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["desc.", "512 MB"]
|
||||
- name: replace
|
||||
args: ["s", ""]
|
||||
size:
|
||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}512 MB{{ end }}"
|
||||
date:
|
||||
text: now
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
@@ -7,11 +7,10 @@ type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://extratorrent.st/
|
||||
- https://extratorrent.unblockit.pet/
|
||||
- https://extratorrent.unblockit.ink/
|
||||
- https://extratorrent.nocensor.lol/
|
||||
legacylinks:
|
||||
- https://extratorrent.nocensor.work/
|
||||
- https://extratorrent.unblockit.kim/
|
||||
- https://extratorrent.unblockit.bz/
|
||||
- https://extratorrent.unblockit.tv/
|
||||
- https://extratorrent.unblockit.how/
|
||||
@@ -28,6 +27,7 @@ legacylinks:
|
||||
- https://extratorrent.unblockit.nz/
|
||||
- https://extratorrent.nocensor.world/
|
||||
- https://extratorrent.unblockit.page/
|
||||
- https://extratorrent.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -5,6 +5,8 @@ description: "ExtremeBits is a Private Torrent Tracker for EXTREME SPORTS"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 62ab0c90c702bd458a18d778c1fd5928b3721e13 # Expired 6 January 2023
|
||||
links:
|
||||
- https://extremebits.net/
|
||||
|
||||
|
||||
@@ -8,12 +8,14 @@ encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://ext.to/
|
||||
- https://site.extto.com/
|
||||
- https://ext.torrentbay.to/
|
||||
- https://search.extto.com/
|
||||
- https://extranet.torrentbay.to/
|
||||
legacylinks:
|
||||
- https://ext.unblockninja.com/
|
||||
- https://t.extto.com/
|
||||
- https://torrent.extto.com/
|
||||
- https://site.extto.com/
|
||||
- https://ext.torrentbay.to/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -13,14 +13,13 @@ links:
|
||||
- https://eztv.yt/
|
||||
- https://eztv1.xyz/
|
||||
- https://eztv.unblockninja.com/
|
||||
- https://eztv.unblockit.pet/
|
||||
- https://eztv.unblockit.ink/
|
||||
- https://eztv.nocensor.lol/
|
||||
legacylinks:
|
||||
- https://eztv.ag/ # redirects to .re
|
||||
- https://eztv.it/ # redirects to .re
|
||||
- https://eztv.ch/ # redirects to .re
|
||||
- https://eztv.io/
|
||||
- https://eztv.unblockit.kim/
|
||||
- https://eztv.unblockit.bz/
|
||||
- https://eztv.unblockit.tv/
|
||||
- https://eztv.unblockit.how/
|
||||
@@ -37,6 +36,7 @@ legacylinks:
|
||||
- https://eztv.unblockit.nz/
|
||||
- https://eztv.nocensor.world/
|
||||
- https://eztv.unblockit.page/
|
||||
- https://eztv.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
||||
@@ -50,6 +50,7 @@ caps:
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: multilang
|
||||
|
||||
@@ -10,14 +10,13 @@ links:
|
||||
- https://glodls.to/
|
||||
- https://gtdb.cc/
|
||||
- https://www.gtdb.to/
|
||||
- https://glotorrents.unblockit.pet/
|
||||
- https://glotorrents.unblockit.ink/
|
||||
- https://glotorrents.nocensor.lol/
|
||||
- https://glodls.unblockninja.com/
|
||||
legacylinks:
|
||||
- https://glodls.rocks/
|
||||
- https://gtdb.to/
|
||||
- https://glotorrents.nocensor.work/
|
||||
- https://glotorrents.unblockit.kim/
|
||||
- https://glotorrents.unblockit.bz/
|
||||
- https://glotorrents.unblockit.tv/
|
||||
- https://glotorrents.unblockit.how/
|
||||
@@ -34,6 +33,7 @@ legacylinks:
|
||||
- https://glotorrents.unblockit.nz/
|
||||
- https://glotorrents.nocensor.world/
|
||||
- https://glotorrents.unblockit.page/
|
||||
- https://glotorrents.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -61,10 +61,24 @@ 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 }}"
|
||||
name: "{{ .Keywords }}"
|
||||
$raw: "{{ 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 }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
|
||||
@@ -8,6 +8,7 @@ encoding: UTF-8
|
||||
links:
|
||||
- https://www.trackerpmr.com/
|
||||
- https://freetmd.com/
|
||||
- https://kinoradiomagia.tv/
|
||||
legacylinks:
|
||||
- https://hdgalaktik.com/
|
||||
|
||||
|
||||
@@ -61,11 +61,15 @@ login:
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: torrents.php
|
||||
path: /
|
||||
selector: a[href*="/logout.php?auth="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
- path: ajax.php
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
searchstr: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
order_by: "{{ .Config.sort }}"
|
||||
@@ -74,29 +78,21 @@ search:
|
||||
imdblt: 10
|
||||
# 1 freeleech, 2 neutral, 3 50%, 4 2x, 5 3x, 9 75%, 11 only perks, 0 normal
|
||||
freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
action: advanced
|
||||
searchsubmit: 1
|
||||
action: browse
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||||
|
||||
rows:
|
||||
selector: .torrent
|
||||
selector: response.results
|
||||
attribute: torrents
|
||||
multiple: true
|
||||
|
||||
fields:
|
||||
_id:
|
||||
selector: torrentId
|
||||
category:
|
||||
selector: .tooltip
|
||||
case:
|
||||
"div[class*=\"movies\"]": 1
|
||||
"div[class*=\"tv\"]": 2
|
||||
"div[class*=\"theater\"]": 3
|
||||
"div[class*=\"software\"]": 4
|
||||
"div[class*=\"games\"]": 5
|
||||
"div[class*=\"music\"]": 6
|
||||
"div[class*=\"books\"]": 7
|
||||
"div[class*=\"packs\"]": 8
|
||||
"div[class*=\"porno\"]": 9
|
||||
"div[class*=\"other\"]": 10
|
||||
selector: ..categoryID
|
||||
title_notenglish:
|
||||
selector: .torrent_info:not(:contains("a")):not(:contains("e")):not(:contains("i")):not(:contains("o")):not(:contains("u")):not(:contains("y"))
|
||||
selector: release:not(:contains("a")):not(:contains("e")):not(:contains("i")):not(:contains("o")):not(:contains("u")):not(:contains("y"))
|
||||
optional: true
|
||||
filters:
|
||||
# space out the book language at the end of the title
|
||||
@@ -106,7 +102,7 @@ search:
|
||||
- name: re_replace
|
||||
args: ["(עברית)$", " - עברית"] # Hebrew
|
||||
title_english:
|
||||
selector: .torrent_info
|
||||
selector: release
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
@@ -116,54 +112,59 @@ search:
|
||||
title:
|
||||
text: "{{ if .Result.title_notenglish }}{{ .Result.title_notenglish }}{{ else }}{{ .Result.title_english }}{{ end }}"
|
||||
details:
|
||||
selector: a[href*="torrentid"]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet"]
|
||||
attribute: href
|
||||
optional: true
|
||||
text: "{{ .Config.sitelink }}torrents.php?torrentid={{ .Result._id }}"
|
||||
download:
|
||||
selector: a[href^="torrents.php?action=download"]
|
||||
attribute: href
|
||||
text: "{{ .Config.sitelink }}torrents.php?action=download&id={{ .Result._id }}"
|
||||
poster:
|
||||
selector: a[data-cover^="/images/"]
|
||||
attribute: data-cover
|
||||
selector: ..cover
|
||||
imdbid:
|
||||
selector: ..catalogue
|
||||
files:
|
||||
selector: td:nth-child(4)
|
||||
selector: fileCount
|
||||
date:
|
||||
selector: td:nth-child(5) span
|
||||
attribute: title
|
||||
selector: time
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00" # IST
|
||||
- name: dateparse
|
||||
args: "02/01/2006, 15:04 -07:00"
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
selector: size
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
selector: snatches
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
selector: leechers
|
||||
description:
|
||||
selector: ..tags
|
||||
_half:
|
||||
selector: isHalfFreeleech
|
||||
_free:
|
||||
selector: isFreeleech
|
||||
_x2:
|
||||
selector: isUploadX2
|
||||
_x3:
|
||||
selector: isUploadX3
|
||||
_quarter:
|
||||
selector: isQuarterLeech
|
||||
_neutral:
|
||||
selector: isNeutralLeech
|
||||
_personal:
|
||||
selector: isPersonalFreeleech
|
||||
downloadvolumefactor_special:
|
||||
optional: true
|
||||
text: "{{ if eq .Result._half \"True\" }}0.5{{ else }}{{ end }}{{ if eq .Result._quarter \"True\" }}0.25{{ else }}{{ end }}{{ if eq .Result._neutral \"True\" }}0{{ else }}{{ end }}{{ if eq .Result._free \"True\" }}0{{ else }}{{ end }}{{ if eq .Result._personal \"True\" }}0{{ else }}{{ end }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"strong.tl_notice[title*=\"חצי פריליץ'\"]": 0.5 # 50%
|
||||
"strong.tl_notice[title*=\"75% פריליץ'!\"]": 0.25 # 75%
|
||||
"strong.tl_notice[title*=\"נטרלי\"]": 0 # neutral
|
||||
"strong.tl_notice[title*=\"פריליץ'\"]": 0 # freeleech
|
||||
"*": 1
|
||||
text: "{{ if .Result.downloadvolumefactor_special }}{{ .Result.downloadvolumefactor_special }}{{ else }}1{{ end }}"
|
||||
uploadvolumefactor_special:
|
||||
optional: true
|
||||
text: "{{ if eq .Result._x3 \"True\" }}3{{ else }}{{ end }}{{ if eq .Result._x2 \"True\" }}2{{ else }}{{ end }}{{ if eq .Result._neutral \"True\" }}0{{ else }}{{ end }}"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"strong.tl_notice[title*=\"העלאה משולשת\"]": 3 # 3x
|
||||
"strong.tl_notice[title*=\"העלאה כפולה\"]": 2 # 2x
|
||||
"strong.tl_notice[title*=\"נטרלי\"]": 0 # neutral
|
||||
"*": 1
|
||||
text: "{{ if .Result.uploadvolumefactor_special }}{{ .Result.uploadvolumefactor_special }}{{ else }}1{{ end }}"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
description:
|
||||
selector: div.tags
|
||||
# Gazelle
|
||||
# JSON Gazelle
|
||||
|
||||
@@ -14,46 +14,47 @@ caps:
|
||||
- {id: 1001000, cat: Audio/MP3, desc: "MP3"}
|
||||
- {id: 1002000, cat: Audio/Lossless, desc: "Lossless"}
|
||||
- {id: 1003000, cat: Audio/Audiobook, desc: "Audiobook"}
|
||||
- {id: 1004000, cat: Audio/Video, desc: "Video"}
|
||||
- {id: 1004000, cat: Audio/Video, desc: "Audio Video"}
|
||||
- {id: 1005000, cat: Audio/Other, desc: "Radio"}
|
||||
- {id: 1006000, cat: Audio/Other, desc: "Other"}
|
||||
- {id: 1006000, cat: Audio/Other, desc: "Audio Other"}
|
||||
- {id: 2000000, cat: TV, desc: "TV"}
|
||||
- {id: 2001000, cat: TV/HD, desc: "HD"}
|
||||
- {id: 2002000, cat: TV/SD, desc: "SD"}
|
||||
- {id: 2003000, cat: TV/UHD, desc: "UHD"}
|
||||
- {id: 2001000, cat: TV/HD, desc: "TV HD"}
|
||||
- {id: 2002000, cat: TV/SD, desc: "TV SD"}
|
||||
- {id: 2003000, cat: TV/UHD, desc: "TV UHD"}
|
||||
- {id: 2004000, cat: TV/Documentary, desc: "Documentary"}
|
||||
- {id: 2005000, cat: TV/Foreign, desc: "Foreign"}
|
||||
- {id: 2005000, cat: TV/Foreign, desc: "TV Foreign"}
|
||||
- {id: 2006000, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 2007000, cat: TV/Other, desc: "Cartoon"}
|
||||
- {id: 2008000, cat: TV/Other, desc: "Other"}
|
||||
- {id: 2008000, cat: TV/Other, desc: "TV Other"}
|
||||
- {id: 3000000, cat: Movies, desc: "Movies"}
|
||||
- {id: 3001000, cat: Movies/HD, desc: "HD"}
|
||||
- {id: 3002000, cat: Movies/SD, desc: "SD"}
|
||||
- {id: 3003000, cat: Movies/UHD, desc: "UHD"}
|
||||
- {id: 3004000, cat: Movies/DVD, desc: "DVD"}
|
||||
- {id: 3005000, cat: Movies/Foreign, desc: "Foreign"}
|
||||
- {id: 3006000, cat: Movies/Foreign, desc: "Bollywood"}
|
||||
- {id: 3007000, cat: Movies/3D, desc: "3D"}
|
||||
- {id: 3008000, cat: Movies/Other, desc: "Other"}
|
||||
- {id: 3001000, cat: Movies/HD, desc: "Movies HD"}
|
||||
- {id: 3002000, cat: Movies/SD, desc: "Movies SD"}
|
||||
- {id: 3003000, cat: Movies/UHD, desc: "Movies UHD"}
|
||||
- {id: 3004000, cat: Movies/DVD, desc: "Movies DVD"}
|
||||
- {id: 3005000, cat: Movies/Foreign, desc: "Movies Foreign"}
|
||||
- {id: 3006000, cat: Movies/Foreign, desc: "Movies Bollywood"}
|
||||
- {id: 3007000, cat: Movies/3D, desc: "Movies 3D"}
|
||||
- {id: 3008000, cat: Movies/Other, desc: "Movies Other"}
|
||||
- {id: 4000000, cat: PC, desc: "PC"}
|
||||
- {id: 4001000, cat: PC/Games, desc: "Games"}
|
||||
- {id: 4002000, cat: PC/0day, desc: "Software"}
|
||||
- {id: 4003000, cat: PC/Mac, desc: "Mac"}
|
||||
- {id: 4004000, cat: PC/ISO, desc: "Unix"}
|
||||
- {id: 5000000, cat: XXX, desc: "XXX"}
|
||||
- {id: 5001000, cat: XXX/x264, desc: "Video"}
|
||||
- {id: 5002000, cat: XXX/ImageSet, desc: "ImageSet"}
|
||||
- {id: 5003000, cat: XXX/Other, desc: "Games"}
|
||||
- {id: 5004000, cat: XXX/Other, desc: "Hentai"}
|
||||
- {id: 5005000, cat: XXX/Other, desc: "Other"}
|
||||
- {id: 5001000, cat: XXX/x264, desc: "XXX Video"}
|
||||
- {id: 5002000, cat: XXX/ImageSet, desc: "XXX ImageSet"}
|
||||
- {id: 5003000, cat: XXX/Other, desc: "XXX Games"}
|
||||
- {id: 5004000, cat: XXX/Other, desc: "XXX Hentai"}
|
||||
- {id: 5005000, cat: XXX/Other, desc: "XXX Other"}
|
||||
- {id: 6000000, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 6001000, cat: TV/Anime, desc: "Subbed"}
|
||||
- {id: 6002000, cat: TV/Anime, desc: "Dubbed"}
|
||||
- {id: 6003000, cat: TV/Anime, desc: "Dual audio"}
|
||||
- {id: 6004000, cat: TV/Anime, desc: "Raw"}
|
||||
- {id: 6001000, cat: TV/Anime, desc: "Anime Subbed"}
|
||||
- {id: 6002000, cat: TV/Anime, desc: "Anime Dubbed"}
|
||||
- {id: 6003000, cat: TV/Anime, desc: "Anime Dual audio"}
|
||||
- {id: 6004000, cat: TV/Anime, desc: "Anime Raw"}
|
||||
- {id: 6005000, cat: Audio/Video, desc: "Music Video"}
|
||||
- {id: 6006000, cat: Books/Other, desc: "Literature"}
|
||||
- {id: 6007000, cat: Audio/Other, desc: "Music"}
|
||||
- {id: 6008000, cat: TV/Anime, desc: "Anime non-english translated"}
|
||||
- {id: 7000000, cat: Console, desc: "Console"}
|
||||
- {id: 7001000, cat: Console/PS4, desc: "PS4"}
|
||||
- {id: 7002000, cat: Console/PS3, desc: "PS3"}
|
||||
@@ -73,15 +74,15 @@ caps:
|
||||
- {id: 8000000, cat: PC/Mobile-Other, desc: "Mobile"}
|
||||
- {id: 8001000, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 8002000, cat: PC/Mobile-iOS, desc: "IOS"}
|
||||
- {id: 8003000, cat: PC/Mobile-Other, desc: "Other"}
|
||||
- {id: 8003000, cat: PC/Mobile-Other, desc: "PC Other"}
|
||||
- {id: 9000000, cat: Books, desc: "Books"}
|
||||
- {id: 9001000, cat: Books/EBook, desc: "EBooks"}
|
||||
- {id: 9002000, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: 9003000, cat: Books/Mags, desc: "Magazines"}
|
||||
- {id: 9004000, cat: Books/Technical, desc: "Technical"}
|
||||
- {id: 9005000, cat: Books/Other, desc: "Other"}
|
||||
- {id: 9005000, cat: Books/Other, desc: "Books Other"}
|
||||
- {id: 10000000, cat: Other, desc: "Other"}
|
||||
- {id: 10001000, cat: Other/Misc, desc: "Misc"}
|
||||
- {id: 10001000, cat: Other/Misc, desc: "Other Misc"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -9,7 +9,7 @@ followredirect: true
|
||||
# changes to this indexer should also be made to limetorrentsclone
|
||||
links:
|
||||
- https://www.limetorrents.lol/
|
||||
- https://limetorrents.unblockit.pet/
|
||||
- https://limetorrents.unblockit.ink/
|
||||
- https://limetorrents.unblockninja.com/
|
||||
- https://limetorrents.nocensor.lol/
|
||||
legacylinks:
|
||||
@@ -34,6 +34,7 @@ legacylinks:
|
||||
- https://limetorrents.unblockit.nz/
|
||||
- https://limetorrents.nocensor.world/
|
||||
- https://limetorrents.unblockit.page/
|
||||
- https://limetorrents.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -78,7 +78,7 @@ search:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
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 }}"
|
||||
$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 }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
@@ -159,4 +159,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 6.3.0
|
||||
# json UNIT3D 6.5.0
|
||||
|
||||
@@ -11,6 +11,7 @@ links:
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 50, cat: Movies, desc: "BLiNK"}
|
||||
- {id: 54, cat: Audio/Audiobook, desc: "eBook AUDIO"}
|
||||
- {id: 20, cat: Books/EBook, desc: "eBook eBOOK"}
|
||||
- {id: 52, cat: Books/Other, desc: "eBook Education"}
|
||||
- {id: 53, cat: Books/Mags, desc: "eBook Magazine"}
|
||||
@@ -20,6 +21,7 @@ caps:
|
||||
- {id: 7, cat: PC/Games, desc: "GAMES PCRip"}
|
||||
- {id: 13, cat: Console/PS3, desc: "GAMES Playstation"}
|
||||
- {id: 124, cat: Console/PS4, desc: "GAMES PS4"}
|
||||
- {id: 14, cat: Console/PS4, desc: "GAMES PS5"}
|
||||
- {id: 16, cat: Console/PSP, desc: "GAMES PSP"}
|
||||
- {id: 65, cat: Console/Wii, desc: "GAMES Wii"}
|
||||
- {id: 15, cat: Console/XBox, desc: "GAMES Xbox"}
|
||||
@@ -47,6 +49,7 @@ caps:
|
||||
- {id: 1, cat: Movies/DVD, desc: "MOVIES DVDRip XviD"}
|
||||
- {id: 48, cat: Movies/DVD, desc: "MOVIES HD2DVD"}
|
||||
- {id: 123, cat: Movies/HD, desc: "MOVIES HDRip"}
|
||||
- {id: 130, cat: Movies/Other, desc: "MOVIES PACK"}
|
||||
- {id: 74, cat: Movies/WEB-DL, desc: "MOVIES Web-DL"}
|
||||
- {id: 120, cat: Movies/HD, desc: "MOVIES x265"}
|
||||
- {id: 55, cat: Audio/Video, desc: "MUSIC BD"}
|
||||
@@ -63,6 +66,7 @@ caps:
|
||||
- {id: 80, cat: PC/0day, desc: "PROGRAM PC Win"}
|
||||
- {id: 5, cat: TV/HD, desc: "TV HDTV"}
|
||||
- {id: 82, cat: TV/HD, desc: "TV HDTVRip"}
|
||||
- {id: 126, cat: TV/Other, desc: "TV PACK"}
|
||||
- {id: 2, cat: TV/SD, desc: "TV TVRip"}
|
||||
- {id: 125, cat: TV/WEB-DL, desc: "TV Web-DL"}
|
||||
- {id: 85, cat: Movies/HD, desc: "UpLINK HEVC"}
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
---
|
||||
id: mononokebt
|
||||
name: Mononoké-BT
|
||||
description: "Mononoke-BT is a FRENCH Private Torrent Tracker for ANIME"
|
||||
language: fr-FR
|
||||
type: private
|
||||
encoding: iso-8859-15
|
||||
links:
|
||||
- http://mononoke-bt.org/
|
||||
legacylinks:
|
||||
- https://mononoke-bt.org/ # downloads do not supported https
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: TV/Anime
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- 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>"
|
||||
- name: vostfr
|
||||
type: checkbox
|
||||
label: Add VOSTFR to titles
|
||||
default: false
|
||||
- name: IMPORTANT_FR
|
||||
type: info
|
||||
label: (FR) Informations Importantes
|
||||
default: Avant de pouvoir télécharger un torrent depuis Jackett, allez dans la <a href="https://mononoke-bt.org/faq.php" target="_blank">FAQ</a> et cliquer tous les 'Lu et Approuvé' de la page.
|
||||
- name: IMPORTANT_EN
|
||||
type: info
|
||||
label: (EN) Important infos
|
||||
default: Before you can even begin to download anything you need to go to the <a href="https://mononoke-bt.org/faq.php" target="_blank">FAQ</a> and click every 'Lu et Approuvé' present on the page.
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: browse2.php
|
||||
|
||||
download:
|
||||
before:
|
||||
path: gettorrent.php
|
||||
method: get
|
||||
inputs:
|
||||
id: "{{ .DownloadUri.Query.id }}"
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse2.php
|
||||
inputs:
|
||||
search: "%{{ re_replace .Query.Keywords \"[^a-zA-Z0-9]+\" \"%\" }}%"
|
||||
incldead: 1
|
||||
|
||||
rows:
|
||||
selector: table#torrentstable > tbody > tr:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 1
|
||||
title_normal:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_normal }} VOSTFR"
|
||||
title:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_normal }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="gettorrent.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="browse2.php?cat="] > img
|
||||
attribute: src
|
||||
files:
|
||||
selector: td:nth-child(6)
|
||||
date:
|
||||
selector: td:nth-child(9)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
size:
|
||||
selector: td:nth-child(10)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["o", "b"]
|
||||
grabs:
|
||||
selector: td:nth-child(12)
|
||||
seeders:
|
||||
selector: td:nth-child(13)
|
||||
leechers:
|
||||
selector: td:nth-child(14)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="/pic/icons/cadeau1.png"]: 0
|
||||
img[src="/pic/icons/cadeau2.png"]: 0
|
||||
img[src="/pic/icons/cadeau3.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine tbd
|
||||
@@ -36,6 +36,13 @@ settings:
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the OshenPT Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -62,11 +69,17 @@ settings:
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
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 }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: ""
|
||||
@@ -98,6 +111,12 @@ search:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
@@ -106,12 +125,6 @@ search:
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
@@ -119,11 +132,16 @@ search:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: div.imdb_100 > a
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > span[title]
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
@@ -133,7 +151,7 @@ search:
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td:nth-child(4):not(:has(span))
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
@@ -143,13 +161,13 @@ search:
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
@@ -167,4 +185,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, img
|
||||
# NexusPHP Standard v1.5 Beta 4
|
||||
# NexusPHP v1.8.0 2023-01-05
|
||||
|
||||
@@ -1,173 +0,0 @@
|
||||
---
|
||||
id: p2pelite
|
||||
name: P2PElite
|
||||
description: "P2PElite is a Private Torrent Tracker for EBOOKS / AUDIOBOOKS"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://p2pelite.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 19, cat: PC, desc: "Apps"}
|
||||
- {id: 11, cat: Audio/Audiobook, desc: "Audio Books"}
|
||||
- {id: 40, cat: Books/EBook, desc: "Best Sellers"}
|
||||
- {id: 17, cat: Books/EBook, desc: "Biographical"}
|
||||
- {id: 27, cat: Books/EBook, desc: "Business/Finance"}
|
||||
- {id: 8, cat: Books/EBook, desc: "Children"}
|
||||
- {id: 30, cat: Books/EBook, desc: "Classic"}
|
||||
- {id: 2, cat: Books/Comics, desc: "Comics/GraphicNovels/Manga"}
|
||||
- {id: 14, cat: Books/EBook, desc: "Computer"}
|
||||
- {id: 15, cat: Books/EBook, desc: "Cookbooks"}
|
||||
- {id: 22, cat: Books/EBook, desc: "Crime/Thriller/Mystery"}
|
||||
- {id: 10, cat: Books/EBook, desc: "DIY"}
|
||||
- {id: 6, cat: Books/EBook, desc: "Educational"}
|
||||
- {id: 12, cat: Books/Other, desc: "Educational Videos"}
|
||||
- {id: 20, cat: Books/EBook, desc: "Erotica/over 18"}
|
||||
- {id: 23, cat: Books/EBook, desc: "Fantasy"}
|
||||
- {id: 1, cat: Books/EBook, desc: "Fiction"}
|
||||
- {id: 18, cat: Books/EBook, desc: "Gardening"}
|
||||
- {id: 21, cat: Books/EBook, desc: "Health"}
|
||||
- {id: 33, cat: Books/EBook, desc: "Historical Fiction"}
|
||||
- {id: 16, cat: Books/EBook, desc: "History"}
|
||||
- {id: 4, cat: Books/EBook, desc: "Hobby/Pastimes"}
|
||||
- {id: 29, cat: Books/EBook, desc: "Horror"}
|
||||
- {id: 5, cat: Books/EBook, desc: "Language Learning"}
|
||||
- {id: 7, cat: Books/Mags, desc: "Magazines"}
|
||||
- {id: 13, cat: Books/Other, desc: "Misc"}
|
||||
- {id: 34, cat: Audio, desc: "Music"}
|
||||
- {id: 37, cat: Books/EBook, desc: "New Adult"}
|
||||
- {id: 28, cat: Books/EBook, desc: "Non-English"}
|
||||
- {id: 3, cat: Books/EBook, desc: "Non-Fiction/Reference"}
|
||||
- {id: 24, cat: Books/EBook, desc: "Paranormal Romance"}
|
||||
- {id: 39, cat: Books/EBook, desc: "Philosophy"}
|
||||
- {id: 25, cat: Books/EBook, desc: "Romance"}
|
||||
- {id: 26, cat: Books/EBook, desc: "SciFi"}
|
||||
- {id: 9, cat: Books/EBook, desc: "Teens"}
|
||||
- {id: 32, cat: Other, desc: "torrent not modded"}
|
||||
- {id: 35, cat: Books/EBook, desc: "True Crime"}
|
||||
- {id: 38, cat: Books/EBook, desc: "Urban Fantasy"}
|
||||
- {id: 31, cat: Books/EBook, desc: "Western"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
returnto: /
|
||||
perm_ssl: 1
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
- selector: td.embedded:has(h2:contains("Error"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="./logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 new
|
||||
incldead: 1
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: "table[border=\"1\"][cellspacing=\"0\"][cellpadding=\"5\"] > tbody > tr:has(a[href^=\"download.php?torrent=\"]){{ if .Config.freeleech }}:has(a.info:contains(\"[FREE]\")){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "<b>(.+?)</b>"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=\\\\'(.+?)\\\\'"
|
||||
- name: replace
|
||||
args: ["./pic/noposter.png", ""]
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
date_day:
|
||||
selector: td:nth-last-child(6):contains("day")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
date_year:
|
||||
selector: td:nth-last-child(6):not(:contains("day"))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "Jan 2 2006 03:04 PM"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
a.info:contains("[FREE]"): 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.5
|
||||
# TBDEV
|
||||
@@ -1,9 +1,9 @@
|
||||
---
|
||||
id: pier720
|
||||
name: 720pier
|
||||
description: "720pier is a RUSSIAN Semi-Private Torrent Tracker for HD SPORTS"
|
||||
description: "720pier is a RUSSIAN Private Torrent Tracker for HD SPORTS"
|
||||
language: ru-RU
|
||||
type: semi-private
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://720pier.ru/
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
---
|
||||
id: pornotor
|
||||
name: Pornotor
|
||||
description: "Pornotor is a RUSSIAN Public Torrent Tracker for 3X"
|
||||
language: ru-RU
|
||||
type: public
|
||||
encoding: windows-1251
|
||||
links:
|
||||
- http://pornotor.org/ # site does not support https ERR_CONNECTION_REFUSED
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: XXX, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
search: "{{ .Keywords }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.embedded > tbody > tr:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: XXX
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
_id:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: id
|
||||
download:
|
||||
text: "download.php?id={{ .Result._id }}&name=t{{ .Result._id }}.torrent"
|
||||
date:
|
||||
selector: font.mnav
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Добавлен: ", ""]
|
||||
- name: append
|
||||
args: " +03:00" # MSK
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: split
|
||||
args: ["/", 0]
|
||||
leechers:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: split
|
||||
args: ["/", 1]
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# TBDev
|
||||
@@ -74,7 +74,7 @@ search:
|
||||
- path: "{{ if .Query.IMDBID }}search/0/0/010/{{ .Config.sort }}/{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Keywords }}search/0/0/100/{{ .Config.sort }}/{{ .Keywords }}/{{ else }}{{ end }}{{ if or .Keywords .Query.IMDBID }}{{ else }}top/{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: tr:has(td:has(a.downgif))
|
||||
selector: tr:has(td:has(a[href^="magnet:?xt="]))
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -102,11 +102,7 @@ search:
|
||||
details:
|
||||
selector: td:nth-of-type(2) a[href^="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: td:nth-of-type(2) a.downgif
|
||||
attribute: href
|
||||
magnet:
|
||||
optional: true
|
||||
selector: td:nth-of-type(2) a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
date:
|
||||
|
||||
@@ -1,154 +0,0 @@
|
||||
---
|
||||
id: scenepalace
|
||||
name: ScenePalace
|
||||
description: "ScenePalace (SP) is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://scenepalace.info/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 14, cat: PC/0day, desc: "Apps"}
|
||||
- {id: 12, cat: Books/EBook, desc: "E-BOOKS"}
|
||||
- {id: 7, cat: Console, desc: "Games/Console"}
|
||||
- {id: 9, cat: Console/Other, desc: "Games/Handheld"}
|
||||
- {id: 10, cat: PC/Mac, desc: "Games/Mac"}
|
||||
- {id: 8, cat: PC/Games, desc: "Games/PC"}
|
||||
- {id: 1, cat: Other/Misc, desc: "Misc"}
|
||||
- {id: 2, cat: Movies, desc: "Movies"}
|
||||
- {id: 16, cat: Movies/Foreign, desc: "Movies/Foriegn Non English"}
|
||||
- {id: 18, cat: Movies, desc: "Movies/Pre - 2000"}
|
||||
- {id: 4, cat: Audio, desc: "Music"}
|
||||
- {id: 11, cat: TV, desc: "Packs"}
|
||||
- {id: 17, cat: Movies, desc: "Rare"}
|
||||
- {id: 15, cat: Other, desc: "Torrents needing modded"}
|
||||
- {id: 5, cat: TV, desc: "TV"}
|
||||
- {id: 6, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
submitpath: takelogin.php
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
- selector: td.embedded:has(h2:contains("Error"))
|
||||
test:
|
||||
path: browse.php
|
||||
selector: a[href^="./logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
incldead: 1
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: "table[border=1][cellpadding=5] > tbody > tr:has(a[href^=\"download.php?torrent=\"]){{ if .Config.freeleech }}:has(img[src$=\"/free.jpg\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=\\\\'(.+?)\\\\'"
|
||||
- name: replace
|
||||
args: ["./pic/noposter.png", ""]
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
date_day:
|
||||
selector: td:nth-last-child(6):contains("day")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
date_year:
|
||||
selector: td:nth-last-child(6):not(:contains("day"))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "Jan 2 2006 03:04 PM"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src$=\"/free.jpg\"]": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# TBDEV,U232,and Btdev (customised)
|
||||
@@ -7,12 +7,13 @@ type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://use.selezen.club/
|
||||
- https://www.selezen.net/
|
||||
- https://www.selezen.club/
|
||||
- https://selezen.org/
|
||||
legacylinks:
|
||||
- https://www.selezen.site/
|
||||
- https://mel.selezen.net/
|
||||
- https://s1.selezen.site/
|
||||
- https://www.selezen.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -119,7 +120,7 @@ search:
|
||||
resorder: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: div.card:has(h4)
|
||||
selector: div.card:has(h4):not(:has(a[href*="/news/"]))
|
||||
|
||||
fields:
|
||||
category:
|
||||
|
||||
@@ -54,6 +54,7 @@ caps:
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
|
||||
@@ -11,44 +11,44 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Other, desc: "@ King", default: true}
|
||||
- {id: 75, cat: PC/0day, desc: "OS Windows / Office", default: true}
|
||||
- {id: 10, cat: TV, desc: "Cartoons / Animation", default: true}
|
||||
- {id: 9, cat: TV/Sport, desc: "Sports / Football", default: true}
|
||||
- {id: 110, cat: PC/Games, desc: "Mobile games", default: true}
|
||||
- {id: 7, cat: PC/Games, desc: "Games", default: true}
|
||||
- {id: 40, cat: Audio/Video, desc: "clips", default: true}
|
||||
- {id: 16, cat: Audio/Video, desc: "Concert", default: true}
|
||||
- {id: 3, cat: Audio/Other, desc: "Karaoke / MV", default: true}
|
||||
- {id: 70, cat: PC, desc: "software AntiVirus / Antispyware", default: true}
|
||||
- {id: 100, cat: PC/Mobile-Other, desc: "software Mobile / Theme / Ringtone / mv", default: true}
|
||||
- {id: 85, cat: PC/Mac, desc: "Mac software", default: true}
|
||||
- {id: 105, cat: PC, desc: "Linux software", default: true}
|
||||
- {id: 8, cat: PC, desc: "software", default: true}
|
||||
- {id: 56, cat: Other, desc: "Dictionary / map", default: true}
|
||||
- {id: 19, cat: TV, desc: "Talk show / comedy / radio", default: true}
|
||||
- {id: 20, cat: TV, desc: "general", default: true}
|
||||
- {id: 55, cat: PC/Mobile-iOS, desc: "Tablet / iPhone", default: true}
|
||||
- {id: 21, cat: TV, desc: "Dharma", default: true}
|
||||
- {id: 2, cat: Audio/MP3, desc: "Music", default: true}
|
||||
- {id: 130, cat: Audio/Audiobook, desc: "High quality music (Lossless)", default: true}
|
||||
- {id: 60, cat: Other, desc: "fonts / icons / clip art / templates", default: true}
|
||||
- {id: 90, cat: Movies/UHD, desc: "4K UHD movies", default: true}
|
||||
- {id: 91, cat: Movies/DVD, desc: "DVD movies", default: true}
|
||||
- {id: 92, cat: Movies/HD, desc: "Hi-Def movies", default: true}
|
||||
- {id: 89, cat: Movies/SD, desc: "VCD movies", default: true}
|
||||
- {id: 93, cat: TV, desc: "Mother and child @ / Learning materials for children", default: true}
|
||||
- {id: 4, cat: TV, desc: "TV shows / Variety / Game shows", default: true}
|
||||
- {id: 50, cat: Other, desc: "Images", default: true}
|
||||
- {id: 18, cat: Other, desc: "website", default: true}
|
||||
- {id: 17, cat: TV/Documentary, desc: "Documentary", default: true}
|
||||
- {id: 11, cat: Books/Technical, desc: "Learning materials / Books / Ebook", default: true}
|
||||
- {id: 5, cat: Movies, desc: "Movies / series [Korea]", default: true}
|
||||
- {id: 54, cat: Movies, desc: "Movies / Series [China]", default: true}
|
||||
- {id: 51, cat: Movies, desc: "Movie series / series [Japan]", default: true}
|
||||
- {id: 52, cat: Movies, desc: "Movies / Series [Western]", default: true}
|
||||
- {id: 57, cat: Movies, desc: "Movies / series [other]", default: true}
|
||||
- {id: 53, cat: Movies, desc: "Movie series / series / drama [Thai]", default: true}
|
||||
- {id: 1, cat: Other, desc: "@พระมหากษัตริย์ (@King)", default: true}
|
||||
- {id: 75, cat: PC/0day, desc: "OS วินโดว์/ออฟฟิศ (OS Windows/Office)", default: true}
|
||||
- {id: 10, cat: TV/Anime, desc: "การ์ตูน/อนิเมชั่น (Cartoons/Animation)", default: true}
|
||||
- {id: 9, cat: TV/Sport, desc: "กีฬา/ฟุตบอล (Sports/Football)", default: true}
|
||||
- {id: 110, cat: PC/Games, desc: "เกมส์มือถือ (Mobile Games)", default: true}
|
||||
- {id: 7, cat: PC/Games, desc: "เกมส์ (Games)", default: true}
|
||||
- {id: 40, cat: Audio/Video, desc: "คลิป (Clips)", default: true}
|
||||
- {id: 16, cat: Audio/Video, desc: "คอนเสิร์ต (Concert)", default: true}
|
||||
- {id: 3, cat: Audio/Other, desc: "คาราโอเกะ/MV (Karaoke/MV)", default: true}
|
||||
- {id: 70, cat: PC, desc: "ซอฟต์แวร์ AntiVirus/Antispyware (Software AntiVirus/Antispyware)", default: true}
|
||||
- {id: 100, cat: PC/Mobile-Other, desc: "ซอฟต์แวร์ มือถือ/ธีม/ริงโทน/mv (Software Mobile/Theme/Ringtone/MV)", default: true}
|
||||
- {id: 85, cat: PC/Mac, desc: "ซอฟต์แวร์ แม็ค (Mac Software)", default: true}
|
||||
- {id: 105, cat: PC, desc: "ซอฟต์แวร์ ลินุกซ์ (Linux Software)", default: true}
|
||||
- {id: 8, cat: PC, desc: "ซอฟต์แวร์ (Software)", default: true}
|
||||
- {id: 56, cat: Other, desc: "ดิกชันเนอรี่/แผนที่ (Dictionary/Map)", default: true}
|
||||
- {id: 19, cat: TV, desc: "ทอล์คโชว์/ตลก/วิทยุ (Talk Show/Comedy/Radio)", default: true}
|
||||
- {id: 20, cat: TV, desc: "ทั่วไป (General)", default: true}
|
||||
- {id: 55, cat: PC/Mobile-iOS, desc: "แท็ปเล็ต/iPhone (Tablet/iPhone)", default: true}
|
||||
- {id: 21, cat: TV, desc: "ธรรมะ (Dharma)", default: true}
|
||||
- {id: 2, cat: Audio/MP3, desc: "เพลง (Music)", default: true}
|
||||
- {id: 130, cat: Audio/Audiobook, desc: "เพลงคุณภาพสูง (Lossless) (High Quality Music (Lossless))", default: true}
|
||||
- {id: 60, cat: Other, desc: "ฟอนต์/ไอคอน/คลิปอาร์ท/เทมเพลท (Fonts/Icons/Clip Art/Templates)", default: true}
|
||||
- {id: 90, cat: Movies/UHD, desc: "ภาพยนตร์ 4K UHD (4K UHD Movies)", default: true}
|
||||
- {id: 91, cat: Movies/DVD, desc: "ภาพยนตร์ DVD (DVD Movies)", default: true}
|
||||
- {id: 92, cat: Movies/HD, desc: "ภาพยนตร์ Hi-Def (Hi-Def Movies)", default: true}
|
||||
- {id: 89, cat: Movies/SD, desc: "ภาพยนตร์ VCD (VCD Movies)", default: true}
|
||||
- {id: 93, cat: TV, desc: "แม่และเด็ก@/สื่อเรียนรู้สำหรับเด็ก (Mother and Child@/Learning Materials for Children)", default: true}
|
||||
- {id: 4, cat: TV, desc: "รายการทีวี/วาไรตี้/เกมโชว์ (TV Shows/Variety/Game Shows)", default: true}
|
||||
- {id: 50, cat: Other, desc: "รูปภาพ (Images)", default: true}
|
||||
- {id: 18, cat: Other, desc: "เว็บไซต์ (Website)", default: true}
|
||||
- {id: 17, cat: TV/Documentary, desc: "สารคดี (Documentary)", default: true}
|
||||
- {id: 11, cat: Books/Technical, desc: "สื่อเรียนรู้/หนังสือ/Ebook (Learning Materials/Books/Ebook)", default: true}
|
||||
- {id: 5, cat: TV, desc: "หนังชุด/ซีรีส์ [เกาหลี] (Movies/Series [Korea])", default: true}
|
||||
- {id: 54, cat: TV, desc: "หนังชุด/ซีรีส์ [จีน] (Movies/Series [China])", default: true}
|
||||
- {id: 51, cat: TV, desc: "หนังชุด/ซีรีส์ [ญี่ปุ่น] (Movies/Series [Japan])", default: true}
|
||||
- {id: 52, cat: TV, desc: "หนังชุด/ซีรีส์ [ฝรั่ง] (Movies/Series [Western])", default: true}
|
||||
- {id: 57, cat: TV, desc: "หนังชุด/ซีรีส์ [อื่นๆ] (Movies/Series [other])", default: true}
|
||||
- {id: 53, cat: TV, desc: "หนังชุด/ซีรีส์/ละคร [ไทย] (Movie Series/Series/Drama [Thai])", default: true}
|
||||
- {id: 901, cat: XXX, desc: "XXX-Anime", default: false}
|
||||
- {id: 902, cat: XXX, desc: "XXX-Game", default: false}
|
||||
- {id: 903, cat: XXX, desc: "XXX-Japan censored", default: false}
|
||||
|
||||
@@ -68,7 +68,7 @@ search:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
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 }}"
|
||||
$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 }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
@@ -151,9 +151,7 @@ search:
|
||||
case:
|
||||
0: 1 # normal
|
||||
1: 2 # double
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 6.4.1
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 6.5.0
|
||||
|
||||
@@ -6,9 +6,10 @@ language: ru-RU
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://sosulki.com/
|
||||
- https://sosulki.com/
|
||||
legacylinks:
|
||||
- http://sosulki.net/
|
||||
- http://sosulki.com/ # site forces https
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 12, cat: XXX, desc: "Порно категории"}
|
||||
|
||||
@@ -94,6 +94,7 @@ caps:
|
||||
- {id: 61, cat: TV/Sport, desc: "Rollan Garros"}
|
||||
- {id: 105, cat: TV/Sport, desc: "RPFL"}
|
||||
- {id: 29, cat: TV/Sport, desc: "Rugby"}
|
||||
- {id: 108, cat: TV/Sport, desc: "Saudi Pro League"}
|
||||
- {id: 82, cat: TV/Sport, desc: "Scotland Premiership"}
|
||||
- {id: 9, cat: TV/Sport, desc: "Serie A"}
|
||||
- {id: 33, cat: TV/Sport, desc: "SHL"}
|
||||
|
||||
@@ -7,6 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://sukebei.nyaa.si/
|
||||
legacylinks:
|
||||
- https://sukebei.nyaa.lol/
|
||||
|
||||
settings:
|
||||
|
||||
@@ -1,119 +0,0 @@
|
||||
---
|
||||
id: swarmazon
|
||||
name: Swarmazon
|
||||
description: "Swarmazon is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://swarmazon.club/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "Television"}
|
||||
- {id: 3, cat: Other, desc: "Video Courses"}
|
||||
- {id: 4, cat: Audio, desc: "Music"}
|
||||
- {id: 5, cat: PC/Games, desc: "Games"}
|
||||
- {id: 6, cat: PC, desc: "Software"}
|
||||
- {id: 7, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 8, cat: Books/EBook, desc: "E-Books"}
|
||||
- {id: 9, cat: Audio/Audiobook, desc: "Audio Books"}
|
||||
- {id: 10, cat: Books/Comics, desc: "Comics"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
login:
|
||||
path: en/account/login.php
|
||||
method: form
|
||||
form: form
|
||||
# captcha:
|
||||
# type: image
|
||||
# selector: img[alt="CAPTCHA"]
|
||||
# input: captcha_challenge
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
remember: 1
|
||||
error:
|
||||
# - selector: script:contains("The Captcha")
|
||||
# message:
|
||||
# text: The Captcha you entered was incorrect.
|
||||
- selector: script:contains("Wrong")
|
||||
message:
|
||||
text: Wrong username or password.
|
||||
- selector: script:contains("not found")
|
||||
message:
|
||||
text: User not found.
|
||||
test:
|
||||
path: forum/
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: "{{ if .Keywords }}en/search/search.php?category=all&query={{ .Keywords }}{{ else }}latest.php?date_range=14{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table.table-striped > tbody > tr
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields: # some users (rank specific?) have an extra column (td:nth-child(4)) with bookmark features
|
||||
categorydesc:
|
||||
selector: td.Name small
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(.+?)in\\s(.+?)", "$2"]
|
||||
- name: replace
|
||||
args: ["Freeleech", ""]
|
||||
- name: replace
|
||||
args: ["Seeding", ""]
|
||||
- name: replace
|
||||
args: ["Downloaded", ""]
|
||||
- name: replace
|
||||
args: ["Leeching", ""]
|
||||
- name: trim
|
||||
title:
|
||||
selector: a[href*="/view/torrent.php?hash="]
|
||||
details:
|
||||
selector: a[href*="/view/torrent.php?hash="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/api/download.php?hash="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.+?) "
|
||||
- name: replace
|
||||
args: ["/images/no_poster.jpg", ""]
|
||||
size:
|
||||
selector: td:nth-last-child(6)
|
||||
date:
|
||||
selector: td:nth-last-child(5)
|
||||
filters:
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"span.badge:contains(\"Freeleech\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.1
|
||||
# v1.22.0620
|
||||
@@ -1,127 +0,0 @@
|
||||
---
|
||||
id: theaudioscene
|
||||
name: TheAudioScene
|
||||
description: "TheAudioScene is a Private Torrent Tracker for AUDIO SOFTWARE / SAMPLES / ETC"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://theaudioscene.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: PC, desc: "Tutorial"}
|
||||
- {id: 2, cat: PC, desc: "Addon"}
|
||||
- {id: 3, cat: PC, desc: "Hybrid Update"}
|
||||
- {id: 4, cat: PC, desc: "Hybrid Win/Mac"}
|
||||
- {id: 5, cat: PC/Mac, desc: "Mac App"}
|
||||
- {id: 6, cat: PC/Mac, desc: "Mac Update"}
|
||||
- {id: 7, cat: PC/Mac, desc: "Mac VST"}
|
||||
- {id: 8, cat: PC/Mac, desc: "Mac VSTi"}
|
||||
- {id: 9, cat: Other, desc: "Unknown"}
|
||||
- {id: 10, cat: Audio, desc: "SampleCD"}
|
||||
- {id: 11, cat: PC/0day, desc: "Win App"}
|
||||
- {id: 12, cat: PC/0day, desc: "Win Update"}
|
||||
- {id: 13, cat: PC/0day, desc: "Win VST"}
|
||||
- {id: 14, cat: PC/0day, desc: "Win VSTi"}
|
||||
- {id: 15, cat: PC/Mobile-Other, desc: "Handheld App"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- 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>"
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 0
|
||||
options:
|
||||
0: created
|
||||
5: seeders
|
||||
2: size
|
||||
1: title
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: usersettings/usermessages.php?mailbox=new
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://theaudioscene.net/torrentsettings/torrentbrowse.php?SrcCat=0&SrcDat=0&SrcEnd=0&search=
|
||||
- path: torrentsettings/torrentbrowse.php
|
||||
inputs:
|
||||
# category: 0 all
|
||||
SrcCat: 0
|
||||
SrcDat: "{{ .Config.sort }}"
|
||||
# 0 new&old, 1 new only, 2 old only
|
||||
SrcEnd: 0
|
||||
search: "{{ .Keywords }}"
|
||||
|
||||
rows:
|
||||
selector: table.tablewidthfixed tbody tr table:has(tr[onMouseOver])
|
||||
dateheaders:
|
||||
selector: td:contains("Added On ")
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Added On ", ""]
|
||||
- name: re_replace
|
||||
args: ["(th|st|nd|rd)", ""]
|
||||
- name: append
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "Jan 02 2006 -07:00"
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: td[id$="_1"] a
|
||||
attribute: title
|
||||
details:
|
||||
selector: td[id$="_1"] a
|
||||
attribute: href
|
||||
download:
|
||||
selector: td[id$="_2"] a
|
||||
attribute: href
|
||||
category:
|
||||
selector: img[src^="/images/categories/"]
|
||||
case:
|
||||
img[title="Tutorial"]: 1
|
||||
img[title="Addon"]: 2
|
||||
img[title="Hybrid Update"]: 3
|
||||
img[title="Hybrid Win/Mac"]: 4
|
||||
img[title="Mac App"]: 5
|
||||
img[title="Mac Update"]: 6
|
||||
img[title="Mac VST"]: 7
|
||||
img[title="Mac VSTi"]: 8
|
||||
img[title="Unknown"]: 9
|
||||
img[title="SampleCD"]: 10
|
||||
img[title="Win App"]: 11
|
||||
img[title="Win Update"]: 12
|
||||
img[title="Win VST"]: 13
|
||||
img[title="Win VSTi"]: 14
|
||||
img[title="Handheld App"]: 15
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: td[id$="_6"]
|
||||
seeders:
|
||||
selector: td[id$="_10"]
|
||||
leechers:
|
||||
selector: td[id$="_11"]
|
||||
grabs:
|
||||
selector: td[id$="_12"]
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# engine n/a
|
||||
@@ -9,18 +9,11 @@ links:
|
||||
- https://thepiratebay.org/
|
||||
- https://piratebayo3klnzokct3wt5yyxb2vpebbuyjl7m623iaxmqhsd52coid.onion.ly/
|
||||
- https://piratebayo3klnzokct3wt5yyxb2vpebbuyjl7m623iaxmqhsd52coid.tor2web.to/
|
||||
- https://tpb24.ukpass.co/
|
||||
- https://thepiratebay.host/
|
||||
- https://thepiratebay.d4.re/
|
||||
- https://tpb25.ukpass.co/
|
||||
- https://tpb.skynetcloud.site/
|
||||
- https://piratetoday.xyz/
|
||||
- https://piratenow.xyz/
|
||||
- https://pirate-proxy.page/
|
||||
- https://pirate-proxy.ink/
|
||||
- https://mirrorbay.top/
|
||||
- https://5mins.shop/
|
||||
- https://tpb.surf/
|
||||
- https://tpb.monster/
|
||||
- https://tpb.wtf/
|
||||
- https://proxifiedpiratebay.org/
|
||||
- https://unlockedpiratebay.com/
|
||||
- https://tpb.one/
|
||||
@@ -36,6 +29,7 @@ links:
|
||||
- https://piratebay.live/
|
||||
- https://piratebay.party/
|
||||
- https://thepiratebay.party/
|
||||
- https://ukpiratebay.org/
|
||||
legacylinks:
|
||||
- https://tpb19.ukpass.co/
|
||||
- https://pirateproxy.tube/
|
||||
@@ -57,6 +51,15 @@ legacylinks:
|
||||
- https://ezrasstuff.com/
|
||||
- https://piratebayo3klnzokct3wt5yyxb2vpebbuyjl7m623iaxmqhsd52coid.onion.ws/
|
||||
- https://piratebayo3klnzokct3wt5yyxb2vpebbuyjl7m623iaxmqhsd52coid.onion.pet/
|
||||
- https://tpb24.ukpass.co/
|
||||
- https://thepiratebay.d4.re/
|
||||
- https://pirate-proxy.page/
|
||||
- https://5mins.shop/
|
||||
- https://tpb.surf/
|
||||
- https://tpb.monster/
|
||||
- https://thepiratebay.host/
|
||||
- https://piratetoday.xyz/
|
||||
- https://tpb.wtf/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -110,6 +110,20 @@ search:
|
||||
selector: "table.lista > tbody > tr:has(a[href^=\"index.php?page=torrent-details&id=\"]):has(td[width=\"30\"]){{ if .Config.freeleech }}:has(img[src=\"images/freeleech.gif\"]){{ else }}{{ end }}{{ if .Config.freeleech }}, table.lista > tbody > tr:has(a[href^=\"index.php?page=torrent-details&id=\"]):has(td[width=\"30\"]):has(img[src=\"images/gold.gif\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
title_torrent:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: f
|
||||
- name: replace
|
||||
args: ["&", "&"]
|
||||
- name: replace
|
||||
args: ["'", "'"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\.torrent$", ""]
|
||||
title_text:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
category:
|
||||
selector: a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
@@ -117,7 +131,7 @@ search:
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
text: "{{ if .Result.title_torrent }}{{ .Result.title_torrent }}{{ else }}{{ .Result.title_text }}{{ end }}"
|
||||
poster:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: onmouseover
|
||||
|
||||
@@ -80,7 +80,7 @@ search:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
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 }}"
|
||||
$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 }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
@@ -164,4 +164,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 60h (as seconds = 60 x 60 x 60)
|
||||
text: 216000
|
||||
# json UNIT3D 6.4.1
|
||||
# json UNIT3D 6.5.0
|
||||
|
||||
@@ -10,12 +10,11 @@ requestDelay: 2
|
||||
links:
|
||||
- https://www.torlock2.com/
|
||||
- https://www.torlock.com/
|
||||
- https://torlock.unblockit.pet/
|
||||
- https://torlock.unblockit.ink/
|
||||
- https://torlock.nocensor.lol/
|
||||
legacylinks:
|
||||
- https://torlock.com/
|
||||
- https://torlock.nocensor.work/
|
||||
- https://torlock.unblockit.kim/
|
||||
- https://torlock.unblockit.bz/
|
||||
- https://torlock.unblockit.tv/
|
||||
- https://torlock.unblockit.how/
|
||||
@@ -33,6 +32,7 @@ legacylinks:
|
||||
- https://torlock.unblockit.nz/
|
||||
- https://torlock.nocensor.world/
|
||||
- https://torlock.unblockit.page/
|
||||
- https://torlock.unblockit.pet/
|
||||
|
||||
caps:
|
||||
# dont forget to update the search fields category case block
|
||||
|
||||
@@ -21,6 +21,7 @@ caps:
|
||||
- {id: 182, cat: Movies/SD, desc: "Movie Pack SD"}
|
||||
- {id: 225, cat: Movies/HD, desc: "Movie Pack HD"}
|
||||
- {id: 186, cat: Movies/Foreign, desc: "Movie International"}
|
||||
- {id: 232, cat: Movies/Other, desc: "Movie Sonstiges"}
|
||||
# Serien
|
||||
- {id: 198, cat: TV/SD, desc: "Serien SD"}
|
||||
- {id: 199, cat: TV/HD, desc: "Serien HD"}
|
||||
@@ -55,7 +56,7 @@ caps:
|
||||
- {id: 190, cat: Audio, desc: "Musik Charts"}
|
||||
- {id: 191, cat: Audio/MP3, desc: "Musik Single"}
|
||||
- {id: 193, cat: Audio/Lossless, desc: "Musik Flac"}
|
||||
- {id: 196, cat: Audio, desc: "Musik Pack mp3"}
|
||||
- {id: 196, cat: Audio, desc: "Musik mp3"}
|
||||
- {id: 228, cat: Audio/Lossless, desc: "Musik Pack Flac"}
|
||||
- {id: 194, cat: Audio/Video, desc: "Musik Musikvideo"}
|
||||
# Sport
|
||||
|
||||
@@ -8,9 +8,8 @@ encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrent9.to/
|
||||
- https://www.torrent9.gg/
|
||||
- https://www.torrent9.fm/
|
||||
- https://torrent9.unblockninja.com/
|
||||
|
||||
legacylinks:
|
||||
- http://www.torrent9.ec/
|
||||
- http://www.torrent9.red/
|
||||
@@ -43,6 +42,7 @@ legacylinks:
|
||||
- https://www.torrent9.is/
|
||||
- https://torrent9.li/ # not a proxy for torrent9 or torrent9clone
|
||||
- https://www.oxtorrent.me/ # http 522 Connection timed out
|
||||
- https://www.torrent9.gg/
|
||||
|
||||
caps:
|
||||
# dont forget to update the search fields category case block
|
||||
@@ -62,6 +62,7 @@ caps:
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: multilang
|
||||
|
||||
@@ -57,6 +57,7 @@ caps:
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: multilang
|
||||
|
||||
@@ -50,6 +50,7 @@ caps:
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: flaresolverr
|
||||
|
||||
@@ -8,12 +8,11 @@ encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://www.torrentdownload.info/
|
||||
- https://torrentdownload.unblockit.pet/
|
||||
- https://torrentdownload.unblockit.ink/
|
||||
- https://torrentdownload.nocensor.lol/
|
||||
legacylinks:
|
||||
- https://torrentdownload.nocensor.space/
|
||||
- https://torrentdownload.nocensor.work/
|
||||
- https://torrentdownload.unblockit.kim/
|
||||
- https://torrentdownload.unblockit.bz/
|
||||
- https://torrentdownload.unblockit.tv/
|
||||
- https://torrentdownload.unblockit.how/
|
||||
@@ -30,6 +29,7 @@ legacylinks:
|
||||
- https://torrentdownload.unblockit.nz/
|
||||
- https://torrentdownload.nocensor.world/
|
||||
- https://torrentdownload.unblockit.page/
|
||||
- https://torrentdownload.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -9,14 +9,13 @@ followredirect: true
|
||||
links:
|
||||
- https://www.torrentdownloads.info/
|
||||
- https://www.torrentdownloads.pro/
|
||||
- https://torrentdownloads.unblockit.pet/
|
||||
- https://torrentdownloads.unblockit.ink/
|
||||
- https://torrentdownloads.nocensor.lol/
|
||||
- https://torrentdownloads.unblockninja.com/
|
||||
legacylinks:
|
||||
- https://www.torrentdownloads.me/
|
||||
- https://torrentdownloads.nocensor.space/
|
||||
- https://torrentdownloads.nocensor.work/
|
||||
- https://torrentdownloads.unblockit.kim/
|
||||
- https://torrentdownloads.unblockit.bz/
|
||||
- https://torrentdownloads.unblockit.tv/
|
||||
- https://torrentdownloads.unblockit.how/
|
||||
@@ -33,6 +32,7 @@ legacylinks:
|
||||
- https://torrentdownloads.unblockit.nz/
|
||||
- https://torrentdownloads.nocensor.world/
|
||||
- https://torrentdownloads.unblockit.page/
|
||||
- https://torrentdownloads.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -9,12 +9,11 @@ followredirect: true
|
||||
links:
|
||||
- https://www.torrentfunk.com/
|
||||
- https://www.torrentfunk2.com/
|
||||
- https://torrentfunk.unblockit.pet/
|
||||
- https://torrentfunk.unblockit.ink/
|
||||
- https://torrentfunk.nocensor.lol/
|
||||
legacylinks:
|
||||
- https://torrentfunk.nocensor.space/
|
||||
- https://torrentfunk.nocensor.work/
|
||||
- https://torrentfunk.unblockit.kim/
|
||||
- https://torrentfunk.unblockit.bz/
|
||||
- https://torrentfunk.unblockit.tv/
|
||||
- https://torrentfunk.unblockit.how/
|
||||
@@ -31,6 +30,7 @@ legacylinks:
|
||||
- https://torrentfunk.unblockit.nz/
|
||||
- https://torrentfunk.nocensor.world/
|
||||
- https://torrentfunk.unblockit.page/
|
||||
- https://torrentfunk.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -12,14 +12,13 @@ links:
|
||||
- https://torrentgalaxy.su/
|
||||
- https://tgx.rs/
|
||||
- https://torrentgalaxy.unblockninja.com/
|
||||
- https://torrentgalaxy.unblockit.pet/
|
||||
- https://torrentgalaxy.unblockit.ink/
|
||||
legacylinks:
|
||||
- https://torrentgalaxy.org/ # redirects to *.to
|
||||
- https://torrentgalaxy.pw/ # proxy list only
|
||||
- https://tgx.unblocked.monster/
|
||||
- https://torrentgalaxy.nocensor.space/
|
||||
- https://torrentgalaxy.nocensor.work/
|
||||
- https://torrentgalaxy.unblockit.kim/
|
||||
- https://torrentgalaxy.unblockit.bz/
|
||||
- https://torrentgalaxy.unblockit.tv/
|
||||
- https://torrentgalaxy.unblockit.how/
|
||||
@@ -36,6 +35,7 @@ legacylinks:
|
||||
- https://torrentgalaxy.unblockit.cat/
|
||||
- https://torrentgalaxy.unblockit.nz/
|
||||
- https://torrentgalaxy.unblockit.page/
|
||||
- https://torrentgalaxy.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -5,7 +5,7 @@ description: "not here _ not scene"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2.4 # #13796
|
||||
requestDelay: 4.1 # #13796
|
||||
links:
|
||||
- https://www.torrentleech.org/
|
||||
- https://www.torrentleech.cc/
|
||||
|
||||
@@ -7,15 +7,15 @@ type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://torrentproject2.com/
|
||||
- https://torrentproject2.net/
|
||||
- https://torrentproject2.org/
|
||||
- https://torrentproject.info/
|
||||
- https://torrentproject.biz/
|
||||
- https://torrentproject.xyz/
|
||||
- https://torrentproject.cc/
|
||||
legacylinks:
|
||||
- https://torrentproject2.se/
|
||||
- https://torrentproject.cc/
|
||||
- https://torrentproject2.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -7,10 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentqq236.com/
|
||||
- https://torrentqq238.com/
|
||||
legacylinks:
|
||||
- https://torrentqq221.com/
|
||||
- https://torrentqq222.com/
|
||||
- https://torrentqq223.com/
|
||||
- https://torrentqq224.com/
|
||||
- https://torrentqq225.com/
|
||||
@@ -24,6 +22,8 @@ legacylinks:
|
||||
- https://torrentqq233.com/
|
||||
- https://torrentqq234.com/
|
||||
- https://torrentqq235.com/
|
||||
- https://torrentqq236.com/
|
||||
- https://torrentqq237.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -164,9 +164,9 @@ search:
|
||||
selector: a.thumbnail > span > img
|
||||
attribute: src
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
selector: td:nth-child(10)
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
selector: td:nth-child(7)
|
||||
files:
|
||||
selector: a[href*="&filelist=1"]
|
||||
seeders:
|
||||
@@ -174,7 +174,7 @@ search:
|
||||
leechers:
|
||||
selector: td:has(a[href*="&todlers="])
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["\\s", " "]
|
||||
|
||||
@@ -7,10 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://torrentsir87.com/
|
||||
- https://torrentsir88.com/
|
||||
legacylinks:
|
||||
- http://torrentsir76.com/
|
||||
- https://torrentsir76.com/
|
||||
- http://torrentsir77.com/
|
||||
- https://torrentsir77.com/
|
||||
- http://torrentsir78.com/
|
||||
@@ -30,6 +28,8 @@ legacylinks:
|
||||
- http://torrentsir86.com/
|
||||
- https://torrentsir86.com/
|
||||
- http://torrentsir87.com/
|
||||
- https://torrentsir87.com/
|
||||
- http://torrentsir88.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -75,7 +75,7 @@ search:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(st|nd|rd|th|')", ""]
|
||||
args: ["(?i)(st|nd|rd|th|'|\\.)", ""]
|
||||
- name: dateparse
|
||||
args: "Jan. 02 06"
|
||||
downloadvolumefactor:
|
||||
|
||||
@@ -126,12 +126,11 @@ search:
|
||||
selector: img[src*="/torrents/images/"]
|
||||
attribute: src
|
||||
date:
|
||||
selector: td:nth-child(2)
|
||||
selector: td:nth-child(2) > div:last-child
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{1,2}(st|nd|rd|th) [A-Za-z]{3,} \\d{4} \\d{2}:\\d{2}:\\d{2})"
|
||||
- name: fuzzytime
|
||||
- name: dateparse
|
||||
args: "02-01-06 15:04"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
|
||||
@@ -80,6 +80,13 @@ settings:
|
||||
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>"
|
||||
- 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>"
|
||||
- name: info_profile
|
||||
type: info
|
||||
label: Layout
|
||||
@@ -113,6 +120,8 @@ login:
|
||||
selector: div#member_info_bar
|
||||
|
||||
search:
|
||||
headers:
|
||||
User-Agent: ["{{ .Config.useragent }}"]
|
||||
paths:
|
||||
- path: /
|
||||
inputs:
|
||||
|
||||
@@ -1,201 +0,0 @@
|
||||
---
|
||||
id: twilightszoom
|
||||
name: Twilights Zoom
|
||||
description: "Twilights Zoom is a Private Torrent Tracker for MUSIC"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://twilightzoom.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 35, cat: Audio, desc: "80's Music"}
|
||||
- {id: 14, cat: Audio, desc: "Alternative"}
|
||||
- {id: 53, cat: PC, desc: "Appz"}
|
||||
- {id: 70, cat: Audio, desc: "BlueGrass Music"}
|
||||
- {id: 48, cat: Audio, desc: "Blues "}
|
||||
- {id: 68, cat: Audio, desc: "Celtic"}
|
||||
- {id: 19, cat: Audio, desc: "Childrens Music"}
|
||||
- {id: 26, cat: Audio, desc: "Chill-Out"}
|
||||
- {id: 56, cat: Audio, desc: "Christian Rock"}
|
||||
- {id: 21, cat: Audio, desc: "Christmas Music"}
|
||||
- {id: 3, cat: Audio, desc: "Classical / Opera"}
|
||||
- {id: 20, cat: Audio, desc: "Comedy"}
|
||||
- {id: 18, cat: Audio, desc: "Country"}
|
||||
- {id: 4, cat: Audio, desc: "Dance"}
|
||||
- {id: 84, cat: Audio, desc: "Death Metal"}
|
||||
- {id: 62, cat: Audio, desc: "Discography"}
|
||||
- {id: 40, cat: Audio, desc: "DJ Tools"}
|
||||
- {id: 60, cat: Audio, desc: "DMC"}
|
||||
- {id: 51, cat: Audio, desc: "Drum &Bass"}
|
||||
- {id: 39, cat: Audio, desc: "Dubstep"}
|
||||
- {id: 5, cat: Audio, desc: "Easy Listening"}
|
||||
- {id: 6, cat: Audio, desc: "Electronic"}
|
||||
- {id: 82, cat: Audio/Lossless, desc: "FLAC"}
|
||||
- {id: 37, cat: Audio, desc: "Folk"}
|
||||
- {id: 44, cat: Audio, desc: "Garage Music"}
|
||||
- {id: 59, cat: Audio, desc: "Hardcore"}
|
||||
- {id: 7, cat: Audio, desc: "Hip Hop"}
|
||||
- {id: 74, cat: Audio, desc: "Horrorcore "}
|
||||
- {id: 27, cat: Audio, desc: "House"}
|
||||
- {id: 8, cat: Audio, desc: "Indie"}
|
||||
- {id: 73, cat: Audio, desc: "Industrial "}
|
||||
- {id: 9, cat: Audio, desc: "Inspirational / Gospel"}
|
||||
- {id: 61, cat: Audio, desc: "Instrumental"}
|
||||
- {id: 10, cat: Audio, desc: "Jazz Music "}
|
||||
- {id: 49, cat: Audio, desc: "Karaoke"}
|
||||
- {id: 11, cat: Audio, desc: "Latin"}
|
||||
- {id: 69, cat: Audio, desc: "Magazines"}
|
||||
- {id: 25, cat: Audio, desc: "Mastermix"}
|
||||
- {id: 65, cat: Audio, desc: "Member Mixes"}
|
||||
- {id: 30, cat: Audio, desc: "Metal"}
|
||||
- {id: 24, cat: Audio, desc: "Misc"}
|
||||
- {id: 58, cat: Audio, desc: "Mixes-Mashups"}
|
||||
- {id: 50, cat: Audio, desc: "Motown"}
|
||||
- {id: 75, cat: Audio, desc: "Music Charts"}
|
||||
- {id: 76, cat: Audio/Video, desc: "Music movies "}
|
||||
- {id: 57, cat: Audio, desc: "Music Packs"}
|
||||
- {id: 54, cat: Audio/Video, desc: "Music Videos"}
|
||||
- {id: 78, cat: Other, desc: "Need to mod"}
|
||||
- {id: 12, cat: Audio, desc: "New Age"}
|
||||
- {id: 43, cat: Audio, desc: "Oldies"}
|
||||
- {id: 13, cat: Audio, desc: "Pop (Popular Music)"}
|
||||
- {id: 36, cat: Audio, desc: "Punk"}
|
||||
- {id: 1, cat: Audio, desc: "R&B/Soul"}
|
||||
- {id: 42, cat: Audio, desc: "Radio"}
|
||||
- {id: 46, cat: Audio, desc: "Rap"}
|
||||
- {id: 15, cat: Audio, desc: "Reggae"}
|
||||
- {id: 45, cat: Audio, desc: "Regimental-Military"}
|
||||
- {id: 16, cat: Audio, desc: "Rock"}
|
||||
- {id: 72, cat: Audio, desc: "Rockabilly"}
|
||||
- {id: 66, cat: Audio, desc: "Seasonal"}
|
||||
- {id: 77, cat: Audio, desc: "Singles"}
|
||||
- {id: 83, cat: Audio, desc: "Soul"}
|
||||
- {id: 23, cat: Audio, desc: "Soundtracks"}
|
||||
- {id: 71, cat: Audio, desc: "Techno"}
|
||||
- {id: 22, cat: Other, desc: "Torrents not modded"}
|
||||
- {id: 41, cat: Audio, desc: "Trance"}
|
||||
- {id: 38, cat: Audio, desc: "World Music"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
music-search: [q, album, artist]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
returnto: /
|
||||
perm_ssl: 1
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
- selector: td.embedded:has(h2:contains("Error"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="./logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ if or (.Query.Artist) (.Query.Album) }}{{ or (.Query.Artist) (.Query.Album) }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 free
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table[style="width:928px;"] > tbody > tr:has(a[href^="download.php?torrent="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "<b>(.+?)</b>"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=\\\\'(.+?)\\\\'"
|
||||
- name: replace
|
||||
args: ["./pic/noposter.png", ""]
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
date_day:
|
||||
selector: td:nth-last-child(6):contains("day")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
date_year:
|
||||
selector: td:nth-last-child(6):not(:contains("day"))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "Jan 2 2006 03:04 PM"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src=\"free.gif\"]": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.5
|
||||
# TBDEV,U232,and Btdev (customised)
|
||||
@@ -14,7 +14,7 @@ caps:
|
||||
- {id: 93, cat: TV/Anime, desc: "การ์ตูน [Cartoon]"}
|
||||
- {id: 112, cat: TV/Sport, desc: "กีฬา [Sport]"}
|
||||
- {id: 101, cat: Other, desc: "ฟอนต์/ไอคอน/คลิปอาร์ท/เทมเพลท [Fonts, icons, clip art]"}
|
||||
- {id: 90, cat: Movies, desc: "ซีรีย์ (หนังชุด) [movie series]"}
|
||||
- {id: 90, cat: TV, desc: "ซีรีย์ (หนังชุด) [Series]"}
|
||||
- {id: 92, cat: Console, desc: "เกมส์ (non PC) [games]"}
|
||||
- {id: 91, cat: PC/Games, desc: "เกมส์ (PC) [games]"}
|
||||
- {id: 100, cat: PC/Mobile-Other, desc: "โปรแกรมที่ใช้บน (มือถือ) [mobiles]"}
|
||||
|
||||
@@ -5,6 +5,8 @@ description: "World-of-Tomorrow is a Private German tracker"
|
||||
language: de-DE
|
||||
type: private
|
||||
encoding: ISO-8859-1
|
||||
certificates:
|
||||
- 824f6e356ee0189eb9517a90c695b7ac8508495c # expired 26 December 2022
|
||||
links:
|
||||
- https://world-of-tomorrow.eu/
|
||||
|
||||
|
||||
176
src/Jackett.Common/Definitions/xtorrenty.yml
Normal file
176
src/Jackett.Common/Definitions/xtorrenty.yml
Normal file
@@ -0,0 +1,176 @@
|
||||
---
|
||||
id: xtorrenty
|
||||
name: xTorrenty
|
||||
description: "xTorrenty is a POLISH Semi-Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: pl-PL
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://xtorrenty.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 15, cat: Movies/SD, desc: "Filmy XviD/DivX"}
|
||||
- {id: 20, cat: Movies/Other, desc: "Filmy/Bajki"}
|
||||
- {id: 21, cat: Movies/DVD, desc: "Filmy DVD"}
|
||||
- {id: 22, cat: Movies/SD, desc: "Filmy RMVB"}
|
||||
- {id: 23, cat: Movies/HD, desc: "Filmy x264"}
|
||||
- {id: 24, cat: Movies/UHD, desc: "Filmy 4K UHD"}
|
||||
- {id: 25, cat: Movies/HD, desc: "Filmy HD"}
|
||||
- {id: 26, cat: Movies/3D, desc: "Filmy 3D"}
|
||||
- {id: 27, cat: Movies/HD, desc: "Filmy x265"}
|
||||
- {id: 28, cat: Movies/SD, desc: "Filmy TS/CAM"}
|
||||
- {id: 84, cat: PC/0day, desc: "Programy"}
|
||||
- {id: 85, cat: Console, desc: "Konsole"}
|
||||
- {id: 16, cat: PC/Games, desc: "Gry"}
|
||||
- {id: 86, cat: Audio, desc: "Muzyka"}
|
||||
- {id: 88, cat: Audio/Video, desc: "Teledyski"}
|
||||
- {id: 89, cat: TV, desc: "TV"}
|
||||
- {id: 90, cat: XXX, desc: "Erotyka"}
|
||||
- {id: 91, cat: Books/EBook, desc: "Książki"}
|
||||
- {id: 92, cat: Books/Comics, desc: "Komiksy"}
|
||||
- {id: 93, cat: PC/Mac, desc: "Linux/Mac"}
|
||||
- {id: 94, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 95, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 96, cat: Other, desc: "Dla dzieci"}
|
||||
- {id: 97, cat: PC/Mobile-Other, desc: "GSM/PDA"}
|
||||
- {id: 344, cat: Other/Misc, desc: "Inne"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: email
|
||||
type: text
|
||||
label: Email
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTI by another language in release name
|
||||
default: false
|
||||
- name: multilanguage
|
||||
type: select
|
||||
label: Replace MULTI by this language
|
||||
default: POLISH
|
||||
options:
|
||||
POLISH: POLISH
|
||||
MULTI.POLISH: MULTI.POLISH
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: date
|
||||
options:
|
||||
date: created
|
||||
title: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.html
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
login_name: "{{ .Config.email }}"
|
||||
login_password: "{{ .Config.password }}"
|
||||
login_not_save: ""
|
||||
login: submit
|
||||
test:
|
||||
path: /
|
||||
selector: a[href$="/index.php?action=logout"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="/engine/download.php?id="]
|
||||
attribute: href
|
||||
- selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
# do=search&subaction=search&story=greyhound&titleonly=3&sortby=date&resorder=desc&showposts=1&catlist[]=23
|
||||
paths:
|
||||
- path: index.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}catlist[]={{.}}&{{end}}"
|
||||
do: search
|
||||
subaction: search
|
||||
showposts: 0
|
||||
# 0 in article 1 in comments 2 in static pages 3 in article titles
|
||||
titleonly: "{{ if .Query.IMDBID }}0{{ else }}3{{ end }}"
|
||||
story: "{{ if or .Query.IMDBID .Keywords }}{{ or .Query.IMDBID .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
sortby: "{{ .Config.sort }}"
|
||||
resorder: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr:has(td[class="colhead"])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td
|
||||
case:
|
||||
"td:contains(\"XviD/DivX\")": 15
|
||||
"td:contains(\"Filmy/Bajki\")": 20
|
||||
"td:contains(\"DVD\")": 21
|
||||
"td:contains(\"RMVB\")": 22
|
||||
"td:contains(\"x264\")": 23
|
||||
"td:contains(\"4K UHD\")": 24
|
||||
"td:contains(\"HD\")": 25
|
||||
"td:contains(\"3D\")": 26
|
||||
"td:contains(\"x265\")": 27
|
||||
"td:contains(\"TS/CAM\")": 28
|
||||
"td:contains(\"Programy\")": 84
|
||||
"td:contains(\"Konsole\")": 85
|
||||
"td:contains(\"Gry\")": 16
|
||||
"td:contains(\"Muzyka\")": 86
|
||||
"td:contains(\"Teledyski\")": 88
|
||||
"td:contains(\"TV\")": 89
|
||||
"td:contains(\"Erotyka\")": 90
|
||||
"td:contains(\"Książki\")": 91
|
||||
"td:contains(\"Komiksy\")": 92
|
||||
"td:contains(\"Linux/Mac\")": 93
|
||||
"td:contains(\"Sport\")": 94
|
||||
"td:contains(\"Anime\")": 95
|
||||
"td:contains(\"Dla dzieci\")": 96
|
||||
"td:contains(\"GSM/PDA\")": 97
|
||||
"td:contains(\"Inne\")": 344
|
||||
title_phase1:
|
||||
selector: a
|
||||
title_multilang:
|
||||
selector: a
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\bmulti\\b)", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
details:
|
||||
selector: a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
seeders:
|
||||
selector: td:nth-child(4)
|
||||
leechers:
|
||||
selector: td:nth-child(5)
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
filters:
|
||||
- name: append
|
||||
args: "B"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
@@ -9,7 +9,7 @@ requestDelay: 2.5 # 2.5 requests per second (2 causes problems)
|
||||
links:
|
||||
# dont forget to update the details, download and poster replace args
|
||||
- https://yts.mx/
|
||||
- https://yts.unblockit.pet/
|
||||
- https://yts.unblockit.ink/
|
||||
- https://yts.unblockninja.com/
|
||||
- https://yts.nocensor.lol/
|
||||
legacylinks:
|
||||
@@ -17,7 +17,6 @@ legacylinks:
|
||||
- https://yts.am/
|
||||
- https://yts.lt/
|
||||
- https://yts.nocensor.work/
|
||||
- https://yts.unblockit.kim/
|
||||
- https://yts.unblockit.bz/
|
||||
- https://yts.unblockit.tv/
|
||||
- https://yts.unblockit.how/
|
||||
@@ -34,6 +33,7 @@ legacylinks:
|
||||
- https://yts.unblockit.nz/
|
||||
- https://yts.nocensor.world/
|
||||
- https://yts.unblockit.page/
|
||||
- https://yts.unblockit.pet/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -33,6 +33,7 @@ caps:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: info_8000
|
||||
|
||||
@@ -8,9 +8,7 @@ using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Html.Parser;
|
||||
using BencodeNET.Objects;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Models.IndexerConfig.Bespoke;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Threading.Tasks;
|
||||
using Jackett.Common.Indexers.Abstract;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
|
||||
@@ -267,8 +267,10 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
if (!string.IsNullOrEmpty(configData.UserAgent.Value))
|
||||
{
|
||||
headers = new Dictionary<string, string>();
|
||||
headers.Add("User-Agent", configData.UserAgent.Value);
|
||||
headers = new Dictionary<string, string>
|
||||
{
|
||||
{ "User-Agent", configData.UserAgent.Value }
|
||||
};
|
||||
}
|
||||
|
||||
foreach (var cat in MapTorznabCapsToTrackers(query))
|
||||
|
||||
@@ -5,7 +5,6 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Models.IndexerConfig.Bespoke;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
@@ -12,7 +11,6 @@ using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
using static Jackett.Common.Models.IndexerConfig.ConfigurationData;
|
||||
@@ -39,7 +37,7 @@ namespace Jackett.Common.Indexers
|
||||
private const string SearchUrl = "buscar/";
|
||||
|
||||
public override string[] AlternativeSiteLinks { get; protected set; } = {
|
||||
"https://dontorrent.army/",
|
||||
"https://dontorrent.beer/",
|
||||
"https://todotorrents.net/",
|
||||
"https://tomadivx.net/",
|
||||
"https://seriesblanco.one/",
|
||||
@@ -62,7 +60,9 @@ namespace Jackett.Common.Indexers
|
||||
"https://dontorrent.click/",
|
||||
"https://dontorrent.fail/",
|
||||
"https://dontorrent.futbol/",
|
||||
"https://dontorrent.mba/"
|
||||
"https://dontorrent.mba/",
|
||||
"https://dontorrent.army/",
|
||||
"https://dontorrent.blue/"
|
||||
};
|
||||
|
||||
private static Dictionary<string, string> CategoriesMap => new Dictionary<string, string>
|
||||
@@ -80,7 +80,7 @@ namespace Jackett.Common.Indexers
|
||||
: base(id: "dontorrent",
|
||||
name: "DonTorrent",
|
||||
description: "DonTorrent is a SPANISH public tracker for MOVIES / TV / GENERAL",
|
||||
link: "https://dontorrent.army/",
|
||||
link: "https://dontorrent.beer/",
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
|
||||
@@ -45,12 +45,11 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
public override string[] AlternativeSiteLinks { get; protected set; } = {
|
||||
"https://www.epublibre.org/",
|
||||
"https://epublibre.unblockit.pet/"
|
||||
"https://epublibre.unblockit.ink/"
|
||||
};
|
||||
|
||||
public override string[] LegacySiteLinks { get; protected set; } = {
|
||||
"https://epublibre.org/",
|
||||
"https://epublibre.unblockit.kim/",
|
||||
"https://epublibre.unblockit.bz/",
|
||||
"https://epublibre.unblockit.tv/",
|
||||
"https://epublibre.unblockit.how/",
|
||||
@@ -63,7 +62,8 @@ namespace Jackett.Common.Indexers
|
||||
"https://epublibre.unblockit.bet/",
|
||||
"https://epublibre.unblockit.cat/",
|
||||
"https://epublibre.unblockit.nz/",
|
||||
"https://epublibre.unblockit.page/"
|
||||
"https://epublibre.unblockit.page/",
|
||||
"https://epublibre.unblockit.pet/"
|
||||
};
|
||||
|
||||
public EpubLibre(IIndexerConfigurationService configService, WebClient wc, Logger l, IProtectionService ps,
|
||||
|
||||
@@ -2,19 +2,14 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Drawing;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FlareSolverrSharp.Types;
|
||||
using Jackett.Common.Indexers.Abstract;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig.Bespoke;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
using Jackett.Common.Utils.Clients;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
using static Jackett.Common.Models.IndexerConfig.ConfigurationData;
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Diagnostics.CodeAnalysis;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using Jackett.Common.Indexers.Abstract;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
|
||||
@@ -38,13 +38,10 @@ namespace Jackett.Common.Indexers
|
||||
{
|
||||
"https://hdts.ru/",
|
||||
"https://hd-torrents.org/",
|
||||
"https://hd-torrents.net/",
|
||||
"https://hd-torrents.me/"
|
||||
};
|
||||
|
||||
public override string[] LegacySiteLinks { get; protected set; } = {
|
||||
"https://hd-torrents.net/"
|
||||
};
|
||||
|
||||
private new ConfigurationDataBasicLogin configData => (ConfigurationDataBasicLogin)base.configData;
|
||||
|
||||
public HDTorrents(IIndexerConfigurationService configService, WebClient w, Logger l, IProtectionService ps,
|
||||
@@ -81,8 +78,8 @@ namespace Jackett.Common.Indexers
|
||||
Type = "private";
|
||||
|
||||
// Movie
|
||||
AddCategoryMapping("70", TorznabCatType.MoviesUHD, "Movie/UHD/Blu-Ray");
|
||||
AddCategoryMapping("1", TorznabCatType.MoviesHD, "Movie/Blu-Ray");
|
||||
AddCategoryMapping("70", TorznabCatType.MoviesBluRay, "Movie/UHD/Blu-Ray");
|
||||
AddCategoryMapping("1", TorznabCatType.MoviesBluRay, "Movie/Blu-Ray");
|
||||
AddCategoryMapping("71", TorznabCatType.MoviesUHD, "Movie/UHD/Remux");
|
||||
AddCategoryMapping("2", TorznabCatType.MoviesHD, "Movie/Remux");
|
||||
AddCategoryMapping("5", TorznabCatType.MoviesHD, "Movie/1080p/i");
|
||||
|
||||
@@ -248,8 +248,10 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
if (!string.IsNullOrEmpty(configData.UserAgent.Value))
|
||||
{
|
||||
headers = new Dictionary<string, string>();
|
||||
headers.Add("User-Agent", configData.UserAgent.Value);
|
||||
headers = new Dictionary<string, string>
|
||||
{
|
||||
{ "User-Agent", configData.UserAgent.Value }
|
||||
};
|
||||
}
|
||||
|
||||
if (query.IsImdbQuery)
|
||||
|
||||
@@ -127,9 +127,15 @@ namespace Jackett.Common.Indexers
|
||||
|
||||
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, LoginUrl);
|
||||
|
||||
await ConfigureIfOK(response.Cookies, response.ContentString.Contains("You have successfully logged in"), () =>
|
||||
await ConfigureIfOK(response.Cookies, response.ContentString.Contains("logout.php"), () =>
|
||||
{
|
||||
var parser = new HtmlParser();
|
||||
var document = parser.ParseDocument(response.ContentString);
|
||||
var messageEl = document.QuerySelector("#main table");
|
||||
var errorMessage = response.ContentString;
|
||||
if (messageEl != null)
|
||||
errorMessage = messageEl.TextContent.Trim();
|
||||
|
||||
throw new ExceptionWithConfigData(errorMessage, configData);
|
||||
});
|
||||
|
||||
|
||||
@@ -284,6 +284,9 @@ namespace Jackett.Common.Indexers
|
||||
release.DownloadVolumeFactor = item.Value<int>("free") == 1 ? 0 : 1;
|
||||
release.UploadVolumeFactor = 1;
|
||||
|
||||
// release.MinimumRatio = 1; // global MR is 1.0 but torrents must be seeded for 3 days regardless of ratio
|
||||
release.MinimumSeedTime = 259200; // 72 hours
|
||||
|
||||
releases.Add(release);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,186 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
|
||||
namespace Jackett.Common.Indexers
|
||||
{
|
||||
[ExcludeFromCodeCoverage]
|
||||
public class Nebulance : BaseWebIndexer
|
||||
{
|
||||
private string LoginUrl => SiteLink + "login.php";
|
||||
private string SearchUrl => SiteLink + "torrents.php";
|
||||
|
||||
private new ConfigurationDataBasicLoginWith2FA configData => (ConfigurationDataBasicLoginWith2FA)base.configData;
|
||||
|
||||
public Nebulance(IIndexerConfigurationService configService, Utils.Clients.WebClient c, Logger l,
|
||||
IProtectionService ps, ICacheService cs)
|
||||
: base(id: "nebulance",
|
||||
name: "Nebulance",
|
||||
description: "At Nebulance we will change the way you think about TV",
|
||||
link: "https://nebulance.io/",
|
||||
caps: new TorznabCapabilities
|
||||
{
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
|
||||
}
|
||||
},
|
||||
configService: configService,
|
||||
client: c,
|
||||
logger: l,
|
||||
p: ps,
|
||||
cacheService: cs,
|
||||
configData: new ConfigurationDataBasicLoginWith2FA(@"If 2FA is disabled, let the field empty.
|
||||
We recommend to disable 2FA because re-login will require manual actions.
|
||||
<br/>For best results, change the 'Torrents per page' setting to 100 in your profile on the NBL webpage."))
|
||||
{
|
||||
Encoding = Encoding.UTF8;
|
||||
Language = "en-US";
|
||||
Type = "private";
|
||||
|
||||
AddCategoryMapping(1, TorznabCatType.TV);
|
||||
AddCategoryMapping(2, TorznabCatType.TVSD);
|
||||
AddCategoryMapping(3, TorznabCatType.TVHD);
|
||||
}
|
||||
|
||||
public override async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
{
|
||||
LoadValuesFromJson(configJson);
|
||||
await DoLogin();
|
||||
return IndexerConfigurationStatus.RequiresTesting;
|
||||
}
|
||||
|
||||
private async Task DoLogin()
|
||||
{
|
||||
var pairs = new Dictionary<string, string> {
|
||||
{ "username", configData.Username.Value },
|
||||
{ "password", configData.Password.Value },
|
||||
{ "twofa", configData.TwoFactorAuth.Value },
|
||||
{ "keeplogged", "on" },
|
||||
{ "login", "Login" }
|
||||
};
|
||||
|
||||
CookieHeader = string.Empty;
|
||||
var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, CookieHeader, true, null, LoginUrl);
|
||||
|
||||
await ConfigureIfOK(response.Cookies, response.ContentString != null && response.ContentString.Contains("logout.php"), () =>
|
||||
{
|
||||
var parser = new HtmlParser();
|
||||
var document = parser.ParseDocument(response.ContentString);
|
||||
var messageEl = document.QuerySelector("form > span[class='warning']");
|
||||
var errorMessage = response.ContentString;
|
||||
if (messageEl != null)
|
||||
errorMessage = messageEl.TextContent.Trim();
|
||||
throw new ExceptionWithConfigData(errorMessage, configData);
|
||||
});
|
||||
}
|
||||
|
||||
protected override async Task<IEnumerable<ReleaseInfo>> PerformQuery(TorznabQuery query)
|
||||
{
|
||||
var releases = new List<ReleaseInfo>();
|
||||
|
||||
var searchTerm = query.GetQueryString();
|
||||
if (!string.IsNullOrWhiteSpace(searchTerm)) // remove some characters
|
||||
searchTerm = Regex.Replace(searchTerm, @"[-._]", " ");
|
||||
|
||||
var qc = new NameValueCollection
|
||||
{
|
||||
{"action", "basic"},
|
||||
{"order_by", "time"},
|
||||
{"order_way", "desc"},
|
||||
{"searchtext", searchTerm}
|
||||
};
|
||||
|
||||
var searchUrl = SearchUrl + "?" + qc.GetQueryString();
|
||||
var response = await RequestWithCookiesAsync(searchUrl);
|
||||
if (!response.ContentString.Contains("logout.php")) // re-login
|
||||
{
|
||||
await DoLogin();
|
||||
response = await RequestWithCookiesAsync(searchUrl);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var parser = new HtmlParser();
|
||||
var document = parser.ParseDocument(response.ContentString);
|
||||
var rows = document.QuerySelectorAll(".torrent_table > tbody > tr[class^='torrent row']");
|
||||
|
||||
foreach (var row in rows)
|
||||
{
|
||||
var title = row.QuerySelector("a[data-src]").GetAttribute("data-src");
|
||||
if (string.IsNullOrEmpty(title) || title == "0")
|
||||
{
|
||||
title = row.QuerySelector("a[data-src]").TextContent;
|
||||
title = Regex.Replace(title, @"[\[\]\/]", "");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (title.Length > 5 && title.Substring(title.Length - 5).Contains("."))
|
||||
title = title.Remove(title.LastIndexOf(".", StringComparison.Ordinal));
|
||||
}
|
||||
|
||||
var posterStr = row.QuerySelector("img")?.GetAttribute("src");
|
||||
Uri.TryCreate(posterStr, UriKind.Absolute, out var poster);
|
||||
|
||||
var details = new Uri(SiteLink + row.QuerySelector("a[data-src]").GetAttribute("href"));
|
||||
var link = new Uri(SiteLink + row.QuerySelector("a[href*='action=download']").GetAttribute("href"));
|
||||
|
||||
var qColSize = row.QuerySelector("td:nth-child(3)");
|
||||
var size = ReleaseInfo.GetBytes(qColSize.Children[0].TextContent);
|
||||
var files = ParseUtil.CoerceLong(qColSize.Children[1].TextContent.Split(':')[1].Trim());
|
||||
|
||||
|
||||
var qPublishdate = row.QuerySelector("td:nth-child(4) span");
|
||||
var publishDateStr = qPublishdate.GetAttribute("title");
|
||||
var publishDate = !string.IsNullOrEmpty(publishDateStr) && publishDateStr.Contains(",")
|
||||
? DateTime.ParseExact(publishDateStr, "MMM dd yyyy, HH:mm", CultureInfo.InvariantCulture)
|
||||
: DateTime.ParseExact(qPublishdate.TextContent.Trim(), "MMM dd yyyy, HH:mm", CultureInfo.InvariantCulture);
|
||||
|
||||
var grabs = ParseUtil.CoerceLong(row.QuerySelector("td:nth-child(5)").TextContent);
|
||||
var seeds = ParseUtil.CoerceLong(row.QuerySelector("td:nth-child(6)").TextContent);
|
||||
var leechers = ParseUtil.CoerceLong(row.QuerySelector("td:nth-child(7)").TextContent);
|
||||
|
||||
var release = new ReleaseInfo
|
||||
{
|
||||
Title = title,
|
||||
Guid = details,
|
||||
Details = details,
|
||||
Link = link,
|
||||
Category = new List<int> { TvCategoryParser.ParseTvShowQuality(title) },
|
||||
Size = size,
|
||||
Files = files,
|
||||
PublishDate = publishDate,
|
||||
Grabs = grabs,
|
||||
Seeders = seeds,
|
||||
Peers = seeds + leechers,
|
||||
Poster = poster,
|
||||
MinimumRatio = 0, // ratioless
|
||||
MinimumSeedTime = 86400, // 24 hours
|
||||
DownloadVolumeFactor = 0, // ratioless tracker
|
||||
UploadVolumeFactor = 1
|
||||
};
|
||||
|
||||
releases.Add(release);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
OnParseError(response.ContentString, e);
|
||||
}
|
||||
|
||||
return releases;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
@@ -11,7 +10,6 @@ using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils.Clients;
|
||||
using Microsoft.AspNetCore.Http.Internal;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
using static Jackett.Common.Models.IndexerConfig.ConfigurationData;
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Threading.Tasks;
|
||||
using Jackett.Common.Indexers.Abstract;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
|
||||
@@ -5,7 +5,6 @@ using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using AngleSharp.Html.Parser;
|
||||
using Jackett.Common.Models;
|
||||
using Jackett.Common.Models.IndexerConfig;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
@@ -225,16 +224,14 @@ namespace Jackett.Common.Indexers
|
||||
var release = new ReleaseInfo
|
||||
{
|
||||
MinimumRatio = 1,
|
||||
MinimumSeedTime = 0
|
||||
MinimumSeedTime = 0,
|
||||
// Get Category
|
||||
Category = MapTrackerCatToNewznab(torrent[7].ToString()),
|
||||
// Title, description and details link
|
||||
Title = torrent[3].ToString(),
|
||||
Description = torrent[6].ToString(),
|
||||
Details = new Uri($"{SiteLink}index.html#torrent/{torrent[0]}")
|
||||
};
|
||||
|
||||
// Get Category
|
||||
release.Category = MapTrackerCatToNewznab(torrent[7].ToString());
|
||||
|
||||
// Title, description and details link
|
||||
release.Title = torrent[3].ToString();
|
||||
release.Description = torrent[6].ToString();
|
||||
release.Details = new Uri($"{SiteLink}index.html#torrent/{torrent[0]}");
|
||||
release.Guid = release.Details;
|
||||
|
||||
// Date of torrent creation
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
@@ -106,6 +106,7 @@ namespace Jackett.Common.Indexers
|
||||
AddCategoryMapping("cat[]=19&tags=DVDR", TorznabCatType.MoviesSD, "Movies/DVDR");
|
||||
AddCategoryMapping("cat[]=19&tags=WMV", TorznabCatType.Movies, "Movies/WMV");
|
||||
AddCategoryMapping("cat[]=19&tags=CAM", TorznabCatType.Movies, "Movies/CAM");
|
||||
AddCategoryMapping("cat[]=19&tags=DolbyVision", TorznabCatType.Movies, "Movies/DolbyVision");
|
||||
|
||||
// Music
|
||||
AddCategoryMapping("cat[]=6", TorznabCatType.Audio, "Music");
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user