This commit is contained in:
jim
2025-12-12 15:53:31 +00:00
commit 31a11e3ba4
6051 changed files with 2099864 additions and 0 deletions
@@ -0,0 +1 @@
2791269724.1764965070
@@ -0,0 +1,28 @@
{
"data": [
{
"text": "Welcome to the new announcement section. It will keep you up-to-date with important news. You can dismiss this announcement by clicking on the button at the end of this line.",
"link": "",
"hash": "",
"dismissible": true,
"timestamp": 1676235999,
"enabled": true
},
{
"text": "Opensubtitles.org is now only accessible to VIP users. If you're still using it and do not plan to get a VIP subscription, you should consider disabling it and move to opensubtitles.com.",
"link": "",
"hash": "",
"dismissible": true,
"timestamp": 1700791126,
"enabled": true
},
{
"text": "We're about to drop support for legacy Sonarr and Radarr versions (prior to v3). If you're still using those legacy versions, please consider upgrading ASAP.",
"link": "",
"hash": "",
"dismissible": true,
"timestamp": 1731247748,
"enabled": true
}
]
}
+310
View File
@@ -0,0 +1,310 @@
---
addic7ed:
cookies: ''
password: ''
user_agent: ''
username: ''
vip: false
analytics:
enabled: true
anidb:
api_client: ''
api_client_ver: 1
animetosho:
anidb_api_client: ''
anidb_api_client_ver: 1
search_threshold: 6
anticaptcha:
anti_captcha_key: ''
assrt:
token: ''
auth:
apikey: 3f041108fa992bed68733bed069f17a8
password: dcd154cc54df9b0997e8fd15af8aa315
type: form
username: jim
avistaz:
cookies: ''
user_agent: ''
backup:
day: 6
folder: /config/backup
frequency: Weekly
hour: 3
retention: 31
betaseries:
token: ''
cinemaz:
cookies: ''
user_agent: ''
cors:
enabled: true
deathbycaptcha:
password: ''
username: ''
embeddedsubtitles:
fallback_lang: en
hi_fallback: false
included_codecs: []
timeout: 600
unknown_as_fallback: false
general:
adaptive_searching: true
adaptive_searching_delay: 3w
adaptive_searching_delta: 1w
anti_captcha_provider: null
auto_update: true
base_url: ''
branch: master
chmod: '0640'
chmod_enabled: false
days_to_upgrade_subs: 7
debug: false
default_und_audio_lang: ''
default_und_embedded_subtitles_lang: ''
dont_notify_manual_actions: false
embedded_subs_show_desired: true
embedded_subtitles_parser: ffprobe
enabled_integrations: []
enabled_providers: []
flask_secret_key: 6f4a8a6cf46b21e97fd6f035e9ed8329
hi_extension: hi
ignore_ass_subs: false
ignore_pgs_subs: false
ignore_vobsub_subs: false
ip: '*'
language_equals: []
minimum_score: 90
minimum_score_movie: 70
movie_default_enabled: false
movie_default_profile: ''
movie_tag_enabled: false
multithreading: true
page_size: 25
parse_embedded_audio_track: true
path_mappings: []
path_mappings_movie: []
port: 6767
postprocessing_cmd: ''
postprocessing_threshold: 90
postprocessing_threshold_movie: 70
remove_profile_tags: []
serie_default_enabled: false
serie_default_profile: ''
serie_tag_enabled: false
single_language: true
skip_hashing: false
subfolder: current
subfolder_custom: ''
subzero_mods: ''
theme: auto
upgrade_frequency: 12
upgrade_manual: true
upgrade_subs: true
use_embedded_subs: true
use_plex: false
use_postprocessing: false
use_postprocessing_threshold: false
use_postprocessing_threshold_movie: false
use_radarr: true
use_scenename: true
use_sonarr: true
utf8_encode: true
wanted_search_frequency: 6
wanted_search_frequency_movie: 6
hdbits:
passkey: ''
username: ''
jimaku:
api_key: ''
enable_ai_subs: false
enable_archives_download: false
enable_name_search_fallback: true
karagarga:
f_password: ''
f_username: ''
password: ''
username: ''
ktuvit:
email: ''
hashed_password: ''
legendasdivx:
password: ''
skip_wrong_fps: false
username: ''
legendasnet:
password: ''
username: ''
log:
exclude_filter: ''
ignore_case: false
include_filter: ''
use_regex: false
movie_scores:
audio_codec: 3
edition: 1
hash: 119
hearing_impaired: 1
release_group: 13
resolution: 2
source: 7
streaming_service: 1
title: 60
video_codec: 2
year: 30
napiprojekt:
only_authors: false
only_real_names: false
napisy24:
password: ''
username: ''
opensubtitles:
password: ''
skip_wrong_fps: false
ssl: false
timeout: 15
use_tag_search: false
username: ''
vip: false
opensubtitlescom:
include_ai_translated: false
password: ''
use_hash: true
username: ''
plex:
apikey: ''
auth_method: apikey
disable_auto_migration: false
email: ''
encryption_key: Tl3qVX9ubKsOiU7itt79LISwlYzM37TQilYncFhA9o4
ip: 127.0.0.1
migration_attempted: false
migration_successful: false
migration_timestamp: ''
movie_library: ''
port: 32400
series_library: ''
server_local: false
server_machine_id: ''
server_name: ''
server_url: ''
set_episode_added: false
set_movie_added: false
ssl: false
token: ''
update_movie_library: false
update_series_library: false
user_id: ''
username: ''
podnapisi:
verify_ssl: true
postgresql:
database: ''
enabled: false
host: localhost
password: ''
port: 5432
username: ''
proxy:
exclude:
- localhost
- 127.0.0.1
password: ''
port: ''
type: null
url: ''
username: ''
radarr:
apikey: ffda86bf00eb45fd8cf50355cbb48b7c
base_url: ''
defer_search_signalr: false
excluded_tags: []
full_update: Daily
full_update_day: 6
full_update_hour: 4
http_timeout: 60
ip: 10.42.0.3
movies_sync: 60
only_monitored: false
port: 7878
ssl: false
sync_only_monitored_movies: false
use_ffprobe_cache: true
series_scores:
audio_codec: 3
episode: 30
hash: 359
hearing_impaired: 1
release_group: 14
resolution: 2
season: 30
series: 180
source: 7
streaming_service: 1
video_codec: 2
year: 90
sonarr:
apikey: 690df19171c64e7b87c4b6a0614baa77
base_url: ''
defer_search_signalr: false
exclude_season_zero: false
excluded_series_types: []
excluded_tags: []
full_update: Daily
full_update_day: 6
full_update_hour: 4
http_timeout: 60
ip: 10.42.0.3
only_monitored: false
port: 8989
series_sync: 60
ssl: false
sync_only_monitored_episodes: false
sync_only_monitored_series: false
use_ffprobe_cache: true
subdl:
api_key: ''
subf2m:
user_agent: ''
verify_ssl: true
subsync:
checker:
blacklisted_languages: []
blacklisted_providers: []
debug: false
force_audio: false
gss: true
max_offset_seconds: 60
no_fix_framerate: true
subsync_movie_threshold: 70
subsync_threshold: 90
use_subsync: false
use_subsync_movie_threshold: false
use_subsync_threshold: false
titlovi:
password: ''
username: ''
titulky:
approved_only: false
password: ''
skip_wrong_fps: false
username: ''
translator:
default_score: 50
gemini_key: ''
gemini_model: gemini-2.0-flash
lingarr_url: http://lingarr:9876
translator_info: true
translator_type: google_translate
turkcealtyaziorg:
cookies: ''
user_agent: ''
whisperai:
endpoint: http://127.0.0.1:9000
loglevel: INFO
pass_video_name: false
response: 5
timeout: 3600
xsubs:
password: ''
username: ''
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,13 @@
2025-12-05 20:04:36|INFO |root |Scheduler will use this timezone: Etc/UTC|
2025-12-05 20:04:37|INFO |root |Interactive jobs queue started and waiting for tasks|
2025-12-05 20:04:37|INFO |waitress |BAZARR is started and waiting for requests on: http://***.***.***.***:6767|
2025-12-05 20:04:37|INFO |waitress |BAZARR is started and waiting for requests on: http://[::]:6767|
2025-12-05 21:04:46|INFO |root |Scheduler will use this timezone: Etc/UTC|
2025-12-05 21:04:48|INFO |root |Interactive jobs queue started and waiting for tasks|
2025-12-05 21:04:48|INFO |waitress |BAZARR is started and waiting for requests on: http://***.***.***.***:6767|
2025-12-05 21:04:48|INFO |waitress |BAZARR is started and waiting for requests on: http://[::]:6767|
2025-12-05 21:08:20|INFO |root |Scheduler will use this timezone: Etc/UTC|
2025-12-05 21:08:21|INFO |root |Interactive jobs queue started and waiting for tasks|
2025-12-05 21:08:21|INFO |waitress |BAZARR is started and waiting for requests on: http://***.***.***.***:6767|
2025-12-05 21:08:21|INFO |waitress |BAZARR is started and waiting for requests on: http://[::]:6767|
2025-12-05 21:08:39|INFO |root |Successful authentication from ***.***.***.*** for user jim|
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,15 @@
{
"keep": {
"days": true,
"amount": 1
},
"auditLog": "/app/config/logs/.20136e5b8544ec13f7fc29ce3d35150d597108bb-audit.json",
"files": [
{
"date": 1765497600045,
"name": "/app/config/logs/.machinelogs-2025-12-12.json",
"hash": "7175264060ef006cba3dc133243d38fe955f88cb1609c407ca7084cb4e7741e7"
}
],
"hashType": "sha256"
}
@@ -0,0 +1,50 @@
{
"keep": {
"days": true,
"amount": 7
},
"auditLog": "/app/config/logs/.4295fcfc416647ffc3751a1d488b45a096cf2d4f-audit.json",
"files": [
{
"date": 1764965062488,
"name": "/app/config/logs/jellyseerr-2025-12-05.log",
"hash": "5b1648d67e59174ff0ab7114d8c03060d393cce83fab39d8781241917bd205d3"
},
{
"date": 1764979200020,
"name": "/app/config/logs/jellyseerr-2025-12-06.log",
"hash": "e206f640909b3d0dda0c00ad5cd1dd7745ecb244175edcf7dfd59dc495532c79"
},
{
"date": 1765065600008,
"name": "/app/config/logs/jellyseerr-2025-12-07.log",
"hash": "c99996637fcc3a6c34fe8f9a9e9e75252b55f131c7152cfb0ed85d07ffc2026b"
},
{
"date": 1765152000007,
"name": "/app/config/logs/jellyseerr-2025-12-08.log",
"hash": "074014c82840971ec6aecad67cfdd984a582648a682dbe33a07e90c47765cf43"
},
{
"date": 1765238400008,
"name": "/app/config/logs/jellyseerr-2025-12-09.log",
"hash": "2786e4b570e99a96b8471e682f4a222d43b07d6aa9c5172d214854d8db9d574c"
},
{
"date": 1765324800007,
"name": "/app/config/logs/jellyseerr-2025-12-10.log",
"hash": "2a942d823301149ea22315dcc7a099821e2d5ed187d0e3d067390c3bc8cba00f"
},
{
"date": 1765411200009,
"name": "/app/config/logs/jellyseerr-2025-12-11.log",
"hash": "e9408f0bed856b9af46c2da8adc64217aaf20567764e8baeab91b033ac258095"
},
{
"date": 1765497600029,
"name": "/app/config/logs/jellyseerr-2025-12-12.log",
"hash": "ea1097187a30ee0e2ad9b09445248392c7d964b240b1a1813692af960d2ee8d4"
}
],
"hashType": "sha256"
}
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
.machinelogs-2025-12-12.json
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
jellyseerr-2025-12-12.log
+264
View File
@@ -0,0 +1,264 @@
{
"clientId": "e28edb06-305e-4a75-95cc-6cf90d32293c",
"vapidPrivate": "NG8_GGYE1lSErfysqHWon_SO4VjMAqACDOmtdRM8zCs",
"vapidPublic": "BO-onYAN1cXyMK31vysRaBUMjitYyw6Gkk6g1TUgrFw_zs19JiqaBsmUstGCKiapX1HrpqSgByyhX64tD7nSs6c",
"main": {
"apiKey": "MTc2NTIyOTE4OTYzOTk3NmRkZDcxLTk0NmYtNDU2Ni1hZWUyLWZiNTE5YTEyZmVhYQ==",
"applicationTitle": "Jellyseerr",
"applicationUrl": "",
"cacheImages": false,
"defaultPermissions": 67108896,
"defaultQuotas": {
"movie": {
"quotaLimit": 0,
"quotaDays": 7
},
"tv": {
"quotaLimit": 0,
"quotaDays": 7
}
},
"hideAvailable": false,
"hideBlacklisted": false,
"localLogin": true,
"mediaServerLogin": true,
"newPlexLogin": true,
"discoverRegion": "",
"streamingRegion": "",
"originalLanguage": "",
"blacklistedTags": "",
"blacklistedTagsLimit": 50,
"mediaServerType": 2,
"partialRequestsEnabled": true,
"enableSpecialEpisodes": false,
"locale": "en",
"youtubeUrl": ""
},
"plex": {
"name": "",
"ip": "",
"port": 32400,
"useSsl": false,
"libraries": []
},
"jellyfin": {
"name": "mordor",
"ip": "10.42.0.3",
"port": 8096,
"useSsl": false,
"urlBase": "",
"externalHostname": "",
"jellyfinForgotPasswordUrl": "",
"libraries": [
{
"id": "f137a2dd21bbc1b99aa5c0f6bf02a805",
"name": "Movies",
"enabled": true,
"type": "movie"
},
{
"id": "a656b907eb3a73532e40e44b968d0225",
"name": "Shows",
"enabled": true,
"type": "show"
}
],
"serverId": "7af8fff96f7743f7b292772f28fb1a0a",
"apiKey": "1158b5c772654006b9fcd954c598c4bc"
},
"tautulli": {},
"radarr": [
{
"name": "Radarr",
"hostname": "10.42.0.3",
"port": 7878,
"apiKey": "ffda86bf00eb45fd8cf50355cbb48b7c",
"useSsl": false,
"baseUrl": "",
"activeProfileId": 4,
"activeProfileName": "HD-1080p",
"activeDirectory": "/movies",
"is4k": false,
"minimumAvailability": "announced",
"tags": [],
"isDefault": true,
"syncEnabled": true,
"preventSearch": false,
"tagRequests": false,
"id": 0
}
],
"sonarr": [
{
"name": "Sonarr",
"hostname": "10.42.0.3",
"port": 8989,
"apiKey": "690df19171c64e7b87c4b6a0614baa77",
"useSsl": false,
"baseUrl": "",
"activeProfileId": 4,
"activeProfileName": "HD-1080p",
"activeDirectory": "/tv",
"activeAnimeProfileId": 4,
"activeAnimeProfileName": "HD-1080p",
"activeAnimeDirectory": "/tv",
"tags": [],
"animeTags": [],
"is4k": false,
"isDefault": true,
"enableSeasonFolders": true,
"syncEnabled": true,
"preventSearch": false,
"tagRequests": false,
"id": 0
}
],
"public": {
"initialized": true
},
"notifications": {
"agents": {
"email": {
"enabled": false,
"options": {
"userEmailRequired": false,
"emailFrom": "",
"smtpHost": "",
"smtpPort": 587,
"secure": false,
"ignoreTls": false,
"requireTls": false,
"allowSelfSigned": false,
"senderName": "Jellyseerr"
}
},
"discord": {
"enabled": false,
"types": 0,
"options": {
"webhookUrl": "",
"webhookRoleId": "",
"enableMentions": true
}
},
"slack": {
"enabled": false,
"types": 0,
"options": {
"webhookUrl": ""
}
},
"telegram": {
"enabled": false,
"types": 0,
"options": {
"botAPI": "",
"chatId": "",
"messageThreadId": "",
"sendSilently": false
}
},
"pushbullet": {
"enabled": false,
"types": 0,
"options": {
"accessToken": ""
}
},
"pushover": {
"enabled": false,
"types": 0,
"options": {
"accessToken": "",
"userToken": "",
"sound": ""
}
},
"webhook": {
"enabled": false,
"types": 0,
"options": {
"webhookUrl": "",
"jsonPayload": "IntcbiAgXCJub3RpZmljYXRpb25fdHlwZVwiOiBcInt7bm90aWZpY2F0aW9uX3R5cGV9fVwiLFxuICBcImV2ZW50XCI6IFwie3tldmVudH19XCIsXG4gIFwic3ViamVjdFwiOiBcInt7c3ViamVjdH19XCIsXG4gIFwibWVzc2FnZVwiOiBcInt7bWVzc2FnZX19XCIsXG4gIFwiaW1hZ2VcIjogXCJ7e2ltYWdlfX1cIixcbiAgXCJ7e21lZGlhfX1cIjoge1xuICAgIFwibWVkaWFfdHlwZVwiOiBcInt7bWVkaWFfdHlwZX19XCIsXG4gICAgXCJ0bWRiSWRcIjogXCJ7e21lZGlhX3RtZGJpZH19XCIsXG4gICAgXCJ0dmRiSWRcIjogXCJ7e21lZGlhX3R2ZGJpZH19XCIsXG4gICAgXCJzdGF0dXNcIjogXCJ7e21lZGlhX3N0YXR1c319XCIsXG4gICAgXCJzdGF0dXM0a1wiOiBcInt7bWVkaWFfc3RhdHVzNGt9fVwiXG4gIH0sXG4gIFwie3tyZXF1ZXN0fX1cIjoge1xuICAgIFwicmVxdWVzdF9pZFwiOiBcInt7cmVxdWVzdF9pZH19XCIsXG4gICAgXCJyZXF1ZXN0ZWRCeV9lbWFpbFwiOiBcInt7cmVxdWVzdGVkQnlfZW1haWx9fVwiLFxuICAgIFwicmVxdWVzdGVkQnlfdXNlcm5hbWVcIjogXCJ7e3JlcXVlc3RlZEJ5X3VzZXJuYW1lfX1cIixcbiAgICBcInJlcXVlc3RlZEJ5X2F2YXRhclwiOiBcInt7cmVxdWVzdGVkQnlfYXZhdGFyfX1cIixcbiAgICBcInJlcXVlc3RlZEJ5X3NldHRpbmdzX2Rpc2NvcmRJZFwiOiBcInt7cmVxdWVzdGVkQnlfc2V0dGluZ3NfZGlzY29yZElkfX1cIixcbiAgICBcInJlcXVlc3RlZEJ5X3NldHRpbmdzX3RlbGVncmFtQ2hhdElkXCI6IFwie3tyZXF1ZXN0ZWRCeV9zZXR0aW5nc190ZWxlZ3JhbUNoYXRJZH19XCJcbiAgfSxcbiAgXCJ7e2lzc3VlfX1cIjoge1xuICAgIFwiaXNzdWVfaWRcIjogXCJ7e2lzc3VlX2lkfX1cIixcbiAgICBcImlzc3VlX3R5cGVcIjogXCJ7e2lzc3VlX3R5cGV9fVwiLFxuICAgIFwiaXNzdWVfc3RhdHVzXCI6IFwie3tpc3N1ZV9zdGF0dXN9fVwiLFxuICAgIFwicmVwb3J0ZWRCeV9lbWFpbFwiOiBcInt7cmVwb3J0ZWRCeV9lbWFpbH19XCIsXG4gICAgXCJyZXBvcnRlZEJ5X3VzZXJuYW1lXCI6IFwie3tyZXBvcnRlZEJ5X3VzZXJuYW1lfX1cIixcbiAgICBcInJlcG9ydGVkQnlfYXZhdGFyXCI6IFwie3tyZXBvcnRlZEJ5X2F2YXRhcn19XCIsXG4gICAgXCJyZXBvcnRlZEJ5X3NldHRpbmdzX2Rpc2NvcmRJZFwiOiBcInt7cmVwb3J0ZWRCeV9zZXR0aW5nc19kaXNjb3JkSWR9fVwiLFxuICAgIFwicmVwb3J0ZWRCeV9zZXR0aW5nc190ZWxlZ3JhbUNoYXRJZFwiOiBcInt7cmVwb3J0ZWRCeV9zZXR0aW5nc190ZWxlZ3JhbUNoYXRJZH19XCJcbiAgfSxcbiAgXCJ7e2NvbW1lbnR9fVwiOiB7XG4gICAgXCJjb21tZW50X21lc3NhZ2VcIjogXCJ7e2NvbW1lbnRfbWVzc2FnZX19XCIsXG4gICAgXCJjb21tZW50ZWRCeV9lbWFpbFwiOiBcInt7Y29tbWVudGVkQnlfZW1haWx9fVwiLFxuICAgIFwiY29tbWVudGVkQnlfdXNlcm5hbWVcIjogXCJ7e2NvbW1lbnRlZEJ5X3VzZXJuYW1lfX1cIixcbiAgICBcImNvbW1lbnRlZEJ5X2F2YXRhclwiOiBcInt7Y29tbWVudGVkQnlfYXZhdGFyfX1cIixcbiAgICBcImNvbW1lbnRlZEJ5X3NldHRpbmdzX2Rpc2NvcmRJZFwiOiBcInt7Y29tbWVudGVkQnlfc2V0dGluZ3NfZGlzY29yZElkfX1cIixcbiAgICBcImNvbW1lbnRlZEJ5X3NldHRpbmdzX3RlbGVncmFtQ2hhdElkXCI6IFwie3tjb21tZW50ZWRCeV9zZXR0aW5nc190ZWxlZ3JhbUNoYXRJZH19XCJcbiAgfSxcbiAgXCJ7e2V4dHJhfX1cIjogW11cbn0i"
}
},
"webpush": {
"enabled": false,
"options": {}
},
"gotify": {
"enabled": false,
"types": 0,
"options": {
"url": "",
"token": "",
"priority": 0
}
},
"ntfy": {
"enabled": false,
"types": 0,
"options": {
"url": "",
"topic": ""
}
}
}
},
"jobs": {
"plex-recently-added-scan": {
"schedule": "0 */5 * * * *"
},
"plex-full-scan": {
"schedule": "0 0 3 * * *"
},
"plex-watchlist-sync": {
"schedule": "0 */3 * * * *"
},
"plex-refresh-token": {
"schedule": "0 0 5 * * *"
},
"radarr-scan": {
"schedule": "0 0 4 * * *"
},
"sonarr-scan": {
"schedule": "0 30 4 * * *"
},
"availability-sync": {
"schedule": "0 0 5 * * *"
},
"download-sync": {
"schedule": "0 * * * * *"
},
"download-sync-reset": {
"schedule": "0 0 1 * * *"
},
"jellyfin-recently-added-scan": {
"schedule": "0 */5 * * * *"
},
"jellyfin-full-scan": {
"schedule": "0 0 3 * * *"
},
"image-cache-cleanup": {
"schedule": "0 0 5 * * *"
},
"process-blacklisted-tags": {
"schedule": "0 30 1 */7 * *"
}
},
"network": {
"csrfProtection": false,
"forceIpv4First": false,
"trustProxy": false,
"proxy": {
"enabled": false,
"hostname": "",
"port": 8080,
"useSsl": false,
"user": "",
"password": "",
"bypassFilter": "",
"bypassLocalAddresses": true
}
}
}
+208
View File
@@ -0,0 +1,208 @@
{
"clientId": "e28edb06-305e-4a75-95cc-6cf90d32293c",
"vapidPrivate": "NG8_GGYE1lSErfysqHWon_SO4VjMAqACDOmtdRM8zCs",
"vapidPublic": "BO-onYAN1cXyMK31vysRaBUMjitYyw6Gkk6g1TUgrFw_zs19JiqaBsmUstGCKiapX1HrpqSgByyhX64tD7nSs6c",
"main": {
"apiKey": "MTc2NDk2NTA2NTU4NzBkZDc1NmVlLWJhNzQtNGQ1MC05M2FmLWVhZjkwZGY2Nzc1Zg==",
"applicationTitle": "Jellyseerr",
"applicationUrl": "",
"cacheImages": false,
"defaultPermissions": 32,
"defaultQuotas": {
"movie": {},
"tv": {}
},
"hideAvailable": false,
"hideBlacklisted": false,
"localLogin": true,
"mediaServerLogin": true,
"newPlexLogin": true,
"discoverRegion": "",
"streamingRegion": "",
"originalLanguage": "",
"blacklistedTags": "",
"blacklistedTagsLimit": 50,
"mediaServerType": 2,
"partialRequestsEnabled": true,
"enableSpecialEpisodes": false,
"locale": "en",
"youtubeUrl": ""
},
"plex": {
"name": "",
"ip": "",
"port": 32400,
"useSsl": false,
"libraries": []
},
"jellyfin": {
"name": "mordor",
"ip": "10.42.0.3",
"port": 8096,
"useSsl": false,
"urlBase": "",
"externalHostname": "",
"jellyfinForgotPasswordUrl": "",
"libraries": [
{
"id": "f137a2dd21bbc1b99aa5c0f6bf02a805",
"name": "Movies",
"enabled": true,
"type": "movie"
}
],
"serverId": "7af8fff96f7743f7b292772f28fb1a0a",
"apiKey": "170ad20c8491437ead48e5fc8ca55ae4"
},
"tautulli": {},
"radarr": [],
"sonarr": [],
"public": {
"initialized": true
},
"notifications": {
"agents": {
"email": {
"enabled": false,
"options": {
"userEmailRequired": false,
"emailFrom": "",
"smtpHost": "",
"smtpPort": 587,
"secure": false,
"ignoreTls": false,
"requireTls": false,
"allowSelfSigned": false,
"senderName": "Jellyseerr"
}
},
"discord": {
"enabled": false,
"types": 0,
"options": {
"webhookUrl": "",
"webhookRoleId": "",
"enableMentions": true
}
},
"slack": {
"enabled": false,
"types": 0,
"options": {
"webhookUrl": ""
}
},
"telegram": {
"enabled": false,
"types": 0,
"options": {
"botAPI": "",
"chatId": "",
"messageThreadId": "",
"sendSilently": false
}
},
"pushbullet": {
"enabled": false,
"types": 0,
"options": {
"accessToken": ""
}
},
"pushover": {
"enabled": false,
"types": 0,
"options": {
"accessToken": "",
"userToken": "",
"sound": ""
}
},
"webhook": {
"enabled": false,
"types": 0,
"options": {
"webhookUrl": "",
"jsonPayload": "IntcbiAgXCJub3RpZmljYXRpb25fdHlwZVwiOiBcInt7bm90aWZpY2F0aW9uX3R5cGV9fVwiLFxuICBcImV2ZW50XCI6IFwie3tldmVudH19XCIsXG4gIFwic3ViamVjdFwiOiBcInt7c3ViamVjdH19XCIsXG4gIFwibWVzc2FnZVwiOiBcInt7bWVzc2FnZX19XCIsXG4gIFwiaW1hZ2VcIjogXCJ7e2ltYWdlfX1cIixcbiAgXCJ7e21lZGlhfX1cIjoge1xuICAgIFwibWVkaWFfdHlwZVwiOiBcInt7bWVkaWFfdHlwZX19XCIsXG4gICAgXCJ0bWRiSWRcIjogXCJ7e21lZGlhX3RtZGJpZH19XCIsXG4gICAgXCJ0dmRiSWRcIjogXCJ7e21lZGlhX3R2ZGJpZH19XCIsXG4gICAgXCJzdGF0dXNcIjogXCJ7e21lZGlhX3N0YXR1c319XCIsXG4gICAgXCJzdGF0dXM0a1wiOiBcInt7bWVkaWFfc3RhdHVzNGt9fVwiXG4gIH0sXG4gIFwie3tyZXF1ZXN0fX1cIjoge1xuICAgIFwicmVxdWVzdF9pZFwiOiBcInt7cmVxdWVzdF9pZH19XCIsXG4gICAgXCJyZXF1ZXN0ZWRCeV9lbWFpbFwiOiBcInt7cmVxdWVzdGVkQnlfZW1haWx9fVwiLFxuICAgIFwicmVxdWVzdGVkQnlfdXNlcm5hbWVcIjogXCJ7e3JlcXVlc3RlZEJ5X3VzZXJuYW1lfX1cIixcbiAgICBcInJlcXVlc3RlZEJ5X2F2YXRhclwiOiBcInt7cmVxdWVzdGVkQnlfYXZhdGFyfX1cIixcbiAgICBcInJlcXVlc3RlZEJ5X3NldHRpbmdzX2Rpc2NvcmRJZFwiOiBcInt7cmVxdWVzdGVkQnlfc2V0dGluZ3NfZGlzY29yZElkfX1cIixcbiAgICBcInJlcXVlc3RlZEJ5X3NldHRpbmdzX3RlbGVncmFtQ2hhdElkXCI6IFwie3tyZXF1ZXN0ZWRCeV9zZXR0aW5nc190ZWxlZ3JhbUNoYXRJZH19XCJcbiAgfSxcbiAgXCJ7e2lzc3VlfX1cIjoge1xuICAgIFwiaXNzdWVfaWRcIjogXCJ7e2lzc3VlX2lkfX1cIixcbiAgICBcImlzc3VlX3R5cGVcIjogXCJ7e2lzc3VlX3R5cGV9fVwiLFxuICAgIFwiaXNzdWVfc3RhdHVzXCI6IFwie3tpc3N1ZV9zdGF0dXN9fVwiLFxuICAgIFwicmVwb3J0ZWRCeV9lbWFpbFwiOiBcInt7cmVwb3J0ZWRCeV9lbWFpbH19XCIsXG4gICAgXCJyZXBvcnRlZEJ5X3VzZXJuYW1lXCI6IFwie3tyZXBvcnRlZEJ5X3VzZXJuYW1lfX1cIixcbiAgICBcInJlcG9ydGVkQnlfYXZhdGFyXCI6IFwie3tyZXBvcnRlZEJ5X2F2YXRhcn19XCIsXG4gICAgXCJyZXBvcnRlZEJ5X3NldHRpbmdzX2Rpc2NvcmRJZFwiOiBcInt7cmVwb3J0ZWRCeV9zZXR0aW5nc19kaXNjb3JkSWR9fVwiLFxuICAgIFwicmVwb3J0ZWRCeV9zZXR0aW5nc190ZWxlZ3JhbUNoYXRJZFwiOiBcInt7cmVwb3J0ZWRCeV9zZXR0aW5nc190ZWxlZ3JhbUNoYXRJZH19XCJcbiAgfSxcbiAgXCJ7e2NvbW1lbnR9fVwiOiB7XG4gICAgXCJjb21tZW50X21lc3NhZ2VcIjogXCJ7e2NvbW1lbnRfbWVzc2FnZX19XCIsXG4gICAgXCJjb21tZW50ZWRCeV9lbWFpbFwiOiBcInt7Y29tbWVudGVkQnlfZW1haWx9fVwiLFxuICAgIFwiY29tbWVudGVkQnlfdXNlcm5hbWVcIjogXCJ7e2NvbW1lbnRlZEJ5X3VzZXJuYW1lfX1cIixcbiAgICBcImNvbW1lbnRlZEJ5X2F2YXRhclwiOiBcInt7Y29tbWVudGVkQnlfYXZhdGFyfX1cIixcbiAgICBcImNvbW1lbnRlZEJ5X3NldHRpbmdzX2Rpc2NvcmRJZFwiOiBcInt7Y29tbWVudGVkQnlfc2V0dGluZ3NfZGlzY29yZElkfX1cIixcbiAgICBcImNvbW1lbnRlZEJ5X3NldHRpbmdzX3RlbGVncmFtQ2hhdElkXCI6IFwie3tjb21tZW50ZWRCeV9zZXR0aW5nc190ZWxlZ3JhbUNoYXRJZH19XCJcbiAgfSxcbiAgXCJ7e2V4dHJhfX1cIjogW11cbn0i"
}
},
"webpush": {
"enabled": false,
"options": {}
},
"gotify": {
"enabled": false,
"types": 0,
"options": {
"url": "",
"token": "",
"priority": 0
}
},
"ntfy": {
"enabled": false,
"types": 0,
"options": {
"url": "",
"topic": ""
}
}
}
},
"jobs": {
"plex-recently-added-scan": {
"schedule": "0 */5 * * * *"
},
"plex-full-scan": {
"schedule": "0 0 3 * * *"
},
"plex-watchlist-sync": {
"schedule": "0 */3 * * * *"
},
"plex-refresh-token": {
"schedule": "0 0 5 * * *"
},
"radarr-scan": {
"schedule": "0 0 4 * * *"
},
"sonarr-scan": {
"schedule": "0 30 4 * * *"
},
"availability-sync": {
"schedule": "0 0 5 * * *"
},
"download-sync": {
"schedule": "0 * * * * *"
},
"download-sync-reset": {
"schedule": "0 0 1 * * *"
},
"jellyfin-recently-added-scan": {
"schedule": "0 */5 * * * *"
},
"jellyfin-full-scan": {
"schedule": "0 0 3 * * *"
},
"image-cache-cleanup": {
"schedule": "0 0 5 * * *"
},
"process-blacklisted-tags": {
"schedule": "0 30 1 */7 * *"
}
},
"network": {
"csrfProtection": false,
"forceIpv4First": false,
"trustProxy": false,
"proxy": {
"enabled": false,
"hostname": "",
"port": 8080,
"useSsl": false,
"user": "",
"password": "",
"bypassFilter": "",
"bypassLocalAddresses": true
}
}
}
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<key id="29f5be9e-d731-4281-914a-18b1c311fd48" version="1">
<creationDate>2025-12-05T20:04:22.5627813Z</creationDate>
<activationDate>2025-12-05T20:04:22.5571363Z</activationDate>
<expirationDate>2026-03-05T20:04:22.5571363Z</expirationDate>
<descriptor deserializerType="Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer, Microsoft.AspNetCore.DataProtection, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
<descriptor>
<encryption algorithm="AES_256_CBC" />
<validation algorithm="HMACSHA256" />
<masterKey p4:requiresEncryption="true" xmlns:p4="http://schemas.asp.net/2015/03/dataProtection">
<!-- Warning: the key below is in an unencrypted form. -->
<value>k332Jz8yljVGELbmrCcqs1TA1C+uX778SirCnm36HzEWLb/+541DAVLVfoyvTns3JsLDR2DwJuiSd/8DQvPHdw==</value>
</masterKey>
</descriptor>
</descriptor>
</key>
+17
View File
@@ -0,0 +1,17 @@
<Config>
<BindAddress>*</BindAddress>
<Port>8686</Port>
<SslPort>6868</SslPort>
<EnableSsl>False</EnableSsl>
<LaunchBrowser>True</LaunchBrowser>
<ApiKey>a53de05db4af4496922fb61d4338e5c8</ApiKey>
<AuthenticationMethod>None</AuthenticationMethod>
<AuthenticationRequired>Enabled</AuthenticationRequired>
<Branch>master</Branch>
<LogLevel>debug</LogLevel>
<SslCertPath></SslCertPath>
<SslCertPassword></SslCertPassword>
<UrlBase></UrlBase>
<InstanceName>Lidarr</InstanceName>
<UpdateMechanism>Docker</UpdateMechanism>
</Config>
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
133
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,218 @@
---
id: 0daykiev
name: 0day.kiev
description: "0day.kiev.ua is a UKRAINIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: uk-UA
type: private
encoding: windows-1251
links:
- https://tracker.0day.community/
legacylinks:
- https://tracker.0day.kiev.ua/
caps:
categorymappings:
- {id: 10, cat: Movies, desc: "Фильмы (Movies)"}
- {id: 16, cat: Movies/HD, desc: "HD / Фильмы (HD / Movies)"}
- {id: 30, cat: TV/HD, desc: "HD / Сериалы (HD / TV Shows)"}
- {id: 27, cat: Movies/HD, desc: "HD / Мультфильмы (HD / Cartoons)"}
- {id: 17, cat: PC/Games, desc: "Игры / ПК (Games / PC)"}
- {id: 14, cat: Audio, desc: "Музыка / Аудио (Music / Audio)"}
- {id: 29, cat: TV, desc: "Мультсериалы (TV Series)"}
- {id: 11, cat: Movies, desc: "Мультфильмы (Cartoons)"}
- {id: 28, cat: TV/Documentary, desc: "HD / Документальное (HD / Documentary)"}
- {id: 18, cat: PC/0day, desc: "Софт / Windows (Software / Windows)"}
- {id: 19, cat: TV, desc: "TV / Сериалы (TV shows)"}
- {id: 31, cat: Other, desc: "Прочее (Other)"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: stripcyrillic
type: checkbox
label: Strip Cyrillic Letters
default: true
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_activity
type: info
label: Account Inactivity
default: "The tracker has a system for deleting inactive accounts after 6 months from your last visit to the tracker."
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
returnto: "/browse.php"
error:
- selector: div.maintitle:contains("Ошибка")
message:
selector: div.borderwrap table.embedded
test:
path: browse.php
selector: a[href="/logout.php"]
search:
paths:
# https://tracker.0day.kiev.ua/browse.php?c10=1&c27=1&search=endgame&incldead=1&where=0
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
# 0 active, 1 incldead, 2 onlydead, 3 gold, 4 noseed, 5 silver
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
# 0 title, 1 title and descr
where: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
keywordsfilters:
- name: diacritics
args: replace
- name: re_replace # S01 to сезон 1
args: ["(?i)\\bS0*(\\d+)\\b", "сезон $1"]
- name: re_replace # E01 to сері 1
args: ["(?i)\\bE0*(\\d+)\\b", "сері $1"]
- name: re_replace # S01E01 to сезон 1 сері 1
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "сезон $1 сері $2"]
rows:
selector: table > tbody > tr.rowtorrentinfo
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php?id="]
filters:
# normalize to SXXEYY format
- name: re_replace
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(?:[CС]ері[їяй]|Епізоди?)[\\s:]*(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езони?.+?(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))?", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езони?.+?(\\d+(?:-\\d+)?)\\s*(?:[CС]ері[їяй]|Епізоди?)\\s+з\\s*(\\w?)", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))?", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*(?:[CС]ері[їяй]|Епізоди?)\\s+з\\s*(\\w?)", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(?:[CС]ері[їяй]|Епізоди?)[\\s:]*(\\d+(?:-\\d+)?)", "S$1E$2"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езони?.+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))", "S$1E$2"]
- name: re_replace
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))", "S$1E$2"]
- name: re_replace
args: ["(?i)[CС]езони?[\\s:]*(\\d+(?:-\\d+)?)", "S$1"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езони?", "S$1"]
- name: re_replace
args: ["(?i)(?:[CС]ері[їяй]|Епізоди?)[\\s:]*(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)", "E$1 of $2"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s*з\\s*(\\w?)(?:\\s*(?:[CС]ері[їяй]|Епізоди?))", "E$1 of $2"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:[CС]ері[їяй]|Епізоди?)\\s+з\\s*(\\w?)", "E$1 of $2"]
- name: re_replace
args: ["(?i)(?:[CС]ері[їяй]|Епізоди?)[\\s:]*(\\d+(?:-\\d+)?)", "E$1"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:[CС]ері[їяй]|Епізоди?)", "E$1"]
- name: re_replace
args: ["(\\([\\p{IsCyrillic}\\W]+\\))|(^[\\p{IsCyrillic}\\W\\d]+\\/ )|([\\p{IsCyrillic} \\-]+,+)|([\\p{IsCyrillic}]+)", "{{ if .Config.stripcyrillic }}{{ else }}$1$2$3$4{{ end }}"]
- name: re_replace
args: ["(?i)\\bHDTV\\s?Rip\\b", "HDTV"]
- name: re_replace
args: ["(?i)\\bSAT\\s?Rip\\b", "HDTV"]
- name: re_replace
args: ["(?i)\\bWEB\\s?DL\\s?Rip\\b", "WEBDL"]
- name: re_replace
args: ["(?i)\\bWEB Rip\\b", "WEBRip"]
- name: re_replace
args: ["(?i)\\bWEB DL\\b", "WEBDL"]
- name: re_replace
args: ["[\\[\\(\\{<«][\\s\\W]*[\\]\\)\\}>»]", ""]
- name: re_replace
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
- name: re_replace
args: ["(?i)^\\(\\s*([SE]\\d+.*?)\\s*\\)[\\s\\/\\|]*(.+)", "$2 $1"]
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
date:
selector: td:nth-child(2) i
filters:
- name: append
args: " +02:00" # EET
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
size:
selector: td:nth-child(4)
filters:
- name: replace
args: ["ТБ", "TB"]
- name: replace
args: ["ГБ", "GB"]
- name: replace
args: ["МБ", "MB"]
- name: replace
args: ["КБ", "KB"]
grabs:
selector: td:nth-child(5)
seeders:
selector: td:nth-child(6)
filters:
- name: split
args: ["|", 0]
leechers:
selector: td:nth-child(6)
filters:
- name: split
args: ["|", 1]
downloadvolumefactor:
case:
img[src="pic/freedownload.gif"]: 0
img[src="pic/silverdownload.gif"]: 0.5
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 0.2
description:
selector: a[href^="details.php?id="]
# engine n/a
@@ -0,0 +1,76 @@
---
id: 0magnet
name: 0Magnet
description: "ØMagnet is a CHINESE Public tracker for Asian 3X (JAV)"
language: en-US
type: public
encoding: UTF-8
links:
- https://13mag.net/
- https://16mag.net/
legacylinks:
- https://0magnet.com/
- https://9mag.net/
- https://0magnet.co/
caps:
categories:
XXX: XXX
modes:
search: [q]
settings: []
download:
infohash:
hash:
selector: a[href^="magnet:?xt"]
attribute: href
filters:
- name: regexp
args: ([A-F|a-f|0-9]{40})
title:
selector: a[href^="magnet:?xt"]
attribute: href
filters:
- name: regexp
args: "&dn=(.+?)&"
- name: validfilename
search:
paths:
- path: search
inputs:
q: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}.{{ end }}"
rows:
selector: table > tbody > tr:has(td)
filters:
- name: andmatch
fields:
category:
text: XXX
title:
selector: a
remove: p
details:
selector: a
attribute: href
download:
selector: a
attribute: href
date:
text: now
size:
selector: td.td-size
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
+295
View File
@@ -0,0 +1,295 @@
---
id: 1337x
name: 1337x
description: "1337x is a Public torrent site that offers verified torrent downloads"
language: en-US
type: public
encoding: UTF-8
requestDelay: 2
# get status and news on domains at the official site https://1337x-status.org/
links:
- https://1337x.to/
- https://1337x.st/
- https://x1337x.ws/
- https://x1337x.eu/
- https://x1337x.cc/
legacylinks:
- https://1337x.is/
- https://1337x.gd/
- https://1337x.mrunblock.bond/
- https://1337x.abcproxy.org/
- https://1337x.so/
- https://1337x.unblockit.download/
- https://1337x.unblockninja.com/ # keyword search not working
- https://1337x.ninjaproxy1.com/ # keyword search not working
- https://1337x.proxyninja.org/ # keyword search not working
- https://1337x.proxyninja.net/ # keyword search not working
- https://1337x.torrentbay.st/ # keyword search not working
- https://1337x.torrentsbay.org/ # keyword search not working
- https://x1337x.se/
caps:
categorymappings:
# Anime
- {id: 28, cat: TV/Anime, desc: "Anime/Anime"}
- {id: 78, cat: TV/Anime, desc: "Anime/Dual Audio"}
- {id: 79, cat: TV/Anime, desc: "Anime/Dubbed"}
- {id: 80, cat: TV/Anime, desc: "Anime/Subbed"}
- {id: 81, cat: TV/Anime, desc: "Anime/Raw"}
# Audio
- {id: 22, cat: Audio/MP3, desc: "Music/MP3"}
- {id: 23, cat: Audio/Lossless, desc: "Music/Lossless"}
- {id: 24, cat: Audio, desc: "Music/DVD"}
- {id: 25, cat: Audio/Video, desc: "Music/Video"}
- {id: 26, cat: Audio, desc: "Music/Radio"}
- {id: 27, cat: Audio/Other, desc: "Music/Other"}
- {id: 53, cat: Audio, desc: "Music/Album"}
- {id: 58, cat: Audio, desc: "Music/Box set"}
- {id: 59, cat: Audio, desc: "Music/Discography"}
- {id: 60, cat: Audio, desc: "Music/Single"}
- {id: 68, cat: Audio, desc: "Music/Concerts"}
- {id: 69, cat: Audio, desc: "Music/AAC"}
# Movies
- {id: 1, cat: Movies/DVD, desc: "Movies/DVD"}
- {id: 2, cat: Movies/SD, desc: "Movies/Divx/Xvid"}
- {id: 3, cat: Movies, desc: "Movies/SVCD/VCD"}
- {id: 4, cat: Movies/Foreign, desc: "Movies/Dubs/Dual Audio"}
- {id: 42, cat: Movies/HD, desc: "Movies/HD"}
- {id: 54, cat: Movies/HD, desc: "Movies/h.264/x264"}
- {id: 55, cat: Movies, desc: "Movies/Mp4"}
- {id: 66, cat: Movies/3D, desc: "Movies/3D"}
- {id: 70, cat: Movies/HD, desc: "Movies/HEVC/x265"}
- {id: 73, cat: Movies, desc: "Movies/Bollywood"}
- {id: 76, cat: Movies/UHD, desc: "Movies/UHD"}
# TV
- {id: 5, cat: TV, desc: "TV/DVD"}
- {id: 6, cat: TV, desc: "TV/Divx/Xvid"}
- {id: 7, cat: TV, desc: "TV/SVCD/VCD"}
- {id: 41, cat: TV/HD, desc: "TV/HD"}
- {id: 71, cat: TV, desc: "TV/HEVC/x265"}
- {id: 74, cat: TV, desc: "TV/Cartoons"}
- {id: 75, cat: TV/SD, desc: "TV/SD"}
- {id: 9, cat: TV/Documentary, desc: "TV/Documentary"}
# Apps
- {id: 18, cat: PC, desc: "Apps/PC Software"}
- {id: 19, cat: PC/Mac, desc: "Apps/Mac"}
- {id: 20, cat: PC, desc: "Apps/Linux"}
- {id: 21, cat: PC, desc: "Apps/Other"}
- {id: 56, cat: PC/Mobile-Android, desc: "Apps/Android"}
- {id: 57, cat: PC/Mobile-iOS, desc: "Apps/iOS"}
# Games
- {id: 10, cat: PC/Games, desc: "Games/PC Game"}
- {id: 11, cat: Console/PS3, desc: "Games/PS2"}
- {id: 12, cat: Console/PSP, desc: "Games/PSP"}
- {id: 13, cat: Console/XBox, desc: "Games/Xbox"}
- {id: 14, cat: Console/XBox 360, desc: "Games/Xbox360"}
- {id: 15, cat: Console/PS3, desc: "Games/PS1"}
- {id: 16, cat: Console/Other, desc: "Games/Dreamcast"}
- {id: 17, cat: PC/Mobile-Other, desc: "Games/Other"}
- {id: 43, cat: Console/PS3, desc: "Games/PS3"}
- {id: 44, cat: Console/Wii, desc: "Games/Wii"}
- {id: 45, cat: Console/NDS, desc: "Games/DS"}
- {id: 46, cat: Console/Other, desc: "Games/GameCube"}
- {id: 72, cat: Console/3DS, desc: "Games/3DS"}
- {id: 77, cat: Console/PS4, desc: "Games/PS4"}
- {id: 82, cat: Console/Other, desc: "Games/Switch"}
# XXX
- {id: 48, cat: XXX/DVD, desc: "XXX/Video"}
- {id: 49, cat: XXX/ImageSet, desc: "XXX/Picture"}
- {id: 50, cat: XXX, desc: "XXX/Magazine"}
- {id: 51, cat: XXX, desc: "XXX/Hentai"}
- {id: 67, cat: XXX, desc: "XXX/Games"}
# Other
- {id: 33, cat: Other, desc: "Other/Emulation"}
- {id: 34, cat: Books, desc: "Other/Tutorial"}
- {id: 35, cat: Other, desc: "Other/Sounds"}
- {id: 36, cat: Books/EBook, desc: "Other/E-books"}
- {id: 37, cat: Other, desc: "Other/Images"}
- {id: 38, cat: Other, desc: "Other/Mobile Phone"}
- {id: 39, cat: Books/Comics, desc: "Other/Comics"}
- {id: 40, cat: Other/Misc, desc: "Other/Other"}
- {id: 47, cat: Other, desc: "Other/Nulled Script"}
- {id: 52, cat: Audio/Audiobook, desc: "Other/Audiobook"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
allowrawsearch: true
settings:
- name: uploader
type: text
label: Filter by Uploader
- name: info_uploader
type: info
label: About filtering by Uploader
default: "You can filter by Uploader by entering a Case Sensitive username, or leave empty to get all results.<br>Note: this is the username of the Uploader and not the Groupname that often show up at the end of 1337x titles, eg -GalaxyRG."
- name: info_flaresolverr
type: info_flaresolverr
- name: downloadlink
type: select
label: Download link
default: "http://itorrents.org/"
options:
"http://itorrents.org/": iTorrents.org
"magnet:": magnet
- name: downloadlink2
type: select
label: Download link (fallback)
default: "magnet:"
options:
"http://itorrents.org/": iTorrents.org
"magnet:": magnet
- name: info_download
type: info
label: About the Download links
default: As the iTorrents .torrent download link on this site is known to fail from time to time, we suggest using the magnet link as a fallback. The BTCache and Torrage services are not supported because they require additional user interaction (a captcha for BTCache and a download button on Torrage.)
- name: disablesort
type: checkbox
label: Disable sorting - 1337x prevents sorting searches during high server load, which breaks the indexer when performing a keyword search - disable if you get zero results
default: false
- name: sort
type: select
label: Sort requested from site
default: time
options:
time: created
seeders: seeders
size: size
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
download:
# the .torrent URL and magnet URI are on the details page
selectors:
- selector: ul li a[href^="{{ .Config.downloadlink }}"]
attribute: href
- selector: ul li a[href^="{{ .Config.downloadlink2 }}"]
attribute: href
search:
paths:
# present first page of movies tv and music results if there are no search parms supplied (20 hits per page)
- path: "{{ if and (.Keywords) (eq .Config.disablesort .False) }}sort-{{ else }}{{ end }}{{ if .Keywords }}search/{{ .Keywords }}{{ else }}cat/Movies{{ end }}{{ if and (.Keywords) (eq .Config.disablesort .False) }}/{{ .Config.sort }}/{{ .Config.type }}{{ else }}{{ end }}/1/"
- path: "{{ if and (.Keywords) (eq .Config.disablesort .False) }}sort-{{ else }}{{ end }}{{ if .Keywords }}search/{{ .Keywords }}{{ else }}cat/TV{{ end }}{{ if and (.Keywords) (eq .Config.disablesort .False)) }}/{{ .Config.sort }}/{{ .Config.type }}{{ else }}{{ end }}/{{ if .Keywords }}2{{ else }}1{{ end }}/"
- path: "{{ if and (.Keywords) (eq .Config.disablesort .False) }}sort-{{ else }}{{ end }}{{ if .Keywords }}search/{{ .Keywords }}{{ else }}cat/Music{{ end }}{{ if and (.Keywords) (eq .Config.disablesort .False) }}/{{ .Config.sort }}/{{ .Config.type }}{{ else }}{{ end }}/{{ if .Keywords }}3{{ else }}1{{ end }}/"
- path: "{{ if and (.Keywords) (eq .Config.disablesort .False) }}sort-{{ else }}{{ end }}{{ if .Keywords }}search/{{ .Keywords }}{{ else }}cat/Other{{ end }}{{ if and (.Keywords) (eq .Config.disablesort .False) }}/{{ .Config.sort }}/{{ .Config.type }}{{ else }}{{ end }}/{{ if .Keywords }}4{{ else }}1{{ end }}/"
keywordsfilters:
- name: re_replace # daily standard S2023 > 2023
args: ["\\bS(20\\d{2})\\b", "$1"]
rows:
selector: "tr:has(a[href^=\"/torrent/\"]){{ if .Config.uploader }}:has(td[class^=\"coll-5\"]:contains({{ .Config.uploader }})){{ else }}{{ end }}"
fields:
title_default:
# the movies, tv and music pages abbreviate the title
selector: td[class^="coll-1"] a[href^="/torrent/"]
title_optional:
# the movies, tv and music pages abbreviate the title so we process the href instead. #8137
optional: true
selector: td[class^="coll-1"] a[href^="/torrent/"]:contains("...")
attribute: href
filters:
- name: urldecode
- name: split
args: ["/", 3]
title:
# title_optional can be empty so use the title_default instead #8586
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
filters:
- name: re_replace
args: ["-([\\w]+(?:[\\[\\]\\(\\)\\w]+)?)$", "~$1"]
- name: replace
args: ["-", " "]
- name: re_replace
args: ["~([\\w]+(?:[\\[\\]\\(\\)\\w]+)?)$", "-$1"]
- name: replace
args: ["\u000f", ""] # get rid of unwanted character #6582
# cleanup for Sonarr
- name: re_replace # EP 3 4 to E3-4
args: ["(?i)\\sEP\\s(\\d{1,2})\\s(E?\\s?\\d{1,2})\\s", " E$1-$2 "]
- name: re_replace # S02E04 05 to S02E04-05
args: ["(?i)\\sS(\\d{1,2})\\s?E\\s?(\\d{1,2})\\s(E?\\s?\\d{1,2})\\s", " S$1E$2-$3 "]
- name: re_replace
args: ["(?i)AC3\\s?(\\d)\\s(\\d)", "AC3 $1.$2"]
- name: re_replace
args: ["(?i) DD\\s?(\\d)\\s(\\d)", " DD $1.$2"]
- name: re_replace
args: ["(?i) DDP\\s?(\\d)\\s(\\d)", " DDP $1.$2"]
- name: re_replace
args: ["(?i)\\sE\\s?AC3", " EAC3"]
- name: re_replace
args: ["(?i)WEB\\sDL", "WEB-DL"]
- name: re_replace
args: ["(?i)HDTVRIP", "HDTV"]
category_optional:
optional: true
selector: td[class^="coll-1"] a[href^="/sub/"]
attribute: href
filters:
# extract the third part
- name: split
args: ["/", 2]
category:
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}40{{ end }}"
details:
selector: td[class^="coll-1"] a[href^="/torrent/"]
attribute: href
download:
# .torrent link is on the details page
selector: td[class^="coll-1"] a[href^="/torrent/"]
attribute: href
# dates come in three flavours:
date_year:
# (within this year) 7am Sep. 14th
optional: true
selector: td[class^="coll-date"]:not(:contains(":")):not(:contains("'"))
filters:
- name: re_replace
args: ["st|nd|rd|th", ""]
- name: dateparse
args: "htt MMM. d"
date_years:
# (more than a year ago) Apr. 18th '11
optional: true
selector: td[class^="coll-date"]:contains("'")
filters:
- name: replace
args: ["'", ""]
- name: re_replace
args: ["st|nd|rd|th", ""]
- name: dateparse
args: "MMM. d yy"
date_today:
# (today) 12:25am
optional: true
selector: td[class^="coll-date"]:contains(":")
filters:
- name: fuzzytime
date:
text: "{{ if or .Result.date_year .Result.date_years .Result.date_today }}{{ or .Result.date_year .Result.date_years .Result.date_today }}{{ else }}now{{ end }}"
size:
selector: td[class^="coll-4"]
seeders:
selector: td[class^="coll-2"]
leechers:
selector: td[class^="coll-3"]
_username:
selector: td[class^="coll-5"]
description:
text: "Uploader: {{ .Result._username }}"
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
+185
View File
@@ -0,0 +1,185 @@
---
id: 13city
name: 13City
description: "13City is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://13city.org/
caps:
categorymappings:
- {id: 401, cat: Movies, desc: "电影/Movies"}
- {id: 402, cat: TV, desc: "电视剧/TVSeries"}
- {id: 403, cat: TV, desc: "综艺/TV Shows"}
- {id: 405, cat: TV/Anime, desc: "动漫/Animations"}
- {id: 406, cat: Audio/Video, desc: "演唱会、MV/Music Videos"}
- {id: 408, cat: Audio, desc: "音乐/Music"}
- {id: 409, cat: Books/EBook, desc: "电子书/E-book"}
- {id: 409, cat: Audio/Audiobook, desc: "有声读物/A-book"}
- {id: 413, cat: TV/Documentary, desc: "纪录片/Documentary"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, doubanid]
movie-search: [q, imdbid, doubanid]
music-search: [q]
book-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "Account retention rules:<ol><li>If there is no valid traffic within 7 days of registration (participation in the calculation of sharing rate), the account will be blocked</li><li>After the level is reduced to \"Peasant\", if the sharing rate is not improved within 7 days, the account will be blocked</li><li>Long-term non-login:<ul>- UnParked account: 60 consecutive days of non-login → banned</ul><ul>- Parked account: 180 consecutive days of non-login → banned</ul><ul>- Nexus Master and above levels are not subject to long-term non-login ban restrictions</ul></li></ol>"
login:
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
# 0 incldead, 1 active, 2 dead
incldead: 0
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
# 0 title, 1 descr, 3 uploader, 4 imdburl
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
# 0 AND, 2 exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
notnewword: 1
rows:
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
fields:
category:
selector: a[href^="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title_default:
selector: a[href^="details.php?id="]
title:
selector: a[title][href^="details.php?id="]
attribute: title
optional: true
default: "{{ .Result.title_default }}"
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
poster:
selector: img[data-src]
attribute: data-src
imdbid:
# site currently only has a badge and rating, the id is not present. just in case a future update.
selector: a[href*="imdb.com/title/tt"]
attribute: href
doubanid:
# site currently only has a badge and rating, the id is not present. just in case a future update.
selector: a[href*="movie.douban.com/subject/"]
attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td.rowfollow:nth-child(4) > span[title]
attribute: title
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
selector: td.rowfollow:nth-child(4):not(:has(span))
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
selector: td.rowfollow:nth-child(5)
optional: true
default: 512MB
seeders:
selector: td.rowfollow:nth-child(6)
optional: true
default: 0
leechers:
selector: td.rowfollow:nth-child(7)
optional: true
default: 0
grabs:
selector: td.rowfollow:nth-child(8)
optional: true
default: 0
downloadvolumefactor:
case:
img.pro_free: 0
img.pro_free2up: 0
img.pro_50pctdown: 0.5
img.pro_50pctdown2up: 0.5
img.pro_30pctdown: 0.3
"*": 1
uploadvolumefactor:
case:
img.pro_50pctdown2up: 2
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
minimumratio:
text: 2.0
minimumseedtime:
# 1 day (as seconds = 24 x 60 x 60)
text: 86400
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.9.11 2025-11-02
+224
View File
@@ -0,0 +1,224 @@
---
id: 1ptbar
name: 1ptbar
description: "1ptbar is a CHINESE Private Torrent Tracker for MOVIES / TV / E-LEARNING"
language: zh-CN
type: private
encoding: UTF-8
requestDelay: 2
links:
- https://1ptba.com/
caps:
# dont forget to update the path categories in the search block
categorymappings:
- {id: 401, cat: Movies, desc: "Movie(電影)", default: true}
- {id: 402, cat: TV, desc: "TV Series(電視影劇)", default: true}
- {id: 403, cat: TV, desc: "TV Shows(電視綜藝)", default: true}
- {id: 404, cat: TV/Documentary, desc: "Documentaries(紀錄教育)", default: true}
- {id: 405, cat: TV/Anime, desc: "Animations(卡通動漫)", default: true}
- {id: 406, cat: Audio/Video, desc: "Music Videos(音樂短片/演唱會)", default: true}
- {id: 407, cat: TV/Sport, desc: "Sports(體育賽事)", default: true}
- {id: 408, cat: Audio, desc: "HQ Audio(高品质音频)", default: true}
- {id: 410, cat: PC/0day, desc: "Software(軟體)", default: true}
- {id: 411, cat: PC/Games, desc: "Games(電子遊戲)", default: true}
- {id: 412, cat: Books/EBook, desc: "eBook(電子書)", default: true}
- {id: 409, cat: Other, desc: "Misc(其他)", default: true}
- {id: 610, cat: XXX/x264, desc: "AV(有碼)/HD Censored", default: false}
- {id: 611, cat: XXX/x264, desc: "AV(無碼)/HD Uncensored", default: false}
- {id: 612, cat: XXX/SD, desc: "AV(有碼)/SD Censored", default: false}
- {id: 613, cat: XXX/SD, desc: "AV(無碼)/SD Uncensored", default: false}
- {id: 614, cat: XXX/DVD, desc: "AV(無碼)/DVDiSo Uncensored", default: false}
- {id: 615, cat: XXX/DVD, desc: "AV(有碼)/DVDiSo Censored", default: false}
- {id: 616, cat: XXX/UHD, desc: "AV(有碼)/Blu-Ray Censored", default: false}
- {id: 617, cat: XXX/UHD, desc: "AV(無碼)/Blu-Ray Uncensored", default: false}
- {id: 618, cat: XXX/Pack, desc: "AV(網站)/0Day", default: false}
- {id: 619, cat: XXX/Pack, desc: "IV(寫真影集)/Video Collection", default: false}
- {id: 620, cat: XXX/ImageSet, desc: "IV(寫真圖集)/Picture Collection", default: false}
- {id: 621, cat: XXX/Other, desc: "H-Game(遊戲)", default: false}
- {id: 622, cat: XXX/Other, desc: "H-Anime(動畫)", default: false}
- {id: 623, cat: XXX/Other, desc: "H-Comic(漫畫)", default: false}
- {id: 624, cat: XXX/Other, desc: "Adult film(成人電影)", default: false}
- {id: 625, cat: XXX/Other, desc: "AV(Gay)/HD", default: false}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, doubanid]
movie-search: [q, imdbid, doubanid]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: 2facode
type: text
label: 2FA code
- name: info_2fa
type: info
label: "About 2FA code"
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the 1ptbar Web Site. Otherwise just leave it empty."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_flaresolverr
type: info_flaresolverr
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Veteran User or above would never be deleted.</li><li>Elite User or above would never be deleted if parked (at User CP).</li><li>Parked accounts would be deleted if users have not logged in for more than 400 days in a row.</li><li>Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.</li><li>Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
- name: info_special
type: info
label: Special Categories
default: "Only <b>Power User</b> or above can view Special section. Searching for XXX categories by users below this class will result in search errors."
login:
path: login.php
method: form
form: form[action="takelogin.php"]
captcha:
type: image
selector: img[alt="CAPTCHA"]
input: imagestring
inputs:
secret: ""
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
two_step_code: "{{ .Config.2facode }}"
logout: ""
securelogin: ""
ssl: yes
trackerssl: yes
error:
- selector: td.embedded:has(h2:contains("失败"))
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: torrents.php
categories: [401, 402, 403, 404, 405, 406, 407, 408, 410, 411, 412, 409]
- path: special.php
categories: [610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625]
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
# 0 incldead, 1 active, 2 dead
incldead: 0
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
# 0 title, 1 descr, 3 uploader, 4 imdburl
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
# 0 AND, 2 exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
notnewword: 1
rows:
selector: table.torrents > tbody > tr:has(table.torrentname)
fields:
category:
selector: a[href^="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title_default:
selector: a[href^="details.php?id="]
title:
selector: a[title][href^="details.php?id="]
attribute: title
optional: true
default: "{{ .Result.title_default }}"
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
poster:
selector: img[data-src]
attribute: data-src
imdbid:
# site currently only has a badge and rating, the id is not present. just in case a future update.
selector: a[href*="imdb.com/title/tt"]
attribute: href
doubanid:
# site currently only has a badge and rating, the id is not present. just in case a future update.
selector: a[href*="movie.douban.com/subject/"]
attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td.rowfollow:nth-last-of-type(6) > span[title]
attribute: title
optional: true
filters:
- name: append
args: " +08:00"
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
selector: td.rowfollow:nth-last-of-type(6):not(:has(span))
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
selector: td.rowfollow:nth-last-of-type(5)
seeders:
selector: td.rowfollow:nth-last-of-type(4)
leechers:
selector: td.rowfollow:nth-last-of-type(3)
grabs:
selector: td.rowfollow:nth-last-of-type(2)
downloadvolumefactor:
case:
img.pro_free: 0
img.pro_free2up: 0
img.pro_50pctdown: 0.5
img.pro_50pctdown2up: 0.5
img.pro_30pctdown: 0.3
"*": 1
uploadvolumefactor:
case:
img.pro_50pctdown2up: 2
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.9.9 2025-10-02
@@ -0,0 +1,172 @@
---
id: 3changtrai
name: 3ChangTrai
description: "3ChangTrai (3CT) is a VIETNAMESE Private Torrent Tracker for HD MOVIES / TV / GENERAL"
language: vi-VN
type: private
encoding: UTF-8
links:
- https://3changtrai.com/
caps:
categorymappings:
- {id: 401, cat: Movies, desc: "Movies"}
- {id: 402, cat: TV, desc: "TV Series"}
- {id: 403, cat: TV, desc: "TV Shows"}
- {id: 404, cat: TV/Documentary, desc: "Documentaries"}
- {id: 405, cat: TV/Anime, desc: "Animations"}
- {id: 406, cat: Audio/Video, desc: "Music Videos"}
- {id: 407, cat: TV/Sport, desc: "Sports"}
- {id: 408, cat: Audio, desc: "HQ Audio"}
- {id: 409, cat: Other, desc: "Misc"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_flaresolverr
type: info_flaresolverr
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "Cherish your account. Inactive accounts will be deleted based on the following provisions:<ol><li>Nexus Master or later will not be deleted account.</li><li>Veteran User or higher will not be deleted if temporarily locked (at User Settings).</li><li>Temporarily locked accounts will be deleted if not logged in within 90 days.</li><li>Accounts that are not temporarily locked will be deleted if they do not log in within 60 days.</li><li>Accounts with no storage for uploads and downloads will be deleted if they do not log in within 30 days or have registered within 14 days.</li></ol>"
login:
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
# 0 incldead, 1 active, 2 dead
incldead: 0
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
# 0 title, 1 descr, 3 uploader, 4 imdburl
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
# 0 AND, 2 exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
notnewword: 1
rows:
selector: table.torrents > tbody > tr:has(table.torrentname)
fields:
category:
selector: a[href*="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title_default:
selector: a[href*="details.php?id="]
title:
selector: a[title][href*="details.php?id="]
attribute: title
optional: true
default: "{{ .Result.title_default }}"
details:
selector: a[href*="details.php?id="]
attribute: href
download:
selector: a[href*="download.php?id="]
attribute: href
poster:
selector: img[data-src]
attribute: data-src
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td.rowfollow:nth-child(4) > span[title]
attribute: title
optional: true
filters:
- name: append
args: " +07:00" # ICT
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
selector: td.rowfollow:nth-child(4):not(:has(span))
optional: true
filters:
- name: append
args: " +07:00" # ICT
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
selector: td.rowfollow:nth-child(5)
seeders:
selector: td.rowfollow:nth-child(6)
leechers:
selector: td.rowfollow:nth-child(7)
grabs:
selector: td.rowfollow:nth-child(8)
downloadvolumefactor:
case:
img.pro_free: 0
img.pro_free2up: 0
img.pro_50pctdown: 0.5
img.pro_50pctdown2up: 0.5
img.pro_30pctdown: 0.3
"*": 1
uploadvolumefactor:
case:
img.pro_50pctdown2up: 2
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
text: 432000
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.9.9 2025-10-02
@@ -0,0 +1,170 @@
---
id: 3dtorrents
name: 3D Torrents
description: "3D Torrents (3DT) is a Private Torrent Tracker for 3D HD / BLURAY MOVIES"
language: en-US
type: private
encoding: UTF-8
links:
- http://www.3dtorrents.org/ # site does not support https ERR_CONNECTION_CLOSED
caps:
categorymappings:
- {id: 14, cat: Movies/SD, desc: "Movies XviD"}
- {id: 15, cat: Movies/DVD, desc: "Movies DVD-R"}
- {id: 11, cat: Movies/HD, desc: "Movies 720p"}
- {id: 13, cat: Movies/HD, desc: "Movies 1080p"}
- {id: 16, cat: Movies/3D, desc: "Movies 3DTV"}
- {id: 17, cat: Movies/BluRay, desc: "Movies Blu-ray"}
- {id: 27, cat: Movies/BluRay, desc: "Movies BD25 Encode"}
- {id: 33, cat: Movies/BluRay, desc: "Movies BD9 AVCHD"}
- {id: 22, cat: Movies, desc: "Movies Home Conversions"}
- {id: 32, cat: Movies, desc: "Movies Bluray MKV Remux"}
- {id: 38, cat: Movies, desc: "Movies Studio Conversion"}
- {id: 39, cat: Movies/3D, desc: "Movies VR 360"}
- {id: 23, cat: Movies/3D, desc: "Movies Evo 3D"}
- {id: 36, cat: Movies/UHD, desc: "Movies 4K UHD Bluray"}
- {id: 37, cat: Movies/UHD, desc: "Movies 4K UHD Encode"}
- {id: 21, cat: PC, desc: "3D Software"}
- {id: 28, cat: XXX, desc: "Adult 720p"}
- {id: 29, cat: XXX, desc: "Adult 1080p"}
- {id: 30, cat: XXX, desc: "Adult Blu-ray"}
- {id: 31, cat: Other, desc: "Misc"}
- {id: 19, cat: Audio, desc: "Audio Packs"}
modes:
search: [q]
movie-search: [q]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Filter freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 3
options:
3: created
5: seeders
2: title
- name: type
type: select
label: Order requested from site
default: 2
options:
1: desc
2: asc
- name: info
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "Inactivity grace period is three months which means that if you do not log in to the 3Dtorrents web site for 90 days, your account will be deleted. If you are VIP your will stay until the VIP period is over."
- name: info_captcha
type: info
label: About Captcha
default: "Note that the captcha on the 3Dtorrents login page is Case Sensitive."
login:
path: index.php?page=login
method: form
form: form
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
captcha:
type: image
selector: img.captcha
input: private_key
error:
- selector: span.errormsg
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: index.php
inputs:
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
search: "{{ .Keywords }}"
page: torrents
category: 0
# 0 all, 1 Anaglyph 3D, 2 Side by Side,3 Over Under
3dformat: 0
# 0 all, 1 active only, 2 dead only
active: 0
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
rows:
selector: "table[cellspacing!=\"1\"].lista > tbody > tr:has(a[href^=\"index.php?page=torrents&category=\"]){{ if .Config.freeleech }}:has(img[src=\"images/sign_free.png\"]){{ else }}{{ end }}"
fields:
category:
selector: a[href^="index.php?page=torrents&category="]
attribute: href
filters:
- name: querystring
args: category
- name: re_replace
args: ["(\\b0\\b)", "31"]
title:
selector: a[href^="index.php?page=torrent-details&id="]
details:
selector: a[href^="index.php?page=torrent-details&id="]
attribute: href
download:
selector: a[href^="index.php?page=torrent-details&id="]
attribute: href
filters:
- name: replace
args: ["index.php?page=torrent-details&id=", "download.php?id="]
poster:
selector: a[href^="index.php?page=torrent-details&id="]
attribute: onmouseover
filters:
- name: regexp
args: ",\\'(.+?)\\'"
genre:
selector: td:nth-child(2) span
description:
text: "{{ .Result.genre }}"
date:
selector: td:nth-last-child(5)
filters:
- name: append
args: " -07:00" # PDT
- name: dateparse
args: "dd/MM/yyyy zzz"
size:
selector: td:nth-last-child(4)
seeders:
selector: a[href^="index.php?page=peers"]
leechers:
selector: td:has(a[href^="index.php?page=peers"]) + td
grabs:
selector: a[href^="index.php?page=torrent_history"]
optional: true
default: 0
downloadvolumefactor:
case:
img[src="images/sign_free.png"]: 0
img[src="images/50off.png"]: 0.5
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.0
# xbtit
+149
View File
@@ -0,0 +1,149 @@
---
id: 4thd
name: 4thD
description: "4th Dimension is a Private Torrent Tracker for MOVIES / TV / GENERAL"
language: en-US
encoding: UTF-8
type: private
links:
- https://4thd.xyz/
caps:
categorymappings:
- {id: 38, cat: Movies, desc: "Movie Pack"}
- {id: 36, cat: Movies, desc: "Movies/Classic Films"}
- {id: 13, cat: Movies, desc: "Movies/Documentary"}
- {id: 21, cat: Movies/Foreign, desc: "Movies/Foreign"}
- {id: 27, cat: Movies/HD, desc: "MoviesHD"}
- {id: 29, cat: Movies/SD, desc: "Movies/SD"}
- {id: 26, cat: Movies/SD, desc: "Movies/XviD"}
- {id: 45, cat: Movies, desc: "Movies/Kids"}
- {id: 41, cat: TV/Foreign, desc: "Foreign tv"}
- {id: 40, cat: TV, desc: "Mini-Series"}
- {id: 43, cat: TV/HD, desc: "TV H265"}
- {id: 42, cat: TV, desc: "TV Movie"}
- {id: 4, cat: TV/HD, desc: "TV/HD-x720"}
- {id: 14, cat: TV, desc: "TV/Packs"}
- {id: 2, cat: TV/SD, desc: "TV/SD MP4/mkv"}
- {id: 31, cat: TV/SD, desc: "TV/XviD"}
- {id: 18, cat: PC/Games, desc: "Games/PC"}
- {id: 44, cat: Audio, desc: "Music/Pack"}
- {id: 12, cat: Audio/Lossless, desc: "Music/FLAC"}
- {id: 15, cat: Audio/MP3, desc: "Music/MP3"}
- {id: 37, cat: Audio, desc: "Radio"}
- {id: 9, cat: PC/0day, desc: "Apps/PC"}
- {id: 34, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 25, cat: Books/EBook, desc: "eBooks"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: time
options:
time: created
seeders: seeders
size: size
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: login.php
method: form
form: form#loginform
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
keeplogged: 1
error:
- selector: form#loginform .warning
test:
path: index.php
selector: a[href^="logout.php?auth="]
search:
paths:
# https://4thd.xyz/torrents.php?order_by=time&order_way=desc&filter_freeleech=1&title=twilight+zone&search_type=1&taglist=&tags_type=0
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
order_by: "{{ .Config.sort }}"
order_way: "{{ .Config.type }}"
# 0 all, 1 onlyfree
filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
title: "{{ .Keywords }}"
search_type: 1
taglist: ""
tags_type: 0
rows:
selector: table#torrent_table > tbody > tr.torrent:has(a[href^="torrents.php?action=download&id="])
fields:
category:
selector: td.cats_col div a
attribute: href
filters:
- name: regexp
args: \[(\d+)\]
title:
selector: a[href^="torrents.php?id="]
details:
selector: a[href^="torrents.php?id="]
attribute: href
download:
selector: a[href^="torrents.php?action=download&id="]
attribute: href
description:
selector: div.tags
poster:
selector: td:nth-child(2) script
filters:
- name: regexp
args: "src=(.*?)>"
- name: re_replace
args: ["\\\\", ""]
files:
selector: td:nth-child(3)
date:
selector: td:nth-child(5)
filters:
- name: replace
args: ["Never", "99 years ago"]
size:
selector: td:nth-child(6)
grabs:
selector: td:nth-child(7)
seeders:
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
downloadvolumefactor:
case:
img[src$="/freedownload.gif"]: 0
"*": 1
uploadvolumefactor:
text: 1
# Engine n/a
+118
View File
@@ -0,0 +1,118 @@
---
id: 52bt
name: 52BT
description: "52BT is a CHINESE Public tracker for MOVIES / TV / MUSIC / GENERAL"
language: zh-CN
type: public
encoding: UTF-8
requestDelay: 2
links:
# Send any content to 52btbtbt@gmail.com to get the latest address. or visit https://52btbt.icu/
- https://www.529070.xyz/
- https://www.529071.xyz/
legacylinks:
- https://www.529055.xyz/
- https://www.529057.xyz/
- https://www.529056.xyz/
- https://www.529058.xyz/
- https://www.52bt059.buzz/
- https://www.529060.xyz/
- https://www.529061.xyz/
- https://www.529059.xyz/
- https://www.529062.xyz/
- https://www.529063.xyz/
- https://www.529064.xyz/
- https://www.529066.xyz/
- https://www.529065.xyz/
- https://www.529068.xyz/
- https://www.529069.xyz/
- https://www.529067.xyz/
caps:
categorymappings:
- {id: 影视, cat: TV, desc: 影视}
- {id: 影视, cat: Movies, desc: 影视}
- {id: 音乐, cat: Audio, desc: 音乐}
- {id: 图像, cat: Other, desc: 图像}
- {id: 文档书籍, cat: Books, desc: 文档书籍}
- {id: 压缩文件, cat: Other, desc: 压缩文件}
- {id: 安装包, cat: PC, desc: 安装包}
- {id: 其他, cat: Other, desc: 其他}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: cat-id
type: select
label: Category
default: 0
options:
0: All categories
1: Film and Television
2: Music
3: Images
4: Books
5: Zip Files
6: Software
7: Other
- name: sort
type: select
label: Sort requested from site
default: 2
options:
2: created
1: size
0: relevance
- name: info_flaresolverr
type: info_flaresolverr
search:
paths:
- path: "search-{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}-{{ .Config.cat-id }}-{{ .Config.sort }}-1.html"
- path: "search-{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}-{{ .Config.cat-id }}-{{ .Config.sort }}-2.html"
error:
- selector: :root:contains("Internal Server Error")
rows:
selector: div.ssbox
fields:
categorydesc:
selector: div.title > h3 > span
filters:
- name: re_replace
args: ["([\\[\\]]+)", ""]
title:
selector: a[href^="/hash/"]
details:
selector: a[href^="/hash/"]
attribute: href
infohash:
selector: a[href^="magnet:?xt="]
attribute: href
filters:
- name: regexp
args: ([A-F|a-f|0-9]{40})
date:
selector: div.sbar > span:contains("添加时间:") > b
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-dd zzz"
size:
selector: div.sbar > span:contains("大小:") > b
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
+183
View File
@@ -0,0 +1,183 @@
---
id: 52pt
name: 52PT
description: "52PT is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://52pt.site/
caps:
categorymappings:
- {id: 401, cat: Movies, desc: "Movies/电影"}
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
- {id: 405, cat: TV/Anime, desc: "Animations/动漫"}
- {id: 402, cat: TV, desc: "TV Series/剧集"}
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
- {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐MV"}
- {id: 407, cat: TV/Sport, desc: "Sports/运体"}
- {id: 409, cat: Other, desc: "Misc/其他"}
- {id: 410, cat: Other, desc: "Opera/戏曲 曲艺"}
- {id: 408, cat: Audio, desc: "HQ Audio/无损音乐"}
- {id: 411, cat: XXX, desc: "Erotic/情色"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, doubanid]
movie-search: [q, imdbid, doubanid]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "Account retention rules:<ol><li>Veteran User (junior college) and above will be retained forever</li><li>Elite User (junior high school) and above will not be deleted after parking (in the control panel)</li><li>Users with a parked account who do not log in for 400 consecutive days will be deleted</li><li>Users with non-parked account will be deleted if they do not log in for 150 consecutive days</li><li>Users with no traffic (that is, upload/download data are both 0) will be deleted if they do not log in for 15 consecutive days, or if the registration time reaches 60 days.</li></ol>"
login:
path: login.php
method: form
form: form[action="takelogin.php"]
captcha:
type: image
selector: img[alt="CAPTCHA"]
input: imagestring
inputs:
secret: ""
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
logout: ""
securelogin: ""
ssl: yes
trackerssl: yes
error:
- selector: td.embedded:has(h2:contains("失败"))
test:
path: index.php
selector: a[href="usercp.php"]
search:
paths:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
# currently supports only one query id at one time.
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
# 0 incldead, 1 active, 2 dead
incldead: 0
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
# 0 title, 1 descr, 3 uploader, 4 imdburl
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
# 0 AND, 1 OR, 2 exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
notnewword: 1
# does not return imdb or doubanid in results
rows:
selector: table.torrents > tbody > tr:has(table.torrentname)
fields:
category:
selector: a[href^="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title_default:
selector: a[href^="details.php?id="]
title:
selector: a[title][href^="details.php?id="]
attribute: title
optional: true
default: "{{ .Result.title_default }}"
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td:nth-child(4) > span[title]
attribute: title
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
selector: td:nth-child(4):not(:has(span))
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
selector: td:nth-child(5)
seeders:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
grabs:
selector: td:nth-child(8)
downloadvolumefactor:
case:
img.pro_free: 0
img.pro_free2up: 0
img.pro_50pctdown: 0.5
img.pro_50pctdown2up: 0.5
img.pro_30pctdown: 0.3
"*": 1
uploadvolumefactor:
case:
img.pro_50pctdown2up: 2
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
minimumratio:
text: 1.1
minimumseedtime:
# 1 day (as seconds = 24 x 60 x 60)
text: 86400
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
# NexusPHP Standard v1.5 Beta 4
@@ -0,0 +1,240 @@
---
id: Bittorrentfiles
name: Bittorrentfiles
description: "Bittorrentfiles is a Private GERMAN Torrent Tracker for MOVIES / TV / GENERAL"
language: de-DE
type: private
encoding: UTF-8
links:
- https://bittorrentfiles.me/
legacylinks:
- https://www.Bittorrentfiles.me/
caps:
categorymappings:
# Movie
- {id: 48, cat: Movies/HD, desc: "Movie 1080p"}
- {id: 31, cat: Movies/3D, desc: "Movie 3D"}
- {id: 21, cat: Movies/HD, desc: "Movie 720p"}
- {id: 28, cat: Movies/SD, desc: "Movie AVI"}
- {id: 20, cat: Movies/DVD, desc: "Movie DVD-R"}
- {id: 40, cat: Movies/HD, desc: Movie "h264/x264"}
- {id: 30, cat: Movies/HD, desc: "Movie HD/BD"}
- {id: 49, cat: Movies/Foreign, desc: "Movie International"}
- {id: 78, cat: Movies/UHD, desc: "Movie UHD"}
- {id: 85, cat: Movies/HD, desc: "Movie x265"}
# Serien
- {id: 79, cat: TV/HD, desc: "Staffeln HD"}
- {id: 56, cat: TV/SD, desc: "Staffeln SD"}
- {id: 88, cat: TV/UHD, desc: "Staffeln UHD"}
- {id: 86, cat: TV/UHD, desc: "Folgen UHD"}
- {id: 54, cat: TV/HD, desc: "Folgen HD"}
- {id: 80, cat: TV/HD, desc: "Folgen HD/BD"}
- {id: 7, cat: TV/SD, desc: "Folgen SD"}
- {id: 55, cat: TV/Foreign, desc: "Folgen International"}
# Doku
- {id: 91, cat: TV/Documentary, desc: "Doku UHD"}
- {id: 64, cat: TV/Documentary, desc: "Doku HD"}
- {id: 36, cat: TV/Documentary, desc: "Doku SD"}
- {id: 81, cat: TV/Documentary, desc: "Doku 3D"}
- {id: 82, cat: TV/Documentary, desc: "Doku Packs"}
# Spiele
- {id: 4, cat: PC/Games, desc: "Spiele Windows"}
- {id: 92, cat: PC/Mac, desc: "Spiele Mac"}
- {id: 93, cat: PC, desc: "Spiele Linux"}
- {id: 97, cat: Console/XBox, desc: "Spiele XBOX"}
- {id: 94, cat: PC/Mobile-Other, desc: "Spiele Mobile"}
- {id: 95, cat: Console/NDS, desc: "Spiele Nintendo"}
- {id: 96, cat: Console/PSP, desc: "Spiele Playstation"}
- {id: 42, cat: Console/Other, desc: "Spiele Andere"}
# Musik
- {id: 66, cat: Audio, desc: "Musik Alben"}
- {id: 75, cat: Audio, desc: "Musik Singles"}
- {id: 50, cat: Audio, desc: "Musik Charts"}
- {id: 52, cat: Audio, desc: "Musik Packs"}
- {id: 53, cat: Audio/Video, desc: "Musik Video"}
- {id: 61, cat: Audio/Video, desc: "Musik DVD-R"}
- {id: 83, cat: Audio/Lossless, desc: "Musik Flac"}
- {id: 68, cat: Audio, desc: "Musik Live"}
- {id: 6, cat: Audio, desc: "Musik Misc"}
- {id: 51, cat: Audio, desc: "Musik OST"}
- {id: 67, cat: Audio, desc: "Musik Sampler"}
# App
- {id: 98, cat: PC/0day, desc: "App Windows"}
- {id: 62, cat: PC/Mac, desc: "App Mac OS"}
- {id: 63, cat: PC/0day, desc: "App Linux"}
- {id: 34, cat: PC, desc: "App Andere"}
# Sport
- {id: 74, cat: TV/Sport, desc: "Sport HD"}
- {id: 39, cat: TV/Sport, desc: "Sport SD"}
# Sonstiges
- {id: 41, cat: Audio/Audiobook, desc: "Sonstiges A-Book"}
- {id: 33, cat: TV/Anime, desc: "Sonstiges Anime"}
- {id: 35, cat: Books/EBook, desc: "Sonstiges e-Book-DE"}
- {id: 90, cat: Books/EBook, desc: "Sonstiges e-Book-INT"}
- {id: 65, cat: Other, desc: "Sonstiges E-Learning"}
- {id: 37, cat: PC, desc: "Sonstiges Mobile"}
- {id: 87, cat: Books/Mags, desc: "Sonstiges E-Paper"}
- {id: 38, cat: Other, desc: "Sonstiges Kids"}
- {id: 47, cat: Other, desc: "Sonstiges Line"}
- {id: 9, cat: Other, desc: "Sonstiges Andere"}
# XXX
- {id: 58, cat: XXX/x264, desc: "XXX HD"}
- {id: 46, cat: XXX, desc: "XXX Hentai"}
- {id: 59, cat: XXX/Pack, desc: "XXX Pack"}
- {id: 27, cat: XXX/SD, desc: "XXX SD"}
- {id: 76, cat: XXX, desc: "XXX Andere"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
settings:
- name: user
type: text
label: Username
- name: pass
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: added
options:
added: created
seeds: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_account
type: info
label: Account Settings
default: In order to see the correct date and size in the torrent rows, change the <b>Torrentliste:</b> setting to <b>Modern</b> on your account profile.
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "Inactive accounts of users, power users and mega users will be permanently deleted from the database after 125 days! Torrents in your share don't count as activity - only logging in again counts! You can extend this period to 250 days by setting your account to parking. You can find the option to do this under Edit Profile."
login:
path: signin.php
method: post
inputs:
user: "{{ .Config.user }}"
pass: "{{ .Config.pass }}"
returnto: "%2Fbrowse.php"
error:
- selector: .error
test:
path: index.php
selector: a[href^="/logout.php?c="]
search:
path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
# 0=title, 1=descr, 2=nfo, 3=all, 4=imdb
search_where: "{{ if .Query.IMDBID }}3{{ else }}0{{ end }}"
# 0=active, 1=all, 2=onlydead, 4=only upload, 5=doubleup, 6=halfdown, 7=highlight, 8=request
status: "{{ if .Config.freeleech }}4{{ else }}1{{ end }}"
orderby: "{{ .Config.sort }}"
sort: "{{ .Config.type }}"
rows:
selector: table.tableinborder > tbody > tr:has(a[href^="/download.php"])
fields:
category:
selector: a[href^="/browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php"]
attribute: title
details:
selector: a[href^="details.php"]
attribute: href
download:
selector: a[href^="/download.php"]
attribute: href
grabs:
selector: a[title="Snatcher"]
optional: true
default: 0
files:
selector: a[title="Files"]
optional: true
default: 0
size:
selector: td:nth-child(6)
seeders:
selector: a[title="Seeder"]
optional: true
default: 0
leechers:
selector: a[title="Leecher"]
optional: true
default: 0
# 2 flavours of dates
date_day:
# Heute 13:30:04
# Gestern 09:10:10
selector: td:nth-child(10):contains("Heute"), td:nth-child(10):contains("Gestern")
optional: true
filters:
- name: split
args: ["b", 0]
- name: replace
args: ["Heute", "Today"]
- name: replace
args: ["Gestern", "Yesterday"]
- name: append
args: "+01:00" # CET
date_year:
# 30.02.2018 23:12:50
selector: td:nth-child(10):contains("."):contains(":")
optional: true
filters:
- name: split
args: ["b", 0]
- name: append
args: "+01:00" # CET
- name: dateparse
args: "dd.MM.yyyy HH:mm:ss zzz"
date:
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
downloadvolumefactor:
case:
img[alt="OU"]: 0
img[alt="D/2"]: 0.5
img[alt="D / 2"]: 0.5
"*": 1
uploadvolumefactor:
case:
img[alt="2xU"]: 2
"*": 1
minimumratio:
text: 0.8
minimumseedtime:
# 60 hours (as seconds = 60 x 60 x 60)
text: 216000
# engine n/a
@@ -0,0 +1,177 @@
---
id: abnormal
name: Abnormal
description: "ABNormal (ABN) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
language: fr-FR
type: private
encoding: UTF-8
requestDelay: 2.1
links:
- https://abn.lol/
legacylinks:
- https://abnormal.ws
caps:
categorymappings:
- {id: 1, cat: TV, desc: "Series"}
- {id: 2, cat: Movies, desc: "Movies"}
- {id: 3, cat: TV/Documentary, desc: "Documentaries"}
- {id: 4, cat: TV/Anime, desc: "Anime"}
- {id: 5, cat: PC/Games, desc: "Games"}
- {id: 6, cat: PC, desc: "Applications"}
- {id: 7, cat: Books/EBook, desc: "Ebooks"}
- {id: 9, cat: TV, desc: "Emissions"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: multilang
type: checkbox
label: Replace MULTi by another language in release name
default: false
- name: multilanguage
type: select
label: Replace MULTi by this language
default: FRENCH
options:
FRENCH: FRENCH
MULTi.FRENCH: MULTi.FRENCH
ENGLISH: ENGLISH
MULTi.ENGLISH: MULTi.ENGLISH
VOSTFR: VOSTFR
MULTi.VOSTFR: MULTi.VOSTFR
- name: vostfr
type: checkbox
label: Replace VOSTFR and SUBFRENCH with ENGLISH
default: false
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: Created
options:
Created: created
Seeders: seeders
Size: size
ReleaseName: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_activity
type: info
label: Account Inactivity
default: "Accounts are automatically deactivated after 4 months of inactivity (no connection to the site)."
login:
method: form
path: Home/Login
form: "#account"
inputs:
Username: "{{ .Config.username }}"
Password: "{{ .Config.password }}"
RememberMe: true
selectorinputs:
__RequestVerificationToken:
selector: input[name="__RequestVerificationToken"]
attribute: value
error:
- selector: div.validation-summary-errors[data-valmsg-summary="true"]
message:
text: " - Bad username/password."
test:
path: /
selector: form#logoutForm
search:
paths:
- path: Torrent
inputs:
$raw: "{{ range .Categories }}SelectedCats={{.}}&{{end}}"
Search: "{{ .Keywords }}"
UserId: ""
YearOperator:
Year: ""
RatingOperator:
Rating: ""
Pending: ""
Pack: ""
Scene: ""
Freeleech: "{{ if .Config.freeleech }}true{{ else }}{{ end }}"
SortOn: "{{ .Config.sort }}"
SortOrder: "{{ .Config.type }}"
rows:
selector: table.table-rows > tbody > tr:has(a[href^="/Torrent/Download?ReleaseId="])
fields:
category:
selector: a[href^="/Torrent?SelectedCats="]
attribute: href
filters:
- name: querystring
args: SelectedCats
title_phase1:
selector: td.grid-release-column > a
title_vostfr:
text: "{{ .Result.title_phase1 }}"
filters:
- name: re_replace
args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
title_phase2:
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
title_multilang:
text: "{{ .Result.title_phase2 }}"
filters:
- name: re_replace
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
title:
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
details:
selector: a[href^="/Torrent/Details?ReleaseId="]
attribute: href
download:
selector: a[href^="/Torrent/Download?ReleaseId="]
attribute: href
date:
text: now
size:
selector: td:nth-child(6)
filters:
- name: re_replace
args: [",", "."]
- name: replace
args: ["o", "B"]
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
downloadvolumefactor:
case:
img[title="Freeleech"]: 0
"*": 1
uploadvolumefactor:
case:
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 4 days (as seconds = 4 x 24 x 60 x 60)
text: 345600
# Gazelle
@@ -0,0 +1,186 @@
---
id: abtorrents
replaces:
- audiobooktorrents
name: ABtorrents
description: "ABtorrents (ABT) is a Private Torrent Tracker for AUDIOBOOKS"
language: en-US
type: private
encoding: UTF-8
links:
- https://usefultrash.net/
legacylinks:
- https://abtorrents.me/
- https://abtorrents.xyz/
caps:
categorymappings:
- {id: 10, cat: Audio/Audiobook, desc: "Action & Adventure"}
- {id: 80, cat: Audio/Audiobook, desc: "Adult & Erotica"}
- {id: 20, cat: Audio/Audiobook, desc: "Biography & Memoirs"}
- {id: 30, cat: Audio/Audiobook, desc: "Business"}
- {id: 40, cat: Audio/Audiobook, desc: "Childrens"}
- {id: 70, cat: Audio/Audiobook, desc: "Computers"}
- {id: 260, cat: Audio/Audiobook, desc: "Crime & Thriller"}
- {id: 90, cat: Audio/Audiobook, desc: "Fantasy-General"}
- {id: 100, cat: Audio/Audiobook, desc: "Fantasy-Youth"}
- {id: 130, cat: Audio/Audiobook, desc: "General Fiction"}
- {id: 140, cat: Audio/Audiobook, desc: "Historical Fiction"}
- {id: 150, cat: Audio/Audiobook, desc: "History"}
- {id: 160, cat: Audio/Audiobook, desc: "Horror"}
- {id: 50, cat: Audio/Audiobook, desc: "Humor (Comedy)"}
- {id: 170, cat: Audio/Audiobook, desc: "Literature"}
- {id: 175, cat: Audio/Audiobook, desc: "LitRPG"}
- {id: 180, cat: Audio/Audiobook, desc: "Mystery"}
- {id: 215, cat: Audio/Audiobook, desc: "Paranormal Romance"}
- {id: 200, cat: Audio/Audiobook, desc: "Radio Drama"}
- {id: 205, cat: Audio/Audiobook, desc: "Reference & Educational"}
- {id: 207, cat: Audio/Audiobook, desc: "Religion & Spirituality"}
- {id: 210, cat: Audio/Audiobook, desc: "Romance"}
- {id: 240, cat: Audio/Audiobook, desc: "Sci-Fi Apocalypse"}
- {id: 220, cat: Audio/Audiobook, desc: "Science"}
- {id: 230, cat: Audio/Audiobook, desc: "Science Fiction"}
- {id: 250, cat: Audio/Audiobook, desc: "Self Improvement"}
- {id: 265, cat: Audio/Audiobook, desc: "Sports & Fitness"}
- {id: 270, cat: Audio/Audiobook, desc: "Suspense"}
- {id: 280, cat: Audio/Audiobook, desc: "Talk Radio"}
- {id: 285, cat: Audio/Audiobook, desc: "Travel"}
- {id: 290, cat: Audio/Audiobook, desc: "Urban Fantasy & Paranormal"}
- {id: 300, cat: Audio/Audiobook, desc: "Western"}
- {id: 310, cat: Audio/Audiobook, desc: "Young Adult"}
- {id: 400, cat: Books/EBook, desc: "[E] Action & Adventure"}
- {id: 410, cat: Books/EBook, desc: "[E] Adult & Erotica"}
- {id: 420, cat: Books/EBook, desc: "[E] Arts & Crafts (Hobbies)"}
- {id: 430, cat: Books/EBook, desc: "[E] Biography & Memoirs"}
- {id: 435, cat: Books/EBook, desc: "[E] Business"}
- {id: 720, cat: Books/EBook, desc: "[E] Childrens"}
- {id: 450, cat: Books/EBook, desc: "[E] Computer Learning"}
- {id: 460, cat: Books/EBook, desc: "[E] Cookery"}
- {id: 470, cat: Books/EBook, desc: "[E] Crime & Thriller"}
- {id: 480, cat: Books/EBook, desc: "[E] Fantasy"}
- {id: 490, cat: Books/EBook, desc: "[E] Fantasy-Youth"}
- {id: 500, cat: Books/EBook, desc: "[E] General Fiction"}
- {id: 510, cat: Books/EBook, desc: "[E] Historical Fiction"}
- {id: 520, cat: Books/EBook, desc: "[E] History & Documentary"}
- {id: 530, cat: Books/EBook, desc: "[E] Horror"}
- {id: 540, cat: Books/EBook, desc: "[E] Humor (Comedy)"}
- {id: 560, cat: Books/EBook, desc: "[E] Literary Fiction"}
- {id: 565, cat: Books/EBook, desc: "[E] LitRPG"}
- {id: 570, cat: Books/EBook, desc: "[E] Mystery"}
- {id: 590, cat: Books/EBook, desc: "[E] Paranormal Romance"}
- {id: 600, cat: Books/EBook, desc: "[E] Reference & Educational"}
- {id: 610, cat: Books/EBook, desc: "[E] Religion & Spirituality"}
- {id: 620, cat: Books/EBook, desc: "[E] Romance"}
- {id: 630, cat: Books/EBook, desc: "[E] Sci-Fi"}
- {id: 640, cat: Books/EBook, desc: "[E] Sci-Fi & Apocalyptic"}
- {id: 645, cat: Books/EBook, desc: "[E] Science"}
- {id: 650, cat: Books/EBook, desc: "[E] Self-Help"}
- {id: 660, cat: Books/EBook, desc: "[E] Sports & Fitness"}
- {id: 665, cat: Books/EBook, desc: "[E] Suspense"}
- {id: 670, cat: Books/EBook, desc: "[E] Travel"}
- {id: 690, cat: Books/EBook, desc: "[E] Urban Fantasy & Paranormal"}
- {id: 700, cat: Books/EBook, desc: "[E] Western"}
- {id: 710, cat: Books/EBook, desc: "[E] Young Adult"}
modes:
search: [q]
book-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: info_results
type: info
label: Search results
default: "If you are getting the error <b>Login Failed, got redirected</b> then access the site with your browser and <b>mark as read</b> all PMs."
- name: info_activity
type: info
label: Account Inactivity
default: "Account retention rules:<ol><li>Any account that has unread PMs older than 14 days or has not logged in for 30 days will be suspended</li><li>Any account that has not been logged into for 90 days is deemed inactive and will thus be purged</li><li>Any account that has not been logged into for 30 days is deemed inactive and will be put on suspension until User logs in again</li><li>Users stats, points, and history are irrevocably lost when purged</li><li>Logging into the site is the ONLY way to keep an account active</li><li>SEEDING ONLY does NOT constitute site activity.</li></ol>"
login:
# using cookie method because login page simplecaptcha generates Exception: Cannot access child value on Newtonsoft.Json.Linq.JValue.
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href*="logout.php?hash_please="]
search:
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
# title, descr, series, additional_info, author, author, uploader
searchin: title
# 0 active, 1 incldead, 2 onlydead, 3 My Unsatisfied Torrents, 4 My Watch List, 5 My Uploads
incldead: 1
# 0 All Torrents, 1 Only Free Torrents
only_free: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
rows:
selector: table.browse.table.striped > tbody > tr:has(a[href^="download.php?torrent="])
fields: # some users (rank specific?) have an extra column (td:nth-child(4)) with bookmark features
categorydesc:
selector: img[src^="./pic/caticons"]
attribute: alt
title:
selector: a[href^="details.php?id="]
remove: span.has-text-red
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?torrent="]
attribute: href
files:
selector: a[href^="filelist.php?id="]
date_day:
# auto adjusted by site account profile
# Yesterday 6:00 AM
selector: td:nth-last-child(2) > div:contains("day")
optional: true
filters:
- name: fuzzytime
date_year:
# auto adjusted by site account profile
# Aug 6 2021 7:25 PM
selector: td:nth-last-child(2) > div:not(:contains("day"))
optional: true
filters:
- name: dateparse
args: "MMM d yyyyh:mm tt"
date:
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
size:
selector: td:nth-last-child(4) div:first-child
grabs:
selector: a[href^="snatches.php?id="]
seeders:
selector: a[title="Seeders"]
optional: true
default: 0
leechers:
selector: a[title="Leechers"]
optional: true
default: 0
downloadvolumefactor:
case:
tr.freeleech_color: 0
"*": 1
uploadvolumefactor:
text: 1
minimumseedtime:
# 14 days (as seconds = 14 x 24 x 60 x 60)
text: 1209600
# U-232 V4.5
@@ -0,0 +1,56 @@
---
id: acgrip
name: ACG.RIP
description: "ACG.RIP is a CHINESE Public torrent tracker for the latest anime and Japanese related torrents"
language: zh-CN
type: public
followredirect: true
encoding: UTF-8
links:
- https://acg.rip/
caps:
categories:
1: TV
modes:
search: [q]
tv-search: [q, season, ep]
settings: []
search:
paths:
- path: /
inputs:
term: "{{ .Keywords }}"
rows:
selector: tbody tr
fields:
category:
text: 1
title:
selector: td.title > span.title a
details:
selector: td.title > span.title a
attribute: href
download:
selector: td.action a
attribute: href
size:
selector: td.size
seeders:
text: 1
leechers:
text: 1
date:
# unix
selector: td.date time
attribute: datetime
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -0,0 +1,92 @@
---
id: acrossthetasman
name: Across The Tasman
description: "ATT is a Private torrent site for Rugby and other sports played in Australia"
language: en-AU
type: private
encoding: UTF-8
links:
- https://acrossthetasman.com/
caps:
categories:
1: TV/Sport
modes:
search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: date
options:
date: created
filename: title
size: size
seeders: seeders
- name: order
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
method: post
path: login.php
inputs:
vb_login_username: "{{ .Config.username }}"
vb_login_password: "{{ .Config.password }}"
cookieuser: 1
do: login
error:
- selector: div.restore:contains("invalid username or password")
test:
path: torrents.php
selector: a[href*="login.php?do=logout"]
search:
paths:
- path: torrents.php
inputs:
sort: "{{ .Config.sort }}"
order: "{{ .Config.order }}"
query: "{{ .Keywords }}"
rows:
selector: table[width='100%'][align='center']:not([class]) > tbody > tr
fields:
category:
text: 1
date:
# Feb 12, 2021
selector: td:nth-child(1)
filters:
- name: dateparse
args: "MMM dd, yyyy"
title:
selector: td:nth-child(4) > span:nth-child(1)
filters:
- name: re_replace
args: ["[\\s]+Uploaded.*", ""]
download:
selector: a[href*="attachment.php?attachmentid="]
attribute: href
seeders:
selector: td:nth-child(5)
leechers:
selector: td:nth-child(6)
grabs:
selector: td:nth-child(7)
size:
selector: td:nth-child(10)
# engine n/a
@@ -0,0 +1,188 @@
---
id: aftershock
name: Aftershock
description: "Aftershock is a HUNGARIAN Private Torrent Tracker for MOVIES / GENERAL"
language: hu-HU
type: private
encoding: iso-8859-1
links:
- https://aftershock-tracker.net/
legacylinks:
- https://aftershock-tracker.eu/
caps:
categorymappings:
- {id: 7, cat: Movies/SD, desc: "XvidEng"}
- {id: 2, cat: Movies, desc: "AfterShock Release"}
- {id: 190, cat: Movies/DVD, desc: "DVD-9Eng"}
- {id: 191, cat: Movies/DVD, desc: "DVD-9Hun"}
- {id: 1, cat: Movies/DVD, desc: "DVDEng"}
- {id: 4, cat: Movies/DVD, desc: "DVDHun"}
- {id: 23, cat: Books/EBook, desc: "E-Book"}
- {id: 3, cat: Movies, desc: "Film Pack"}
- {id: 185, cat: Audio/Lossless, desc: "FLACeng"}
- {id: 188, cat: Audio/Lossless, desc: "FLAChu"}
- {id: 173, cat: Audio/Audiobook, desc: "Hangoskönyv"}
- {id: 34, cat: Movies/HD, desc: "HDEng"}
- {id: 33, cat: Movies/HD, desc: "HDHun"}
- {id: 182, cat: XXX/x264, desc: "HDXXX"}
- {id: 12, cat: PC/Games, desc: "JátékIso"}
- {id: 130, cat: Console, desc: "JátékKonzol"}
- {id: 38, cat: Console/PSP, desc: "JátékPS2"}
- {id: 44, cat: Console, desc: "Jatekrip"}
- {id: 131, cat: Console/XBox, desc: "JátékX-box"}
- {id: 140, cat: Other, desc: "Képek"}
- {id: 141, cat: Other, desc: "Klipek"}
- {id: 154, cat: Other, desc: "MeseEng"}
- {id: 155, cat: Other, desc: "MeseHun"}
- {id: 176, cat: Other, desc: "Mikro HDEng"}
- {id: 174, cat: Other, desc: "Mikro HDHun"}
- {id: 37, cat: PC/Mobile-Other, desc: "MobilPDA"}
- {id: 35, cat: PC, desc: "ProgramEgyéb"}
- {id: 170, cat: PC/ISO, desc: "ProgramIso"}
- {id: 24, cat: TV, desc: "Sorozat Eng"}
- {id: 25, cat: TV, desc: "Sorozat Hun"}
- {id: 167, cat: Movies/SD, desc: "Xvid CamEng"}
- {id: 166, cat: Movies/SD, desc: "Xvid CamHun"}
- {id: 9, cat: Movies/SD, desc: "XvidHun"}
- {id: 169, cat: XXX/ImageSet, desc: "XXX Képek"}
- {id: 39, cat: XXX, desc: "XXXFilm"}
- {id: 28, cat: Audio, desc: "ZeneEng"}
- {id: 29, cat: Audio, desc: "ZeneHun"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 0
options:
0: created
6: seeders
4: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_activity
type: info
label: Account Inactivity
default: "You will be immediately banned if you have not logged in for more than 6 weeks."
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: td.text:contains("Hiba")
message:
selector: td.text
test:
path: /
selector: a[href*="/logout.php"]
search:
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
# 0 active, 1 incldead, 2 onlydead, 3 freeleech, 4 2x, 5 server
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
rows:
selector: table tbody#torrent_background tr:has(a.index):has(span.icon_check_alt)
filters:
- name: andmatch
fields:
category:
selector: a[href*="/browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a.index
attribute: href
filters:
- name: querystring
args: name
- name: urldecode
details:
selector: a[href*="/details.php?id="]
attribute: href
download:
selector: a.index
attribute: href
filters:
- name: urldecode
poster:
selector: a[onmouseover]
attribute: onmouseover
filters:
- name: regexp
args: src=([^\s]+)
- name: replace
args: ["\"", ""]
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
genre:
selector: span.box
description:
text: "{{ .Result.genre }}"
files:
selector: td:nth-last-child(6)
size:
selector: td:nth-last-child(5)
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(2)
date:
selector: td font
filters:
- name: re_replace
args: ["\\s", " "]
- name: append
args: " +01:00" # CET
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
downloadvolumefactor:
case:
span.icon_gift: 0
"*": 1
uploadvolumefactor:
case:
span.icon_upload: 2
"*": 1
minimumratio:
text: 0.31
# XBT v3
+180
View File
@@ -0,0 +1,180 @@
---
id: afun
name: AFUN
description: "AFUN is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://www.ptlover.cc/
caps:
categorymappings:
- {id: 407, cat: TV/Sport, desc: "Sports/赛事"}
- {id: 414, cat: TV, desc: "TV Shows/综艺"}
- {id: 408, cat: Audio, desc: "HQ Audio/HQ音频"}
- {id: 409, cat: Other, desc: "Misc/其他"}
- {id: 407, cat: TV/Sport, desc: "TV Sport/体育"}
- {id: 406, cat: Audio/Video, desc: "Music Videos/MV"}
- {id: 403, cat: TV, desc: "TV Talk Shows/脱口秀"}
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
- {id: 405, cat: TV/Anime, desc: "Anime/动画"}
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
- {id: 401, cat: Movies, desc: "Movies/电影"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "Cherish your user account. Inactive accounts will be deleted based on the following rules:<ol><li>Veteran User or above will never be deleted.</li><li>Elite User or above will never be deleted if parked (at User CP).</li><li>Parked accounts will be deleted if users have not logged in for more than 400 days in a row.</li><li>Unparked accounts will be deleted if users have not logged in for more than 150 days in a row.</li><li>Accounts with both uploaded and downloaded amount being 0 will be deleted if users have not logged in for more than 100 days in a row.</li></ol>"
login:
# using cookie method because site regularly disables login page for certain events during the year
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
# searching in description causes HTTP 500 so we will not support doubanid searching
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
# 0: include dead, 1: alive, 2: dead
incldead: 0
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
# 0: title, 1: description, 3: uploader, 4: imdburl
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
# 0: AND, 2: exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
# Support in NexusPHP so bots don't pollute trending searches:
notnewword: 1
rows:
selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
fields:
category:
selector: a[href^="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title_default:
selector: a[href^="details.php?id="]
title:
selector: a[title][href^="details.php?id="]
attribute: title
optional: true
default: "{{ .Result.title_default }}"
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
poster:
selector: img[data-src]
attribute: data-src
imdbid:
# site currently only has a badge and rating, the id is not present. just in case a future update.
selector: a[href*="imdb.com/title/tt"]
attribute: href
doubanid:
# site currently only has a badge and rating, the id is not present. just in case a future update.
selector: a[href*="movie.douban.com/subject/"]
attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td:nth-child(4) > span[title]
attribute: title
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
selector: td:nth-child(4):not(:has(span))
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
selector: td:nth-child(5)
seeders:
selector: td:nth-child(6)
leechers:
selector: td:nth-child(7)
grabs:
selector: td:nth-child(8)
downloadvolumefactor:
case:
img.pro_free: 0
img.pro_free2up: 0
img.pro_50pctdown: 0.5
img.pro_50pctdown2up: 0.5
img.pro_30pctdown: 0.3
"*": 1
uploadvolumefactor:
case:
img.pro_50pctdown2up: 2
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
minimumratio:
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# NexusPHP v1.9.0 2025-02-06
+211
View File
@@ -0,0 +1,211 @@
---
id: agsvpt
name: AGSVPT
description: "AGSVPT (Arctic Global Seed Vault) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
language: zh-CN
type: private
encoding: UTF-8
requestDelay: 2
links:
- https://www.agsvpt.com/
- https://pt.agsvpt.cn/
legacylinks:
- https://abroad.agsvpt.com/
caps:
# dont forget to update the path categories in the search block
categorymappings:
- {id: 401, cat: Movies, desc: "Movie(电影)", default: true}
- {id: 402, cat: TV, desc: "TV Series(电视剧)", default: true}
- {id: 403, cat: TV, desc: "TV Shows(综艺)", default: true}
- {id: 405, cat: TV/Anime, desc: "Anime(动漫)", default: true}
- {id: 404, cat: TV/Documentary, desc: "Documentaries(纪录片)", default: true}
- {id: 419, cat: TV, desc: "Playlet(短剧)", default: true}
- {id: 411, cat: Audio, desc: "Music(音乐)", default: true}
- {id: 406, cat: Audio/Video, desc: "MV(演唱", default: true}
- {id: 407, cat: TV/Sport, desc: "Sports(体育)", default: true}
- {id: 408, cat: Audio/Audiobook, desc: "Audio(音频)", default: true}
- {id: 413, cat: PC/Games, desc: "Game(游戏)", default: false}
- {id: 416, cat: Books/Comics, desc: "Comic(漫画)", default: false}
- {id: 412, cat: PC/0day, desc: "Software(软件)", default: false}
- {id: 418, cat: Other, desc: "Picture(图片)", default: false}
- {id: 415, cat: Books/EBook, desc: "E-Book(电子书/有声书)", default: false}
- {id: 417, cat: Other, desc: "Education(学习资料)", default: false}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, doubanid]
movie-search: [q, imdbid, doubanid]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: 2facode
type: text
label: 2FA code
- name: info_2fa
type: info
label: "About 2FA code"
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the AGSVPT Web Site. Otherwise just leave it empty."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>每页种子数:每页显示</b><i>(Torrents per page:)</i> setting to <b>100</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "Account retention rules:<ol><li>Elite User and above will not have their account deleted after parking (in the Control Panel)</li><li>Users who do not log in for 400 consecutive days will be disabled.</li><li>Users with a parked account will be disabled if they do not log in for 150 consecutive days</li><li>Users who have no traffic (i.e., uploading/downloading data is 0) within 7 days of new registration will be disabled</li><li>Users with no traffic (i.e. both upload/download data is 0) who do not log in for 30 consecutive days will be disabled.</li></ol>"
login:
path: takelogin.php
method: post
inputs:
secret: ""
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
two_step_code: "{{ .Config.2facode }}"
logout: ""
securelogin: ""
ssl: yes
trackerssl: yes
error:
- selector: td.embedded:has(h2:contains("失败"))
message:
selector: td.text
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: torrents.php
categories: [401, 402, 403, 405, 404, 419, 411, 406, 407, 408]
- path: special.php
categories: [413, 416, 412, 418, 415, 417]
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
# 0 incldead, 1 active, 2 dead
incldead: 0
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
# 0 title, 1 descr, 3 uploader, 4 imdburl
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
# 0 AND, 2 exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
notnewword: 1
rows:
selector: table.torrents > tbody > tr:has(table.torrentname)
fields:
category:
selector: a[href^="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title_default:
selector: a[href^="details.php?id="]
title:
selector: a[title][href^="details.php?id="]
attribute: title
optional: true
default: "{{ .Result.title_default }}"
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
poster:
selector: img[data-src]
attribute: data-src
date_elapsed:
# time type: time elapsed (default)
selector: td.rowfollow:nth-child(4) > span[title]
attribute: title
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
selector: td.rowfollow:nth-child(4):not(:has(span))
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
selector: td.rowfollow:nth-child(5)
seeders:
selector: td.rowfollow:nth-child(6)
leechers:
selector: td.rowfollow:nth-child(7)
grabs:
selector: td.rowfollow:nth-child(8)
downloadvolumefactor:
case:
img.pro_free: 0
img.pro_free2up: 0
img.pro_50pctdown: 0.5
img.pro_50pctdown2up: 0.5
img.pro_30pctdown: 0.3
"*": 1
uploadvolumefactor:
case:
img.pro_50pctdown2up: 2
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
description_verified:
case:
span[title="通过"]: "Verified:"
span[title="未审"]: "Unverified:"
span[title="拒绝"]: "Banned:"
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
filters:
- name: prepend
args: "{{ .Result.description_verified }} "
# NexusPHP v1.8.12 2024-04-05
@@ -0,0 +1,136 @@
---
id: aidoruonline
name: Aidoru!Online
description: "Aidoru!Online is a JAPANESE Private Torrent Tracker for Female Japanese Idol related files"
language: en-US
type: private
encoding: UTF-8
links:
- https://aidoru-online.me/
legacylinks:
- https://aidoru-online.org/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "BD/DVDISO"}
- {id: 2, cat: Movies, desc: "BD/DVD-RIP"}
- {id: 3, cat: TV, desc: "TV"}
- {id: 4, cat: TV, desc: "Perf"}
- {id: 5, cat: TV, desc: "PV"}
- {id: 6, cat: TV, desc: "Webstream"}
- {id: 7, cat: Other, desc: "Image"}
- {id: 8, cat: Audio, desc: "Audio"}
- {id: 9, cat: Audio, desc: "Album"}
- {id: 10, cat: Audio, desc: "Single"}
- {id: 11, cat: Audio, desc: "Radio"}
- {id: 12, cat: Other, desc: "Misc"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: id
options:
id: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_results
type: info
label: Search results
default: "If you are getting the error <b>Found no results while trying to browse this tracker</b> then first access the site with your browser and check that your ratio is <b>not below 0.8</b>, otherwise the site will not return download links to the indexer. This does not apply to freeleech torrents."
login:
# using cookie method because login page returns 0 bytes with a cookie flog=6
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: /
selector: a[href^="torrents-details.php?id="]
search:
paths:
# https://aidoru-online.me/get_ttable.php?pcat=Show+All&scat=3%2C4%2C5%2C6&subbed=&fl=&resd=&p=0&searchstr=peace&deadlive=0&sortcol=id&sortorder=desc&startdt=&enddt=
- path: get_ttable.php
inputs:
pcat: "Show+All"
scat: "{{ join .Categories \",\" }}"
subbed: ""
fl: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
resd: ""
p: 0
searchstr: "{{ .Keywords }}"
deadlive: 1
sortcol: "{{ .Config.sort }}"
sortorder: "{{ .Config.type }}"
startdt: ""
enddt: ""
# does not support imdbid search and does not return imdb link in results
rows:
selector: table.ttable_headinner tr.t-row:has(a[href^="download.php?id="])
fields:
categorydesc:
selector: a.category-link
filters:
- name: split
args: [" ", 1]
title:
selector: a[href^="torrents-details.php?id="]
attribute: title
details:
selector: a[href^="torrents-details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
size:
selector: td.ttable_size
seeders:
selector: td:nth-last-child(4)
leechers:
selector: td:nth-last-child(3)
grabs:
selector: td:nth-last-child(2)
date:
selector: td:last-child
# auto adjusted by site account profile
filters:
- name: dateparse
args: "yyMMdd HH:mm:ss"
downloadvolumefactor:
case:
img[src="images/freeleech.png"]: 0 # dl not counted
img[src="images/freeleech2.png"]: 0 # dl not counted & upload 2x
"*": 1
uploadvolumefactor:
case:
img[src="images/freeleech2.png"]: 2
"*": 1
minimumratio:
text: 0.8
# TorrentTrader v2-svn
@@ -0,0 +1,194 @@
---
id: aither-api
name: Aither (API)
description: "Aither is a Private Torrent Tracker for HD MOVIES / TV"
language: en-US
type: private
encoding: UTF-8
# status https://status.aither.cc/
links:
- https://aither.cc/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movie"}
- {id: 9, cat: TV/Sport, desc: "Sport"}
- {id: 2, cat: TV, desc: "TV"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
movie-search: [q, imdbid, tmdbid]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://aither.cc/\" target=\"_blank\">Aither</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: single_file_release_use_filename
type: checkbox
label: Use filename as title for single file releases
default: true
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_activity
type: info
label: Account Inactivity
default: "You must log in to the Aither web site with your browser once every90 days to prevent your account from getting disabled."
login:
path: /api/torrents
method: get
inputs: {} # TODO: remove in v10
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- path: api/torrents/filter
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"
episodeNumber: "{{ .Query.Ep }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
fields:
category:
selector: category_id
title_optional:
selector: name
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
title:
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
selector: download_link
poster:
selector: meta.poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
genre:
selector: meta.genres
filters:
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
args: ["(?i)(TV Movie)", "TV_Movie"]
- name: replace
args: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
selector: created_at
filters:
- name: append
args: " +00:00" # GMT
- name: dateparse
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.4 but torrents must be seeded for 5 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 5 days (as seconds = 5 x 24 x 60 x 60)
text: 432000
# json UNIT3D 9.1.7
+170
View File
@@ -0,0 +1,170 @@
---
id: alingpt
name: alingPT
description: "alingPT is a CHINESE Private Torrent Tracker for MOVIES / TV"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://pt.aling.de/
caps:
categorymappings:
- {id: 405, cat: TV/Anime, desc: "Animations/动画"}
- {id: 402, cat: TV, desc: "TV Series/电视剧"}
- {id: 401, cat: Movies, desc: "Movies/电影"}
- {id: 404, cat: TV/Documentary, desc: "Documentary/纪录片"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "Account retention rules:<ol><li>Veteran User and above will be retained forever</li><li>Accounts parked will not be deleted</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 200 consecutive days</li><li>Users who have no traffic (i.e. upload/download data are both 0) will be deleted if they do not log in for 60 consecutive days.</li></ol>"
login:
# using cookie method because site does a JS call to API/Challenge via JQuery to load response parm required for takelogin.php
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
# 0 incldead, 1 active, 2 dead
incldead: 0
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
# 0 title, 1 descr, 3 uploader, 4 imdburl
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
# 0 AND, 2 exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
notnewword: 1
rows:
selector: table.torrents > tbody > tr:has(table.torrentname)
fields:
category:
selector: a[href^="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title_default:
selector: a[href^="details.php?id="]
title:
selector: a[title][href^="details.php?id="]
attribute: title
optional: true
default: "{{ .Result.title_default }}"
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
poster:
selector: img[data-src]
attribute: data-src
imdbid:
# site currently only has a badge and rating, the id is not present. just in case a future update.
selector: a[href*="imdb.com/title/tt"]
attribute: href
doubanid:
# site currently only has a badge and rating, the id is not present. just in case a future update.
selector: a[href*="movie.douban.com/subject/"]
attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td.rowfollow:nth-child(4) > span[title]
attribute: title
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
selector: td.rowfollow:nth-child(4):not(:has(span))
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
selector: td.rowfollow:nth-child(5)
seeders:
selector: td.rowfollow.rowfollow:nth-child(6)
leechers:
selector: td.rowfollow:nth-child(7)
grabs:
selector: td.rowfollow:nth-child(8)
downloadvolumefactor:
case:
img.pro_free: 0
img.pro_free2up: 0
img.pro_50pctdown: 0.5
img.pro_50pctdown2up: 0.5
img.pro_30pctdown: 0.3
"*": 1
uploadvolumefactor:
case:
img.pro_50pctdown2up: 2
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
minimumratio:
text: 2.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.9.4 2025-06-01
@@ -0,0 +1,251 @@
---
id: amigosshare
name: Amigos Share Club
description: "Amigos Share Club (ASC) is a BRAZILIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: pt-BR
type: private
encoding: UTF-8
requestDelay: 2
links:
- https://cliente.amigos-share.club/
legacylinks:
- http://amigos-share.club/
- https://amigos-share.club/
caps:
categorymappings:
- {id: 75, cat: XXX, desc: "Adultos: Hentai"}
- {id: 107, cat: XXX, desc: "Adultos: Gay"}
- {id: 108, cat: XXX, desc: "Adultos: Transex/Female"}
- {id: 74, cat: XXX, desc: "Adultos: XXX"}
- {id: 146, cat: XXX, desc: "Adultos: OnlyFans"}
- {id: 69, cat: TV/Anime, desc: "Anime: Anime"}
- {id: 116, cat: TV/Anime, desc: "Anime: Filmes"}
- {id: 118, cat: TV/Anime, desc: "Anime: Séries"}
- {id: 21, cat: PC/0day, desc: "Aplicativos: Windows"}
- {id: 28, cat: PC/Mobile-iOS, desc: "Aplicativos: iPod"}
- {id: 27, cat: PC/Mobile-iOS, desc: "Aplicativos: iPad"}
- {id: 26, cat: PC/Mobile-iOS, desc: "Aplicativos: iPhone"}
- {id: 25, cat: PC, desc: "Aplicativos: Linux"}
- {id: 23, cat: PC/Mobile-Android, desc: "Aplicativos: Android"}
- {id: 22, cat: PC/Mac, desc: "Aplicativos: Mac"}
- {id: 73, cat: Other, desc: "Cursos: Video Aula"}
- {id: 72, cat: Other, desc: "Cursos: Apostila"}
- {id: 71, cat: Other, desc: "Cursos: Cursos"}
- {id: 67, cat: Books/EBook, desc: "Ebook: Livros"}
- {id: 112, cat: Books/Comics, desc: "Ebook: HQs"}
- {id: 147, cat: Books/Comics, desc: "Ebook: Mangas"}
- {id: 121, cat: Audio/Audiobook, desc: "Ebook: Audio-book"}
- {id: 68, cat: Books/Mags, desc: "Ebook: Revistas"}
- {id: 119, cat: Movies, desc: "Filmes:"}
- {id: 70, cat: XXX, desc: "Fotos: Revistas, Livros e Fotos"}
- {id: 51, cat: Console/PS3, desc: "Jogos: Ps3"}
- {id: 54, cat: Console/XBox 360, desc: "Jogos: Xbox360"}
- {id: 109, cat: Console, desc: "Jogos: Emulação"}
- {id: 110, cat: Console, desc: "Jogos: Nintendo Switch"}
- {id: 52, cat: Console, desc: "Jogos: Dreamcast"}
- {id: 50, cat: Console, desc: "Jogos: Ps2"}
- {id: 49, cat: Console, desc: "Jogos: Ps1"}
- {id: 48, cat: PC/Mac, desc: "Jogos: Mac"}
- {id: 55, cat: Console/Wii, desc: "Jogos: Wii"}
- {id: 82, cat: Console/PSP, desc: "Jogos: PSP"}
- {id: 47, cat: PC/Games, desc: "Jogos: Pc"}
- {id: 61, cat: Console, desc: "Jogos: Emuladores e Roms"}
- {id: 58, cat: Console/NDS, desc: "Jogos: Nintendo DS"}
- {id: 57, cat: Console, desc: "Jogos: Android"}
- {id: 56, cat: Console/XBox, desc: "Jogos: Xbox"}
- {id: 78, cat: Console/XBox One, desc: "Jogos: Xbox One"}
- {id: 79, cat: Console/PS4, desc: "Jogos: Ps4"}
- {id: 129, cat: Other, desc: "Outros: Fonts"}
- {id: 128, cat: Other, desc: "Outros: Scripts"}
- {id: 127, cat: Other, desc: "Outros: Add-ons"}
- {id: 130, cat: Other, desc: "Outros: MOD"}
- {id: 125, cat: Other, desc: "Outros: Pack de Imagens"}
- {id: 124, cat: Other, desc: "Outros: Vetores"}
- {id: 122, cat: Other, desc: "Outros: Plug-ins"}
- {id: 126, cat: Other, desc: "Outros: Extensões"}
- {id: 120, cat: TV, desc: "Series:"}
- {id: 64, cat: TV, desc: "Tv: Fechada"}
- {id: 62, cat: TV/Sport, desc: "Tv: Esportes"}
- {id: 63, cat: TV, desc: "Tv: Aberta"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: info_results
type: info
label: "Search results"
default: "Set <b>Exibição De Torrents</b> to <b>Lista</b> in your <b>Minhas Configurações</b>.<br />Using <b>Capas</b> is not supported and will return 0 results."
- name: freeleech
type: checkbox
label: Filter freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: id
options:
id: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_activity
type: info
label: Account Inactivity
default: "Inactive accounts, that is, without access for 90 days (3 months), will be automatically deleted by the system; with no possibility of reactivation."
login:
path: account-login.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: yes
error:
- selector: div.alert-error
test:
path: torrents-search.php
selector: a[href="account-logout.php"]
search:
paths:
# http://amigos-share.club/torrents-search.php?search=&sort=id&order=desc&page=1
- path: torrents-search.php
# site displays just 20 results, no profile options found to change this, so we attempt to fetch 5 pages
- path: torrents-search.php
inputs:
page: 1
- path: torrents-search.php
inputs:
page: 2
- path: torrents-search.php
inputs:
page: 3
- path: torrents-search.php
inputs:
page: 4
inputs:
# note: site does not support multi cat search.
# replace spaces with wildcard (percent symbol) as site's default search is exact string.
search: "{{ re_replace .Keywords \"[\\s]+\" \"%\" }}"
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
# torrents-search.php does not support imdbid search or return imdb links.
keywordsfilters:
# drop the year from searches since site titles do not include year
- name: re_replace
args: ["(\\s*\\b((19|20)\\d{2})\\b)", ""]
rows:
selector: "div#fancy-list-group ul.list-group li.list-group-item{{ if .Config.freeleech }}:has(span.badge-success:contains(\"FREE\")){{ else }}{{ end }}"
fields:
category_default:
# tv and movie just have an image :-b
selector: div.list-group-item-addon img
attribute: src
optional: true
case:
"[src$=\"/filmes2.fw.png\"]": 119
"[src$=\"/seriados.fw.png\"]": 120
category:
# while the rest have a href with a cat number \o/
selector: a[href*="cat="]
attribute: href
optional: true
default: "{{ .Result.category_default }}"
filters:
- name: querystring
args: cat
_quality:
selector: div.list-group-item-content p.m-0 span.badge-primary:contains("1080p"), div.list-group-item-content p.m-0 span.badge-primary:contains("720p"), div.list-group-item-content p.m-0 span.badge-primary:contains("4k")
optional: true
filters:
- name: replace
args: ["4k", "2160p"]
_year:
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#246AB6;"]
optional: true
_type:
selector: div.list-group-item-content p.m-0 span.badge-info:contains("Rip"), div.list-group-item-content p.m-0 span.badge-info:contains("WEB-"), div.list-group-item-content p.m-0 span.badge-info:contains("TV"), div.list-group-item-content p.m-0 span.badge-info:contains("Blu-Ray"), div.list-group-item-content p.m-0 span.badge-info:contains("BD50"), div.list-group-item-content p.m-0 span.badge-info:contains("MUX"), div.list-group-item-content p.m-0 span.badge-info:contains("DVD"), div.list-group-item-content p.m-0 span.badge-info:contains("320"), div.list-group-item-content p.m-0 span.badge-info:contains("CAM"), div.list-group-item-content p.m-0 span.badge-info:contains("rip")
optional: true
_language:
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#b6249d;"]
optional: true
title:
selector: a[href*="torrents-details.php?id="], a[href*="details-misc.php?id="]
filters:
# strip out the non-english title [to the left of the brackets] and drop the brackets enclosing the english title
- name: re_replace
args: ["^(.*?)[\\(](.*?)[\\)](.*?)$", "$2$3"]
# add the year to the title
- name: append
args: "{{ if .Result._year }} {{ .Result._year }}{{ else }}{{ end }}"
# add the quality to the title
- name: append
args: "{{ if .Result._quality }} {{ .Result._quality }}{{ else }}{{ end }}"
# add the type to the title
- name: append
args: "{{ if .Result._type }} {{ .Result._type }}{{ else }}{{ end }}"
# add audio to the title
- name: append
args: "{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}"
- name: re_replace
args: ["(Dual|[Nn]acional|[Dd]ublado)", "Brazilian $1"]
details:
selector: a[href*="torrents-details.php?id="], a[href*="details-misc.php?id="]
attribute: href
download:
selector: a[href*="download.php?id="]
attribute: href
date:
selector: p:contains("Lançado:")
# auto adjusted by site account profile
optional: true
default: now
filters:
- name: regexp
args: "Lançado: (.+?)$"
- name: re_replace
args: [" (\\d:)", " 0$1"]
- name: dateparse
args: "dd/MM/yy HH:mm:ss"
size:
selector: div.list-group-item-content p.m-0 span.badge-info
seeders:
selector: div.list-group-item-controls a:nth-child(1)
leechers:
selector: div.list-group-item-controls a:nth-child(2)
grabs:
selector: div.list-group-item-controls a:nth-child(3)
genre:
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#1c38c2;"]
description:
text: "{{ .Result.genre }}"
downloadvolumefactor:
case:
"span.badge-success:contains(\"FREE\")": 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.0
# engine n/a
@@ -0,0 +1,201 @@
---
id: animelayer
name: AnimeLayer
description: "AnimeLayer is a RUSSIAN Semi-Private Torrent Tracker for ANIME"
language: ru-RU
type: semi-private
encoding: UTF-8
links:
- https://www.animelayer.ru/
caps:
categorymappings:
- {id: аниме, cat: TV/Anime, desc: Аниме}
- {id: музыка, cat: Audio, desc: Музыка}
- {id: манга, cat: Books, desc: Манга}
- {id: дорама, cat: TV, desc: Дорама}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: category-id
type: select
label: Category
default: anime
options:
anime: Аниме
music: Музыка
manga: Манга
dorama: Дорама
login:
path: login.php
method: form
form: form#loginForm
inputs:
login: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: div.error
test:
path: /
selector: a[href^="/auth/logout/"]
search:
paths:
- path: "torrents/{{ .Config.category-id }}/"
inputs:
q: "{{ .Keywords }}"
rows:
selector: ul.torrents-list li.torrent-item:has(a[href^="/torrent/"])
fields:
category:
selector: label.category
_resolution:
selector: div.description
filters:
- name: regexp
args: "Разрешение:\\s+\\d{3,4}\\D(\\d{3,4})"
title:
selector: img
attribute: alt
filters:
- name: append
args: "{{ if .Result._resolution }} [{{ .Result._resolution }}p]{{ else }}{{ end }}"
details:
selector: a[href^="/torrent/"]
attribute: href
download:
selector: a[href^="/torrent/"]
attribute: href
filters:
- name: append
args: download/
poster:
selector: img
attribute: data-original
size:
selector: div.info
filters:
- name: split
args: ["|", 2]
date_noyear:
# <span class="gray">Добавлен:</span>&nbsp;18 августа в&nbsp;21:39
selector: div.info
filters:
- name: regexp
args: "н:\\s(\\d{1,2} \\D{3,8} в\\s\\d{1,2}:\\d{2})"
- name: replace
args: ["\xA0", " "]
- name: replace
args: ["Обновлён:", ""]
- name: replace
args: ["Добавлен:", ""]
- name: replace
args: [" в ", " "]
- name: replace
args: ["января", "January {{ .Today.Year }}"]
- name: replace
args: ["февраля", "February {{ .Today.Year }}"]
- name: replace
args: ["марта", "March {{ .Today.Year }}"]
- name: replace
args: ["апреля", "April {{ .Today.Year }}"]
- name: replace
args: ["мая", "May {{ .Today.Year }}"]
- name: replace
args: ["июня", "June {{ .Today.Year }}"]
- name: replace
args: ["июля", "July {{ .Today.Year }}"]
- name: replace
args: ["августа", "August {{ .Today.Year }}"]
- name: replace
args: ["сентября", "September {{ .Today.Year }}"]
- name: replace
args: ["октября", "October {{ .Today.Year }}"]
- name: replace
args: ["ноября", "November {{ .Today.Year }}"]
- name: replace
args: ["декабря", "December {{ .Today.Year }}"]
- name: re_replace
args: ["\\s(\\d\\:)", " 0$1"]
date_year:
# <span class="gray">Обновлён:</span>&nbsp;3 октября 2019 в&nbsp;6:02
selector: div.info
filters:
- name: regexp
args: "н:\\s(\\d{1,2} \\D{3,8} \\d{4} в\\s\\d{1,2}:\\d{2})"
- name: replace
args: ["\xA0", " "]
- name: replace
args: ["Обновлён:", ""]
- name: replace
args: ["Добавлен:", ""]
- name: replace
args: [" в ", " "]
- name: replace
args: ["января", "January"]
- name: replace
args: ["февраля", "February"]
- name: replace
args: ["марта", "March"]
- name: replace
args: ["апреля", "April"]
- name: replace
args: ["мая", "May"]
- name: replace
args: ["июня", "June"]
- name: replace
args: ["июля", "July"]
- name: replace
args: ["августа", "August"]
- name: replace
args: ["сентября", "September"]
- name: replace
args: ["октября", "October"]
- name: replace
args: ["ноября", "November"]
- name: replace
args: ["декабря", "December"]
- name: re_replace
args: ["\\s(\\d\\:)", " 0$1"]
date:
text: "{{ if or .Result.date_year .Result.date_noyear }}{{ or .Result.date_year .Result.date_noyear }}{{ else }}now{{ end }}"
seeders:
selector: div.info
filters:
- name: split
args: ["|", 0]
leechers:
selector: div.info
filters:
- name: split
args: ["|", 1]
_subtitles:
filters:
- name: regexp
args: "Субтитры:(.+?)\\n"
_language:
filters:
- name: regexp
args: "Язык:(.+?)\\n"
description:
text: "{{ if .Result._subtitles }}Субтитры: {{ .Result._subtitles }}{{ else }}{{ end }} - {{ if .Result._language }}Язык: {{ .Result._language }}{{ else }}{{ end }}"
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -0,0 +1,201 @@
---
id: animelovers-api
name: AnimeLovers (API)
description: "AnimeLovers is a Private tracker for ANIME / MANGA / DOUNGUA / MANHWA"
language: en-US
type: private
encoding: UTF-8
links:
- https://animelovers.club/
caps:
categorymappings:
- {id: 1, cat: Movies/Other, desc: "Anime Movies"}
- {id: 2, cat: TV/Anime, desc: "Anime Series"}
- {id: 3, cat: TV/Anime, desc: "Anime OVA"}
- {id: 11, cat: TV/Anime, desc: "Donghua Anime"}
- {id: 9, cat: XXX, desc: "Doujinshi"}
- {id: 4, cat: Books/Comics, desc: "Manhua/Manhwa"}
- {id: 8, cat: Books/Comics, desc: "Manga"}
- {id: 7, cat: XXX, desc: "Hentai"}
- {id: 10, cat: Audio/Lossless, desc: "Lossless Music"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://animelovers.club/\" target=\"_blank\">AnimeLovers</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: single_file_release_use_filename
type: checkbox
label: Use filename as title for single file releases
default: true
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_activity
type: info
label: Account Inactivity
default: "In order to not be disabled, you are required to login to AnimeLovers at least once every 90 days."
login:
path: /api/torrents
method: get
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- path: api/torrents/filter
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
seasonNumber: "{{ .Query.Season }}"
episodeNumber: "{{ .Query.Ep }}"
imdbId: "{{ .Query.IMDBIDShort }}"
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
fields:
category:
selector: category_id
title_optional:
selector: name
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
title:
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
selector: download_link
infohash:
selector: info_hash
poster:
selector: meta.poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
genre:
selector: meta.genres
filters:
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: re_replace
args: ["(?i)(TV Movie)", "TV_Movie"]
- name: replace
args: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
selector: created_at
filters:
- name: append
args: " +00:00" # GMT
- name: dateparse
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 0.4
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 9.1.5
@@ -0,0 +1,160 @@
---
id: animetorrentsro
name: AnimeTorrents.ro
description: "AnimeTorrents.ro (Anime Torrents Romania) is a ROMANIAN Private Torrent Tracker for ANIME / MANGA"
language: ro-RO
type: private
encoding: UTF-8
links:
- https://animetorrents.ro/
caps:
categorymappings:
- {id: 1, cat: TV/Anime, desc: "ANIME"}
- {id: 1, cat: Movies/Other, desc: "ANIME"} # for Radarr
- {id: 2, cat: Books/Comics, desc: "MANGA"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: cat-id
type: select
label: Category
default: 0
options:
0: All categories
1: Anime
2: Manga
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "Inactive accounts under VIP and without parked are automatically deleted after about a year."
login:
path: login.php
method: form
form: form
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
referer: /
selectorinputs:
csrf_token:
selector: input[name="csrf_token"]
attribute: value
error:
- selector: table.main:contains("esuat")
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
# https://animetorrents.ro/browse.php?search=2023&incldead=1&blah=0&cat=0
- path: browse.php
inputs:
search: "{{ .Keywords }}"
# 0 active, 1 all, 2 dead, 3 free
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
# 0 name, 1 genre
blah: 0
# site does not support multiple cats
cat: "{{ .Config.cat-id }}"
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
# does not support imdbid search
rows:
selector: td > table > tbody > tr:has(a[href^="download.php/"])
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php?id="]
filters:
- name: re_replace
args: ["^(\\[.+?\\]).(.+)", "$2.$1"]
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php/"]
attribute: href
poster:
selector: a[onmouseover]
attribute: onmouseover
filters:
- name: regexp
args: "src=(.+?) width"
files:
selector: td:nth-last-child(8)
date:
selector: td:nth-last-child(6)
filters:
- name: append
args: " +00:00" # auto adjusted by site account profile
- name: dateparse
args: "dd-MM-yyyyHH:mm:ss zzz"
size:
selector: td:nth-last-child(5)
grabs:
selector: td:nth-last-child(4)
seeders:
selector: td:nth-last-child(3)
leechers:
selector: td:nth-last-child(2)
downloadvolumefactor:
case:
img[alt="Free"]: 0
"*": 1
uploadvolumefactor:
text: 1
genre:
selector: a[href^="download.php/"]
description:
text: "{{ .Result.genre }}"
minimumratio:
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# engine n/a
@@ -0,0 +1,206 @@
---
id: animeworld-api
name: AnimeWorld (API)
description: "AnimeWorld (AW) is a GERMAN Private Torrent Tracker for ANIME / MANGA / HENTAI"
language: de-DE
type: private
encoding: UTF-8
links:
- https://animeworld.cx/
caps:
categorymappings:
- {id: 1, cat: Movies/Other, desc: "Anime Filme"}
- {id: 2, cat: TV/Anime, desc: "Anime Serien"}
- {id: 3, cat: Audio, desc: "Anime Musik / OSTs"}
- {id: 4, cat: PC/Games, desc: "Anime Spiele"}
- {id: 5, cat: XXX, desc: "Anime Hentai"}
- {id: 6, cat: PC, desc: "Software"}
- {id: 7, cat: Other, desc: "Sonstiges"}
- {id: 8, cat: Movies, desc: "Filme"}
- {id: 9, cat: TV, desc: "Serien"}
- {id: 10, cat: PC/Games, desc: "Spiele"}
- {id: 11, cat: Audio, desc: "Musik"}
- {id: 12, cat: Books, desc: "Manga"}
- {id: 13, cat: Movies, desc: "Cartoon Filme"}
- {id: 14, cat: TV, desc: "Cartoon Serie"}
- {id: 15, cat: XXX, desc: "H-Manga / Doujinshi"}
modes:
search: [q]
tv-search: [q, season, ep, tvdbid, tmdbid]
movie-search: [q, tmdbid]
music-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://animeworld.cx/\" target=\"_blank\">AnimeWorld</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: single_file_release_use_filename
type: checkbox
label: Use filename as title for single file releases
default: true
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_activity
type: info
label: Account Inactivity
default: "Accounts are set as inactive by the system after 180 days. After 270 days in inactive status, the accounts are automatically deleted from the system."
login:
path: /api/torrents
method: get
inputs: {} # TODO: remove in v10
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- path: api/torrents/filter
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
# seasonNumber: "{{ .Query.Season }}" # disabled due to Prowlarr/Indexers#486
# episodeNumber: "{{ .Query.Ep }}" # disabled due to Prowlarr/Indexers#486
# imdbId: "{{ .Query.IMDBIDShort }}" # disabled due to #14776
tmdbId: "{{ .Query.TMDBID }}"
tvdbId: "{{ .Query.TVDBID }}"
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
fields:
category:
selector: category_id
title_optional:
selector: name
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
title:
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
selector: download_link
infohash:
selector: info_hash
poster:
selector: meta.poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
genre:
selector: meta.genres
filters:
- name: re_replace
args: ["(?i)(Science Fiction)", "Science_Fiction"]
- name: replace
args: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
selector: created_at
filters:
- name: append
args: " +00:00" # GMT
- name: dateparse
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
# global MR is 1.0 but torrents must be seeded for 7 days regardless of ratio
# minimumratio:
# text: 1.0
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# json UNIT3D 8.1.3 (custom)
@@ -0,0 +1,87 @@
---
id: anisource
name: AniSource
description: "AniSource is a Public site for HD Anime raws."
language: en-US
type: public
encoding: UTF-8
requestDelay: 5
links:
- https://asnet.pw/
settings: []
caps:
categorymappings:
- {id: 1, cat: TV/Anime, desc: "Raw Animes"}
modes:
search: [q]
tv-search: [q, season, ep]
search:
paths:
- path: /
- path: /
inputs:
tpage: 2
inputs:
search: "{{ .Keywords }}"
headers:
# site blocks Jackett's User-Agents, so slightly alter it here (e.g. Chrome/87.0. > Chrome/97.0.)
User-Agent: ["Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4280.88 Safari/537.36"]
rows:
selector: div[class^="item"]
fields:
category:
text: 1
title:
selector: a[href*="/showprofile/"]
filters:
# move group to the end
- name: re_replace
args: ["^(\\[.+?\\]) (.+?)$", "$2 $1"]
details:
selector: a[href*="/showprofile/"]
attribute: href
infohash:
selector: a[href*="/showprofile/"]
attribute: href
filters:
- name: regexp
args: ([A-F|a-f|0-9]{40})
date:
selector: font[color="Black"]
filters:
- name: regexp
args: "Date: (.+?) Central"
- name: replace
args: [" at ", " "]
- name: append
args: " -09:00" # CUS
- name: dateparse
args: "yyyy-MM-dd HH:mm zzz"
size:
selector: font[color="Black"]
filters:
- name: regexp
args: "Size: (.+?) \\|"
- name: replace
args: ["b", "B"]
files:
selector: font[color="Black"]
filters:
- name: regexp
args: (\d+)$
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -0,0 +1,180 @@
---
id: anthelion-api
replaces:
- tehconnectionme
- anthelion
name: Anthelion (API)
description: "Anthelion (ANT) is a Private Torrent Tracker for MOVIES"
language: en-US
type: private
encoding: UTF-8
# Status: https://ant.trackerstatus.info/
links:
- https://anthelion.me/
caps:
categorymappings:
- {id: 2000, cat: Movies}
- {id: 2030, cat: Movies/SD}
- {id: 2040, cat: Movies/HD}
- {id: 2045, cat: Movies/UHD}
- {id: 2050, cat: Movies/BluRay}
- {id: 2080, cat: Movies/WEB-DL}
- {id: 8000, cat: Other}
modes:
search: [q]
movie-search: [q, imdbid, tmdbid]
# note: the api any supports movie search so there is no tv season/episode support.
# not using year search because torznab adds it to the q= which results in &q=keyword+2022&year=2022 sent to api !?!
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Key by accessing your <a href=\"https://anthelion.me/\" target=\"_blank\">Anthelion</a> account <i>Settings</i> page and scrolling down to the <b>API Key</b> section.<br>Tick the <b>Search</b> and <b>Download</b> checkboxes and click the <b>save profile</b> button to generate the key."
- name: info_activity
type: info
label: Account Inactivity
default: "Activity is defined as actually using your account, including the snatch/grab/seeding of torrents. You are also required to sign-in to the web frontend of Anthelion at least once per 3mo (90 days) (Note, using autodl/ARR does not satisfy this)."
login:
path: api.php
method: get
inputs:
api_key: "{{ .Config.apikey }}"
error:
- selector: ":root:contains(\"Unrecognized key\")"
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: ":root:contains(\"No API_KEY provided\")"
message:
text: "You did not enter an API key."
search:
paths:
# docs: https://anthelion.me/forums.php?action=viewthread&threadid=1026
- path: api.php
response:
type: json
inputs:
api_key: "{{ .Config.apikey }}"
o: json
t: movie
q: "{{ .Keywords }}"
tmdb: "{{ .Query.TMDBID }}"
imdb: "{{ .Query.IMDBIDShort }}"
# category filtering is disabled since it seems to rely on the AND operator that prevents some releases to show on search.
# cat: "{{ join .Categories \",\" }}"
limit: 100
offset: 0
rows:
selector: item
count:
selector: response.total
fields:
category:
selector: category
filters:
- name: split
args: [",", -1]
year:
selector: year
optional: true
_codec:
selector: codec
_container:
selector: container
filters:
- name: toupper
_media:
selector: media
filters:
- name: replace
args: ["WEB", "WEB-DL"]
_resolution:
selector: resolution
_audioFormat:
selector: audioFormat
_subbing:
selector: subbing
optional: true
_flags:
selector: flags
optional: true
filters:
- name: replace
args: [",", " "]
_language:
selector: language
optional: true
_releaseGroup:
selector: releaseGroup
optional: true
filters:
- name: trim
title_optional:
selector: title
filters:
- name: htmldecode
- name: append
args: " {{ .Result.year }} {{ .Result._resolution }} {{ .Result._media }} {{ .Result._container }} {{ .Result._codec }} {{ .Result._audioFormat }}{{ if .Result._subbing }} Subs{{ else }}{{ end }}{{ if .Result._flags }} {{ .Result._flags }}{{ else }}{{ end }}{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}{{ if and (.Result._releaseGroup) (ne .Result._releaseGroup \"NULL\") }}-{{ .Result._releaseGroup }}{{ else }}{{ end }}"
- name: replace
args: ["M2TS H265", "M2TS HEVC"]
- name: replace
args: ["M2TS H264", "M2TS AVC"]
details:
selector: guid
download:
selector: link
filters:
- name: htmldecode
infohash:
selector: infohash
imdbid:
selector: imdb
tmdbid:
selector: tmdb
genre:
selector: tags
filters:
- name: replace
args: [".", "_"]
description:
text: "{{ .Result.genre }}"
files:
selector: fileCount
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: grabs
date:
# 2022-08-07T20:56:06+0200
selector: pubDate
size:
selector: size
downloadvolumefactor:
text: 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.0
minimumseedtime:
# 3 day (as seconds = 3 x 24 x 60 x 60)
text: 259200
_filename:
selector: "files[0].name"
filters:
- name: htmldecode
optional: true
title:
text: "{{ if and (eq .Result.files \"1\") (.Result._filename) }}{{ .Result._filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
# json api
@@ -0,0 +1,235 @@
---
id: arabafenice
name: ArabaFenice
description: "Araba Fenice (Phoenix) is an ITALIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: it-IT
type: private
encoding: UTF-8
links:
- https://www.arabafenice.me/
legacylinks:
- http://www.arabafenice.me/
caps:
categorymappings:
# HRS
- {id: 34, cat: Movies/HD, desc: "1080p HRS x264"}
- {id: 47, cat: Movies/UHD, desc: "2160p 4K UHD HRS"}
- {id: 35, cat: TV, desc: "Serie TV HRS"}
- {id: 36, cat: Movies/SD, desc: "DVDRip HRS"}
- {id: 41, cat: Movies/SD, desc: "BDRip 576p HRS"}
- {id: 39, cat: Movies/HD, desc: "1080p HRS x265 HEVC"}
# AREA SuperVip
- {id: 33, cat: Movies/HD, desc: "[DD] Film 720p MP4"}
- {id: 54, cat: Movies/HD, desc: "[DD] 1080p V.U. MKV"}
- {id: 55, cat: Movies/BluRay, desc: "[DD] FULL BluRay"}
- {id: 57, cat: Movies/UHD, desc: "[DD] 4K FULL BluRay"}
- {id: 58, cat: XXX, desc: "[DD] XXX 1080p"}
- {id: 59, cat: XXX, desc: "[DD] XXX 4K 2160p"}
- {id: 60, cat: XXX, desc: "[DD] XXX 720p"}
# VIDEO
- {id: 1, cat: Movies, desc: "News Cinema"}
- {id: 40, cat: TV/UHD, desc: "4K Video Untouched"}
- {id: 2, cat: Movies/SD, desc: "BD-DVDRip"}
- {id: 3, cat: Movies/DVD, desc: "DVD 5"}
- {id: 50, cat: Movies/UHD, desc: "4K 2160p UHD"}
- {id: 6, cat: Movies/BluRay, desc: "BluRay Full"}
- {id: 4, cat: Movies/HD, desc: "1080p 3D x264"}
- {id: 7, cat: Movies/HD, desc: "1080p x264"}
- {id: 46, cat: Movies/HD, desc: "1080p VideoUntouched"}
- {id: 44, cat: Movies/HD, desc: "1080p x265 HEVC"}
- {id: 5, cat: Movies/DVD, desc: "DVD 9"}
- {id: 9, cat: TV/Anime, desc: "Cartoons"}
- {id: 8, cat: TV/Anime, desc: "720p x264"}
- {id: 12, cat: TV, desc: "Stagioni Concluse"}
- {id: 13, cat: TV, desc: "Stagioni in Onda"}
- {id: 14, cat: TV, desc: "TV Show"}
- {id: 42, cat: TV, desc: "Serie Tv Sub Ita"}
- {id: 15, cat: TV/Documentary, desc: "Documentari"}
- {id: 53, cat: TV/HD, desc: "VIDEO MP4 720p"}
- {id: 38, cat: XXX, desc: "xXx"}
- {id: 43, cat: Other, desc: "Araba per il sociale"}
# MUSICA
- {id: 17, cat: Audio, desc: "Musica Italiana"}
- {id: 45, cat: Audio, desc: "Discografie"}
- {id: 18, cat: Audio, desc: "MusicaInternazionale"}
- {id: 19, cat: Audio, desc: "Compilation"}
# PDF
- {id: 21, cat: Books, desc: "Ebook"}
- {id: 22, cat: Books/Comics, desc: "Comics"}
- {id: 23, cat: Books, desc: "Newsstand"}
- {id: 56, cat: Books/Mags, desc: "Riviste"}
- {id: 48, cat: XXX/Other, desc: "Riviste xXx"}
- {id: 49, cat: XXX/Other, desc: "Fumetti xXx"}
# GAMES
- {id: 25, cat: Console/PS4, desc: "Sony Games"}
- {id: 26, cat: Console/XBox, desc: "XboX Games"}
- {id: 27, cat: Console/Other, desc: "Nintendo Games"}
- {id: 28, cat: PC/Games, desc: "PC Games"}
# SOFTWARE
- {id: 30, cat: PC/ISO, desc: "Windows APP"}
- {id: 31, cat: PC/Mobile-iOS, desc: "Apple APP"}
- {id: 32, cat: PC/Mobile-Android, desc: "Android APP"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: 3
options:
3: created
5: seeders
4: size
2: title
- name: type
type: select
label: Order requested from site
default: 2
options:
2: desc
1: asc
- name: info
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
login:
path: index.php?page=login
method: post
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: body[onLoad^="makeAlert('"]
message:
selector: body[onLoad^="makeAlert('"]
attribute: onLoad
filters:
- name: replace
args: ["makeAlert('Error' , '", ""]
- name: replace
args: ["');", ""]
test:
path: index.php
selector: a[href="logout.php"]
download:
before:
path: thanks.php
method: post
inputs:
infohash: "{{ .DownloadUri.Query.id }}"
thanks: 1
rndval: "1487013827343"
selectors:
- selector: a[href^="download.php?id="]
attribute: href
filters:
- name: regexp
args: "^(.+?)&key="
search:
paths:
- path: index.php
keywordsfilters:
- name: diacritics
args: replace
- name: re_replace # S01 to 1
args: ["(?i)\\bS0*(\\d+)\\b", "$1"]
- name: re_replace # S01E01 to 1 1
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1 $2"]
inputs:
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBIDShort }}{{ else }}{{ .Keywords }}{{ end }}"
page: torrents
category: "{{ range .Categories }}{{.}};{{end}}"
options: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
active: 0
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
rows:
selector: table > tbody > tr > td > table.lista > tbody > tr:has(a[href^="index.php?page=torrent-details&id="])
fields:
download:
selector: a[href^="index.php?page=downloadcheck&id="]
attribute: href
title:
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
filters:
- name: re_replace # S01 E01 to S01E01
args: ["(?i)\\bS(\\d+)\\sE(\\d+)\\b", "S$1E$2"]
- name: re_replace # 01x01 to S01E01
args: ["(?i)(\\d{2})x(\\d+)", "S$1E$2"]
- name: re_replace # 1x01 to S01E01
args: ["(?i)\\b(\\d{1})x(\\d+)", "S0$1E$2"]
- name: re_replace # Stagione X --> S0X
args: ["(?i)\\bStagion[ei]\\s?(\\d{1})\\b|\\bSeason'?s?\\s?(\\d{1})\\b", "S0$1$2"]
- name: re_replace # Stagione XX --> SXX
args: ["(?i)\\bStagion[ei]\\s?(\\d{2,})\\b|\\bSeason'?s?\\s?(\\d{2,})\\b", "S$1$2"]
- name: re_replace # Episodio 4 to E4
args: ["(?i)\\b(?:[\\/\\|]?Episodio\\s?(\\d+)|Puntata\\s?(\\d+))", "E$1$2"]
- name: re_replace # Episodi 4 5 to E04-05
args: ["(?i)\\b(?:Puntate\\s*)(\\d+)\\s?(\\d+)", "E0$1-0$2"]
poster:
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
attribute: onmouseover
filters:
- name: regexp
args: "src=(.*?) "
category:
selector: a[href^="index.php?page=torrents&category="]
attribute: href
filters:
- name: querystring
args: category
details:
selector: a[onmouseover][href^="index.php?page=torrent-details&id="]
attribute: href
size:
selector: td:nth-last-child(4)
date:
selector: td:nth-last-child(9)
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "dd/MM/yyyy zzz"
grabs:
selector: td:nth-last-child(6)
seeders:
selector: td:nth-last-child(8)
leechers:
selector: td:nth-last-child(7)
downloadvolumefactor:
case:
img[alt="Gold 100% Free"]: 0
img[alt="Silver 50% Free"]: 0.5
img[alt="Bronze 25% Free"]: 0.75
"*": 1
uploadvolumefactor:
case:
img[alt="2x Upload Multiplier"]: 2
img[alt="3x Upload Multiplier"]: 3
img[alt="4x Upload Multiplier"]: 4
img[alt="5x Upload Multiplier"]: 5
img[alt="6x Upload Multiplier"]: 6
img[alt="7x Upload Multiplier"]: 7
img[alt="8x Upload Multiplier"]: 8
img[alt="9x Upload Multiplier"]: 9
img[alt="10x Upload Multiplier"]: 10
"*": 1
# xbtitFM v1.16
+176
View File
@@ -0,0 +1,176 @@
---
id: arabp2p
name: ArabP2P
description: "ArabP2P is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
language: ar-AE
type: private
encoding: UTF-8
links:
- https://www.arabp2p.net/
legacylinks:
- http://www.arabp2p.com/
- https://www.arabp2p.com/
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: 3
options:
3: created
5: seeders
4: size
2: title
- name: type
type: select
label: Order requested from site
default: 2
options:
2: desc
1: asc
- name: info_activity
type: info
label: Account Inactivity
default: "You must log in periodically. If the member is absent from the website for a period of 3 months, the account will be deleted without prior warning."
caps:
categorymappings:
# المرئيات العربية Arabic Movies
- {id: 14, cat: Movies, desc: "اسلامي (Islamic)"}
- {id: 19, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
- {id: 70, cat: TV, desc: "تعليمي (Educational)"}
- {id: 41, cat: Movies, desc: "افلام عربيه (Arabic Movies)"}
- {id: 88, cat: Movies, desc: "افلام مدبلجه عربي (Arabic Dubbed Movies)"}
- {id: 44, cat: TV, desc: "مسلسلات عربية (Arabic Series)"}
- {id: 89, cat: TV, desc: "مسلسلات عربية كامله (Full Arabic Series)"}
- {id: 52, cat: TV, desc: "مسرحيات (Plays)"}
- {id: 71, cat: TV, desc: "مسلسلات مدبلجه عربي (Arabic Dubbed Series)"}
- {id: 90, cat: TV, desc: "برامج ومسابقات (Shows)"}
# المرئيات الاجنبية Foreign Movies
- {id: 92, cat: TV/Foreign, desc: "تعليمي (Educational)"}
- {id: 93, cat: TV/Documentary, desc: "وثائقي (Documentary)"}
- {id: 45, cat: TV/Foreign, desc: "مسلسلات وبرامج اجنبيه (Serials)"}
- {id: 57, cat: TV/Foreign, desc: "مسلسلات آسيوية (Asian Series)"}
- {id: 42, cat: Movies/Foreign, desc: "افلام اجنبيه (Foreign)"}
- {id: 74, cat: Movies/HD, desc: "جودة عالية HD"}
- {id: 113, cat: TV/Foreign, desc: "مسلسلات لاتينية مترجم.مدبلج(Latin Series"}
- {id: 59, cat: Movies/Foreign, desc: "افلام آسيوية (Asian Movies)"}
- {id: 86, cat: Movies/Foreign, desc: "افلام هنديه (Indian Movies)"}
- {id: 114, cat: Movies/Foreign, desc: "افلام لاتينية مترجم.مدبلج (Latin Movies)"}
- {id: 115, cat: TV/Foreign, desc: "مسلسلات تركية مترجم.مدبلج (Turkish Series)"}
- {id: 116, cat: Movies/Foreign, desc: "افلام تركية مترجم.مدبلج (Turkish Movies)"}
# انمي مدبلج عربي Anime Arabic dubbed
- {id: 98, cat: TV/Anime, desc: "افلام (Movies)"}
- {id: 100, cat: TV/Anime, desc: "مسلسلات (Series)"}
- {id: 102, cat: TV/Anime, desc: "حلقات (Episdoes)"}
# انمي مترجم عربي Anime Arabic translator
- {id: 99, cat: TV/Anime, desc: "افلام (Movies)"}
- {id: 101, cat: TV/Anime, desc: "مسلسلات (Series)"}
- {id: 103, cat: TV/Anime, desc: "حلقات (Episodes)"}
- {id: 85, cat: TV/Anime, desc: "الكارتون الصامت والكلاسيكي (Cartoons)"}
# صوتيات Audio
- {id: 25, cat: Audio, desc: "القران الكريم (The Holy Quran)"}
- {id: 27, cat: Audio, desc: "محاضرات (Lectures)"}
- {id: 26, cat: Audio, desc: "اناشيد (Chants)"}
- {id: 118, cat: Audio, desc: "برامج صوتية (Programs)"}
# برامج Software
- {id: 22, cat: PC, desc: "برامج عربية (Arabic Software)"}
- {id: 23, cat: PC, desc: "برامج عامه (Public Software)"}
# اخرى Other
- {id: 17, cat: Books, desc: "كتب (Books)"}
- {id: 65, cat: Other, desc: "صور (Images)"}
- {id: 56, cat: Other, desc: "رياضي (Sport)"}
- {id: 46, cat: Other, desc: "منوع (Misc)"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
login:
path: index.php
method: form
form: form[action^="index.php?page=login"]
inputs:
uid: "{{ .Config.username }}"
pwd: "{{ .Config.password }}"
error:
- selector: tr td span[style="color:#FF0000;"]
test:
path: index.php
selector: a[href^="logout.php?t="]
search:
paths:
# https://www.arabp2p.net/index.php?page=torrents&search=&category=0&active=0&internel=0&order=3&by=2
- path: index.php
inputs:
page: torrents
search: "{{ .Keywords }}"
# does not support multi categories, default to All
category: 0
# 0 all 1 activeonly 2 deadonly
active: 0
# 0 all 1 internal 2 external
internel: 0
order: "{{ .Config.sort }}"
by: "{{ .Config.type }}"
# does not support imdbid search or provide imdb link in results
rows:
selector: table#torrents_list_p > tbody > tr:has(a[href^="download.php?id="]), table#torrents_list_p > tbody > tr:has(a[href^="magnet:?xt="])
filters:
- name: andmatch
fields:
category:
selector: a[href^="index.php?page=torrents&category="]:last-child
attribute: href
filters:
- name: querystring
args: category
title:
selector: a[href^="index.php?page=torrent-details"]
details:
selector: a[href^="index.php?page=torrent-details"]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
optional: true
magnet:
selector: a[href^="magnet:?xt="]
attribute: href
optional: true
date:
selector: span.upload-date > span
attribute: title
# auto adjusted by site account profile
filters:
- name: dateparse
args: "MM-yy-dd HH:mm:ss tt"
size:
selector: span.size
seeders:
selector: span[title="Seeders"]
leechers:
selector: span[title="Leechers"]
downloadvolumefactor:
case:
span.free: 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 0.8
minimumseedtime:
text: 259200 # 3 days
# xbtit
@@ -0,0 +1,221 @@
---
id: arabtorrents
name: ArabTorrents
description: "ArabTorrents is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
language: ar-AE
type: private
encoding: windows-1256
requestDelay: 2
links:
- https://arab-torrents.net/
caps:
categorymappings:
# Movies
- {id: 36, cat: Movies, desc: "Movies/Dubbed"}
- {id: 134, cat: Movies, desc: "HD Section"}
- {id: 135, cat: Movies/HD, desc: "Movies/HD Section"}
- {id: 204, cat: Movies/HD, desc: "R5/HD Section"}
- {id: 119, cat: Movies/SD, desc: "Movies/SD TV"}
- {id: 205, cat: Movies/Foreign, desc: "Foreign"}
- {id: 208, cat: Movies/Foreign, desc: "Stranger/Foreign"}
- {id: 209, cat: Movies/Foreign, desc: "Turkish/Foreign"}
- {id: 207, cat: Movies/Foreign, desc: "Indian/Foreign"}
- {id: 191, cat: Movies, desc: "Movies/Golden-VIP"}
- {id: 190, cat: Movies, desc: "Movies/Super VIP"}
- {id: 212, cat: Movies, desc: "Movies/VIP"}
- {id: 181, cat: Movies, desc: "Classic Movies/WEB-DL"}
- {id: 167, cat: Movies, desc: "Movies/WEB-DL"}
# Shows
- {id: 186, cat: TV, desc: "Dubbed"}
- {id: 166, cat: TV/WEB-DL, desc: "WEB-DL"}
- {id: 168, cat: TV/WEB-DL, desc: "Series/WEB-DL"}
- {id: 171, cat: TV/WEB-DL, desc: "TV Shows/WEB-DL"}
- {id: 180, cat: TV/WEB-DL, desc: "Classic Series/WEB-DL"}
- {id: 169, cat: TV/WEB-DL, desc: "Full-Pack/WEB-DL"}
- {id: 210, cat: Other, desc: "VIP"}
- {id: 211, cat: TV, desc: "TV Shows/VIP"}
- {id: 213, cat: TV, desc: "Full-Pack/VIP"}
- {id: 94, cat: TV, desc: "Super VIP"}
- {id: 189, cat: TV, desc: "TV Shows/Super VIP"}
- {id: 201, cat: TV, desc: "Full-Pack/Super VIP"}
- {id: 197, cat: TV, desc: "TV Shows/Ramadan 2022"}
- {id: 148, cat: TV/Other, desc: "Series/OSN"}
- {id: 149, cat: TV/Other, desc: "TV Show/OSN"}
- {id: 165, cat: TV, desc: "Golden-VIP"}
- {id: 185, cat: TV, desc: "Series/Golden-VIP"}
- {id: 200, cat: TV, desc: "Full-Pack/Golden-VIP"}
- {id: 26, cat: TV/SD, desc: "SD TV"}
- {id: 78, cat: TV/SD, desc: "Series/SD TV"}
- {id: 124, cat: TV/SD, desc: "FullPack/SD TV"}
- {id: 136, cat: TV/HD, desc: "Series/HD Section"}
- {id: 137, cat: TV/HD, desc: "TV Shows/HD Section"}
- {id: 182, cat: TV/HD, desc: "Full Pack/HD Section"}
- {id: 187, cat: TV/Foreign, desc: "TV Shows/Dubbed"}
- {id: 188, cat: TV/Foreign, desc: "Full-Pack/Dubbed"}
# Anime
- {id: 33, cat: TV/Anime, desc: "Anime"}
- {id: 51, cat: TV/Anime, desc: "Series/Anime"}
- {id: 129, cat: Movies/BluRay, desc: "Blu-Ray/Anime"}
- {id: 125, cat: TV, desc: "Full-Pack/Anime"}
- {id: 50, cat: Movies, desc: "Movies/Anime"}
# Islamic
- {id: 67, cat: Other, desc: "Islamic"}
- {id: 126, cat: TV, desc: "Full-Packs/Islamic"}
- {id: 91, cat: Audio/MP3, desc: "MP3/Islamic"}
- {id: 92, cat: Other, desc: "Video/Islamic"}
# Music
- {id: 16, cat: Audio, desc: "Music"}
- {id: 177, cat: Audio, desc: "Flac/Music"}
- {id: 127, cat: Audio, desc: "Full-Packs/Music"}
- {id: 17, cat: Audio/MP3, desc: "MP3/Music"}
- {id: 19, cat: Audio/Video, desc: "Videos/Music"}
# OSN
- {id: 146, cat: TV/Other, desc: "OSN"}
- {id: 147, cat: TV/Other, desc: "Arabic/OSN"}
- {id: 153, cat: TV/Other, desc: "English/OSN"}
- {id: 179, cat: TV/Other, desc: "Old/OSN"}
# Ramadan 2022
- {id: 192, cat: Other, desc: "Ramadan 2022"}
- {id: 198, cat: Other, desc: "Full Pack/Ramadan 2022"}
- {id: 193, cat: Other, desc: "Ramadan HD/Ramadan 2022"}
- {id: 195, cat: Other, desc: "Ramadan Khaliji/Ramadan 2022"}
- {id: 194, cat: Other, desc: "Ramadan SD/Ramadan 2022"}
- {id: 196, cat: Other, desc: "Ramadan Web/Ramadan 2022"}
# Sports
- {id: 120, cat: TV/Sport, desc: "Sports"}
- {id: 159, cat: TV/Sport, desc: "Full Matches/Sports"}
- {id: 155, cat: TV/Sport, desc: "Goals/Sports"}
# Rest
- {id: 102, cat: TV/Other, desc: "Other/SD TV"}
- {id: 202, cat: Other, desc: "AT"}
- {id: 203, cat: Other, desc: "AT/AT"}
- {id: 34, cat: Other, desc: "Misc"}
- {id: 132, cat: PC/Mobile-Android, desc: "Android/Misc"}
- {id: 163, cat: TV/Documentary, desc: "Documentary/Misc"}
- {id: 122, cat: Other, desc: "Other/Misc"}
- {id: 121, cat: Other, desc: "Theater/Misc"}
- {id: 214, cat: Other, desc: "Other/VIP"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: added
options:
added: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: table:has(td.thead:contains("حدث خطأ"))
test:
path: index.php
selector: a[href*="logout.php"]
download:
before:
path: takethanks.php
method: post
inputs:
torrentid: "{{ re_replace .DownloadUri.PathAndQuery \".*download-torrent-(\\d+).*\" \"$1\"}}"
search:
paths:
- path: browse.php
inputs:
do: search
keywords: "{{ .Keywords }}"
# t_name, t_description, t_both, t_uploader, t_genre
search_type: t_both
# does not support multi category searching so defaulting to all.
category: 0
include_dead_torrents: yes
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
keywordsfilters:
- name: re_replace
args: ["\\W+", "*"]
- name: re_replace
args: ["^(.+)$", "*$1*"]
rows:
selector: table#sortabletable > tbody > tr:has(span > a[href*="details.php?id="])
fields:
category:
selector: td a[href*="/torrent-category-"]
attribute: href
filters:
- name: regexp
args: "torrent-category-(\\d+)\/"
title:
selector: td div.tooltip-target
details:
selector: span a[href*="/details.php?id="]
attribute: href
download:
selector: a[href*="/download-torrent-"]
attribute: href
date:
selector: td:nth-child(2) > div:nth-child(3)
filters:
- name: regexp
args: "(\\d{2}-\\d{2}-\\d{4} \\d{2}:\\d{2})"
- name: dateparse
args: "dd-MM-yyyy HH:mm"
size:
selector: td:nth-child(5)
grabs:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
poster:
selector: div.tooltip-content > img[src*="/torrents/"]
attribute: src
downloadvolumefactor:
case:
img[src$="torrent_flags/freedownload.gif"]: 0
img[src$="torrent_flags/silverdownload.gif"]: 0.5
"*": 1
uploadvolumefactor:
case:
img[src$="torrent_flags/x2.gif"]: 2
"*": 1
minimumratio:
text: 1.05
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# TS Special Edition v.7.4
+203
View File
@@ -0,0 +1,203 @@
---
id: arenabg
name: ArenaBG
description: "ArenaBG is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GENERAL"
language: bg-BG
type: semi-private
encoding: UTF-8
certificates:
- c25aba843f815e92d0da0bbe3191326d16a81a32 # expired 15th Oct 2025
links:
- https://arenabg.com/
legacylinks:
- https://arenabg.ch/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 8, cat: Movies, desc: "Movies / ArenaBG.TV"}
- {id: 9, cat: Movies/SD, desc: "Movies / XviD"}
- {id: 10, cat: Movies/DVD, desc: "Movies / DVD-R"}
- {id: 11, cat: Movies/HD, desc: "Movies / x264"}
- {id: 12, cat: TV/Anime, desc: "Movies / Anime & Manga"}
- {id: 13, cat: TV/Documentary, desc: "Movies / Documentaries"}
- {id: 14, cat: Movies/BluRay, desc: "Movies / Blu-ray"}
- {id: 15, cat: Movies, desc: "Movies / Weekend"}
- {id: 16, cat: Movies, desc: "Movies / Boxset"}
- {id: 17, cat: Movies/HD, desc: "Movies / x264 Boxset"}
- {id: 18, cat: Movies/HD, desc: "Movies / HDTV"}
- {id: 19, cat: Movies/3D, desc: "Movies / 3D"}
- {id: 20, cat: Movies/HD, desc: "Movies / Movies HD"}
- {id: 21, cat: Movies/HD, desc: "Movies / x265"}
- {id: 22, cat: Movies/UHD, desc: "Movies / 4K"}
- {id: 59, cat: Movies/HD, desc: "Movies / AV1"}
- {id: 2, cat: TV, desc: "Series"}
- {id: 23, cat: TV/HD, desc: "Series / TV Episodes HD"}
- {id: 24, cat: TV, desc: "Series / TV Episodes"}
- {id: 25, cat: TV, desc: "Series / TV Boxset"}
- {id: 26, cat: TV/HD, desc: "Series / TV Boxset HD"}
- {id: 60, cat: TV/UHD, desc: "Series / 4K"}
- {id: 3, cat: Audio, desc: "Music"}
- {id: 27, cat: Audio/MP3, desc: "Music / MP3"}
- {id: 28, cat: Audio/Video, desc: "Music / Video"}
- {id: 29, cat: Audio/Lossless, desc: "Music / FLAC"}
- {id: 30, cat: Audio, desc: "Music / DVD"}
- {id: 31, cat: Audio/Lossless, desc: "Music / APE"}
- {id: 32, cat: Audio, desc: "Music / DTS"}
- {id: 33, cat: Audio, desc: "Music / WavePack"}
- {id: 34, cat: Audio, desc: "Music / OST"}
- {id: 4, cat: PC/Games, desc: "Games"}
- {id: 35, cat: PC/Games, desc: "Games / PC ISO"}
- {id: 36, cat: PC, desc: "Games / PC RIP"}
- {id: 37, cat: Console, desc: "Games / PS2"}
- {id: 38, cat: Console/PSP, desc: "Games / PSP"}
- {id: 39, cat: Console/XBox, desc: "Games / XBOX"}
- {id: 40, cat: Console/XBox 360, desc: "Games / XBOX-360"}
- {id: 41, cat: Console/PS3, desc: "Games / PS3"}
- {id: 42, cat: Console/Wii, desc: "Games / WII"}
- {id: 43, cat: Console/NDS, desc: "Games / NDS"}
- {id: 44, cat: Console/PS4, desc: "Games / PS4"}
- {id: 5, cat: PC, desc: "Software"}
- {id: 45, cat: PC/ISO, desc: "Software / PC ISO"}
- {id: 46, cat: PC/Mobile-Other, desc: "Software / Smartphone"}
- {id: 47, cat: PC, desc: "Software / Tutorial"}
- {id: 48, cat: PC/Mac, desc: "Software / MAC"}
- {id: 49, cat: PC/Mobile-Android, desc: "Software / Android"}
- {id: 50, cat: PC/Mobile-iOS, desc: "Software / iOS"}
- {id: 51, cat: PC/Mobile-Other, desc: "Software / WM7"}
- {id: 6, cat: XXX, desc: "XXX"}
- {id: 52, cat: XXX, desc: "XXX / Porn"}
- {id: 53, cat: XXX, desc: "XXX / XXX HD"}
- {id: 7, cat: Other, desc: "Misc"}
- {id: 54, cat: Other/Misc, desc: "Misc / Other"}
- {id: 55, cat: Books/EBook, desc: "Misc / e-Books"}
- {id: 56, cat: Other, desc: "Misc / Banned"}
- {id: 57, cat: TV/Sport, desc: "Misc / Sports"}
- {id: 58, cat: PC/0day, desc: "Misc / 0-Day"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: downloadlink
type: select
label: Download link
default: "magnet:?xt="
options:
"/en/torrents/download/?key=": ".torrent"
"magnet:?xt=": "magnet"
- name: downloadlink2
type: select
label: Download link (fallback)
default: "/en/torrents/download/?key="
options:
"/en/torrents/download/?key=": ".torrent"
"magnet:?xt=": "magnet"
- name: info_download
type: info
label: About the Download links
default: You can optionally set as a fallback an automatic alternate link, so if the .torrent download link fails your download will still be successful.
login:
path: en/users/signin/
method: form
form: form[action="/en/users/signin/"]
inputs:
username_or_email: "{{ .Config.username }}"
password: "{{ .Config.password }}"
captcha:
type: image
selector: img[src="/captcha.php"]
input: captcha
error:
- selector: div.row div#container div.alert
test:
path: en/
selector: a[href="/en/users/logout/"]
download:
selectors:
- selector: a[href^="{{ .Config.downloadlink }}"]
attribute: href
- selector: a[href^="{{ .Config.downloadlink2 }}"]
attribute: href
search:
paths:
# https://arenabg.com/en/torrents/?text=ice+s01e01
- path: en/torrents/
inputs:
text: "{{ .Keywords }}"
subtitles: ""
audio: ""
# does not support multi-cats so defaulting to all
category: ""
rows:
selector: tr:has(a[href^="/en/torrents/?category="])
fields:
category:
selector: td.category a[href^="/en/torrents/?category="]:last-of-type
attribute: href
filters:
- name: querystring
args: category
_english:
selector: span[title="English"]
attribute: title
optional: true
_bulgarian:
selector: span[title="Bulgarian"]
attribute: title
optional: true
title:
selector: td.filename a.title
filters:
- name: append
args: "{{ if .Result._bulgarian }} {{ .Result._bulgarian }}{{ else }}{{ end }}{{ if .Result._english }} {{ .Result._english }}{{ else }}{{ end }}"
details:
selector: td.filename a.title
attribute: href
download:
selector: td.filename a.title
attribute: href
poster:
selector: td.filename a.title
attribute: onmouseover
filters:
- name: regexp
args: "\"(.+?)\""
- name: replace
args: ["\\", ""]
date:
# 2 January 2021, Saturday @ 20:46
selector: small
filters:
- name: regexp
args: "(.+?, .+? @ [0-9]{2}:[0-9]{2})"
- name: append
args: " +02:00" # EET
- name: dateparse
args: "d MMMM yyyy, dddd @ HH:mm zzz"
size:
selector: td:nth-child(3)
seeders:
selector: td:nth-child(4)
leechers:
selector: td:nth-child(5)
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -0,0 +1,194 @@
---
id: asiancinema
name: AsianCinema
description: "AsianCinema is a Private Tracker for ASIAN MOVIES / TV / MUSIC"
language: en-US
type: private
encoding: UTF-8
links:
- https://eiga.moi/
legacylinks:
- https://asiancinema.me/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Movies"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: Audio, desc: "Music"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_activity
type: info
label: Account Inactivity
default: "Your account will be automatically deleted from the database after 90 days of inactivity. If you return or visit the site with your account before that amount of time passes, then the inactivity timer will reset and your account will be fine for another 90 days.<br>Keep in mind that 'activity' is considered a visit to any page and that torrent traffic is not counted as account activity. In order to reset the inactivity timer all you have to do is visit a single page while logged in with your account. If your account is deleted for inactivity, please do not ask the site staff to un-delete it for you. The deletion is performed automatically by the server and, as such, your account cannot be recovered after it has been deleted."
login:
# note APIKEY is broken on this 5.3.0 site
path: login
method: form
form: form[action$="/login"]
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
remember: on
selectorinputs:
_token:
selector: input[name="_token"]
attribute: value
error:
- selector: div#ERROR_COPY
# test:
# path: /
# selector: a[href$="/logout"]
search:
paths:
- path: torrents/filter
inputs:
$raw: "{{ range .Categories }}categories[]={{.}}&{{end}}"
search: "{{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
imdb: "{{ .Query.IMDBIDShort }}"
tvdb: "{{ .Query.TVDBID }}"
tmdb: "{{ .Query.TMDBID }}"
sorting: "{{ .Config.sort }}"
direction: "{{ .Config.type }}"
qty: 100
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
# can support genre search but you need to know the id. &genre[]=10759 for Action & Adventure
# does not have genre in results, they are on the details page.
rows:
selector: table > tbody > tr
fields:
category:
selector: a[href*="/categories/"]
attribute: href
filters:
- name: regexp
args: "/categories/(\\d+)"
title:
selector: a.view-torrent
download:
selector: a[href*="/download/"]
attribute: href
details:
selector: a.view-torrent
attribute: href
poster:
selector: div.torrent-poster img
attribute: src
filters:
- name: prepend
args: "https://images.weserv.nl/?url=" # for display on dashboard
- name: append
args: "&w=180&h=270" # for display on dashboard
- name: replace
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/600x900&w=180&h=270", ""]
size:
selector: td:nth-last-child(4)
seeders:
selector: td:nth-last-child(3)
leechers:
selector: td:nth-last-child(2)
grabs:
selector: td:nth-last-child(1)
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
tmdbid:
selector: a[href*="themoviedb.org/movie/"], a[href*="themoviedb.org/tv/"]
attribute: href
date:
selector: time
filters:
# translations for Turkish|Estonian|Danish|Italian|Polish|Norwegian|Portuguese|Czech|Russian|Romanian|Spanish|French|German|Bulgarian|Dutch|Chinese|Japanese|Swedish
- name: re_replace
args: ["(?i)(önce|tagasi|geleden|fa|temu|siden|há|atrás|nazpět|назад|acum|în urmă|hace|il y a|vor|преди|前|sedan)", " ago"]
- name: re_replace
args: ["(?i)(saniye|sekundit|sekunder|secondi|sekund|segundos|sekundami|секунд|secunde|secondes|Sekunden|секунди|seconden|秒前)", "seconds"]
- name: re_replace
args: ["(?i)(minutit|minutter|minuti|minuty|minutos|минуты|минут|Minuten|минути|minuten|minuter)", "minutes"]
- name: re_replace
args: ["(?i)(dakika|minut|minuto|minuta|minutt|минута|Minute|minuut|分钟|分)", " minute"]
- name: re_replace
args: ["(?i)(tundi|timer|ore|godziny|horas|hodiny|hoden|часа|часов|ore|heures|Stunden|timmar)", "hours"]
- name: re_replace
args: ["(?i)(saat|tund|time|ora|godzina|hora|hodina|час|oră|heure|Stunde|uur|小时|時間|timme)", " hour"]
- name: re_replace
args: ["(?i)(päeva|dage|giorni|dni|dias|dny|дня|дней|zile|días|jours|Tagen|дни|dagen|dagar)", "days"]
- name: re_replace
args: ["(?i)(gün|päev|dag|giorno|dzień|dia|den|день|zi|día|jour|Tag|ден|天|日)", " day"]
- name: re_replace
args: ["(?i)(nädalat|uger|settimane|tygodnie|uker|semanas|týdny|недели|недель|săptămâni|semaines|Wochen|седмици|weken|veckor)", "weeks"]
- name: re_replace
args: ["(?i)(hafta|nädal|uge|settimana|tydzień|uke|semana|týden|неделю|săptămână|semaine|Woche|седмица|周|週間|vecka)", " week"]
- name: re_replace
args: ["(?i) (ay)", "month"]
- name: re_replace
args: ["(?i)(kuud|måneder|mesi|miesiące|meses|měsíce|месяца|месяцев|luni|meses|mois|Monaten|месеца|maanden|månader)", "months"]
- name: re_replace
args: ["(?i)(kuu|måned|mese|miesiąc|mês|měsíc|месяц|lună|mes|Monat|месец|maand|个月|ヶ月|månad)", " month"]
- name: re_replace
args: ["(?i)(aastat|anni|lata|anos|roky|года|ani|años|ans|Jahren|години)", " years"]
- name: re_replace
args: ["(?i)(yil|aasta|år|anno|rok|ano|год|año|Jahr|година|jaar|年)", " year"]
- name: re_replace
args: ["(?i) (an)", "year"]
- name: re_replace
args: ["(?i)(För |und)", ""] # Misc removals
- name: timeago
downloadvolumefactor:
case:
i[class*="fa-id-badge text-orange"]: 0 # 24 Hour FreeLeech From BON Store
i[class*="fa-trophy text-purple"]: 0 # Special FreeLeech For Certain User Groups
i[class*="fa-star text-bold"]: 0 # Freeleech From Token
i[class*="fa-coins text-bold"]: 0 # Freeleech From Token
i[class*="fa-globe text-blue"]: 0 # Global Freeleech
i[class*="fa-star text-gold"]: 0 # Freeleech
i[class*="fa-certificate text-pink"]: 0 # Featured Torrent
"*": 1
uploadvolumefactor:
case:
i[class*="fa-gem text-green"]: 2 # Single Torrent Double Upload
i[class*="fa-globe text-green"]: 2 # Global Double Upload
i[class*="fa-certificate text-pink"]: 2 # Featured Torrent
"*": 1
minimumratio:
text: 0.4
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800
# UNIT3D 5.3.0
@@ -0,0 +1,162 @@
---
id: asiandvdclub
name: AsianDVDClub
description: "AsianDVDClub (ADC) is a Private Torrent Tracker for ASIAN DVD and BluRay"
language: en-US
type: private
encoding: UTF-8
links:
- https://asiandvdclub.org/
caps:
categorymappings:
- {id: 1, cat: TV/Anime, desc: "Anime"}
- {id: 3, cat: Movies, desc: "Japan"}
- {id: 5, cat: Movies, desc: "China"}
- {id: 4, cat: Movies, desc: "Korea"}
- {id: 2, cat: Movies, desc: "Hong Kong"}
- {id: 6, cat: Movies, desc: "Philippines"}
- {id: 7, cat: Movies, desc: "Taiwan"}
- {id: 8, cat: Movies, desc: "Thailand"}
- {id: 9, cat: Movies, desc: "Vietnam"}
- {id: 10, cat: Movies, desc: "Malaysia"}
- {id: 11, cat: Movies, desc: "Other Asian"}
- {id: 12, cat: Other, desc: "Miscellaneous"}
- {id: 15, cat: TV, desc: "TV Series"}
- {id: 16, cat: Audio, desc: "Music/OST"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: added
options:
added: created
up: seeders
size: size
title: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "No special action required for red ribbons and permanent sponsors and above regardless of time, for others after 1 year of zero activity on tracker and/or website account will be closed."
login:
path: login
method: post
inputs:
apple: evil
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: b:contains("Try again")
test:
path: index.php
selector: a[href="/logout"]
search:
paths:
- path: torrents/
inputs:
$raw: "{{ range .Categories }}countries[]={{.}}&{{end}}"
searchbox: "{{ .Keywords }}"
search: Search
golden: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
column: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
rows:
selector: table.torrenttable_helper > tbody > tr:has(img)
fields:
category_optional:
selector: img[class^="cat-"]
attribute: class
optional: true
case:
img.cat-anime: 1
img.cat-hk: 2
img.cat-japan: 3
img.cat-korea: 4
img.cat-china: 5
img.cat-phil: 6
img.cat-taiwan: 7
img.cat-thai: 8
img.cat-viet: 9
img.cat-malaysia: 10
img.cat-rest: 11
img.cat-india: 11
img.cat-misc: 12
img.cat-pinku: 12
img.cat-drama: 15
img.cat-ost: 16
category:
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}12{{ end }}"
title:
selector: span[id]
details:
selector: a[href^="/torrent/"]
attribute: href
download:
selector: a[href^="/torrent/"]
attribute: href
filters:
- name: replace
args: ["torrent", "download"]
poster:
selector: span[id]
attribute: data-ot
filters:
- name: regexp
args: src='(.+?)'
size:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
date:
selector: td:nth-child(9) span.small
filters:
- name: timeago
grabs:
selector: td:nth-child(10)
downloadvolumefactor:
case:
img[src$="images/golden.gif"]: 0
img[src$="images/silver.gif"]: 0.5
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.5
minimumseedtime:
# 45 days (as seconds = 45 x 24 x 60 x 60)
text: 3888000
# Engine n/a
@@ -0,0 +1,170 @@
---
id: audiences
name: Audiences
description: "Audiences is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://audiences.me/
caps:
categorymappings:
- {id: 401, cat: Movies, desc: "电影/Movies"}
- {id: 402, cat: TV, desc: "剧集/TV-Series"}
- {id: 403, cat: TV, desc: "综艺/TV-Show"}
- {id: 406, cat: TV/Documentary, desc: "纪录片/Documentary"}
- {id: 408, cat: Audio, desc: "音乐/Music"}
- {id: 404, cat: Audio/Audiobook, desc: "有声书/Audiobook"}
- {id: 405, cat: Books, desc: "电子书/Ebook"}
- {id: 407, cat: TV/Sport, desc: "体育/Sports"}
- {id: 410, cat: PC/Games, desc: "游戏/Game"}
- {id: 411, cat: PC/0day, desc: "软件/Software"}
- {id: 410, cat: TV, desc: "学习/Study"}
- {id: 409, cat: Other, desc: "其他/Other"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, doubanid]
movie-search: [q, imdbid, doubanid]
music-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "Account retention rules:<ol><li>Users with Extreme User and above will be retained forever</li><li>Starting from 20230701, the non-login ban time will be adjusted to:<ul><li>(Home Alone) User - 40 days</li><li>(Young and vigorous) Power User - 60 days</li><li>(Children of Jianghu) Elite User - 80 days</li><li>(Street Fighter) Crazy User - 100 days</li><li>(non-stop) Insane User - 120 days</li><li>(Outstanding Citizen) Veteran User - 180 days</li></ul></li><li>Users with no traffic (i.e. uploading/downloading data) If it is 0) If you do not log in for 7 consecutive days will be disabled</li><li>'Parked accounts' no longer enjoy the benefits of retaining accounts, and are also subject to the above rules.</li></ol>"
login:
# using cookie method because site regularly disables login page for certain events during the year
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href="logout.php"]
search:
paths:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
# 0 incldead, 1 active, 2 justdead
incldead: 0
# promotion: 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x 50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
# 0 title, 1 descr, 2 title or imdb or douban url, 3 uploader, 4 imdb
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}2{{ else }}0{{ end }}"
# 0 AND, 1 OR, 2 exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
notnewword: 1
rows:
selector: table.torrents > tbody > tr:has(table.torrentname)
fields:
category:
selector: a[href^="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[title][href^="details.php?id="]
attribute: title
details:
selector: a[title][href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
doubanid:
selector: a[href*="movie.douban.com/subject/"]
attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td:nth-child(4) > span[title]
attribute: title
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
selector: td:nth-child(4):not(:has(span))
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
selector: td.rowfollow:nth-child(5)
seeders:
selector: td.rowfollow:nth-child(6)
leechers:
selector: td.rowfollow:nth-child(7)
grabs:
selector: td.rowfollow:nth-child(8)
downloadvolumefactor:
case:
img.pro_free: 0
img.pro_free2up: 0
img.pro_50pctdown: 0.5
img.pro_50pctdown2up: 0.5
img.pro_30pctdown: 0.3
"*": 1
uploadvolumefactor:
case:
img.pro_50pctdown2up: 2
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
description:
selector: td:nth-child(2)
remove: a, img
# NexusPHP Standard v1.5 Beta 4
@@ -0,0 +1,334 @@
---
id: audionews
name: AudioNews
description: "AudioNews (AN) is a Private Torrent Tracker for AUDIO SOFTWARE / SAMPLES / ETC"
language: en-US
type: private
encoding: UTF-8
links:
- https://audionews.org/
caps:
categorymappings:
- {id: 106, cat: PC/Mobile-Other, desc: "Mobile Apps"}
- {id: 161, cat: PC/Mobile-iOS, desc: "Mobile Apps iOS"}
- {id: 160, cat: PC/Mobile-Android, desc: "Mobile Apps Android"}
- {id: 12, cat: PC, desc: "AUDIOAPPS"}
- {id: 32, cat: PC, desc: "AUDIOAPPS DAW Apps"}
- {id: 175, cat: PC, desc: "AUDIOAPPS Ableton"}
- {id: 177, cat: PC, desc: "AUDIOAPPS Cakewalk"}
- {id: 176, cat: PC, desc: "AUDIOAPPS REAPER"}
- {id: 174, cat: PC, desc: "AUDIOAPPS Steinberg"}
- {id: 34, cat: PC, desc: "AUDIOAPPS Mastering &Audio Editor Apps"}
- {id: 37, cat: PC, desc: "AUDIOAPPS DJ Apps"}
- {id: 13, cat: Audio, desc: "SAMPLE LIBRARIES"}
- {id: 62, cat: Audio, desc: "SAMPLE LIBRARIES AMG"}
- {id: 117, cat: Audio, desc: "SAMPLE LIBRARIES Bela D Media"}
- {id: 118, cat: Audio, desc: "SAMPLE LIBRARIES Beta Monkey Music"}
- {id: 51, cat: Audio, desc: "SAMPLE LIBRARIES Best Service"}
- {id: 46, cat: Audio, desc: "SAMPLE LIBRARIES Big Fish"}
- {id: 66, cat: Audio, desc: "SAMPLE LIBRARIES Bigga Giggas"}
- {id: 122, cat: Audio, desc: "SAMPLE LIBRARIES Bluezone Corporation"}
- {id: 123, cat: Audio, desc: "SAMPLE LIBRARIES Bunker 8"}
- {id: 126, cat: Audio, desc: "SAMPLE LIBRARIES Cinematique Instruments"}
- {id: 127, cat: Audio, desc: "SAMPLE LIBRARIES CineSamples"}
- {id: 128, cat: Audio, desc: "SAMPLE LIBRARIES ClusterSound"}
- {id: 121, cat: Audio, desc: "SAMPLE LIBRARIES Dan Dean"}
- {id: 195, cat: Audio, desc: "SAMPLE LIBRARIES Diginoiz"}
- {id: 52, cat: Audio, desc: "SAMPLE LIBRARIES Digital Juice"}
- {id: 134, cat: Audio, desc: "SAMPLE LIBRARIES Digital-Redux"}
- {id: 65, cat: Audio, desc: "SAMPLE LIBRARIES Digital Vision"}
- {id: 59, cat: Audio, desc: "SAMPLE LIBRARIES Discovery Firm"}
- {id: 61, cat: Audio, desc: "SAMPLE LIBRARIES Drumdrops"}
- {id: 40, cat: Audio, desc: "SAMPLE LIBRARIES East West"}
- {id: 74, cat: Audio, desc: "SAMPLE LIBRARIES Electronisounds"}
- {id: 80, cat: Audio, desc: "SAMPLE LIBRARIES EMU format"}
- {id: 82, cat: Audio, desc: "SAMPLE LIBRARIES ENSONIQ format"}
- {id: 111, cat: Audio, desc: "SAMPLE LIBRARIES Fatloud"}
- {id: 135, cat: Audio, desc: "SAMPLE LIBRARIES Fox Samples"}
- {id: 41, cat: Audio, desc: "SAMPLE LIBRARIES FxPansion"}
- {id: 130, cat: Audio, desc: "SAMPLE LIBRARIES Goldbaby"}
- {id: 54, cat: Audio, desc: "SAMPLE LIBRARIES Hollywood Edge"}
- {id: 64, cat: Audio, desc: "SAMPLE LIBRARIES IK Multimedia"}
- {id: 75, cat: Audio, desc: "SAMPLE LIBRARIES Ilio"}
- {id: 108, cat: Audio, desc: "SAMPLE LIBRARIES Industrial Strength Records"}
- {id: 81, cat: Audio, desc: "SAMPLE LIBRARIES KURZWEIL format"}
- {id: 91, cat: Audio, desc: "SAMPLE LIBRARIES Loopmasters"}
- {id: 92, cat: Audio, desc: "SAMPLE LIBRARIES Masterbits"}
- {id: 58, cat: Audio, desc: "SAMPLE LIBRARIES M-Audio"}
- {id: 112, cat: Audio, desc: "SAMPLE LIBRARIES Mutekki"}
- {id: 137, cat: Audio, desc: "SAMPLE LIBRARIES Mystic Kingz"}
- {id: 47, cat: Audio, desc: "SAMPLE LIBRARIES Native Instruments"}
- {id: 60, cat: Audio, desc: "SAMPLE LIBRARIES Nine Volt Audio"}
- {id: 129, cat: Audio, desc: "SAMPLE LIBRARIES OrangeTree"}
- {id: 203, cat: Audio, desc: "SAMPLE LIBRARIES Origin Sound"}
- {id: 154, cat: Audio, desc: "SAMPLE LIBRARIES P5Audio"}
- {id: 133, cat: Audio, desc: "SAMPLE LIBRARIES Peace Love Productions"}
- {id: 140, cat: Audio, desc: "SAMPLE LIBRARIES Pound Audio"}
- {id: 110, cat: Audio, desc: "SAMPLE LIBRARIES Prime Loops"}
- {id: 180, cat: Audio, desc: "SAMPLE LIBRARIES Producer Loops"}
- {id: 50, cat: Audio, desc: "SAMPLE LIBRARIES Prominy"}
- {id: 171, cat: Audio, desc: "SAMPLE LIBRARIES Pulsed Records"}
- {id: 132, cat: Audio, desc: "SAMPLE LIBRARIES Puremagnetik"}
- {id: 49, cat: Audio, desc: "SAMPLE LIBRARIES Refills"}
- {id: 99, cat: Audio, desc: "SAMPLE LIBRARIES reFX Nexus"}
- {id: 125, cat: Audio, desc: "SAMPLE LIBRARIES Realsamples"}
- {id: 83, cat: Audio, desc: "SAMPLE LIBRARIES ROLAND format"}
- {id: 109, cat: Audio, desc: "SAMPLE LIBRARIES Sample Magic"}
- {id: 136, cat: Audio, desc: "SAMPLE LIBRARIES Samplephonics"}
- {id: 43, cat: Audio, desc: "SAMPLE LIBRARIES Sampletekk"}
- {id: 48, cat: Audio, desc: "SAMPLE LIBRARIES Scarbee"}
- {id: 178, cat: Audio, desc: "SAMPLE LIBRARIES SFX (Sound FX libraries)"}
- {id: 90, cat: Audio, desc: "SAMPLE LIBRARIES Smartsound"}
- {id: 172, cat: Audio, desc: "SAMPLE LIBRARIES Sonart Audio"}
- {id: 116, cat: Audio, desc: "SAMPLE LIBRARIES SonicCouture"}
- {id: 42, cat: Audio, desc: "SAMPLE LIBRARIES Sonic Implants"}
- {id: 115, cat: Audio, desc: "SAMPLE LIBRARIES Sonic Reality"}
- {id: 53, cat: Audio, desc: "SAMPLE LIBRARIES Sound Ideas"}
- {id: 56, cat: Audio, desc: "SAMPLE LIBRARIES Sony"}
- {id: 139, cat: Audio, desc: "SAMPLE LIBRARIES Sounds To Sample"}
- {id: 76, cat: Audio, desc: "SAMPLE LIBRARIES Spectrasonics"}
- {id: 162, cat: Audio, desc: "SAMPLE LIBRARIES Spitfire Audio"}
- {id: 193, cat: Audio, desc: "SAMPLE LIBRARIES studiolinked"}
- {id: 68, cat: Audio, desc: "SAMPLE LIBRARIES Synthogy"}
- {id: 179, cat: Audio, desc: "SAMPLE LIBRARIES The Loop Loft"}
- {id: 96, cat: Audio, desc: "SAMPLE LIBRARIES Tonehammer, 8dio, SoundIron"}
- {id: 67, cat: Audio, desc: "SAMPLE LIBRARIES Toontrack, Drumkit From Hell, DFHS"}
- {id: 69, cat: Audio, desc: "SAMPLE LIBRARIES Ueberschall"}
- {id: 157, cat: Audio, desc: "SAMPLE LIBRARIES USB Soundscan"}
- {id: 120, cat: Audio, desc: "SAMPLE LIBRARIES Valentino Production"}
- {id: 173, cat: Audio, desc: "SAMPLE LIBRARIES vandalism sounds"}
- {id: 170, cat: Audio, desc: "SAMPLE LIBRARIES Vanilla Groove Studios"}
- {id: 119, cat: Audio, desc: "SAMPLE LIBRARIES Vengeance Sound"}
- {id: 114, cat: Audio, desc: "SAMPLE LIBRARIES Video Helper"}
- {id: 44, cat: Audio, desc: "SAMPLE LIBRARIES Vienna"}
- {id: 77, cat: Audio, desc: "SAMPLE LIBRARIES Vipzone"}
- {id: 131, cat: Audio, desc: "SAMPLE LIBRARIES Wavesfactory"}
- {id: 89, cat: Audio, desc: "SAMPLE LIBRARIES West one"}
- {id: 113, cat: Audio, desc: "SAMPLE LIBRARIES Wusik.com"}
- {id: 78, cat: Audio, desc: "SAMPLE LIBRARIES Yellowtools"}
- {id: 138, cat: Audio, desc: "SAMPLE LIBRARIES YnK.Audio"}
- {id: 100, cat: Audio, desc: "SAMPLE LIBRARIES Zenhiser"}
- {id: 57, cat: Audio, desc: "SAMPLE LIBRARIES Zero-G"}
- {id: 15, cat: PC, desc: "VSTi + FX"}
- {id: 72, cat: PC, desc: "VSTi + FX FX"}
- {id: 181, cat: PC, desc: "VSTi + FX VSTi"}
- {id: 18, cat: PC/Mac, desc: "MAC"}
- {id: 186, cat: PC/Mac, desc: "MAC Apps"}
- {id: 188, cat: PC/Mac, desc: "MAC FX"}
- {id: 189, cat: PC/Mac, desc: "MAC Instruments"}
- {id: 190, cat: PC/Mac, desc: "MAC TUTORIAL"}
- {id: 187, cat: PC/Mac, desc: "MAC Samples"}
- {id: 19, cat: Other, desc: "MISC"}
- {id: 185, cat: Other, desc: "MISC Utilities"}
- {id: 84, cat: Books, desc: "SHEET MUSIC"}
- {id: 87, cat: Books, desc: "SHEET MUSIC Full Score"}
- {id: 86, cat: Books, desc: "SHEET MUSIC Guitar"}
- {id: 88, cat: Books, desc: "SHEET MUSIC Other instruments"}
- {id: 85, cat: Books, desc: "SHEET MUSIC Piano"}
- {id: 20, cat: Books, desc: "LEARNING"}
- {id: 197, cat: Books, desc: "LEARNING Academy.FM"}
- {id: 183, cat: Books, desc: "LEARNING ADSR"}
- {id: 141, cat: Books, desc: "LEARNING Alfred"}
- {id: 142, cat: Books, desc: "LEARNING Ask Video"}
- {id: 27, cat: Books, desc: "LEARNING Books"}
- {id: 143, cat: Books, desc: "LEARNING FaderPro"}
- {id: 144, cat: Books, desc: "LEARNING Groove3"}
- {id: 145, cat: Books, desc: "LEARNING Hal Leonard"}
- {id: 105, cat: Books, desc: "LEARNING Hardware manuals"}
- {id: 196, cat: Books, desc: "LEARNING Jam Track Central"}
- {id: 146, cat: Books, desc: "LEARNING Lick Library"}
- {id: 147, cat: Books, desc: "LEARNING Lynda.com"}
- {id: 148, cat: Books, desc: "LEARNING MacProVideo"}
- {id: 101, cat: Books, desc: "LEARNING Magazines"}
- {id: 93, cat: Books, desc: "LEARNING Music Video (Concerts, DVD, DVDrip)"}
- {id: 199, cat: Books, desc: "LEARNING PUREMIX"}
- {id: 149, cat: Books, desc: "LEARNING Riff Interactive"}
- {id: 194, cat: Books, desc: "LEARNING SkillShare"}
- {id: 150, cat: Books, desc: "LEARNING Sonic Academy"}
- {id: 151, cat: Books, desc: "LEARNING Total training"}
- {id: 152, cat: Books, desc: "LEARNING TrueFire"}
- {id: 182, cat: Books, desc: "LEARNING Udemy"}
- {id: 28, cat: Books, desc: "LEARNING Video"}
- {id: 153, cat: Books, desc: "LEARNING VTC"}
- {id: 29, cat: Audio/Other, desc: "PRESETS"}
- {id: 167, cat: Audio/Other, desc: "PRESETS Ableton Live"}
- {id: 184, cat: Audio/Other, desc: "PRESETS Impulse Responses"}
- {id: 166, cat: Audio/Other, desc: "PRESETS Massive"}
- {id: 163, cat: Audio/Other, desc: "PRESETS Nebula"}
- {id: 200, cat: Audio/Other, desc: "PRESETS Omnisphere"}
- {id: 165, cat: Audio/Other, desc: "PRESETS Reaktor"}
- {id: 201, cat: Audio/Other, desc: "PRESETS Xfer Serum"}
- {id: 164, cat: Audio/Other, desc: "PRESETS Sylenth"}
- {id: 168, cat: Audio/Other, desc: "PRESETS Toontrack"}
- {id: 239, cat: Books, desc: "Service Manuals"}
- {id: 21, cat: Other, desc: "UPDATE"}
- {id: 222, cat: Other, desc: "GFXNEWS 3D"}
- {id: 235, cat: Other, desc: "GFXNEWS APPS ANDROID & IOS"}
- {id: 207, cat: Other, desc: "GFXNEWS APPS WIN"}
- {id: 215, cat: Other, desc: "GFXNEWS APPS LINUX"}
- {id: 214, cat: Other, desc: "GFXNEWS APPS MAC"}
- {id: 211, cat: Other, desc: "GFXNEWS BOOKS"}
- {id: 224, cat: Other, desc: "GFXNEWS CAD/CAM"}
- {id: 237, cat: Other, desc: "GFXNEWS DAZ3D"}
- {id: 212, cat: Other, desc: "GFXNEWS FONTS"}
- {id: 213, cat: Other, desc: "GFXNEWS FOOTAGE"}
- {id: 233, cat: Other, desc: "GFXNEWS GAME DEVELOPMENT"}
- {id: 226, cat: Other, desc: "GFXNEWS MAGAZINE"}
- {id: 234, cat: Other, desc: "GFXNEWS MATERIAL"}
- {id: 243, cat: Other, desc: "GFXNEWS OTHER GRAPHICS"}
- {id: 244, cat: Other, desc: "GFXNEWS OTHER GRAPHICS Zbrush, Substance tools"}
- {id: 216, cat: Other, desc: "GFXNEWS PHOTOSTOCK"}
- {id: 220, cat: Other, desc: "GFXNEWS PHOTOGRAPHY - ART"}
- {id: 227, cat: Other, desc: "GFXNEWS 2D Graphics"}
- {id: 250, cat: Other, desc: "GFXNEWS 2D Graphics Effects"}
- {id: 228, cat: Other, desc: "GFXNEWS 2D Graphics Actions, Pattern & Styles"}
- {id: 229, cat: Other, desc: "GFXNEWS 2D Graphics Background & PSD Source"}
- {id: 230, cat: Other, desc: "GFXNEWS 2D Graphics Brushes & Gradient"}
- {id: 246, cat: Other, desc: "GFXNEWS 2D Graphics Mockup"}
- {id: 247, cat: Other, desc: "GFXNEWS 2D Graphics Overlays"}
- {id: 249, cat: Other, desc: "GFXNEWS 2D Graphics Preset"}
- {id: 231, cat: Other, desc: "GFXNEWS 2D Graphics Toolkits, Papers & Objects"}
- {id: 245, cat: Other, desc: "GFXNEWS GFX Plugins"}
- {id: 210, cat: Other, desc: "GFXNEWS PLUGINS WIN"}
- {id: 223, cat: Other, desc: "GFXNEWS PLUGINS MAC"}
- {id: 225, cat: Other, desc: "GFXNEWS PLUGINS LINUX"}
- {id: 217, cat: Other, desc: "GFXNEWS SCRIPTS - WEB PROGRAMMING"}
- {id: 218, cat: Other, desc: "GFXNEWS TEMPLATES"}
- {id: 232, cat: Other, desc: "GFXNEWS TEXTURES"}
- {id: 219, cat: Other, desc: "GFXNEWS TUTORIALS"}
- {id: 238, cat: Other, desc: "GFXNEWS VECTOR GRAPHICS"}
- {id: 221, cat: Other, desc: "GFXNEWS VIDEO PRODUCTION"}
modes:
search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: sort
type: select
label: Sort requested from site
default: 1
options:
1: created
10: seeders
7: size
2: title
- name: type
type: select
label: Order requested from site
default: 2
options:
2: desc
1: asc
- name: info_activity
type: info
label: Account Inactivity
default: "You must stay active on the site...<ol><li>Any New users that have no stats for one month will have their account deleted</li><li>Any disabled accounts will be deleted after 6 months</li><li>Any accounts inactive for more than 6 months will be deleted</li><li>Donor accounts will be left untouched.</li></ol>"
login:
path: login.php
method: post
inputs:
"login_username": "{{ .Config.username }}"
"login_password": "{{ .Config.password }}"
autologin: 1
login: "Log in"
redirect: "/"
error:
- selector: table.error
message:
selector: table.error tr td div.msg
test:
path: /
selector: li a[href^="./login.php?logout=1"]
search:
paths:
- path: tracker.php
method: post
inputs:
$raw: "{{ if .Categories }}{{ range .Categories }}f[]={{.}}&{{end}}{{ else }}f[]=-1{{ end }}"
prev_allw: 1
prev_a: 0
prev_dla: 0
prev_dlc: 0
prev_dld: 0
prev_dlw: 0
prev_my: 0
prev_new: 0
prev_sd: 0
prev_da: 1
prev_dc: 0
prev_df: 1
prev_ds: 0
pre_tor_type: 0
prev_date_from: ""
prev_date_to: ""
prev_hide_rereg: 0
o: "{{ .Config.sort }}"
s: "{{ .Config.type }}"
df: 1
da: 1
nm: "{{ .Keywords }}"
pn: ""
submit: "Search"
rows:
selector: table.forumline > tbody > tr:has(a[href*="/dl.php?id="])
dateheaders:
selector: td[colspan="20"] > strong
filters:
- name: append
args: " -07:00" # PDT
- name: dateparse
args: "MM-dd-yyyy zzz"
fields:
title:
selector: td a[href*="/viewtopic.php?t="]
details:
selector: td a[href*="/viewtopic.php?t="]
attribute: href
download:
selector: td a[href*="/dl.php?id="]
attribute: href
category:
selector: td a[href*="/tracker.php?f="]
attribute: href
filters:
- name: querystring
args: f
size:
selector: td:contains(\00a0GB), td:contains(\00a0MB), td:contains(\00a0KB), td:contains(\00a0B)
optional: true
default: 0
seeders:
selector: td[title="Seeders"]
optional: true
default: 0
leechers:
selector: td[title="Leechers"]
optional: true
default: 0
grabs:
selector: td[title^="Replies:"]
optional: true
default: 0
description:
case:
span.tor-approved: Verified
span.tor-not-approved: Unverified
downloadvolumefactor:
text: 1
uploadvolumefactor:
text: 1
minimumratio:
text: 0.8
# engine n/a
@@ -0,0 +1,92 @@
---
id: aussierules
name: Aussierul.es
description: "AussieRul.es is a Private Torrent Tracker for AUSTRALIAN RULES FOOTBALL"
language: en-AU
type: private
encoding: UTF-8
links:
- https://aussierul.es/
caps:
categories:
1: TV/Sport
modes:
search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: type
label: Search Type
type: select
default: t_name
options:
t_name: Torrent Name
t_description: Torrent Description
t_both: Name & Description
t_uploader: Uploader
t_genre: IMDB Genre
- name: dead
label: Include Dead Torrents
type: select
default: no
options:
yes: Yes
no: No
login:
method: form
form: form
path: login.php
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: table:contains("An error has occured!")
test:
path: browse.php
selector: a[href*="logout.php"]
search:
paths:
- path: browse.php
inputs:
search_type: "{{ .Config.type }}"
include_dead_torrents: "{{ .Config.dead }}"
keywords: "{{ .Keywords }}"
rows:
selector: table#sortabletable > tbody > tr:not(:first-child)
fields:
category:
text: 1
title:
selector: td:nth-child(2) > div:nth-child(1) > a > strong
details:
selector: td:nth-child(2) > div:nth-child(1) > a
attribute: href
download:
selector: a[href*="download.php?id="]
attribute: href
date:
# 27-03-2021 18:34
selector: td:nth-child(2) > div:nth-child(2)
filters:
- name: dateparse
args: "d-MM-yyyy HH:mm"
size:
selector: td:nth-child(5)
grabs:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
# TS Special Edition v.7.4
+160
View File
@@ -0,0 +1,160 @@
---
id: azusa
name: Azusa (梓喵)
description: "Azusa (梓喵) is a CHINESE Private Torrent Tracker focusing on COMICS"
language: zh-CN
type: private
encoding: UTF-8
links:
- https://azusa.wiki/
caps:
categorymappings:
- {id: 404, cat: PC/Games, desc: "Game"}
- {id: 402, cat: Books/Comics, desc: "Comic"}
- {id: 403, cat: Books/EBook, desc: "Light Novel"}
- {id: 407, cat: Other, desc: "CG"}
- {id: 409, cat: Audio, desc: "Music"}
modes:
search: [q]
music-search: [q]
book-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
login:
# using cookie method because site regularly disables login page for certain events during the year
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href^="logout.php?csrf_token="]
search:
paths:
- path: torrents.php
allowEmptyInputs: true
inputs:
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
# 0 incldead, 1 active, 2 dead
incldead: 0
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
inclbookmarked: 0
approval_status: ""
trackerStatus: ""
search: "{{ .Keywords }}"
# 0 title, 1 descr, 3 uploader, 4 imdburl
search_area: 0
# 0 AND, 1 OR, 2 exact
search_mode: 0
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
rows:
selector: table.torrents > tbody > tr:has(table.torrentname)
fields:
category:
selector: a[href^="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title_default:
selector: a[href^="details.php?id="]
title:
selector: a[title][href^="details.php?id="]
attribute: title
optional: true
default: "{{ .Result.title_default }}"
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td.rowfollow:nth-child(4) > span[title]
attribute: title
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
date_added:
# time added
selector: td.rowfollow:nth-child(4):not(:has(span))
optional: true
filters:
- name: append
args: " +08:00" # CST
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
date:
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
size:
selector: td.rowfollow:nth-child(5)
seeders:
selector: a[href$="dllist=1#seeders"]
optional: true
default: 0
leechers:
selector: a[href$="dllist=1#leechers"]
optional: true
default: 0
grabs:
selector: a[href^="viewsnatches.php?id="]
optional: true
default: 0
downloadvolumefactor:
case:
img.pro_free: 0
img.pro_free2up: 0
img.pro_50pctdown: 0.5
img.pro_50pctdown2up: 0.5
img.pro_30pctdown: 0.3
"*": 1
uploadvolumefactor:
case:
img.pro_50pctdown2up: 2
img.pro_free2up: 2
img.pro_2up: 2
"*": 1
description:
selector: td:nth-child(2)
remove: a, b, font, img, span
# NexusPHP v1.7.20 2022-08-05 (custom)
+188
View File
@@ -0,0 +1,188 @@
---
id: backups
name: Back-ups
description: "Back-Ups is a Private Torrent Tracker for MOVIES / TV / GENERAL"
language: en-US
type: private
encoding: UTF-8
links:
- https://back-ups.me/
caps:
categorymappings:
- {id: 100, cat: Console, desc: "Anbernic"}
- {id: 15, cat: PC/Mobile-Android, desc: "Android"}
- {id: 35, cat: TV/Anime, desc: "Anime"}
- {id: 51, cat: PC/Mac, desc: "Apple"}
- {id: 3, cat: PC, desc: "Apps"}
- {id: 64, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 71, cat: Console, desc: "Batocera"}
- {id: 4, cat: Movies/BluRay, desc: "Blu-Ray"}
- {id: 42, cat: Console, desc: "CoinOPS Official"}
- {id: 65, cat: Console, desc: "CoinOps Unofficial"}
- {id: 22, cat: Console, desc: "CoinOps"}
- {id: 63, cat: Books/Comics, desc: "Comics"}
- {id: 60, cat: Console, desc: "Core"}
- {id: 72, cat: Console, desc: "CORE Community"}
- {id: 44, cat: Console, desc: "CP78"}
- {id: 16, cat: TV/Documentary, desc: "Docu"}
- {id: 41, cat: Console, desc: "Dragon"}
- {id: 5, cat: Books, desc: "EBooks"}
- {id: 80, cat: PC, desc: "Emulation Media"}
- {id: 61, cat: PC, desc: "emuxtras"}
- {id: 89, cat: PC, desc: "Ghostware"}
- {id: 84, cat: TV, desc: "GOG DRM FREE"}
- {id: 77, cat: PC, desc: "Hyperspin"}
- {id: 34, cat: TV, desc: "Kids"}
- {id: 43, cat: Console, desc: "LB No Intro"}
- {id: 85, cat: PC, desc: "MAME Rom Sets"}
- {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
- {id: 32, cat: Movies, desc: "Movie Pack"}
- {id: 106, cat: Movies/UHD, desc: "Movie Pack 4K"}
- {id: 6, cat: Movies, desc: "Movies"}
- {id: 105, cat: Movies/UHD, desc: "Movies 4K"}
- {id: 82, cat: PC, desc: "MS-DOS"}
- {id: 7, cat: Audio, desc: "Music"}
- {id: 31, cat: Console, desc: "Nintendo"}
- {id: 59, cat: Console, desc: "P-R-U"}
- {id: 8, cat: PC/Games, desc: "PC Games"}
- {id: 50, cat: Console, desc: "PlayBox"}
- {id: 87, cat: Console, desc: "Playnite"}
- {id: 30, cat: Console, desc: "Playstation"}
- {id: 62, cat: PC, desc: "Raspberry Pi"}
- {id: 83, cat: PC, desc: "Retro eXo"}
- {id: 56, cat: PC, desc: "Retro Minis"}
- {id: 81, cat: PC, desc: "Retro Scene Releases"}
- {id: 67, cat: PC, desc: "Retrobat"}
- {id: 88, cat: PC, desc: "RetroFE"}
- {id: 79, cat: PC, desc: "RGB-Pi"}
- {id: 76, cat: Console, desc: "RGS"}
- {id: 27, cat: PC, desc: "Roms and Emulators"}
- {id: 68, cat: PC, desc: "Schmoomer's"}
- {id: 57, cat: Console, desc: "Sega"}
- {id: 74, cat: PC, desc: "Sleyk/SGC"}
- {id: 29, cat: TV/Sport, desc: "Sport"}
- {id: 90, cat: PC, desc: "TeknoParrot"}
- {id: 9, cat: TV, desc: "TV Packs"}
- {id: 11, cat: TV, desc: "TV Shows"}
- {id: 97, cat: TV/Other, desc: "Video Courses"}
- {id: 75, cat: TV, desc: "Video Game Music"}
- {id: 73, cat: Console, desc: "Wolfanoz"}
- {id: 14, cat: TV/Sport, desc: "WWE"}
- {id: 26, cat: Console, desc: "Xbox"}
- {id: 12, cat: Console, desc: "XBOX360"}
- {id: 23, cat: XXX, desc: "xxx18+"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Filter freeleech only
default: false
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>40</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "To keep records updated regularly, all inactive accounts will be deleted after 60 days of inactivity."
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: td:contains("remaining tries")
test:
path: browse.php
selector: a[href*="/logout.php"]
search:
paths:
- path: browse.php
keywordsfilters:
# remove words <= 3 characters and surrounding special characters
- name: re_replace
args: ["(?:^|\\s)[_\\+\\/\\.\\-\\(\\)]*[\\S]{0,3}[_\\+\\/\\.\\-\\(\\)]*(?:\\s|$)", " "]
inputs:
do: search
keywords: "{{ .Keywords }}"
# t_name, t_description, t_both, t_uploader, t_genre
search_type: t_name
category: 0 # multi cat search not supported
# yes, no
include_dead_torrents: yes
# sort is done via do=quick_sort, and freeleech sorting is part of that set
rows:
selector: "table#sortabletable > tbody > tr:has(a[href*=\"/details.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"freedownload.gif\"]){{ else }}{{ end }}"
filters:
- name: andmatch
args: 66
fields:
category:
selector: a[href*="/browse.php?category="]
attribute: href
filters:
- name: querystring
args: category
title_default:
selector: a[href*="/details.php?id="]
title:
selector: div.tooltip-content > div
optional: true
default: "{{ .Result.title_default }}"
details:
selector: a[href*="/details.php?id="]
attribute: href
download:
selector: a[href*="/download.php?id="]
attribute: href
magnet:
selector: a[href^="magnet:?xt="]
attribute: href
size:
selector: td:nth-child(5)
grabs:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
poster:
selector: div.tooltip-content > img
attribute: src
downloadvolumefactor:
case:
img[src$="freedownload.gif"]: 0
img[src$="silverdownload.gif"]: 0.5
"*": 1
uploadvolumefactor:
case:
img[src$="x2.gif"]: 2
"*": 1
date:
selector: "td:nth-child(2) > div:has(span[style=\"float: right;\"])"
remove: span
filters:
- name: append
args: " +00:00" # GMT
- name: dateparse
args: "dd-MM-yyyy HH:mm zzz"
# TS Special Edition v.8.0
@@ -0,0 +1,81 @@
---
id: bangumi-moe
name: Bangumi Moe
description: "Bangumi Moe is a Public torrent site for ANIME"
language: en-US
type: public
encoding: UTF-8
requestDelay: 3
links:
- https://bangumi.moe/
caps:
categorymappings:
- {id: 549ef207fe682f7549f1ea90, cat: TV/Anime, desc: "Anime"}
- {id: 54967e14ff43b99e284d0bf7, cat: TV/Anime, desc: "Anime Pack"}
- {id: 549cc9369310bc7d04cddf9f, cat: Movies, desc: "Anime Movie"}
- {id: 549eef6ffe682f7549f1ea8b, cat: Audio, desc: "Music"}
- {id: 549eefebfe682f7549f1ea8c, cat: Books/Comics, desc: "Comic"}
- {id: 549ef015fe682f7549f1ea8d, cat: Console, desc: "Game"}
- {id: 549ef250fe682f7549f1ea91, cat: Other, desc: "Other"}
- {id: 549ff1db30bcfc225bf9e607, cat: Console, desc: "Dorama"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings: []
search:
paths:
# https://bangumi.moe/api/torrent/latest
# https://bangumi.moe/api/v2/torrent/search
- path: "{{ if .Keywords }}api/v2/torrent/search{{ else }}api/torrent/latest{{ end }}"
method: "{{ if .Keywords }}post{{ else }}get{{ end }}"
response:
type: json
inputs:
# $raw: "{{ if .Keywords }}query={{ .Keywords }}{{ else }}{{ end }}"
query: "{{ .Keywords }}"
rows:
selector: torrents
fields:
category:
selector: category_tag_id
title:
selector: title
details:
text: /
infohash:
selector: infoHash
poster:
selector: introduction
filters:
- name: regexp
args: "src=\\\"(.+?)\\\""
description:
selector: category_tag.locale.en
date:
# 2021-10-19T06:10:15.772Z
selector: publish_time
size:
selector: size
optional: true
default: 0 B
grabs:
selector: downloads
seeders:
selector: seeders
leechers:
selector: leechers
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# json api v2
+159
View File
@@ -0,0 +1,159 @@
---
id: beload
name: Beload
description: "Beload is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: hu-HU
type: private
encoding: UTF-8
links:
- https://beload.org/
caps:
categorymappings:
- {id: 27, cat: Movies/DVD, desc: "Animáció/DVD/Eng"}
- {id: 26, cat: Movies/DVD, desc: "Animáció/DVD/Hun"}
- {id: 25, cat: Movies/HD, desc: "Animáció/HD/Eng"}
- {id: 24, cat: Movies/HD, desc: "Animáció/HD/Hun"}
- {id: 28, cat: Movies/SD, desc: "Animáció/SD/Hun"}
- {id: 12, cat: Movies/SD, desc: "Film/Cam/Eng"}
- {id: 11, cat: Movies/SD, desc: "Film/Cam/Hun"}
- {id: 4, cat: Movies/DVD, desc: "Film/DVD-R/Eng"}
- {id: 3, cat: Movies/DVD, desc: "Film/DVD-R/Hun"}
- {id: 6, cat: Movies/DVD, desc: "Film/DVD9/Eng"}
- {id: 5, cat: Movies/DVD, desc: "Film/DVD9/Hun"}
- {id: 2, cat: Movies/Foreign, desc: "Film/HD/Eng"}
- {id: 1, cat: Movies/HD, desc: "Film/HD/Hun"}
- {id: 8, cat: Movies/Foreign, desc: "Film/SD/Eng"}
- {id: 7, cat: Movies/SD, desc: "Film/SD/Hun"}
- {id: 10, cat: Movies/Foreign, desc: "Film/XviD/Eng"}
- {id: 9, cat: Movies/SD, desc: "Film/XviD/Hun"}
- {id: 31, cat: Audio/Audiobook, desc: "Hangoskönyv"}
- {id: 42, cat: PC/Games, desc: "Játék/ISO"}
- {id: 43, cat: PC/Games, desc: "Játék/RIP"}
- {id: 30, cat: Books/Foreign, desc: "Könyv/Eng"}
- {id: 29, cat: Books/EBook, desc: "Könyv/Hun"}
- {id: 44, cat: PC/ISO, desc: "Program/ISO"}
- {id: 45, cat: PC, desc: "Program/RIP"}
- {id: 14, cat: TV/Foreign, desc: "Sorozat/HD/Eng"}
- {id: 13, cat: TV/HD, desc: "Sorozat/HD/Hun"}
- {id: 16, cat: TV/Foreign, desc: "Sorozat/SD/Eng"}
- {id: 15, cat: TV/SD, desc: "Sorozat/SD/hun"}
- {id: 38, cat: XXX/SD, desc: "XXX/HD"}
- {id: 41, cat: XXX/ImageSet, desc: "XXX/Kép"}
- {id: 40, cat: XXX/SD, desc: "XXX/SD"}
- {id: 20, cat: Audio/Foreign, desc: "Zene/Mp3/Eng"}
- {id: 19, cat: Audio/MP3, desc: "Zene/Mp3/Hun"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: sort
type: select
label: Sort requested from site
default: 4
options:
1: title
4: created
7: seeders
5: size
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
# using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href="/logout.php"]
search:
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
# 0 active, 1 both, 2 dead, 3 my uploa, 4 waiting for seeds
incldead: 1
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
# does not support imdbid searches
rows:
selector: "div.torrents-container > table > tbody > tr > td.text > table > tbody > tr:has(a[href^=\"details.php?id=\"]):not(:has(a[href=\"browse.php?cat=0\"]))"
after: 1
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php?id="][title]
attribute: title
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?torrent="]
attribute: href
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
poster:
selector: a.preview
attribute: href
date:
selector: td:nth-last-child(6) > a
attribute: title
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
files:
selector: td:nth-last-child(8)
size:
selector: td:nth-last-child(5) b
grabs:
selector: td:nth-last-child(4)
seeders:
selector: td:nth-last-child(3)
leechers:
selector: td:nth-last-child(2)
description:
case:
i.fa-check: Verified
i.fa-question: Unverified
downloadvolumefactor:
case:
"span[style=\"font-size: 10px;\"]:contains(\"0x\")": 0
"*": 1
uploadvolumefactor:
case:
"span[style=\"font-size: 10px;\"]:contains(\"2x\")": 2
"span[style=\"font-size: 10px;\"]:contains(\"4x\")": 4
"*": 1
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# engine n/a
@@ -0,0 +1,120 @@
---
id: best-torrents
name: Best-Torrents
description: "Best-Torrents is a POLISH Semi-Private PAY2DL Torrent Tracker for MOVIES / TV / GENERAL"
language: pl-PL
type: semi-private
encoding: UTF-8
links:
- https://best-torrents.com/
caps:
categorymappings:
- {id: 774, cat: Movies, desc: Filmy Polskie}
- {id: 642, cat: Movies, desc: Filmy/Bajki}
- {id: 1, cat: Movies/SD, desc: Filmy XviD/DivX}
- {id: 20, cat: Movies/DVD, desc: Filmy DVD}
- {id: 23, cat: Movies/HD, desc: Filmy x264}
- {id: 573, cat: Movies/UHD, desc: Filmy 4K UHD}
- {id: 17, cat: Movies/HD, desc: Filmy HD}
- {id: 265, cat: Movies/HD, desc: Filmy x265 HEVC}
- {id: 12, cat: Movies/3D, desc: Filmy 3D}
- {id: 530, cat: Movies/SD, desc: Filmy TS/CAM}
- {id: 9, cat: PC, desc: Programy}
- {id: 7, cat: Console, desc: Konsole}
- {id: 6, cat: PC/Games, desc: Gry}
- {id: 5, cat: Audio, desc: Muzyka}
- {id: 305, cat: Audio/Video, desc: Teledyski}
- {id: 22, cat: TV, desc: TV}
- {id: 228, cat: XXX, desc: Erotyka}
- {id: 25, cat: Books/EBook, desc: Książki}
- {id: 739, cat: Audio/Audiobook, desc: AudioBooki}
- {id: 26, cat: Books/Comics, desc: Komiksy}
- {id: 27, cat: PC/Mac, desc: Linux/Mac}
- {id: 28, cat: TV/Sport, desc: Sport}
- {id: 29, cat: TV/Anime, desc: Anime}
- {id: 31, cat: PC/Mobile-Other, desc: GSM/PDA}
- {id: 32, cat: Other, desc: Inne}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: td.komunikaty:contains("Nazwa użytkownika bądź hasło jest nieprawidłowe")
test:
path: /
selector: a[href$="/logout.php"]
search:
# https://best-torrents.com/szukaj.php?search=%25&cat=774&full_name=no
paths:
- path: szukaj.php
inputs:
# does not appear to support multi category searches
cat: 0
# no, 0 Standard mode, 1 Initial mode, 2 Full Phrase mode, 3 Final mode
full_name: no
search: "{{ if .Keywords }}{{ .Keywords }}{{ else }}%{{ end }}"
rows:
selector: div#torrents_browse-standard-all
fields:
categorydesc:
selector: div#torrents_browse-standard-category a
attribute: href
filters:
- name: regexp
args: kategorii/(.+?)/gatunku
title:
selector: div#torrents_browse-standard-torrent-name a
details:
selector: div#torrents_browse-standard-torrent-name a
attribute: href
download:
selector: div#torrents_browse-standard-download a
attribute: href
poster:
selector: div#torrents_browse-standard-poster img
attribute: src
date:
selector: div#torrents_browse-standard-time
remove: b
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
size:
selector: div#torrents_browse-standard-size
remove: b
filters:
- name: regexp
args: (\d{1,4}\.\d{2}\s+?[T|G|M|k]B)
seeders:
selector: div#torrents_browse-standard-seeds span font
leechers:
selector: div#torrents_browse-standard-peers span font
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -0,0 +1,209 @@
---
id: bestcore
name: Best-Core
description: "Best-Core is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
language: hu-HU
type: private
encoding: ISO-8859-2
links:
- https://best-core.info/
caps:
categorymappings:
- {id: 81, cat: Movies/3D, desc: "3D"}
- {id: 83, cat: Movies/UHD, desc: "4K/UHD"}
- {id: 80, cat: Movies/Other, desc: "Best-Core"}
- {id: 51, cat: Books/EBook, desc: "E-book"}
- {id: 88, cat: Audio/Audiobook, desc: "E-book/Hangoskönyv"}
- {id: 77, cat: Movies/HD, desc: "Film/BDRip/Eng"}
- {id: 86, cat: Movies/HD, desc: "Film/BDRip/Ger"}
- {id: 76, cat: Movies/HD, desc: "Film/BDRip/Hun"}
- {id: 75, cat: Movies/BluRay, desc: "Film/Blu-ray/Eng"}
- {id: 74, cat: Movies/BluRay, desc: "Film/Blu-ray/Hun"}
- {id: 25, cat: Movies/DVD, desc: "Film/DVD/Eng"}
- {id: 24, cat: Movies/DVD, desc: "Film/DVD/Hun"}
- {id: 85, cat: Movies/DVD, desc: "Film/DVD9"}
- {id: 21, cat: Movies/HD, desc: "Film/HD/Eng"}
- {id: 53, cat: Movies/HD, desc: "Film/HD/Hun"}
- {id: 20, cat: Movies/SD, desc: "Film/XviD/Eng"}
- {id: 34, cat: Movies/SD, desc: "Film/XviD/Hun"}
- {id: 90, cat: Movies/SD, desc: "Film/XviD/Pack"}
- {id: 26, cat: PC/Games, desc: "Játék/ISO"}
- {id: 52, cat: PC/Games, desc: "Játék/Rip"}
- {id: 89, cat: Movies/SD, desc: "Kamerás/Eng"}
- {id: 82, cat: Movies/SD, desc: "Kamerás/Hun"}
- {id: 38, cat: Other, desc: "Képek"}
- {id: 43, cat: Console/PS3, desc: "Konzol/PS"}
- {id: 45, cat: Console/PSP, desc: "Konzol/PSP"}
- {id: 44, cat: Console/XBox, desc: "Konzol/Xbox"}
- {id: 73, cat: TV/Anime, desc: "Mese/Eng"}
- {id: 70, cat: TV/Anime, desc: "Mese/Hun"}
- {id: 37, cat: PC/Mobile-Other, desc: "Mobil"}
- {id: 1, cat: PC/ISO, desc: "Program/ISO"}
- {id: 22, cat: PC/0day, desc: "Program/Rip"}
- {id: 54, cat: TV/SD, desc: "Sorozat/DVD/Eng"}
- {id: 55, cat: TV/SD, desc: "Sorozat/DVD/Hun"}
- {id: 58, cat: TV/SD, desc: "Sorozat/Xvid/Eng"}
- {id: 7, cat: TV/SD, desc: "Sorozat/Xvid/Hun"}
- {id: 62, cat: Audio/Video, desc: "Videoklip"}
- {id: 64, cat: XXX/DVD, desc: "XXX/DVD"}
- {id: 48, cat: XXX/ImageSet, desc: "XXX/Képek"}
- {id: 9, cat: XXX/XviD, desc: "XXX/Xvid"}
- {id: 40, cat: Audio/MP3, desc: "Zene/Eng"}
- {id: 6, cat: Audio/MP3, desc: "Zene/Hun"}
- {id: 87, cat: Audio/Lossless, desc: "Zene/Lossless"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
book-search: [q]
music-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search FreeLeech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
1: title
4: added
5: size
7: seeders
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrent oldalankén:</b> setting to <b>100</b> on your account profile.
- name: info_login
type: info
label: About login error
default: If you get a <b>Login Failed, got redirected.</b> error during your config <i>save</i> then most likely you have used an incorrect username or password.
- name: info_activity
type: info
label: Account Inactivity
default: "<ol><li>Users who have not accessed the site for 180 days will be deleted!</li><li>If the vacation mode is set, the system will not delete the given user for 365 days.</li></ol>"
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: :root:contains("Sikertelen bejelentkezés")
test:
path: index.php
selector: a[href^="logout.php?c="]
search:
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # for dashboard imdbid search
# 0 active, 1 all, 2 deadonly, 3 freeleech
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
rows:
selector: tr.torrent_h
filters:
- name: andmatch
fields:
category_optional:
selector: a[href^="browse.php?cat="]
attribute: href
optional: true
filters:
- name: querystring
args: cat
category:
text: "{{ if .Result.category_optional }}{{ .Result.category_optional }}{{ else }}38{{ end }}"
title_default:
# can be abbreviated
selector: a[href^="details.php?id="]
title:
# usually full length
selector: a[href^="details.php?id="]
attribute: title
optional: true
default: "{{ .Result.title_default }}"
details:
selector: a[href^="details.php?id="]
attribute: href
poster:
selector: a[onmouseover]
attribute: onmouseover
filters:
- name: regexp
args: "src=(.*?) "
- name: replace
args: ["https://i.kek.sh/null", ""]
download:
selector: a[href^="download.php?id="]
attribute: href
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
date:
selector: td:nth-child(2)
filters:
- name: regexp
args: "(\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2})"
- name: append
args: " +01:00" # CET
- name: replace
args: ["\xA0", " "]
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
files:
selector: td:nth-child(5)
size:
selector: td:nth-child(7)
grabs:
selector: td:nth-child(7)
filters:
- name: regexp
args: x \d(\d+) x$
seeders:
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
description:
case:
img[src="pic/yes.png"]: Verified
img[src="pic/nincs.png"]: Unverified
downloadvolumefactor:
case:
img[src="pic/free.png"]: 0
"*": 1
uploadvolumefactor:
selector: td:nth-child(7) b
filters:
- name: regexp
args: (\d+)
minimumratio:
text: 0.8
minimumseedtime:
# 3 days (as seconds = 3 x 24 x 60 x 60)
text: 259200
# custom v3.0
@@ -0,0 +1,141 @@
---
id: bibliotik
name: Bibliotik
description: "Bibliotik is a Private Torrent Tracker for EBOOKS and AUDIOBOOKS"
language: en-US
type: private
encoding: UTF-8
links:
- https://bibliotik.me/
caps:
categorymappings:
- {id: 1, cat: PC, desc: "Applications"}
- {id: 3, cat: Audio/Audiobook, desc: "Audiobooks"}
- {id: 4, cat: Books/Comics, desc: "Comics"}
- {id: 5, cat: Books/EBook, desc: "eBooks"}
- {id: 7, cat: Books/Mags, desc: "Magazines"}
modes:
search: [q]
book-search: [q, title, author]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: orderby
type: select
label: Sort requested from site
default: added
options:
"@relevance": relevance
title: title
size: size
added: added
seeders: seeders
- name: order
type: select
label: Order requested from site
default: DESC
options:
DESC: desc
ASC: asc
login:
path: /
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
keeplogged: 1
login: "Log In!"
error:
- selector: center:first-of-type
test:
path: torrents/
selector: div#pre_header
search:
paths:
- path: torrents/
inputs:
search: "{{ if .Query.Author }} @authors {{ .Query.Author }}{{ else }}{{ end }}{{ if .Query.Title }} @title {{ .Query.Title }}{{ else }}{{ end }}{{ .Keywords }}"
$raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
orderby: "{{ .Config.orderby }}"
order: "{{ .Config.order }}"
rows:
selector: table#torrents_table > tbody > tr:has(.title)
fields:
category:
selector: td:first-child
case:
div[title="Applications"]: 1
div[title="Audiobooks"]: 3
div[title="Comics"]: 4
div[title="Ebooks"]: 5
div[title="Magazines"]: 7
_editor:
selector: .editorLink
optional: true
author:
selector: .authorLink
optional: true
default: "{{ .Result._editor }}"
year:
selector: .torYear
optional: true
_filetype:
selector: .torFormat
optional: true
_retail:
selector: .torRetail
optional: true
booktitle:
selector: .title a
title:
text: "{{ .Result.booktitle }}"
filters:
- name: append
args: "{{ if .Result.author }} by {{ .Result.author }}{{ else }}{{ end }}{{ if .Result.year }} {{ .Result.year }}{{ else }}{{ end }}{{ if .Result._filetype }} {{ .Result._filetype }}{{ else }}{{ end }}{{ if .Result._retail }} {{ .Result._retail }}{{ else }}{{ end }}"
details:
selector: .title a
attribute: href
date:
selector: .t_files_size_added time
attribute: datetime
optional: true
default: now
download:
selector: a[title="Download"]
attribute: href
files:
selector: .t_files_size_added
filters:
- name: regexp
args: "^\\s*(\\d+)\\s*file"
size:
selector: .t_files_size_added span
attribute: data-bytecount
seeders:
selector: .seeders
optional: true
default: 0
leechers:
selector: .leechers
optional: true
default: 0
grabs:
selector: .snatches
optional: true
default: 0
downloadvolumefactor:
text: 1
uploadvolumefactor:
text: 1
# engine n/a
+152
View File
@@ -0,0 +1,152 @@
---
id: bigcore
name: BigCore
description: "BigCore is a HUNGARIAN Private Tracker for MOVIES / TV / GENERAL"
language: hu-HU
type: private
encoding: UTF-8
links:
- https://bigcore.eu/
caps:
categorymappings:
- {id: 48, cat: Movies/SD, desc: "CAM/Hun"}
- {id: 49, cat: Movies/SD, desc: "CAM/Eng"}
- {id: 50, cat: Movies/SD, desc: "SD/Hun"}
- {id: 51, cat: Movies/SD, desc: "SD/Eng"}
- {id: 52, cat: Movies/DVD, desc: "DVD/Hun"}
- {id: 53, cat: Movies/DVD, desc: "DVD/Eng"}
- {id: 54, cat: Movies/HD, desc: "HD/Hun"}
- {id: 55, cat: Movies/HD, desc: "HD/Eng"}
- {id: 56, cat: TV, desc: "Sorozat/Hun"}
- {id: 57, cat: TV, desc: "Sorozat/Eng"}
- {id: 58, cat: PC/Games, desc: "Játék/ISO"}
- {id: 59, cat: PC/ISO, desc: "Program/ISO"}
- {id: 60, cat: PC/Games, desc: "Játék/RIP"}
- {id: 61, cat: PC/0day, desc: "Program/RIP"}
- {id: 62, cat: Audio, desc: "Zene/Hun"}
- {id: 63, cat: Audio, desc: "Zene/Eng"}
- {id: 64, cat: Books, desc: "Könyv"}
- {id: 65, cat: PC/Mobile-Other, desc: "Mobil"}
- {id: 66, cat: XXX/x264, desc: "XXX/Video"}
- {id: 67, cat: XXX/ImageSet, desc: "XXX/Kép"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: sort
type: select
label: Sort requested from site
default: 4
options:
1: title
4: created
7: seeders
5: size
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrentek száma egy oldalon</b> setting to <b>100</b> on your account profile. The default is <i>30</i>.
login:
# using cookie method because login page has embedded Google reCAPTCHA
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href="/logout.php"]
search:
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
# 0 active, 1 incldead, 2 onlydead, 3 myupload, 4 waiting for seed
incldead: 1
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
rows:
selector: tr[id^="torrent_row_"], tr[id^="hidden_torrent_row_"]
after: 1
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a#torrentName
attribute: title
_id:
selector: a[href^="download.php?torrent="]
attribute: href
filters:
- name: querystring
args: torrent
details:
text: "details.php?id={{ .Result._id }}"
download:
selector: a[href^="download.php?torrent="]
attribute: href
poster:
selector: a[href^="kepek/"]
attribute: href
files:
selector: a.viewFileList
date:
selector: td:nth-child(7) a[title]
attribute: title
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
size:
selector: td:nth-child(8)
grabs:
selector: td:nth-child(9)
seeders:
selector: td:nth-child(10)
leechers:
selector: td:nth-child(11)
description:
case:
i.fa-check: "Verified"
i.fa-question: "Unverified"
downloadvolumefactor:
case:
span:contains("0x"): 0
"*": 1
uploadvolumefactor:
case:
span:contains("2x"): 2
span:contains("3x"): 3
span:contains("4x"): 4
span:contains("5x"): 5
"*": 1
minimumseedtime:
# 1 days (as seconds = 1 x 24 x 60 x 60)
text: 86400
# engine n/a
@@ -0,0 +1,232 @@
---
id: bigfangroup
name: BigFANGroup
description: "BigFANGroup is a RUSSIAN Public Torrent Tracker for MOVIES / TV"
language: ru-RU
type: public
encoding: windows-1251
links:
- https://bigfangroup.org/
- https://www.freebfg.org/
caps:
categorymappings:
- {id: 51, cat: Movies/3D, desc: "3D"}
- {id: 12, cat: TV, desc: "Анимация"}
- {id: 35, cat: Audio/Audiobook, desc: "Аудио-книги"}
- {id: 13, cat: Movies, desc: "Боевик"}
- {id: 52, cat: Movies, desc: "Биография"}
- {id: 33, cat: Movies, desc: "Военный"}
- {id: 45, cat: Audio/Video, desc: "Видеоклипы"}
- {id: 48, cat: Movies, desc: "Вестерн"}
- {id: 21, cat: Movies, desc: "Драма"}
- {id: 32, cat: TV/Documentary, desc: "Документальный"}
- {id: 39, cat: Movies, desc: "Детектив"}
- {id: 44, cat: Audio, desc: "Зарубежная музыка"}
- {id: 5, cat: PC/Games, desc: "Игры"}
- {id: 28, cat: Movies, desc: "Исторический"}
- {id: 18, cat: Movies, desc: "Катастрофа"}
- {id: 24, cat: Movies, desc: "Комедия"}
- {id: 36, cat: Movies, desc: "Криминал"}
- {id: 38, cat: Books, desc: "Книги и журналы"}
- {id: 53, cat: Movies, desc: "Классика"}
- {id: 54, cat: Audio, desc: "Классическая музыка"}
- {id: 19, cat: Movies, desc: "Мелодрама"}
- {id: 20, cat: Movies, desc: "Мультфильм"}
- {id: 31, cat: Movies, desc: "Мистика"}
- {id: 46, cat: Audio, desc: "Муз. сборники"}
- {id: 29, cat: Movies/Foreign, desc: "Наше кино"}
- {id: 49, cat: TV, desc: "Научно-популярное"}
- {id: 50, cat: TV, desc: "Новости"}
- {id: 27, cat: Movies, desc: "Приключения"}
- {id: 9, cat: Other, desc: "Разное"}
- {id: 43, cat: Audio/Foreign, desc: "Русская музыка"}
- {id: 1, cat: PC, desc: "Софт"}
- {id: 11, cat: TV, desc: "Сериалы"}
- {id: 37, cat: TV/Sport, desc: "Спорт"}
- {id: 47, cat: Movies, desc: "Сказки"}
- {id: 55, cat: Audio, desc: "Саундтрек"}
- {id: 25, cat: TV, desc: "ТВ-шоу"}
- {id: 22, cat: Movies, desc: "Триллер"}
- {id: 26, cat: Movies, desc: "Ужасы"}
- {id: 23, cat: Movies, desc: "Фантастика"}
- {id: 30, cat: Movies, desc: "Фэнтази"}
- {id: 42, cat: XXX, desc: "Эротика"}
- {id: 14, cat: Movies/HD, desc: "HDTV"}
- {id: 15, cat: Movies/DVD, desc: "DVD"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: stripcyrillic
type: checkbox
label: Strip Cyrillic Letters
default: false
- name: addrussiantotitle
type: checkbox
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
default: false
- name: sort
type: select
label: Sort requested from site
default: added
options:
added: created
seed: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
search:
paths:
# https://bigfangroup.org/browse.php?ajax=1&search=the+librarian&cat=0&incldead=0&year=0&format=0
- path: browse.php
inputs:
ajax: 1
search: "{{ .Keywords }}"
cat: "{{ if .Keywords }}0{{ else }}{{ end }}"
# 0 active, 1 incldead, 2 onlydead, 3 gold, 4 noseed, 5 silver, 7 BFG
incldead: "{{ if .Keywords }}1{{ else }}{{ end }}"
year: "{{ if .Keywords }}0{{ else }}1{{ end }}"
format: "{{ if .Keywords }}0{{ else }}{{ end }}"
s: "{{ if .Keywords }}{{ .Config.sort }}{{ else }}{{ end }}"
d: "{{ if .Keywords }}{{ .Config.type }}{{ else }}{{ end }}"
keywordsfilters:
# strip season and/or ep
- name: re_replace
args: ["(?i)\\b(?:[SE]\\d{1,4}){1,2}\\b\\s?", ""]
rows:
selector: table > tbody#highlighted > tr:has(a[href^="browse.php?cat="])
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php?id="]
filters:
# normalize to SXXEYY format
- name: re_replace
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))[\\s:]*(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езоны?.+?(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))?", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езоны?.+?(\\d+(?:-\\d+)?)\\s*(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))\\s+из\\s*(\\w?)", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))?", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)\\s*(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))\\s+из\\s*(\\w?)", "S$1E$2 of $3"]
- name: re_replace
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))[\\s:]*(\\d+(?:-\\d+)?)", "S$1E$2"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s*[CС]езоны?.+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "S$1E$2"]
- name: re_replace
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?).+?(\\d+(?:-\\d+)?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "S$1E$2"]
- name: re_replace
args: ["(?i)[CС]езоны?[\\s:]*(\\d+(?:-\\d+)?)", "S$1"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езоны?", "S$1"]
- name: re_replace
args: ["(?i)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))[\\s:]*(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)", "E$1 of $2"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s*из\\s*(\\w?)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "E$1 of $2"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))\\s+из\\s*(\\w?)", "E$1 of $2"]
- name: re_replace
args: ["(?i)(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))[\\s:]*(\\d+(?:-\\d+)?)", "E$1"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s+(?:\\s*(?:[CС]ери[ияй]|Эпизод|Выпуски?))", "E$1"]
- name: re_replace
args: ["(?i)\\s\\|\\sот\\s([\\w\\p{P}\\p{S}]+)$", "-$1"]
- name: re_replace
args: ["\\s\\|\\s(\\w{4,})$", "-$1"]
- name: re_replace
args: ["(\\([\\p{IsCyrillic}\\W]+\\))|(^[\\p{IsCyrillic}\\W\\d]+\\/ )|([\\p{IsCyrillic} \\-]+,+)|([\\p{IsCyrillic}]+)", "{{ if .Config.stripcyrillic }}{{ else }}$1$2$3$4{{ end }}"]
- name: re_replace
args: ["(?i)\\bHDTV[-\\s]?Rip\\b", "HDTV"]
- name: re_replace
args: ["(?i)\\bSAT[-\\s]?Rip\\b", "HDTV"]
- name: re_replace
args: ["(?i)\\bWEB[-\\s]?DL[-\\s]?Rip\\b", "WEB-DL"]
- name: re_replace
args: ["(?i)\\bWEB\\sRip\\b", "WEBRip"]
- name: re_replace
args: ["(?i)\\bWEB\\sDL\\b", "WEB-DL"]
- name: re_replace
args: ["[\\[\\(\\{<«][\\s\\W]*[\\]\\)\\}>»]", ""]
- name: re_replace
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
- name: append
args: "{{ if .Config.addrussiantotitle }} RUS{{ else }}{{ end }}"
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="details.php?id="]
attribute: href
filters:
- name: replace
args: ["details", "download"]
size:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(7)
leechers:
selector: td:nth-child(8)
date:
selector: img[src="pic/time.png"]
attribute: title
filters:
- name: replace
args: [" в ", " "]
- name: replace
args: ["января", "January"]
- name: replace
args: ["февраля", "February"]
- name: replace
args: ["марта", "March"]
- name: replace
args: ["апреля", "April"]
- name: replace
args: ["мая", "May"]
- name: replace
args: ["июня", "June"]
- name: replace
args: ["июля", "July"]
- name: replace
args: ["августа", "August"]
- name: replace
args: ["сентября", "September"]
- name: replace
args: ["октября", "October"]
- name: replace
args: ["ноября", "November"]
- name: replace
args: ["декабря", "December"]
- name: append
args: " +03:00" # MSK
- name: dateparse
args: "d MMMM yyyy HH:mm:ss zzz"
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
description:
selector: a[href^="details.php?id="]
# engine n/a
@@ -0,0 +1,184 @@
---
id: bitbazis
name: Bit-Bázis
description: "Bit-Bázis is a HUNGARIAN Private Tracker for MOVIES / TV"
language: hu-HU
type: private
encoding: UTF-8
requestDelay: 2
links:
- https://bitbazis.net/
caps:
# dont forget to update the path categories in the search block
categorymappings:
- {id: 15, cat: Movies/SD, desc: "Film-SD", default: true}
- {id: 83, cat: Movies/HD, desc: "Film-HD", default: true}
- {id: 94, cat: Movies/HD, desc: "Film-FHD", default: true}
- {id: 85, cat: Movies/SD, desc: "Film-Cam", default: true}
- {id: 22, cat: TV, desc: "Sorozat-Hun", default: true}
- {id: 25, cat: Audio/MP3, desc: "Mp3-Hun", default: true}
- {id: 26, cat: Audio/MP3, desc: "Mp3-Eng", default: true}
- {id: 84, cat: Audio/Lossless, desc: "FLAC-Hun", default: true}
- {id: 71, cat: Audio/Lossless, desc: "FLAC-Eng", default: true}
- {id: 27, cat: Books/EBook, desc: "Könyv", default: true}
- {id: 81, cat: PC/0day, desc: "Program", default: true}
- {id: 31, cat: PC/Games, desc: "Játék", default: true}
- {id: 69, cat: TV/Anime, desc: "Mese-SD", default: true}
- {id: 91, cat: TV/Anime, desc: "Mese-HD", default: true}
- {id: 64, cat: Movies, desc: "Film-Pack", default: true}
- {id: 92, cat: Movies/UHD, desc: "Film-UHD", default: true}
- {id: 66, cat: XXX/ImageSet, desc: "XXX", default: false}
- {id: 33, cat: XXX/SD, desc: "XXX-SD", default: false}
- {id: 89, cat: XXX/x264, desc: "XXX-HD", default: false}
- {id: 24, cat: Audio/Video, desc: "Klip", default: true}
- {id: 14, cat: Other, desc: "Egyéb", default: true}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
book-search: [q]
music-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: freeleech
type: checkbox
label: Filter freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
1: title
4: added
5: size
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrentek száma egy oldalon:</b> setting to <b>50</b> on your account profile.
- name: info_activity
type: info
label: Account Inactivity
default: "If the user does not access the site for 1 month, he will receive an e-mail notification. If you stay away for 9 months, your account will be suspended and deleted. After the 9-month absence, the user cannot register again."
login:
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[onclick="confirmLogout()"]
search:
paths:
- path: browse.php
categories: [15, 83, 94, 85, 22, 25, 26, 84, 71, 27, 81, 31, 69, 91, 64, 92, 24, 14]
inputs:
# 0 all, 1 active, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
incldead: 0
- path: browse.php
categories: [33, 66, 89]
inputs:
xxx: 1
# 0 active, 1 all, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
incldead: 1
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ .Keywords }}"
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
# site does not support imdbid searching
# can support genre searching but you need to know the id, eg &genre23=1 for Comedy (id is 23)
rows:
selector: "tr[class^=\"toriadatok\"]:has(i.status-yes){{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
fields:
categorydesc:
selector: td[class^="catpic_"]
attribute: class
filters:
- name: replace
args: ["catpic_", ""]
title:
selector: span.torrent-name
_id:
selector: tr[data-torrent-id]
attribute: data-torrent-id
details:
text: "details.php?id={{ .Result._id }}#adatlap"
download:
text: "download.php?torrent={{ .Result._id }}"
poster:
selector: a.preview
attribute: href
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
size:
selector: td.torrent-size
date:
# 36 perce
# 13 órája és 59 perce
# 2 napja és 10 órája
# 1 hete és 1 napja
# 1 éve és 30 hete
selector: span.uploader
filters:
- name: replace
args: ["és ", " "]
- name: replace
args: ["perce", "minute"]
- name: replace
args: ["órája", "hour"]
- name: replace
args: ["napja", "day"]
- name: replace
args: ["hete", "week"]
- name: replace
args: ["éve", "year"]
- name: timeago
seeders:
selector: td:nth-child(5)
optional: true
default: 0
leechers:
selector: td:nth-child(6)
optional: true
default: 0
grabs:
selector: td:nth-child(7)
optional: true
default: 0
genre:
selector: span.torrent-genre
description:
text: "{{ .Result.genre }}"
downloadvolumefactor:
case:
"i:contains(\"(Free)\")": 0
"*": 1
uploadvolumefactor:
case:
"i:contains(\"(2x)\")": 2
"i:contains(\"(3x)\")": 3
"i:contains(\"(4x)\")": 4
"*": 1
minimumseedtime:
# 1 day (as seconds = 1 x 24 x 60 x 60)
text: 86400
# engine n/a
+146
View File
@@ -0,0 +1,146 @@
---
id: bitded
name: Bitded
description: "Bitded is a THAI Private Torrent Tracker for MOVIES / TV / GENERAL"
language: th-TH
type: private
encoding: UTF-8
links:
- https://www.dedbit.com/
caps:
categorymappings:
- {id: 1, cat: Other, desc: "ในพระราชสำนัก (in the royal court)"}
- {id: 4, cat: TV, desc: "รายการทีวี (TV)"}
- {id: 7, cat: TV, desc: "ภาพยนตร์ชุด (Series)"}
- {id: 12, cat: Books/EBook, desc: "หนังสือ สื่อการสอน (Books)"}
- {id: 13, cat: Other/Misc, desc: "ทั่วไป (General)"}
- {id: 14, cat: TV/Sport, desc: "กีฬา (Sport)"}
- {id: 16, cat: TV/Documentary, desc: "สารคดี (Documentary)"}
- {id: 18, cat: TV/Other, desc: "ธรรมะ (Dharma)"}
- {id: 21, cat: Books/Comics, desc: "หนังสือการ์ตูน (Comics)"}
- {id: 22, cat: TV/Anime, desc: "การ์ตูนอนิเมชั่น (Anime)"}
- {id: 31, cat: Movies, desc: "ภาพยนตร์ (Movies)"}
- {id: 34, cat: Movies/DVD, desc: "ภาพยนตร์ DVD (Movies DVD)"}
- {id: 35, cat: Movies/HD, desc: "วีดีโอความละเอียดสูง (Movies HD)"}
- {id: 41, cat: Audio/MP3, desc: "เพลง (Music)"}
- {id: 43, cat: Audio/Video, desc: "มิวสิควีดีโอ (Music video)"}
- {id: 53, cat: PC/0day, desc: "โปรแกรม/Windows (Software Windows)"}
- {id: 54, cat: PC/Mac, desc: "โปรแกรม/Mac, Linux (Software Mac/Linux)"}
- {id: 55, cat: PC/Mobile-Other, desc: "โปรแกรม/Mobile (Software Mobile)"}
- {id: 61, cat: PC/Games, desc: "เกม-Computer (PC Games)"}
- {id: 62, cat: Console, desc: "เกม-Console (Console)"}
- {id: 63, cat: Console, desc: "เกมส์-พกพา (Console portable)"}
- {id: 72, cat: Other, desc: "รูปภาพ (Pics)"}
- {id: 74, cat: Other, desc: "J-IDOL"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
- name: sort
type: select
label: Sort requested from site
default: added
options:
added: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: DESC
options:
DESC: desc
ASC: asc
login:
path: takelogin.php
method: post
inputs:
x: axion
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: td.embedded:contains("Login failed!")
test:
path: my.php
selector: a[href="logout.php"]
search:
paths:
# https://www.dedbit.com/browse.php?c12=1&c13=1&incldead=1&freeload=1&search=&sort=added&h=6&d=DESC
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
# 0 active, 1 incldead, 2 onlydead
incldead: 1
freeload: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
search: "{{ .Keywords }}"
sort: "{{ .Config.sort }}"
d: "{{ .Config.type }}"
# site does not support imdbid searching and does not display imdb links in results.
rows:
selector: table.torrenttable tbody tr:has(a[href^="download.php"])
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php?id="]
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php"]
attribute: href
files:
selector: td:nth-last-child(9)
date:
selector: td:nth-last-child(7)
filters:
- name: append
args: " +07:00" # ICT
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
size:
selector: td:nth-last-child(5)
grabs:
selector: td:nth-last-child(4)
seeders:
selector: td:nth-last-child(3)
leechers:
selector: td:nth-last-child(2)
downloadvolumefactor:
case:
img[src$="pic/freeload.png"]: 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.0
# engine n/a
@@ -0,0 +1,160 @@
---
id: bitgamer
name: bitGAMER
description: "bitGAMER is a Private Torrent Tracker for GAMES"
language: en-US
type: private
encoding: UTF-8
links:
- https://bitgamer.ch/
caps:
categorymappings:
- {id: 1, cat: XXX/Other, desc: "Adult Games"}
- {id: 3, cat: PC/0day, desc: "Burning/Ripping Tools"}
- {id: 4, cat: Books/Other, desc: "Guides/Game Documents"}
- {id: 13, cat: Movies/Other, desc: "Movies/TV/Video"}
- {id: 48, cat: Audio/Other, desc: "Music/OST"}
- {id: 52, cat: Console/Other, desc: "Amiga"}
- {id: 18, cat: PC/Mobile-iOS, desc: "Apple - iPhone/iPod/iPad"}
- {id: 54, cat: Console/Other, desc: "Arcade"}
- {id: 19, cat: Console/Other, desc: "Atari"}
- {id: 51, cat: Console/Other, desc: "Commodore 64"}
- {id: 22, cat: PC/Mobile-Android, desc: "Google - Android"}
- {id: 61, cat: Console/Other, desc: "Hyperspin"}
- {id: 24, cat: Console/XBox, desc: "Microsoft - Xbox"}
- {id: 25, cat: Console/XBox 360, desc: "Microsoft - Xbox 360"}
- {id: 49, cat: Console/XBox 360, desc: "Microsoft - Xbox 360 JTAG"}
- {id: 57, cat: Console/XBox One, desc: "Microsoft - Xbox One"}
- {id: 27, cat: Console/Other, desc: "Neo Geo"}
- {id: 55, cat: Console/3DS, desc: "Nintendo - 3DS"}
- {id: 28, cat: Console/NDS, desc: "Nintendo - DS"}
- {id: 29, cat: Console/Other, desc: "Nintendo - Game Boy Advance"}
- {id: 30, cat: Console/Other, desc: "Nintendo - Gameboy"}
- {id: 31, cat: Console/Other, desc: "Nintendo - Gamecube "}
- {id: 33, cat: Console/Other, desc: "Nintendo - N64 "}
- {id: 35, cat: Console/Other, desc: "Nintendo - NES"}
- {id: 50, cat: Console/Other, desc: "Nintendo - SNES"}
- {id: 63, cat: Console/Other, desc: "Nintendo - Switch"}
- {id: 37, cat: Console/Wii, desc: "Nintendo - Wii"}
- {id: 59, cat: Console/WiiU, desc: "Nintendo - Wii U"}
- {id: 53, cat: PC/Games, desc: "PC - DOS"}
- {id: 64, cat: PC/Games, desc: "PC - Linux"}
- {id: 39, cat: PC/Mac, desc: "PC - Mac OS X"}
- {id: 40, cat: PC/Games, desc: "PC - Windows"}
- {id: 41, cat: Console/Other, desc: "Sega"}
- {id: 42, cat: Console/Other, desc: "Sega - Dreamcast"}
- {id: 43, cat: Console/Other, desc: "Sega - Megadrive"}
- {id: 44, cat: Console/Other, desc: "Sony - Playstation"}
- {id: 45, cat: Console/Other, desc: "Sony - Playstation 2"}
- {id: 46, cat: Console/PS3, desc: "Sony - Playstation 3"}
- {id: 56, cat: Console/PS4, desc: "Sony - Playstation 4"}
- {id: 47, cat: Console/PSP, desc: "Sony - Playstation Portable "}
- {id: 58, cat: Console/PS Vita, desc: "Sony - Playstation Vita"}
modes:
search: [q]
book-search: [q]
allowrawsearch: true
settings:
- name: username
type: text
label: Username
- name: password
type: password
label: Password
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: 4
options:
4: created
7: seeders
5: size
1: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
login:
path: takelogin.php
method: post
inputs:
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
error:
- selector: td:has(:contains("Login failed"))
test:
path: my.php
selector: a[href^="logout.php"]
search:
paths:
- path: browse.php
inputs:
search: "{{ .Keywords }}"
# multi-cat search appears to be broken on site
category: 0
# 0: name, 1: descr, 2: both
blah: 0
# 0: include dead, 1: alive, 2: dead, 3: freeleech
incldead: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
sort: "{{ .Config.sort }}"
type: "{{ .Config.type }}"
rows:
selector: .outer > form > table > tbody > tr:has(a[href^="download.php"])
fields:
category:
selector: a[href^="browse.php?cat="]
attribute: href
filters:
- name: querystring
args: cat
title:
selector: a[href^="details.php"][title]
attribute: title
details:
selector: a[href^="details.php"]
attribute: href
download:
selector: a[href^="download.php"]
attribute: href
date:
# several old torrents with `0000-00-00 00:00:00` dates
selector: td:nth-child(5):not(:contains("000-00-0000:00:00"))
filters:
- name: append
args: " +00:00" # GMT
- name: dateparse
args: "yyyy-MM-ddHH:mm:ss zzz"
optional: true
default: now
size:
selector: td:nth-child(6)
seeders:
selector: td:nth-child(10)
leechers:
selector: td:nth-child(11)
grabs:
selector: td:nth-child(7)
downloadvolumefactor:
case:
img[src*="/freeleech.png"]: 0
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# engine n/a
@@ -0,0 +1,182 @@
---
id: bithumen
name: BitHUmen
description: "BitHUmen is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: hu-HU
type: private
encoding: ISO-8859-2
links:
- https://bithumen.be/
caps:
categorymappings:
- {id: 23, cat: Movies/SD, desc: "Film/Hun/SD"}
- {id: 24, cat: Movies/DVD, desc: "Film/Hun/DVD-R"}
- {id: 25, cat: Movies/HD, desc: "Film/Hun/720p"}
- {id: 37, cat: Movies/HD, desc: "Film/Hun/1080p"}
- {id: 33, cat: Movies/BluRay, desc: "Film/Hun/Blu-ray"}
- {id: 30, cat: XXX, desc: "XXX/SD"}
- {id: 19, cat: Movies/SD, desc: "Film/Eng/SD"}
- {id: 20, cat: Movies/DVD, desc: "Film/Eng/DVD-R"}
- {id: 5, cat: Movies/HD, desc: "Film/Eng/720p"}
- {id: 39, cat: Movies/HD, desc: "Film/Eng/1080p"}
- {id: 40, cat: Movies/BluRay, desc: "Film/Eng/Blu-ray"}
- {id: 34, cat: XXX, desc: "XXX/HD"}
- {id: 7, cat: TV/SD, desc: "Sorozat/Hun/SD"}
- {id: 41, cat: TV/HD, desc: "Sorozat/Hun/HD"}
- {id: 26, cat: TV/SD, desc: "Sorozat/Eng/SD"}
- {id: 42, cat: TV/HD, desc: "Sorozat/Eng/HD"}
- {id: 28, cat: Books, desc: "eBook/Hun"}
- {id: 29, cat: Books, desc: "eBook/Eng"}
- {id: 9, cat: Audio/MP3, desc: "Mp3/Hun"}
- {id: 35, cat: Audio/Lossless, desc: "Lossless/Hun"}
- {id: 1, cat: PC/0day, desc: "Programok/ISO"}
- {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
- {id: 31, cat: Console/PS4, desc: "Játékok/PS"}
- {id: 36, cat: Console/Wii, desc: "Játékok/Wii"}
- {id: 6, cat: Audio/MP3, desc: "Mp3/Eng"}
- {id: 38, cat: Audio/Lossless, desc: "Lossless/Eng"}
- {id: 22, cat: PC, desc: "Programok/egyéb"}
- {id: 21, cat: PC, desc: "Játékok/Rip/Dox"}
- {id: 32, cat: Console/XBox 360, desc: "Játékok/Xbox360"}
- {id: 27, cat: Other, desc: "Klipek"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid]
movie-search: [q, imdbid]
music-search: [q]
book-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: sort
type: select
label: Sort requested from site
default: added
options:
added: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: DESC
options:
DESC: desc
ASC: asc
- name: info_activity
type: info
label: Account Inactivity
default: "If you do not visit the site for 1 year, you will be banned for inactivity. The permanent deletion of your account after the ban is 2 years."
login:
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href^="/logout.php?"]
search:
paths:
- path: browse.php
inputs:
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
onlytitle: "{{ if .Query.IMDBID }}{{ else }}yes{{ end }}"
sort: "{{ .Config.sort }}"
d: "{{ .Config.type }}"
rows:
selector: table#torrenttable > tbody > tr:has(a[href^="details.php?id="])
fields:
category:
selector: a[href^="?cat="]
attribute: href
filters:
- name: querystring
args: cat
title_default:
selector: a[href^="details.php?id="]
title:
selector: a[href^="details.php?id="]
attribute: title
optional: true
default: "{{ .Result.title_default }}"
details:
selector: a[href^="details.php?id="]
attribute: href
# download button can be disabled in the profile, use details link instead
download:
selector: a[href^="details.php?id="]
attribute: href
filters:
- name: replace
args: ["details.php?id=", "download.php/"]
- name: append
args: "/invalid.torrent"
poster:
selector: a[onmouseover^="bithumen.UI.images.coverShow"]
attribute: onmouseover
filters:
- name: regexp
args: "\"(.*?)\""
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
size:
selector: td:nth-child(6) > u
files:
selector: td:nth-child(3)
grabs:
selector: td:nth-child(7)
seeders:
selector: td:nth-child(8)
leechers:
selector: td:nth-child(9)
filters:
- name: regexp
args: /\s*([\d,]+)
genre:
selector: span:has(a[href^="browse.php?genre="])
downloadvolumefactor:
text: 0
uploadvolumefactor:
selector: td:nth-child(5) > nobr > font:contains(" × ")
optional: true
default: 1
minimumseedtime:
# 1 day (as seconds = 24 x 60 x 60)
text: 86400
description:
selector: td:nth-child(2) > div
date_year:
selector: td:nth-child(5):contains('.')
optional: true
remove: font
filters:
- name: replace
args: [". ", " "]
- name: prepend
args: "{{ .Today.Year }}."
- name: re_replace
args: ["([0-9]{4}).([0-9]+).([0-9]+) (.*)", "$2.$3.$1 $4"]
date_day:
selector: td:nth-child(5):contains('ma'), td:nth-child(5):contains("tegnap"), td:nth-child(5):contains('-')
optional: true
remove: font
filters:
- name: replace
args: ["ma", "today"]
- name: replace
args: ["tegnap", "yesterday"]
date:
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
# engine tbd
@@ -0,0 +1,82 @@
---
id: bitmagnet
name: BitMagnet (Local DHT)
description: "BitMagnet is a self-hosted BitTorrent DHT search engine"
language: en-US
type: semi-private
encoding: UTF-8
links:
- http://127.0.0.1:3333/
- http://bitmagnet:3333/
caps:
categorymappings:
- {id: 2000, cat: Movies, desc: "movie"}
- {id: 2030, cat: Movies/SD, desc: "movie_sd"} # unverified
- {id: 2040, cat: Movies/HD, desc: "movie_hd"} # unverified
- {id: 2045, cat: Movies/UHD, desc: "movie_uhd"} # unverified
- {id: 2060, cat: Movies/3D, desc: "movie_3d"} # unverified
- {id: 3000, cat: Audio, desc: "music"}
- {id: 3030, cat: Audio/Audiobook, desc: "audiobook"}
- {id: 4000, cat: PC, desc: "software"}
- {id: 4050, cat: PC/Games, desc: "game"} # unverified
- {id: 5000, cat: TV, desc: "tv_show"}
- {id: 5030, cat: TV/SD, desc: "tv_show_sd"} # unverified
- {id: 5040, cat: TV/HD, desc: "tv_show_hd"} # unverified
- {id: 5045, cat: TV/UHD, desc: "tv_show_uhd"} # unverified
- {id: 6000, cat: XXX, desc: "xxx"}
- {id: 6070, cat: XXX/Other, desc: "xxx_other"} # unverified
- {id: 7000, cat: Books, desc: "book"} # unverified
- {id: 7020, cat: Books/EBook, desc: "ebook"}
- {id: 7030, cat: Books/Comics, desc: "comic"}
- {id: 8000, cat: Other, desc: "Unknown"}
modes:
search: [q]
tv-search: [q, season, ep, imdbid, tmdbid]
movie-search: [q, imdbid, tmdbid]
music-search: [q]
book-search: [q]
settings: []
search:
paths:
- path: torznab/api
response:
type: xml
inputs:
t: "{{ .Query.Type }}"
q: "{{ .Keywords }}"
cat: "{{ join .Categories \",\" }}"
imdbid: "{{ .Query.IMDBIDShort }}"
tmdbid: "{{ .Query.TMDBID }}"
season: "{{ .Query.Season }}"
ep: "{{ .Query.Ep }}"
limit: 100
rows:
selector: rss > channel > item
fields:
categorydesc:
selector: category
title:
selector: title
details:
text: /
date:
selector: pubDate
infohash:
selector: guid
size:
selector: size
seeders:
text: 1
leechers:
text: 1
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# torznab xml
@@ -0,0 +1,166 @@
---
id: bitpalace
name: Bitpalace
description: "Bitpalace is a HUNGARIAN Private Torrent Tracker for MOVIES / TV / GENERAL"
language: hu-HU
type: private
encoding: UTF-8
links:
- https://bitpalace.cc/
caps:
categorymappings:
- {id: 8, cat: Movies/BluRay, desc: "BLUERAY ENG"}
- {id: 7, cat: Movies/BluRay, desc: "BLUERAY HUN"}
- {id: 15, cat: Movies/DVD, desc: "DVD-R ENG"}
- {id: 2, cat: Movies/DVD, desc: "DVD-R HUN"}
- {id: 9, cat: Books, desc: "Ebook ENG"}
- {id: 5, cat: Books, desc: "Ebook HUN"}
- {id: 40, cat: Other, desc: "EGYÉBB"}
- {id: 16, cat: Movies/HD, desc: "HD ENG"}
- {id: 1, cat: Movies/HD, desc: "HD HUN"}
- {id: 25, cat: TV/Anime, desc: "MESE ENG"}
- {id: 24, cat: TV/Anime, desc: "MESE HUN"}
- {id: 18, cat: PC/Games, desc: "PC game ISO"}
- {id: 21, cat: Console, desc: "PC game KONZOL"}
- {id: 17, cat: PC/Games, desc: "PC game RIP"}
- {id: 27, cat: PC/ISO, desc: "Program ISO"}
- {id: 26, cat: PC/Mobile-Other, desc: "Program MOBIL"}
- {id: 78, cat: PC/0day, desc: "Program RIP"}
- {id: 23, cat: TV/SD, desc: "Sor.DVD-R ENG"}
- {id: 22, cat: TV/SD, desc: "Sor.DVD-R HUN"}
- {id: 14, cat: TV/SD, desc: "Sor.XVID ENG"}
- {id: 4, cat: TV, desc: "Sorozat HUN"}
- {id: 13, cat: Movies/SD, desc: "XVID ENG"}
- {id: 3, cat: Movies/SD, desc: "XVID HUN"}
- {id: 12, cat: XXX/DVD, desc: "XXX DVD-R"}
- {id: 6, cat: XXX/x264, desc: "XXX HD"}
- {id: 10, cat: XXX/ImageSet, desc: "XXX KÉPEK"}
- {id: 11, cat: XXX/XviD, desc: "XXX XVID"}
- {id: 19, cat: Audio/Video, desc: "ZENE Klipp"}
- {id: 20, cat: Audio/MP3, desc: "ZENE MP3"}
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: 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
method: form
form: form[action="/login_check"]
inputs:
_username: "{{ .Config.username }}"
_password: "{{ .Config.password }}"
logout: ""
error:
- selector: h3[style="color:red"]
test:
path: my
selector: a[href="/logout"]
search:
paths:
- path: browse
keywordsfilters:
# the site uses % for wildcard
- name: re_replace
args: ["[^a-zA-Z0-9]+", "%"]
inputs:
$raw: "{{ range .Categories }}cat[]={{.}}&{{end}}"
search: "{{ .Keywords }}"
# 0 active, 1 incldead, 2 onlydead
incldead: 1
sort: "{{ .Config.sort }}"
order: "{{ .Config.type }}"
# does not support imdbid searches
rows:
selector: "table#torrenttable > tbody > tr:has(a[onclick]):not(:contains(\"Törölt\")){{ if .Config.freeleech }}:has(img[src$=\"/freeicon.png\"]){{ else }}{{ end }}"
fields:
categorydesc:
selector: img
attribute: alt
title:
selector: a[onclick]
remove: style
_id:
selector: a[onclick]
attribute: onclick
filters:
- name: regexp
args: (\d+)
details:
text: "details?id={{ .Result._id }}"
download:
text: "/raw/download?id={{ .Result._id }}&name={{ .Result.title }}.torrent"
imdbid:
selector: a[href*="imdb.com/title/tt"]
attribute: href
description:
case:
img[src$="/yes.png"]: "Verified"
img[src$="/nincs.png"]: "Unverified"
poster:
selector: img[width="200"][height="250"]
attribute: src
date:
selector: td:nth-last-child(6)
filters:
- name: append
args: " +01:00" # CET
- name: dateparse
args: "yyyy-MM-dd HH:mm:ss zzz"
size:
selector: td:nth-last-child(5)
grabs:
selector: td:nth-last-child(4)
seeders:
selector: td:nth-last-child(3)
leechers:
selector: td:nth-last-child(2)
downloadvolumefactor:
case:
img[src$="/freeicon.png"]: 0
"*": 1
uploadvolumefactor:
case:
img[src$="/2xup.jpg"]: 2
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# engine n/a
+194
View File
@@ -0,0 +1,194 @@
---
id: bitporn
name: BitPorn (API)
description: "BitPorn (Malacka) is a HUNGARIAN Private Torrent Tracker for 3X"
language: hu-HU
type: private
encoding: UTF-8
links:
- https://bitporn.eu/
caps:
categorymappings:
- {id: 4, cat: XXX, desc: Amateur"}
- {id: 5, cat: XXX, desc: Anal"}
- {id: 6, cat: XXX, desc: Asian"}
- {id: 7, cat: XXX, desc: BBW"}
- {id: 8, cat: XXX, desc: BDSM"}
- {id: 9, cat: XXX, desc: Big Ass"}
- {id: 10, cat: XXX, desc: Big Tits"}
- {id: 11, cat: XXX, desc: Black"}
- {id: 12, cat: XXX, desc: Cartoon"}
- {id: 13, cat: XXX, desc: Casting"}
- {id: 14, cat: XXX, desc: Classic"}
- {id: 15, cat: XXX, desc: Collection"}
- {id: 16, cat: XXX, desc: Creampie"}
- {id: 17, cat: XXX, desc: Cumshot"}
- {id: 18, cat: XXX, desc: Deepthroat"}
- {id: 19, cat: XXX, desc: Extreme"}
- {id: 20, cat: XXX, desc: Fansite"}
- {id: 21, cat: XXX, desc: Family"}
- {id: 22, cat: XXX, desc: Feature"}
- {id: 23, cat: XXX, desc: Fetish"}
- {id: 24, cat: XXX, desc: Fisting"}
- {id: 25, cat: XXX, desc: Gangbang"}
- {id: 26, cat: XXX, desc: Game"}
- {id: 27, cat: XXX, desc: Gay / Bi"}
- {id: 28, cat: XXX, desc: Hair"}
- {id: 29, cat: XXX, desc: Hardcore"}
- {id: 30, cat: XXX, desc: HiddenCam"}
- {id: 31, cat: XXX, desc: Homemade"}
- {id: 32, cat: XXX, desc: Interracial"}
- {id: 33, cat: XXX, desc: Lesbian"}
- {id: 34, cat: XXX, desc: Magyar"}
- {id: 35, cat: XXX, desc: Masturbation"}
- {id: 36, cat: XXX, desc: Mature"}
- {id: 37, cat: XXX, desc: Milf"}
- {id: 53, cat: XXX, desc: Movie"}
- {id: 38, cat: XXX, desc: Old and Young"}
- {id: 39, cat: XXX, desc: Parody"}
- {id: 40, cat: XXX, desc: Pictures"}
- {id: 41, cat: XXX, desc: Pissing"}
- {id: 42, cat: XXX, desc: POV"}
- {id: 43, cat: XXX, desc: Pregnant"}
- {id: 44, cat: XXX, desc: Public"}
- {id: 45, cat: XXX, desc: Shemale"}
- {id: 46, cat: XXX, desc: Softcore"}
- {id: 47, cat: XXX, desc: Squirt"}
- {id: 48, cat: XXX, desc: Straight"}
- {id: 49, cat: XXX, desc: Teen"}
- {id: 50, cat: XXX, desc: Threesome"}
- {id: 51, cat: XXX, desc: VR"}
- {id: 52, cat: XXX, desc: Uncategorized"}
modes:
search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://bitporn.eu/\" target=\"_blank\">BitPorn</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_activity
type: info
label: Account Inactivity
default: "You must log in to the site at least once a month; otherwise, your account will be suspended."
login:
path: /api/torrents
method: get
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- path: api/torrents/filter
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
fields:
category:
selector: category_id
title:
selector: name
details:
selector: details_link
download:
selector: download_link
files:
selector: num_file
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
selector: created_at
filters:
- name: append
args: " +00:00" # GMT
- name: dateparse
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
minimumratio:
text: 1.0
minimumseedtime:
# 48 hours (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D 9.1.7 (custom)
+214
View File
@@ -0,0 +1,214 @@
---
id: bitru
name: BitRu
description: "BitRu is a RUSSIAN Public Torrent Tracker for MOVIES / TV / GENERAL"
language: ru-RU
type: public
encoding: UTF-8
links:
- https://bitru.org/
legacylinks:
- http://bitru.org/ # site forces https
caps:
categorymappings:
- {id: movie, cat: Movies, desc: Movie}
- {id: serial, cat: TV, desc: Serial}
- {id: music, cat: Audio, desc: Music}
- {id: game, cat: PC/Games, desc: Game}
- {id: soft, cat: PC, desc: Software}
- {id: literature, cat: Books, desc: Literature}
- {id: audiobook, cat: Audio/Audiobook, desc: Audiobook}
- {id: video, cat: Movies, desc: Movies}
- {id: image, cat: Other, desc: Image}
- {id: xxx, cat: XXX, desc: xxx}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: stripcyrillic
type: checkbox
label: Strip Cyrillic Letters
default: false
- name: addrussiantotitle
type: checkbox
label: Add RUS to end of all titles to improve language detection by Sonarr and Radarr. Will cause English-only results to be misidentified.
default: false
- name: adverts
type: checkbox
label: Include Advertising
default: true
- name: sort
type: select
label: Sort requested from site
default: _
options:
_: created
seeders: seeders
size: size
search:
paths:
- path: browse.php
inputs:
s: "{{ .Keywords }}"
sort: "{{ re_replace .Config.sort \"_\" \"\" }}"
rek: "{{ if .Config.adverts }}{{ else }}no{{ end }}"
keywordsfilters:
- name: re_replace # S01 or S01E01 to 1 сезон
args: ["(?i)\\bS0*(\\d+)(?:E0*(\\d+))?\\b", "$1 сезон"]
rows:
selector: table.browse-list > tbody > tr
fields:
category:
selector: td:nth-child(1) a
attribute: href
filters:
- name: querystring
args: tmp
title:
selector: a[href^="details.php?id="]
filters:
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езоны?\\s*[:]*.+?\\((\\d+(?:-\\d+)?)\\s*из\\s*(\\d+)\\)", "(S$1E$2 of $3)"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езоны?\\s*[:]*.+?\\((\\d+(?:-\\d+)?)\\)", "(S$1E$2)"]
- name: re_replace
args: ["(?i)(\\d+(?:-\\d+)?)\\s+[CС]езоны?", "(S$1)"]
- name: re_replace
args: ["(?i)\\((\\d+(?:-\\d+)?)\\s*из\\s*(\\d+)\\)", "(E$1 of $2)"]
- name: re_replace
args: ["(?i)\\bселезень\\b", "selezen"]
- name: re_replace
args: ["(?i)\\bFiles-х\\b", "Files-x"]
- name: re_replace
args: ["(?i)\\s\\|\\sот\\s([\\w\\p{P}\\p{S}]+)$", "-$1"]
- name: re_replace
args: ["\\s\\|\\s(\\w{4,})$", "-$1"]
- name: re_replace
args: ["(\\([\\p{IsCyrillic}\\W]+\\))|(^[\\p{IsCyrillic}\\W\\d]+\\/ )|([\\p{IsCyrillic} \\-]+,+)|([\\p{IsCyrillic}]+)", "{{ if .Config.stripcyrillic }}{{ else }}$1$2$3$4{{ end }}"]
- name: re_replace
args: ["(?i)\\bHDTV[-\\s]?Rip\\b", "HDTV"]
- name: re_replace
args: ["(?i)\\bSAT[-\\s]?Rip\\b", "HDTV"]
- name: re_replace
args: ["(?i)\\bWEB[-\\s]?DL[-\\s]?Rip\\b", "WEB-DL"]
- name: re_replace
args: ["(?i)\\bWEB\\sRip\\b", "WEBRip"]
- name: re_replace
args: ["(?i)\\bWEB\\sDL\\b", "WEB-DL"]
- name: re_replace
args: ["[\\[\\(\\{<«][\\s\\W]*[\\]\\)\\}>»]", ""]
- name: re_replace
args: ["^[\\s&,\\.!\\?\\+\\-_\\|\\/':]+", ""]
- name: re_replace
args: ["(?i)^\\(\\s*([SE]\\d+.*?)\\s*\\)[\\s\\/\\|]*(.+)(-[\\w\\p{P}\\p{S}]*)$", "$2 $1$3"]
- name: re_replace
args: ["(?i)^\\(\\s*([SE]\\d+.*?)\\s*\\)[\\s\\/\\|]*(.+)", "$2 $1"]
- name: append
args: "{{ if .Config.addrussiantotitle }} RUS{{ else }}{{ end }}"
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="details.php?id="]
attribute: href
filters:
- name: replace
args: ["details", "download"]
description:
selector: i.fa-ad
attribute: title
filters:
- name: replace
args: ["Присутствует реклама", "[Contains Adverts] "]
description|append:
selector: a[href^="details.php?id="]
poster:
selector: div.it-image > img
attribute: src
date_today:
# Сегодня в 09:09 от
# Вчера в 22:47 от
selector: td:nth-child(2) div.b-info div span:nth-child(1):contains("Сегодня"), td:nth-child(2) div.b-info div span:nth-child(1):contains("Вчера")
optional: true
filters:
- name: regexp
args: "(.*?) от "
- name: replace
args: ["Сегодня в", "Today"]
- name: replace
args: ["Вчера в", "Yesterday"]
date_year:
# 08 ноября 2019 в 23:53 от
selector: td:nth-child(2) div.b-info div span:nth-child(1):not(:contains("Сегодня")):not(:contains("Вчера"))
optional: true
filters:
- name: regexp
args: "(.*?) от "
- name: replace
args: [" в ", " "]
- name: replace
args: ["января", "January"]
- name: replace
args: ["февраля", "February"]
- name: replace
args: ["марта", "March"]
- name: replace
args: ["апреля", "April"]
- name: replace
args: ["мая", "May"]
- name: replace
args: ["июня", "June"]
- name: replace
args: ["июля", "July"]
- name: replace
args: ["августа", "August"]
- name: replace
args: ["сентября", "September"]
- name: replace
args: ["октября", "October"]
- name: replace
args: ["ноября", "November"]
- name: replace
args: ["декабря", "December"]
- name: append
args: " +03:00" # MSK
- name: dateparse
args: "dd MMMM yyyy HH:mm zzz"
date:
text: "{{ if or .Result.date_today .Result.date_year }}{{ or .Result.date_today .Result.date_year }}{{ else }}now{{ end }}"
size:
selector: td:nth-child(3)
filters:
- name: replace
args: ["ТБ", "TB"]
- name: replace
args: ["ГБ", "GB"]
- name: replace
args: ["МБ", "MB"]
- name: replace
args: ["КБ", "KB"]
seeders:
selector: td:nth-child(4)
filters:
- name: replace
args: ["?", "1"]
leechers:
selector: td:nth-child(5)
filters:
- name: replace
args: ["?", "0"]
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -0,0 +1,146 @@
---
id: bitsearch
replaces:
- solidtorrents
name: BitSearch
description: "BitSearch (Solid Torrents) is a Public torrent meta-search engine"
language: en-US
type: public
encoding: UTF-8
links:
- https://bitsearch.to/
- https://solidtorrents.to/
legacylinks:
- https://bitsearch.nocensor.cloud/
- https://bitsearch.mrunblock.bond/
- https://solidtorrents.net/
- https://solidtorrents.nocensor.cloud/
- https://solidtorrents.eu/
caps:
categories:
Anime: TV/Anime
Anime/Dub/Dual Audio: TV/Anime
Anime/Raw: TV/Anime
Anime/Subbed: TV/Anime
AudioBook: Audio/Audiobook
Books: Books
Books/Academic: Books/EBook
Books/Comics: Books/Comics
Books/Fiction: Books/EBook
Books/Magazines: Books/Mags
Books/Non-fiction: Books/EBook
Ebook/Course: Books/EBook
Games: Console
Games/Console: Console
Games/Mobile: PC/Mobile-Other
Games/PC: PC/Games
Games/RIP: PC/Games
Movies: Movies
Movies/Dub/Dual Audio: Movies
Music: Audio
Music/Album: Audio
Music/Discography: Audio
Music/FLAC: Audio/Lossless
Music/Lossless: Audio/Lossless
Music/MP3: Audio/MP3
Music/Single: Audio
Other: Other
Other/Android: PC/Mobile-Android
Other/Archive: Other
Other/Audio: Audio
Other/Database: PC
Other/DiskImage: PC/ISO
Other/Document: Books/Comics
Other/Image: Other/Misc
Other/Program: PC
Other/Source Code: PC
Other/Video: TV
Softwares: PC/0day
Softwares/Android: PC/Mobile-Android
Softwares/Linux: PC
Softwares/MacOS: PC/Mac
Softwares/Windows: PC/0day
Softwares/iOS: PC/Mobile-iOS
TV: TV
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
music-search: [q]
book-search: [q]
settings:
- name: sort
type: select
label: Sort requested from site.
default: created
options:
created: created
seeders: seeders
size: size
- name: type
type: select
label: Order requested from site.
default: desc
options:
desc: desc
asc: asc
download:
selectors:
- selector: a[href^="magnet:?xt"]
attribute: href
search:
paths:
# https://bitsearch.to/search?q=spongebob&sortBy=created&order=desc&page=1
- path: "{{ if .Keywords }}search?q={{ .Keywords }}&sortBy={{ .Config.sort }}&order={{ .Config.type }}&page=1{{ else }}latest{{ end }}"
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: div.space-y-4 > div.bg-white > div.items-start
fields:
category:
# latest, search
selector: div.space-y-2 > span:nth-child(1), span.space-x-1:nth-child(1)
title:
selector: h3 > a
details:
selector: h3 > a
attribute: href
download:
selector: h3 > a
attribute: href
size:
selector: div.space-y-2 > span:nth-child(2), span.space-x-1:nth-child(2)
date_year:
selector: div.space-y-2 > span:nth-child(3):contains("/"), span.space-x-1:nth-child(3):contains("/")
optional: true
filters:
- name: dateparse
args: "M/d/yyyy"
date_ago:
selector: div.space-y-2 > span:nth-child(3):contains("ago"), span.space-x-1:nth-child(3):contains("ago")
optional: true
filters:
- name: timeago
date:
text: "{{ if or .Result.date_year .Result.date_ago }}{{ or .Result.date_year .Result.date_ago }}{{ else }}now{{ end }}"
seeders:
selector: div.space-x-3 > span:nth-child(1), span:contains("seeders")
leechers:
selector: div.space-x-3 > span:nth-child(2), span:contains("leechers")
grabs:
selector: span:contains("downloads")
optional: true
downloadvolumefactor:
text: 0
uploadvolumefactor:
text: 1
# engine n/a
@@ -0,0 +1,181 @@
---
id: bitsexy-api
name: BitSexy (API)
description: "BitSexy is a Private Torrent Tracker for 3X"
language: en-US
type: private
encoding: UTF-8
links:
- https://bitsexy.cc/
caps:
categorymappings:
- {id: 1, cat: XXX/x264, desc: "Movies"}
- {id: 2, cat: XXX/Pack, desc: "Pack"}
- {id: 3, cat: XXX/ImageSet, desc: "Images"}
- {id: 4, cat: Console, desc: "Games"}
- {id: 5, cat: Books, desc: "Books"}
modes:
search: [q]
movie-search: [q]
book-search: [q]
settings:
- name: apikey
type: text
label: APIKey
- name: info_key
type: info
label: About your API key
default: "Find or Generate a new API Token by accessing your <a href=\"https://bitsexy.cc/\" target=\"_blank\">BitSexy</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
- name: single_file_release_use_filename
type: checkbox
label: Use filename as title for single file releases
default: true
- name: sort
type: select
label: Sort requested from site
default: created_at
options:
created_at: created
seeders: seeders
size: size
name: title
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_activity
type: info
label: Account Inactivity
default: "<ul><li>You must log in once every 60 days or seed at least 1 torrent to not get disabled</li><li>Once disabled, you have another 60 days to log back in and have your account re-activated. You may need to contact Helpdesk to do so</li><li>Disabled account will be deleted after 180 days of inactivity</li><ul>"
login:
path: /api/torrents
method: get
error:
- selector: a[href*="/login"]
message:
text: "The API key was not accepted by {{ .Config.sitelink }}."
- selector: :root:contains("Account is Banned")
search:
paths:
# https://hdinnovations.github.io/UNIT3D/torrent_api.html
# https://github.com/HDInnovations/UNIT3D/blob/master/app/Http/Controllers/API/TorrentController.php#L657
- path: api/torrents/filter
response:
type: json
headers:
Authorization: ["Bearer {{ .Config.apikey }}"]
inputs:
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
name: "{{ .Keywords }}"
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
sortField: "{{ .Config.sort }}"
sortDirection: "{{ .Config.type }}"
perPage: 100
keywordsfilters:
- name: re_replace
args: ["\\.", " "]
rows:
selector: data
attribute: attributes
fields:
category:
selector: category_id
title_optional:
selector: name
title_filename:
selector: "files[0].name"
optional: true
files:
selector: num_file
title:
text: "{{ if and (.Config.single_file_release_use_filename) (eq .Result.files \"1\") (.Result.title_filename) }}{{ .Result.title_filename }}{{ else }}{{ .Result.title_optional }}{{ end }}"
details:
selector: details_link
download:
selector: download_link
poster:
selector: meta.poster
filters:
- name: replace
args: ["https://via.placeholder.com/90x135", ""]
imdbid:
selector: imdb_id
tmdbid:
selector: tmdb_id
tvdbid:
selector: tvdb_id
genre:
selector: meta.genres
filters:
- name: replace
args: [" & ", "_&_"]
_internal:
selector: internal
case:
False: "{{ .False }}"
True: "{{ .True }}"
description:
text: "{{ if .Result._internal }}Internal{{ else }}{{ end }}{{ if and .Result._internal .Result.genre }} | {{ else }}{{ end }}{{ .Result.genre }}"
seeders:
selector: seeders
leechers:
selector: leechers
grabs:
selector: times_completed
date:
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
selector: created_at
filters:
- name: append
args: " +00:00" # GMT
- name: dateparse
args: "MM/dd/yyyy HH:mm:ss zzz"
size:
selector: size
_featured:
selector: featured
case:
False: "{{ .False }}"
True: "{{ .True }}"
downloadvolumefactor_freeleech:
# api returns 0%, 25%, 50%, 75%, 100%
selector: freeleech
case:
0%: 1 # not free
25%: 0.75
50%: 0.5
75%: 0.25
100%: 0 # freeleech
"*": 0 # catch errors
downloadvolumefactor:
text: "{{ if .Result._featured }}0{{ else }}{{ .Result.downloadvolumefactor_freeleech }}{{ end }}"
uploadvolumefactor_double_upload:
# api returns False, True
selector: double_upload
case:
False: 1 # normal
True: 2 # double
uploadvolumefactor:
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
minimumseedtime:
# 2 days (as seconds = 2 x 24 x 60 x 60)
text: 172800
# json UNIT3D 9.1.7 (custom)
+188
View File
@@ -0,0 +1,188 @@
---
id: bitturk
name: BiTTuRK
description: "BiTTuRK is a TURKISH Private Torrent Tracker for HD MOVIES / TV / GENERAL. This Indexer is for English only."
language: en-US
type: private
encoding: UTF-8
links:
- https://bitturk.net/
legacylinks:
- http://www.bitturk.net/
- http://bitturk.net/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Filmler"}
- {id: 38, cat: Movies, desc: "Türk Filmi"}
- {id: 40, cat: Movies, desc: "Türkçe Film"}
- {id: 113, cat: Movies, desc: "Yabancı Dil"}
- {id: 77, cat: Movies/UHD, desc: "4K UHD / 3D"}
- {id: 16, cat: Movies, desc: "Animasyon"}
- {id: 31, cat: Movies, desc: "Belgesel"}
- {id: 112, cat: XXX, desc: "XxX"}
- {id: 48, cat: TV, desc: "Televizyon"}
- {id: 49, cat: TV/HD, desc: "Tv HD"}
- {id: 50, cat: TV, desc: "Yab@ncı Dizi"}
- {id: 51, cat: TV, desc: "Yerli Dizi"}
- {id: 7, cat: Audio, desc: "Müzik"}
- {id: 20, cat: Audio, desc: "Türkçe MüziK"}
- {id: 46, cat: Audio, desc: "Yab@ncı MüziK"}
- {id: 2, cat: Console, desc: "Oyun / Program"}
- {id: 44, cat: Books, desc: "E-BooK / Eğitim"}
modes:
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
type: info
label: Layout
default: "<ul><li>Only the English Classic profile is supported.</li><li>Make sure to set the <b>Torrent Listing (Listeleme Biçimi)</b> option in your profile to <b>Classic (Klasik)</b></li><li>And set the <b>Language (Dil)</b> to <b>English</b></li><li>Using the <i>Modern</i> theme will prevent results, and using <i>Turkish</i> will prevent upload dates.</li></ul>"
- name: sort
type: select
label: Sort requested from site
default: added
options:
added: created
seeders: seeders
size: size
- name: type
type: select
label: Order requested from site
default: desc
options:
desc: desc
asc: asc
- name: info_results
type: info
label: Search results
default: "If you are getting the error <b>Found no results while trying to browse this tracker</b> then first access the site with your browser and check that you are not being forced to change your password because it has expired after 365 days."
login:
path: ?p=home&pid=1
method: form
form: form#loginbox_form
submitpath: ajax/login.php
inputs:
action: login
loginbox_membername: "{{ .Config.username }}"
loginbox_password: "{{ .Config.password }}"
loginbox_remember: 1
selectorinputs:
securitytoken:
selector: "script:contains(\"stKey: \")"
filters:
- name: regexp
args: "stKey: \"(.+?)\","
error:
- selector: ":contains(\"-ERROR-\")"
test:
path: ?p=home&pid=1
selector: a[href*="/?p=logout&"]
search:
paths:
- path: /
keywordsfilters:
- name: re_replace
args: ["[^a-zA-Z0-9]+", "%25"]
inputs:
p: torrents
pid: 32
$raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
keywords: "{{ .Keywords }}"
# name, description, both, uploader
search_type: name
"sortOptions[sortBy]": "{{ .Config.sort }}"
"sortOptions[sortOrder]": "{{ .Config.type }}"
# Drop error trap to stop Sonarr disabling indexer, see https://github.com/Jackett/Jackett/issues/1415
# error:
# - selector: div.error:not(:contains("Gösterilecek sonuç bulunamadı."))
rows:
selector: "table#torrents_table_classic tr:has(td.torrent_name){{ if .Config.freeleech }}:has(img[src$=\"/torrent_free.png\"]){{ else }}{{ end }}"
fields:
title:
selector: a[href*="?p=torrents&pid=10&action=details"]
category:
selector: div.category_image > a
attribute: href
filters:
- name: querystring
args: cid
details:
selector: a[href*="?p=torrents&pid=10&action=details"]
attribute: href
download:
selector: a[href*="?p=torrents&pid=10&action=download"]
attribute: href
date_day:
# Uploaded Friday at 05:11 by
# Uploaded Today at 00:48 by
# Uploaded Yesterday at 23:57 by
selector: td.torrent_name:contains(" at "):not(:has(abbr[data-time]))
# auto adjusted by site account profile
optional: true
filters:
- name: regexp
args: "Uploaded (.+?) by"
- name: fuzzytime
date_year:
# Uploaded 30-01-2019 15:02 by
selector: td.torrent_name:not(:contains(" at ")):not(:has(abbr[data-time]))
# auto adjusted by site account profile
optional: true
filters:
- name: regexp
args: "Uploaded (.+?) by"
- name: dateparse
args: "dd-MM-yyyy HH:mm"
date_unix:
# within the hour (unix)
selector: abbr[data-time]
attribute: data-time
optional: true
date:
text: "{{ if or .Result.date_day .Result.date_year .Result.date_unix }}{{ or .Result.date_day .Result.date_year .Result.date_unix }}{{ else }}now{{ end }}"
size:
selector: a[rel="torrent_size"]
seeders:
selector: a[rel="torrent_seeders"]
leechers:
selector: a[rel="torrent_leechers"]
grabs:
selector: a[rel="times_completed"]
poster:
selector: a[rel="fancybox"]
attribute: href
downloadvolumefactor:
case:
"img[src$=\"/silver.gif\"]": 0.5
"img[src$=\"/torrent_free.png\"]": 0
"*": 1
uploadvolumefactor:
case:
"img[src$=\"/torrent_multiple_upload.png\"]": 2
"*": 1
minimumratio:
text: 1.0
minimumseedtime:
# 3 day (as seconds = 3 x 24 x 60 x 60)
text: 259200
# TSUE 2.2
+197
View File
@@ -0,0 +1,197 @@
---
id: bjshare
name: Bj-Share
description: "Private PT-BR torrent"
language: pt-BR
type: private
encoding: UTF-8
links:
- https://bj-share.info/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Filmes"}
- {id: 2, cat: TV, desc: "TV"}
- {id: 3, cat: PC, desc: "Aplicativos"}
- {id: 4, cat: PC/Games, desc: "Jogos"}
- {id: 5, cat: Books/Comics, desc: "Mangás"}
- {id: 6, cat: TV, desc: "Vídeos de TV"}
- {id: 7, cat: Other, desc: "Outros"}
- {id: 8, cat: TV/Sport, desc: "Esportes"}
- {id: 9, cat: Books/Mags, desc: "Revistas"}
- {id: 10, cat: Books, desc: "E-Books"}
- {id: 11, cat: Audio/Audiobook, desc: "Audiobook"}
- {id: 12, cat: Books/Comics, desc: "Histórias em Quadrinhos"}
- {id: 13, cat: TV, desc: "Stand Up Comedy"}
- {id: 14, cat: TV, desc: "TV/Anime"} # Anime format is equal to TV Show (SXXEXX) except old ones like one piece
- {id: 15, cat: XXX/ImageSet, desc: "Fotos Adultas"}
- {id: 16, cat: TV/Other, desc: "Desenho Animado"}
- {id: 17, cat: TV/Documentary, desc: "Documentários"}
- {id: 18, cat: Other, desc: "Cursos"}
- {id: 19, cat: XXX, desc: "Filmes Adultos"}
- {id: 20, cat: XXX/Other, desc: "Jogos Adultos"}
- {id: 21, cat: XXX/Other, desc: "Mangás Adultos"}
- {id: 22, cat: XXX/Other, desc: "Animes Adultos"}
- {id: 23, cat: XXX/Other, desc: "HQ Adultos"}
modes:
search: [q]
tv-search: [q, season, ep]
movie-search: [q]
settings:
- name: cookie
type: text
label: Cookie
- name: info_cookie
type: info_cookie
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
login:
method: cookie
inputs:
cookie: "{{ .Config.cookie }}"
test:
path: index.php
selector: a[href^="/logout.php?auth="]
search:
# https://bj-share.info/torrents.php?searchstr=aves+de+rapina&filter_cat%5B1%5D=1
paths:
- path: torrents.php
inputs:
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
searchstr: "{{ .Keywords }}"
freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
keywordsfilters:
- name: re_replace
args: ["(S[0-9]+E[0-9]+|S[0-9]+)", ""] # remove SXXEXX or SXX from search
rows:
# If the category is a TV show/Anime, there's a necessity to filter the results by season/episode to not show all of them
selector: "table.torrent_table > tbody > tr:not(tr.colhead).group,
table.torrent_table tbody tr:not(tr.colhead):contains('{{ .Query.Episode }}')"
filters:
- name: andmatch
fields:
download:
selector: a[title="Baixar"]
attribute: href
_singleTorrentInfo:
selector: div.torrent_info
_multipleTorrentInfo:
selector: a[href^="torrents.php?id="]
_info: # example [MKV / x265 / WEB-DL / Legendado / 4K / Free]
text: "{{ if .Result._singleTorrentInfo }}{{.Result._singleTorrentInfo}}{{ else }}{{.Result._multipleTorrentInfo}}{{ end }}"
filters:
- name: replace
args: ["Full HD", "1080p"]
- name: replace
args: ["4K", "2160p"]
- name: replace
args: ["SD", "480p"]
- name: replace
args: ["/ HD]", "720p"]
- name: replace
args: ["/ HD /", "720p"]
- name: replace
args: ["/ Free", ""]
- name: re_replace
args: ["[\\[\\]]+", ""]
_rawTitle:
selector: div.group_info
filters:
- name: re_replace
args: ["(\n.*)", ""] # remove everything after newline
- name: re_replace
args: [" |\t", ""] # remove double space and tabs
_year:
text: "{{ .Result._rawTitle }}"
filters:
- name: regexp
args: "\\[([0-9]*)\\]"
details:
selector: a[href^="torrents.php?id="]:not(.tooltip)
attribute: href
title_MovieTV: # Movie and TV Format
# Title defined as:
# PT-BR/Japanese title [en-US title] [year]
text: "{{ .Result._rawTitle }}"
filters:
- name: re_replace
args: ["\\[[0-9]*\\].*", ""] # Removes the year and everything after
- name: re_replace
args: ["(.*)\\[(!?[^/]*?)\\]", "$2"] # Parse only en-us title, when available
- name: append
args: "{{ .Result._year }}"
- name: append
args: " {{ .Result._info }}"
title_Other:
# Only remove brackets
text: "{{ .Result._rawTitle }}"
filters:
- name: re_replace
args: ["\\[|\\]", " "] # Remove Brackets
title_details:
# Title defined as:
# PT-BR/Japanese title [en-US title] [year]
text: "{{ .Result._rawTitle }}"
filters:
- name: re_replace
args: ["\\[[0-9]*\\].*", ""] # Removes the year and everything after
- name: re_replace
args: ["(.*)\\[(!?[^/]*?)\\]", "$2"] # Parse only en-us title, when available
category_details:
selector: td.cats_col > a
attribute: href
filters:
- name: regexp
args: "%5b(\\d+?)%5d"
category:
text: "{{ .Result.category_details }}"
title:
text: "{{ if
or (eq .Result.category_details \"1\")
(or (eq .Result.category_details \"2\") (or (eq .Result.category_details \"14\")
(or (eq .Result.category_details \"16\") (or (eq .Result.category_details \"17\")
(or eq .Result.category_details \"8\")
(or (eq .Result.category_details \"13\") (eq .Result.category_details \"6\")))))))
}}{{.Result.title_MovieTV}}{{ else }}{{.Result.title_Other}}{{ end }}"
size:
selector: td:nth-last-child(4)
grabs:
selector: td:nth-last-child(3)
seeders:
selector: td:nth-last-child(2)
leechers:
selector: td:nth-last-child(1)
downloadvolumefactor:
case:
strong[title*="Free"]: 0
"*": 1
uploadvolumefactor:
text: 1
minimumratio:
text: 1.0
minimumseedtime:
# 7 days (as seconds = 7 x 24 x 60 x 60)
text: 604800

Some files were not shown because too many files have changed in this diff Show More