Setup
This commit is contained in:
Binary file not shown.
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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
BIN
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
@@ -0,0 +1 @@
|
||||
.machinelogs-2025-12-12.json
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1 @@
|
||||
jellyseerr-2025-12-12.log
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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.
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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>User’s stats, points, and history are irrevocably lost when purged</li><li>Logging into the site is the ONLY way to keep an account active</li><li>SEEDING ONLY does NOT constitute site activity.</li></ol>"
|
||||
|
||||
login:
|
||||
# using cookie method because login page simplecaptcha generates Exception: Cannot access child value on Newtonsoft.Json.Linq.JValue.
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href*="logout.php?hash_please="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# title, descr, series, additional_info, author, author, uploader
|
||||
searchin: title
|
||||
# 0 active, 1 incldead, 2 onlydead, 3 My Unsatisfied Torrents, 4 My Watch List, 5 My Uploads
|
||||
incldead: 1
|
||||
# 0 All Torrents, 1 Only Free Torrents
|
||||
only_free: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table.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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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> 18 августа в 21:39
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "н:\\s(\\d{1,2} \\D{3,8} в\\s\\d{1,2}:\\d{2})"
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: replace
|
||||
args: ["Обновлён:", ""]
|
||||
- name: replace
|
||||
args: ["Добавлен:", ""]
|
||||
- name: replace
|
||||
args: [" в ", " "]
|
||||
- name: replace
|
||||
args: ["января", "January {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["февраля", "February {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["марта", "March {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["апреля", "April {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["мая", "May {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["июня", "June {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["июля", "July {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["августа", "August {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["сентября", "September {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["октября", "October {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["ноября", "November {{ .Today.Year }}"]
|
||||
- name: replace
|
||||
args: ["декабря", "December {{ .Today.Year }}"]
|
||||
- name: re_replace
|
||||
args: ["\\s(\\d\\:)", " 0$1"]
|
||||
date_year:
|
||||
# <span class="gray">Обновлён:</span> 3 октября 2019 в 6:02
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "н:\\s(\\d{1,2} \\D{3,8} \\d{4} в\\s\\d{1,2}:\\d{2})"
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: replace
|
||||
args: ["Обновлён:", ""]
|
||||
- name: replace
|
||||
args: ["Добавлен:", ""]
|
||||
- name: replace
|
||||
args: [" в ", " "]
|
||||
- name: replace
|
||||
args: ["января", "January"]
|
||||
- name: replace
|
||||
args: ["февраля", "February"]
|
||||
- name: replace
|
||||
args: ["марта", "March"]
|
||||
- name: replace
|
||||
args: ["апреля", "April"]
|
||||
- name: replace
|
||||
args: ["мая", "May"]
|
||||
- name: replace
|
||||
args: ["июня", "June"]
|
||||
- name: replace
|
||||
args: ["июля", "July"]
|
||||
- name: replace
|
||||
args: ["августа", "August"]
|
||||
- name: replace
|
||||
args: ["сентября", "September"]
|
||||
- name: replace
|
||||
args: ["октября", "October"]
|
||||
- name: replace
|
||||
args: ["ноября", "November"]
|
||||
- name: replace
|
||||
args: ["декабря", "December"]
|
||||
- name: re_replace
|
||||
args: ["\\s(\\d\\:)", " 0$1"]
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_noyear }}{{ or .Result.date_year .Result.date_noyear }}{{ else }}now{{ end }}"
|
||||
seeders:
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 0]
|
||||
leechers:
|
||||
selector: div.info
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 1]
|
||||
_subtitles:
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Субтитры:(.+?)\\n"
|
||||
_language:
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Язык:(.+?)\\n"
|
||||
description:
|
||||
text: "{{ if .Result._subtitles }}Субтитры: {{ .Result._subtitles }}{{ else }}{{ end }} - {{ if .Result._language }}Язык: {{ .Result._language }}{{ else }}{{ end }}"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
Reference in New Issue
Block a user