feat: Created the Lidarr mock and added a justfile
This commit is contained in:
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
---
|
||||
id: 1337x
|
||||
name: 1337x
|
||||
description: "1337X is a Public torrent site that offers verified torrent downloads"
|
||||
description: "1337x is a Public torrent site that offers verified torrent downloads"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
@@ -115,7 +115,7 @@ caps:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q, album, artist]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
@@ -147,6 +147,10 @@ settings:
|
||||
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
|
||||
@@ -174,10 +178,10 @@ download:
|
||||
search:
|
||||
paths:
|
||||
# present first page of movies tv and music results if there are no search parms supplied (20 hits per page)
|
||||
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/Movies{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/1/"
|
||||
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/TV{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/{{ if or .Query.Album .Query.Artist .Keywords }}2{{ else }}1{{ end }}/"
|
||||
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/Music{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/{{ if or .Query.Album .Query.Artist .Keywords }}3{{ else }}1{{ end }}/"
|
||||
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/Other{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/{{ if or .Query.Album .Query.Artist .Keywords }}4{{ else }}1{{ end }}/"
|
||||
- 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
|
||||
|
||||
@@ -182,4 +182,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.10 2025-10-30
|
||||
# NexusPHP v1.9.11 2025-11-02
|
||||
|
||||
@@ -221,4 +221,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
# NexusPHP v1.9.13 2025-12-28
|
||||
|
||||
@@ -169,4 +169,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
# NexusPHP v2.0 2026-01-01
|
||||
|
||||
@@ -8,13 +8,9 @@ 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.529069.xyz/
|
||||
- https://www.529067.xyz/
|
||||
- https://www.529072.xyz/
|
||||
- https://www.529073.xyz/
|
||||
legacylinks:
|
||||
- https://www.529052.xyz/
|
||||
- https://www.529053.xyz/
|
||||
- https://www.529055.xyz/
|
||||
- https://www.529057.xyz/
|
||||
- https://www.529056.xyz/
|
||||
- https://www.529058.xyz/
|
||||
- https://www.52bt059.buzz/
|
||||
@@ -27,6 +23,10 @@ legacylinks:
|
||||
- https://www.529066.xyz/
|
||||
- https://www.529065.xyz/
|
||||
- https://www.529068.xyz/
|
||||
- https://www.529069.xyz/
|
||||
- https://www.529067.xyz/
|
||||
- https://www.529070.xyz/
|
||||
- https://www.529071.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -128,7 +128,7 @@ search:
|
||||
only_free: "{{ if .Config.freeleech }}1{{ else }}0{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table.table-striped > tbody > tr:has(a[href^="download.php?torrent="])
|
||||
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:
|
||||
|
||||
@@ -20,6 +20,7 @@ caps:
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
book-search: [q]
|
||||
allowtvsearchimdb: true
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
@@ -191,4 +192,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 9.1.7
|
||||
# json UNIT3D 9.2.0
|
||||
|
||||
@@ -28,8 +28,8 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, tvdbid, tmdbid]
|
||||
movie-search: [q, tmdbid]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
@@ -45,6 +45,10 @@ settings:
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: tmdbidonly
|
||||
type: checkbox
|
||||
label: Disable IMDB and TVDB ID search (only support TMDB ID) to potentially improve Sonarr and Radarr results
|
||||
default: false
|
||||
- name: single_file_release_use_filename
|
||||
type: checkbox
|
||||
label: Use filename as title for single file releases
|
||||
@@ -95,11 +99,11 @@ search:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$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
|
||||
# seasonNumber: "{{ .Query.Season }}" # not supported
|
||||
# episodeNumber: "{{ .Query.Ep }}" # not supported
|
||||
imdbId: "{{ if .Config.tmdbidonly }}{{ else }}{{ .Query.IMDBIDShort }}{{ end }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
tvdbId: "{{ if .Config.tmdbidonly }}{{ else }}{{ .Query.TVDBID }}{{ end }}"
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
|
||||
@@ -84,6 +84,8 @@ search:
|
||||
filters:
|
||||
- name: split
|
||||
args: [",", -1]
|
||||
- name: re_replace
|
||||
args: ["1\\d{5}", "2000"]
|
||||
year:
|
||||
selector: year
|
||||
optional: true
|
||||
|
||||
@@ -0,0 +1,202 @@
|
||||
---
|
||||
id: arabicsource-api
|
||||
name: ArabicSource (API)
|
||||
description: "ArabicSource is an ARABIC Private Torrent Tracker for MOVIES / TV"
|
||||
language: ar-SA
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://arabicsource.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "أفلام رسوم مدبلجة (Dubbed Animated Films)"}
|
||||
- {id: 2, cat: Movies, desc: "أفلام الرسوم المدبلجة (Subtitled Animated Films)"}
|
||||
- {id: 3, cat: Movies, desc: "الأفلام العربية (Arabic Films)"}
|
||||
- {id: 4, cat: Movies, desc: "أفلام أجنبية (Foreign Films)"}
|
||||
- {id: 5, cat: TV, desc: "مسلسلات رسوم مدبلجة (Dubbed Animated Series)"}
|
||||
- {id: 6, cat: TV, desc: "مسلسلات رسوم مترجمة (Subtitled Animated Series)"}
|
||||
- {id: 7, cat: TV, desc: "مسلسلات عربية (Arabic Series)"}
|
||||
- {id: 8, cat: TV, desc: "مسرحيات (Plays)"}
|
||||
- {id: 10, cat: Other, desc: "إسلاميات (Islamic Content)"}
|
||||
- {id: 11, cat: Other, desc: "رمضانيات (Ramadan Content)"}
|
||||
- {id: 12, cat: Other, desc: "منوعات (Variety)"}
|
||||
- {id: 13, cat: Audio, desc: "صوتيات (Audio)"}
|
||||
- {id: 14, cat: Movies, desc: "كرتون كلاسيك (Classic Cartoons)"}
|
||||
- {id: 15, cat: Other, desc: "تورنت خام (Raw Torrents)"}
|
||||
- {id: 20, cat: TV/Documentary, desc: "مسلسلات وثائقيات (Documentary Series)"}
|
||||
- {id: 9, cat: Movies, desc: "أفلام وثائقيات (Documentary Films)"}
|
||||
- {id: 19, cat: Other, desc: "تورينتات ضائعة (Lost Torrents)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-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://arabicsource.net/\" target=\"_blank\">ArabicSource</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: "The maximum number of days you can stay away from the site is 40 days, and only if you suspend the account, you will get a grace period of 180 days, but you must contact the administration in advance so that this is added to your personal account and you are not exposed to expulsion."
|
||||
|
||||
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
|
||||
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 }}"
|
||||
minimumratio:
|
||||
text: 1.05
|
||||
# json UNIT3D 9.2.0
|
||||
@@ -124,6 +124,20 @@ search:
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
# does not support imdbid search or provide imdb link in results
|
||||
keywordsfilters:
|
||||
# Keep SxxEyy format for tv-search (Sonarr/Radarr). ArabP2P search does not reliably match
|
||||
# when we convert to the Arabic bracket format unless the Arabic title is also present.
|
||||
- name: re_replace # normalize "1x09" => "S1E09" (then pad below)
|
||||
args: ["(?i)\\b(\\d{1,2})x(\\d{1,3})\\b", "S$1E$2"]
|
||||
- name: re_replace # normalize "S01 E09" => "S01E09"
|
||||
args: ["(?i)\\bS(\\d{1,2})\\s+E(\\d{1,3})\\b", "S$1E$2"]
|
||||
- name: re_replace # pad season: S1E09 => S01E09
|
||||
args: ["(?i)\\bS(\\d)(?=E)", "S0$1"]
|
||||
- name: re_replace # pad episode: S01E9 => S01E09
|
||||
args: ["(?i)E(\\d)\\b", "E0$1"]
|
||||
- name: re_replace
|
||||
args: ["\\s{2,}", " "]
|
||||
- name: trim
|
||||
|
||||
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="])
|
||||
@@ -139,6 +153,28 @@ search:
|
||||
args: category
|
||||
title:
|
||||
selector: a[href^="index.php?page=torrent-details"]
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?<=\\d)\\s+(?=\\d)", " "]
|
||||
- name: re_replace
|
||||
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[(\\d{4})\\]\\s*\\[م(\\d+)\\]", "S$3E$1 [$2]"]
|
||||
- name: re_replace
|
||||
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[م(\\d+)\\]", "S$2E$1"]
|
||||
- name: re_replace
|
||||
args: ["^\\[(\\d+(?:[\\s-]+\\d+)*)\\](?!\\s*\\[م)", "S01E$1"]
|
||||
- name: re_replace
|
||||
args: ["E(\\d+)[\\s-]+(\\d+)", "E$1-E$2"]
|
||||
- name: re_replace
|
||||
args: ["\\[\\s*\\]", ""]
|
||||
- name: re_replace
|
||||
args: ["(?<=\\S)(\\[)", " $1"]
|
||||
- name: re_replace
|
||||
args: ["S(\\d)(?=E)", "S0$1"]
|
||||
- name: re_replace
|
||||
args: ["E(\\d)(?=\\D)", "E0$1"]
|
||||
- name: re_replace
|
||||
args: ["\\s{2,}", " "]
|
||||
- name: trim
|
||||
details:
|
||||
selector: a[href^="index.php?page=torrent-details"]
|
||||
attribute: href
|
||||
|
||||
@@ -0,0 +1,220 @@
|
||||
---
|
||||
id: arabscene
|
||||
name: ArabScene
|
||||
description: "ArabScene is an ARABIC Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: ar-AE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://arabscene.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 103, cat: Other, desc: "منوعات"}
|
||||
- {id: 105, cat: Other, desc: " |-- مسرحيات"}
|
||||
- {id: 104, cat: TV/Other, desc: " |-- اسلاميات "}
|
||||
- {id: 120, cat: TV/Other, desc: " |-- توك شــو"}
|
||||
- {id: 106, cat: PC/0day, desc: " |-- دورات تعليمية "}
|
||||
- {id: 117, cat: TV/Foreign, desc: "مسلسلات مترجمة "}
|
||||
- {id: 122, cat: TV/Foreign, desc: " |-- beIN "}
|
||||
- {id: 123, cat: TV/Foreign, desc: " |-- OSN"}
|
||||
- {id: 128, cat: TV/Foreign, desc: " |-- اجنبى"}
|
||||
- {id: 160, cat: TV/Foreign, desc: " |-- تركى"}
|
||||
- {id: 174, cat: TV/Foreign, desc: " |-- حلقات منفردة"}
|
||||
- {id: 133, cat: TV/Foreign, desc: "مسلسلات مدبلجة"}
|
||||
- {id: 136, cat: TV/Foreign, desc: " |-- هندى"}
|
||||
- {id: 140, cat: TV/Foreign, desc: " |-- اجنبى"}
|
||||
- {id: 173, cat: TV/Foreign, desc: " |-- تركى"}
|
||||
- {id: 175, cat: TV/Foreign, desc: " |-- حلقات منفردة"}
|
||||
- {id: 56, cat: TV, desc: "VIP"}
|
||||
- {id: 81, cat: TV, desc: " |-- Full-Pack"}
|
||||
- {id: 53, cat: TV/Foreign, desc: " |-- مسلسلات مدبلجة "}
|
||||
- {id: 55, cat: TV, desc: " |-- مسلسلات عربية "}
|
||||
- {id: 57, cat: Movies, desc: " |-- افلام عربية "}
|
||||
- {id: 54, cat: TV/Anime, desc: " |-- الكرتون والانمى "}
|
||||
- {id: 58, cat: TV/WEB-DL, desc: "Web-DL"}
|
||||
- {id: 65, cat: Movies/WEB-DL, desc: " |-- Arabic Movies"}
|
||||
- {id: 66, cat: TV/WEB-DL, desc: " |-- Arabic Series"}
|
||||
- {id: 67, cat: TV/WEB-DL, desc: " |-- Dubbed Series"}
|
||||
- {id: 73, cat: TV/WEB-DL, desc: " |-- Full-Pack "}
|
||||
- {id: 113, cat: Movies/Foreign, desc: "افلام مترجمة "}
|
||||
- {id: 121, cat: Movies/Foreign, desc: " |-- beIN"}
|
||||
- {id: 125, cat: Movies/Foreign, desc: " |-- OSN"}
|
||||
- {id: 115, cat: Movies/Foreign, desc: " |-- هندى "}
|
||||
- {id: 114, cat: Movies/Foreign, desc: " |-- اجنبى"}
|
||||
- {id: 161, cat: Movies/Foreign, desc: " |-- تركى"}
|
||||
- {id: 143, cat: Movies/Foreign, desc: "افلام مدبلجة"}
|
||||
- {id: 149, cat: Movies/Foreign, desc: " |-- beIN"}
|
||||
- {id: 148, cat: Movies/Foreign, desc: " |-- OSN"}
|
||||
- {id: 145, cat: Movies/Foreign, desc: " |-- هندى"}
|
||||
- {id: 146, cat: Movies/Foreign, desc: " |-- اجنبى"}
|
||||
- {id: 144, cat: Movies/Foreign, desc: " |-- تركى"}
|
||||
- {id: 109, cat: Audio, desc: "الموسيقى العربية "}
|
||||
- {id: 110, cat: Audio/Lossless, desc: " |-- FLAC"}
|
||||
- {id: 111, cat: Audio/MP3, desc: " |-- Mp3"}
|
||||
- {id: 112, cat: Audio, desc: " |-- كليبات"}
|
||||
- {id: 99, cat: TV, desc: "المسلسلات العربية"}
|
||||
- {id: 100, cat: TV, desc: " |-- مصرية"}
|
||||
- {id: 139, cat: TV, desc: " |-- مغربية"}
|
||||
- {id: 138, cat: TV, desc: " |-- تونسية"}
|
||||
- {id: 172, cat: TV, desc: " |-- حلقات منفردة"}
|
||||
- {id: 101, cat: TV, desc: " |-- خليجية"}
|
||||
- {id: 102, cat: TV, desc: " |-- سورية"}
|
||||
- {id: 84, cat: TV/Documentary, desc: "الوثائقيات "}
|
||||
- {id: 85, cat: TV/Documentary, desc: " |-- مترجمة"}
|
||||
- {id: 87, cat: TV/Documentary, desc: " |-- عربية "}
|
||||
- {id: 89, cat: Movies, desc: "الافلام العربية"}
|
||||
- {id: 95, cat: Movies, desc: " |-- 2000s"}
|
||||
- {id: 137, cat: Movies, desc: " |-- 2010s"}
|
||||
- {id: 49, cat: Movies, desc: " |-- 2020s"}
|
||||
- {id: 98, cat: Movies, desc: " |-- 40s"}
|
||||
- {id: 90, cat: Movies, desc: " |-- 50s"}
|
||||
- {id: 91, cat: Movies, desc: " |-- 60s"}
|
||||
- {id: 92, cat: Movies, desc: " |-- 70s"}
|
||||
- {id: 93, cat: Movies, desc: " |-- 80s"}
|
||||
- {id: 94, cat: Movies, desc: " |-- 90s"}
|
||||
- {id: 4, cat: Movies/Other, desc: "الرسوم المتحركة"}
|
||||
- {id: 5, cat: Movies/Other, desc: " |-- مترجم"}
|
||||
- {id: 6, cat: Movies/Other, desc: " |-- مدبلج"}
|
||||
|
||||
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: 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: "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: table:has(td.thead:contains("error"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href*="logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: takethanks.php
|
||||
method: post
|
||||
inputs:
|
||||
torrentid: "{{ .DownloadUri.Query.id }}"
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
|
||||
inputs:
|
||||
do: search
|
||||
keywords: "{{ .Keywords }}"
|
||||
# t_name, t_description, t_both, t_uploader, t_genre
|
||||
search_type: t_both
|
||||
# does not support multi category searching so defaulting to all.
|
||||
category: 0
|
||||
include_dead_torrents: yes
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:has(span > a[href*="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="?category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
selector: a[href*="/details.php?id="]
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?<=\\d)\\s+(?=\\d)", " "]
|
||||
- name: re_replace
|
||||
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[(\\d{4})\\]\\s*\\[م(\\d+)\\]", "S$3E$1 [$2]"]
|
||||
- name: re_replace
|
||||
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[م(\\d+)\\]", "S$2E$1"]
|
||||
- name: re_replace
|
||||
args: ["^\\[(\\d+(?:[\\s-]+\\d+)*)\\](?!\\s*\\[م)", "S01E$1"]
|
||||
- name: re_replace
|
||||
args: ["E(\\d+)[\\s-]+(\\d+)", "E$1-E$2"]
|
||||
- name: re_replace
|
||||
args: ["\\[\\s*\\]", ""]
|
||||
- name: re_replace
|
||||
args: ["(?<=\\S)(\\[)", " $1"]
|
||||
- name: re_replace
|
||||
args: ["S(\\d)(?=E)", "S0$1"]
|
||||
- name: re_replace
|
||||
args: ["E(\\d)(?=\\D)", "E0$1"]
|
||||
- name: re_replace
|
||||
args: ["\\s{2,}", " "]
|
||||
- name: trim
|
||||
details:
|
||||
selector: a[href*="/details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download.php?id="]
|
||||
attribute: href
|
||||
date:
|
||||
selector: td:nth-child(2) > div:nth-child(3)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{2}-\\d{2}-\\d{4} \\d{2}:\\d{2})"
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm"
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
poster:
|
||||
selector: div.tooltip-content > img[src*="/torrents/"]
|
||||
attribute: src
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="torrent_flags/freedownload.gif"]: 0
|
||||
img[src$="torrent_flags/silverdownload.gif"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src$="torrent_flags/x2.gif"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# TS Special Edition v.7.5
|
||||
@@ -0,0 +1,136 @@
|
||||
---
|
||||
id: arabtorrents-com
|
||||
name: arab-torrents.com
|
||||
description: "arab-torrents.com is an ARABIC Public Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: ar-AE
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://arab-torrents.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# categories containing '»' have a double space in search results
|
||||
- {id: 14, cat: Other, desc: "اسلامي"}
|
||||
- {id: 17, cat: Books, desc: "كتب"}
|
||||
- {id: 19, cat: TV/Documentary, desc: "المرئيات العربية » وثائقي"}
|
||||
- {id: 22, cat: PC, desc: "برامج عربية"}
|
||||
- {id: 23, cat: PC, desc: "برامج عامه"}
|
||||
- {id: 25, cat: Other, desc: "القران الكريم"}
|
||||
- {id: 26, cat: Audio, desc: "اناشيد"}
|
||||
- {id: 27, cat: Other, desc: "محاضرات"}
|
||||
- {id: 41, cat: Movies, desc: "افلام عربيه"}
|
||||
- {id: 44, cat: TV, desc: "مسلسلات عربية"}
|
||||
- {id: 46, cat: Audio, desc: "منوع"}
|
||||
- {id: 52, cat: Movies/Other, desc: "مسرحيات"}
|
||||
- {id: 56, cat: TV/Sport, desc: "رياضي"}
|
||||
- {id: 57, cat: TV/Foreign, desc: "مسلسلات آسيوية"}
|
||||
- {id: 59, cat: Movies/Foreign, desc: "افلام آسيوية"}
|
||||
- {id: 65, cat: Other, desc: "صور"}
|
||||
- {id: 70, cat: Other, desc: "المرئيات العربية » تعليمي"}
|
||||
- {id: 71, cat: TV/Foreign, desc: "مسلسلات مدبلجه عربي"}
|
||||
- {id: 86, cat: Movies/Foreign, desc: "افلام هنديه"}
|
||||
- {id: 88, cat: Movies/Foreign, desc: "افلام مدبلجه عربي"}
|
||||
- {id: 89, cat: TV, desc: "مسلسلات عربية كامله"}
|
||||
- {id: 90, cat: TV, desc: "برامج ومسابقات"}
|
||||
- {id: 92, cat: Other, desc: "المرئيات الاجنبية » تعليمي"}
|
||||
- {id: 93, cat: TV/Documentary, desc: "المرئيات الاجنبية » وثائقي"}
|
||||
- {id: 98, cat: Movies/Other, desc: "انمي مدبلج عربي » افلام"}
|
||||
- {id: 99, cat: Movies/Other, desc: "انمي مترجم عربي » افلام"}
|
||||
- {id: 100, cat: TV/Anime, desc: "انمي مدبلج عربي » مسلسلات"}
|
||||
- {id: 101, cat: TV/Anime, desc: "انمي مترجم عربي » مسلسلات"}
|
||||
- {id: 102, cat: TV/Anime, desc: "انمي مدبلج عربي » حلقات"}
|
||||
- {id: 103, cat: TV/Anime, desc: "انمي مترجم عربي » حلقات"}
|
||||
- {id: 113, cat: TV/Foreign, desc: "مسلسلات لاتينية مترجم.مدبلج"}
|
||||
- {id: 114, cat: Movies/Foreign, desc: "افلام لاتينية مترجم.مدبلج"}
|
||||
- {id: 115, cat: TV/Foreign, desc: "مسلسلات تركية مترجم.مدبلج"}
|
||||
- {id: 116, cat: Movies/Foreign, desc: "افلام تركية مترجم.مدبلج"}
|
||||
- {id: 117, cat: TV, desc: "رمضان 2025"}
|
||||
# categories not listed
|
||||
- {id: missing1, cat: TV/Other, desc: "الكارتون الصامت والكلاسيكي"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings: []
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: index.php
|
||||
- path: index.php
|
||||
inputs:
|
||||
p: 2
|
||||
|
||||
inputs:
|
||||
page: torrents
|
||||
search: "{{ .Keywords }}"
|
||||
# does not support multi-category search
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["^.{1,2}$", ""]
|
||||
|
||||
rows:
|
||||
selector: table#torrents > tbody > tr
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: div.fcat
|
||||
title:
|
||||
selector: a[href^="/index.php?page=torrents&tid="] img
|
||||
attribute: alt
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?<=\\d)\\s+(?=\\d)", " "]
|
||||
- name: re_replace
|
||||
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[(\\d{4})\\]\\s*\\[م(\\d+)\\]", "S$3E$1 [$2]"]
|
||||
- name: re_replace
|
||||
args: ["\\[(\\d+(?:[\\s-]+\\d+)*)\\]\\s*\\[م(\\d+)\\]", "S$2E$1"]
|
||||
- name: re_replace
|
||||
args: ["^\\[(\\d+(?:[\\s-]+\\d+)*)\\](?!\\s*\\[م)", "S01E$1"]
|
||||
- name: re_replace
|
||||
args: ["E(\\d+)[\\s-]+(\\d+)", "E$1-E$2"]
|
||||
- name: re_replace
|
||||
args: ["\\[\\s*\\]", ""]
|
||||
- name: re_replace
|
||||
args: ["(?<=\\S)(\\[)", " $1"]
|
||||
- name: re_replace
|
||||
args: ["S(\\d)(?=E)", "S0$1"]
|
||||
- name: re_replace
|
||||
args: ["E(\\d)(?=\\D)", "E0$1"]
|
||||
- name: re_replace
|
||||
args: ["\\s{2,}", " "]
|
||||
- name: trim
|
||||
details:
|
||||
selector: a[href^="/index.php?page=torrents&tid="]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a:has(img.posterIcon)
|
||||
attribute: href
|
||||
tmdbid:
|
||||
selector: a[href*="themoviedb.org/movie/"], a[href*="themoviedb.org/tv/"]
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: div.fsize
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
description:
|
||||
selector: td
|
||||
remove: a[href^="magnet:?xt="], div
|
||||
# engine n/a
|
||||
@@ -5,8 +5,6 @@ description: "ArenaBG is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GEN
|
||||
language: bg-BG
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- c25aba843f815e92d0da0bbe3191326d16a81a32 # expired 15th Oct 2025
|
||||
links:
|
||||
- https://arenabg.com/
|
||||
legacylinks:
|
||||
|
||||
@@ -0,0 +1,191 @@
|
||||
---
|
||||
id: aura4k-api
|
||||
name: AURA4K (API)
|
||||
description: "AURA4K is a Private Torrent Tracker for MOVIES / TV"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://aura4k.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
allowtvsearchimdb: true
|
||||
|
||||
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://aura4k.net/\" target=\"_blank\">AURA4K</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 with no activity (login/traffic) for more than 90 days may be automatically pruned."
|
||||
|
||||
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
|
||||
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 72 hours OR 1:1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 72 hours (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 9.2.0
|
||||
@@ -15,6 +15,7 @@ caps:
|
||||
- {id: 35, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 51, cat: PC/Mac, desc: "Apple"}
|
||||
- {id: 3, cat: PC, desc: "Apps"}
|
||||
- {id: 109, cat: PC, desc: "Attract-Mode"}
|
||||
- {id: 64, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: 71, cat: Console, desc: "Batocera"}
|
||||
- {id: 4, cat: Movies/BluRay, desc: "Blu-Ray"}
|
||||
@@ -34,7 +35,8 @@ caps:
|
||||
- {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: 107, cat: Console, desc: "KinHanK"}
|
||||
- {id: 43, cat: Console, desc: "LaunchBox"}
|
||||
- {id: 85, cat: PC, desc: "MAME Rom Sets"}
|
||||
- {id: 33, cat: TV/Sport, desc: "MMA/Boxing"}
|
||||
- {id: 32, cat: Movies, desc: "Movie Pack"}
|
||||
@@ -59,6 +61,7 @@ caps:
|
||||
- {id: 76, cat: Console, desc: "RGS"}
|
||||
- {id: 27, cat: PC, desc: "Roms and Emulators"}
|
||||
- {id: 68, cat: PC, desc: "Schmoomer's"}
|
||||
- {id: 110, cat: Console, desc: "ScummVM"}
|
||||
- {id: 57, cat: Console, desc: "Sega"}
|
||||
- {id: 74, cat: PC, desc: "Sleyk/SGC"}
|
||||
- {id: 29, cat: TV/Sport, desc: "Sport"}
|
||||
@@ -130,29 +133,31 @@ search:
|
||||
# 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 }}"
|
||||
selector: "table#sortabletable > tbody > tr:has(a[href*=\"download.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="]
|
||||
selector: a[href*="browse.php?category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title_default:
|
||||
selector: a[href*="/details.php?id="]
|
||||
# is often abbreviated
|
||||
selector: a[href*="details.php?id="]
|
||||
title:
|
||||
# can be abbreviated but usually longer than title_default
|
||||
selector: div.tooltip-content > div
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href*="/details.php?id="]
|
||||
selector: a[href*="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="/download.php?id="]
|
||||
selector: a[href*="download.php?id="]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
@@ -185,4 +190,9 @@ search:
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm zzz"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# TS Special Edition v.8.0
|
||||
|
||||
@@ -0,0 +1,186 @@
|
||||
---
|
||||
id: baozipt
|
||||
name: baoziPT
|
||||
description: "baoziPT is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://p.t-baozi.cc/
|
||||
|
||||
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: "动漫/Anime"}
|
||||
- {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: "其他/Other"}
|
||||
- {id: 410, cat: TV, desc: "短剧/Playlet"}
|
||||
|
||||
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>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 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 100 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(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,259 @@
|
||||
---
|
||||
id: bigbbs
|
||||
name: BigBBS
|
||||
description: "BigBBS is a POLISH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: pl-PL
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bigbbs.eu/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Filmi"}
|
||||
- {id: 14, cat: Movies/SD, desc: "Filmi DivX / XviD"}
|
||||
- {id: 41, cat: Movies/HD, desc: "Filmi x264"}
|
||||
- {id: 40, cat: Movies, desc: "Filmi Al / Lektor Amatorski"}
|
||||
- {id: 39, cat: Movies/BluRay, desc: "Filmi BluRay"}
|
||||
- {id: 147, cat: Movies, desc: "Filmi Xmas"}
|
||||
- {id: 37, cat: Movies/DVD, desc: "Filmi DVD 5 / 9"}
|
||||
- {id: 52, cat: Movies/3D, desc: "Filmi 3D"}
|
||||
- {id: 17, cat: Movies/HD, desc: "Filmi HD 1080p , 720p"}
|
||||
- {id: 99, cat: Movies/HD, desc: "Filmi x265"}
|
||||
- {id: 62, cat: XXX, desc: "Filmi XXX"}
|
||||
- {id: 16, cat: Movies/SD, desc: "Filmi CAM / TS"}
|
||||
- {id: 65, cat: Movies/HD, desc: "Filmi Rmvb"}
|
||||
- {id: 66, cat: Movies, desc: "Filmi TV RIP"}
|
||||
- {id: 84, cat: TV/Documentary, desc: "Filmi Dokumentalne"}
|
||||
- {id: 100, cat: Movies, desc: "Filmi Seriale"}
|
||||
- {id: 103, cat: Movies, desc: "Filmi FILMY GSM / PDA"}
|
||||
- {id: 107, cat: Movies/UHD, desc: "Filmi 4K-UHD"}
|
||||
- {id: 109, cat: Movies, desc: "Filmi Biblijny"}
|
||||
- {id: 113, cat: Movies, desc: "Filmi Prawniczy"}
|
||||
- {id: 61, cat: Movies, desc: "Bajki"}
|
||||
- {id: 106, cat: Books/Comics, desc: "Manga"}
|
||||
- {id: 53, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 56, cat: TV, desc: "TV"}
|
||||
- {id: 57, cat: TV, desc: "TV BOXSETS"}
|
||||
- {id: 58, cat: TV, desc: "TV EPIZODY"}
|
||||
- {id: 6, cat: PC, desc: "Aplikacje"}
|
||||
- {id: 18, cat: PC/0day, desc: "Aplikacje Windows"}
|
||||
- {id: 64, cat: PC/Mobile-Other, desc: "Aplikacje GSM/PDA"}
|
||||
- {id: 19, cat: PC/Mac, desc: "Aplikacje Macintosh"}
|
||||
- {id: 42, cat: PC, desc: "Aplikacje Linux"}
|
||||
- {id: 63, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 7, cat: Audio, desc: "Muzyka"}
|
||||
- {id: 20, cat: Audio/Video, desc: "Koncert"}
|
||||
- {id: 144, cat: Audio, desc: "BiGBBS RMG (Rellase Music Group)"}
|
||||
- {id: 21, cat: Audio/MP3, desc: "MP3"}
|
||||
- {id: 38, cat: Audio/Lossless, desc: "FLAC"}
|
||||
- {id: 135, cat: Audio, desc: "RetroRemix,ClubDance"}
|
||||
- {id: 43, cat: Audio, desc: "Soundtrack"}
|
||||
- {id: 136, cat: Audio, desc: "Rock"}
|
||||
- {id: 80, cat: Audio/Lossless, desc: "lossless"}
|
||||
- {id: 81, cat: Audio, desc: "MusicVid"}
|
||||
- {id: 82, cat: Audio, desc: "Radio"}
|
||||
- {id: 138, cat: Audio, desc: "Dyskografie Płytowe"}
|
||||
- {id: 117, cat: Audio, desc: "Metal Rock"}
|
||||
- {id: 139, cat: Audio, desc: "Kolekcje Muzyczne"}
|
||||
- {id: 118, cat: Audio, desc: "Disco Polo"}
|
||||
- {id: 119, cat: Audio, desc: "Clubbing"}
|
||||
- {id: 120, cat: Audio, desc: "House"}
|
||||
- {id: 125, cat: Audio, desc: "Elektro"}
|
||||
- {id: 127, cat: Audio, desc: "Tranc"}
|
||||
- {id: 128, cat: Audio, desc: "Dance"}
|
||||
- {id: 130, cat: Audio, desc: "Opus"}
|
||||
- {id: 129, cat: Audio, desc: "Pop"}
|
||||
- {id: 131, cat: Audio, desc: "Italo"}
|
||||
- {id: 133, cat: Audio, desc: "ClubDance"}
|
||||
- {id: 134, cat: Audio, desc: "Retro Remixes"}
|
||||
- {id: 146, cat: Audio, desc: "Techno"}
|
||||
- {id: 132, cat: Audio, desc: "eurodance"}
|
||||
- {id: 145, cat: Audio, desc: "Chillout"}
|
||||
- {id: 83, cat: Audio, desc: "BLUES / REGGAE/ ROCK / METAL/CLASSIC/"}
|
||||
- {id: 2, cat: Console, desc: "Gry"}
|
||||
- {id: 3, cat: Console/PS3, desc: "Sony PS"}
|
||||
- {id: 4, cat: Console/Wii, desc: "Wii"}
|
||||
- {id: 26, cat: Console/XBox, desc: "XboX"}
|
||||
- {id: 28, cat: PC/Games, desc: "Gry PC"}
|
||||
- {id: 28, cat: Console/NDS, desc: "Nintendo"}
|
||||
- {id: 47, cat: Books/EBook, desc: "EEbooki"}
|
||||
- {id: 48, cat: Audio/Audiobook, desc: "Audio Book"}
|
||||
- {id: 50, cat: Books/EBook, desc: "Ebook Pdf"}
|
||||
- {id: 67, cat: Books/Comics, desc: "Komiksy"}
|
||||
- {id: 59, cat: Other, desc: "BBRG"}
|
||||
- {id: 39, cat: Movies/BluRay, desc: "Filmy BluRay 50/25/9"}
|
||||
- {id: 88, cat: Movies/3D, desc: "Filmi 3D"}
|
||||
- {id: 108, cat: Movies/BluRay, desc: "Filmi BluRay"}
|
||||
- {id: 89, cat: Movies/HD, desc: "Filmi HD x264"}
|
||||
- {id: 90, cat: Movies/HD, desc: "Filmi HD DivX / XviD"}
|
||||
- {id: 91, cat: Movies/DVD, desc: "Filmi DVD 5 / DVD 9"}
|
||||
- {id: 92, cat: Movies/SD, desc: "Filmi SD DivX / XviD"}
|
||||
- {id: 93, cat: Movies/SD, desc: "Filmi SD x264"}
|
||||
- {id: 96, cat: Movies, desc: "Filmi TVRip"}
|
||||
- {id: 101, cat: Movies, desc: "Filmi Boxset"}
|
||||
- {id: 98, cat: Movies, desc: "Filmi Seriale"}
|
||||
- {id: 95, cat: Movies, desc: "Bajki"}
|
||||
- {id: 97, cat: Audio/Video, desc: "Kabarety"}
|
||||
- {id: 102, cat: Movies/HD, desc: "Filmi x265"}
|
||||
- {id: 104, cat: Movies, desc: "Filmi FILMY GSM / PDA"}
|
||||
- {id: 86, cat: Audio, desc: "Muzyka BBRG"}
|
||||
- {id: 110, cat: Movies, desc: "Filmi Biblijny"}
|
||||
- {id: 114, cat: Movies/UHD, desc: "Filmi 4K-UHD"}
|
||||
- {id: 115, cat: Movies, desc: "Filmi Fan BBRG"}
|
||||
- {id: 112, cat: Movies, desc: "Filmi ENG"}
|
||||
|
||||
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_profile
|
||||
type: info
|
||||
label: Layout
|
||||
default: "<ul><li>Only the English Classic profile is supported.</li><li>Make sure to set the <b>Torrent Listing (Lista torrentów)</b> option in your profile to <b>Classic (Klasyczny)</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>Polski</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_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Account retention rules: Inactive accounts over 30 days will be warned by email about their inactivity. If within 24h a person does not log in to their account, they will lose them without the possibility of returning."
|
||||
|
||||
login:
|
||||
path: ?p=home&pid=1
|
||||
method: form
|
||||
form: form#sls_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: div.error
|
||||
- selector: :contains("-ERROR-")
|
||||
test:
|
||||
path: ?p=home&pid=1
|
||||
selector: div#member_info_bar
|
||||
|
||||
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 }}"
|
||||
# does not support imdbid search but has imdbid links in results.
|
||||
error:
|
||||
- selector: div.error:not(:contains("There are no results found."))
|
||||
|
||||
rows:
|
||||
selector: "table#torrents_table_classic > tbody > tr:has(a[href*=\"?p=torrents&pid=10&action=download&tid=\"]){{ if .Config.freeleech }}:has(img[src$=\"/torrent_free.png\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="?p=torrents&pid=10&cid="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cid
|
||||
title:
|
||||
selector: a[href*="?p=torrents&pid=10&action=details&tid="]
|
||||
details:
|
||||
selector: a[href*="?p=torrents&pid=10&action=details&tid="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="?p=torrents&pid=10&action=download&tid="]
|
||||
attribute: href
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
optional: true
|
||||
poster:
|
||||
selector: a[href*="data/torrents/torrent_images/"]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: a[rel="torrent_size"]
|
||||
grabs:
|
||||
selector: a[rel="times_completed"]
|
||||
seeders:
|
||||
selector: a[rel="torrent_seeders"]
|
||||
leechers:
|
||||
selector: a[rel="torrent_leechers"]
|
||||
date_day:
|
||||
# Uploaded Today at 04:01:07 by
|
||||
# Uploaded Yesterday at 06:37:21 by
|
||||
selector: td.torrent_name:contains("day at ")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Uploaded (.+?) by"
|
||||
- name: fuzzytime
|
||||
date_year:
|
||||
# Uploaded 17-04-2017 06:07:06 by
|
||||
selector: td.torrent_name:not(:contains("day at "))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Uploaded (.+?) by"
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm:ss"
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="/torrent_free.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 day (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# TSUE 2.2
|
||||
@@ -6,6 +6,7 @@ language: hu-HU
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bitpalace.hu/
|
||||
- https://bitpalace.cc/
|
||||
|
||||
caps:
|
||||
|
||||
@@ -10,6 +10,7 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 54, cat: XXX, desc: Ai Generated"}
|
||||
- {id: 4, cat: XXX, desc: Amateur"}
|
||||
- {id: 5, cat: XXX, desc: Anal"}
|
||||
- {id: 6, cat: XXX, desc: Asian"}
|
||||
@@ -191,4 +192,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 48 hours (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 9.1.7 (custom)
|
||||
# json UNIT3D 9.2.0 (custom)
|
||||
|
||||
@@ -9,13 +9,13 @@ type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bitsearch.to/
|
||||
- https://solidtorrents.to/
|
||||
- https://solidtorrents.eu/
|
||||
legacylinks:
|
||||
- https://bitsearch.nocensor.cloud/
|
||||
- https://bitsearch.mrunblock.bond/
|
||||
- https://solidtorrents.net/
|
||||
- https://solidtorrents.nocensor.cloud/
|
||||
- https://solidtorrents.eu/
|
||||
- https://solidtorrents.to/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
||||
@@ -24,6 +24,7 @@ caps:
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
allowtvsearchimdb: true
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
@@ -194,4 +195,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 9.1.7
|
||||
# json UNIT3D 9.2.0
|
||||
|
||||
@@ -0,0 +1,175 @@
|
||||
---
|
||||
id: c411
|
||||
name: C411
|
||||
description: "C411 (Community 411) is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://c411.org/
|
||||
legacylinks:
|
||||
- https://staging-68d548c5bd4.c411.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# from https://c411.org/api/torznab?apikey=YOUR-API-KEY&t=caps
|
||||
- {id: 1000, cat: Console, desc: "Jeux Vidéo & Emulation"}
|
||||
- {id: 1030, cat: Console/Wii, desc: "Nintendo"}
|
||||
- {id: 1040, cat: Console/XBox, desc: "Xbox"}
|
||||
- {id: 1080, cat: Console/PS4, desc: "Sony"}
|
||||
- {id: 1090, cat: Console/Other, desc: "Jeux Autre & ROM/ISO"}
|
||||
- {id: 2000, cat: Movies, desc: "Films & Vidéos"}
|
||||
- {id: 2060, cat: Movies/Other, desc: "Animation Films & Vidéo-clips"}
|
||||
- {id: 2070, cat: Movies, desc: "Films Documentaire"}
|
||||
- {id: 2090, cat: Movies/Other, desc: "Films Concert & Spectacle"}
|
||||
- {id: 3000, cat: Audio, desc: "Audio"}
|
||||
- {id: 3010, cat: Audio/MP3, desc: "Musique"}
|
||||
- {id: 3030, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: 3050, cat: Audio/Other, desc: "Karaoké & Podcast Radio & Samples"}
|
||||
- {id: 4000, cat: PC/0day, desc: "Applications & Windows & Nulled"}
|
||||
- {id: 4030, cat: PC/0day, desc: "Linux & MacOS"}
|
||||
- {id: 4040, cat: PC, desc: "Formation"}
|
||||
- {id: 4050, cat: PC, desc: "Games-Linux & Games-MacOS & Games-Divers & Autre & Émulateur & GPS & Scripts PHP & CMS & Wordpress"}
|
||||
- {id: 4060, cat: PC/Mobile-Android, desc: "Android Mobile & Smartphone & Tablette & Applications & Cartes"}
|
||||
- {id: 4070, cat: PC/Mobile-iOS, desc: "iOS Smartphone & Tablette"}
|
||||
- {id: 5000, cat: TV, desc: "Série TV"}
|
||||
- {id: 5060, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 5070, cat: TV/Anime, desc: "Animation Série"}
|
||||
- {id: 5080, cat: TV/Documentary, desc: "Emission TV"}
|
||||
- {id: 6000, cat: XXX, desc: "XXX"}
|
||||
- {id: 6010, cat: XXX/DVD, desc: "3X Films"}
|
||||
- {id: 6050, cat: XXX/Other, desc: "3X Ebooks"}
|
||||
- {id: 6060, cat: XXX/ImageSet, desc: "3X Images"}
|
||||
- {id: 6070, cat: XXX/Other, desc: "Hentai"}
|
||||
- {id: 6080, cat: XXX/Other, desc: "3X Jeux"}
|
||||
- {id: 7000, cat: Books, desc: "Ebook"}
|
||||
- {id: 7010, cat: Books/Mags, desc: "Presse"}
|
||||
- {id: 7020, cat: Books/EBook, desc: "Livres"}
|
||||
- {id: 7030, cat: Books/Comics, desc: "BDs & Comics & Manga"}
|
||||
- {id: 8010, cat: Other/Misc, desc: "Imprimante 3D & Objets & Personnages"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: API Key
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "You can find or generate a new API Key by accessing the <a href=\"https://c411.org/user/integrations\" target=\"_blank\">C411 Intégrations API</a> page."
|
||||
- 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: info_3x
|
||||
type: info
|
||||
label: Including 3X
|
||||
default: "IF you want to see 3x torrents access your <a href=\"https://c411.org/user/settings\" target=\"_blank\">C411 Paramètres</a> page and tick the <b>Afficher le contenu XXX</b> checkbox."
|
||||
|
||||
login:
|
||||
# returns "401 Unauthorized, check your credentials" if apikey is invalid
|
||||
path: "api/torznab?apikey={{ .Config.apikey }}&t=caps"
|
||||
method: get
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: api/torznab
|
||||
response:
|
||||
type: xml
|
||||
|
||||
inputs:
|
||||
apikey: "{{ .Config.apikey }}"
|
||||
t: "{{ if .Query.IMDBID }}movie{{ else }}{{ end }}{{ if or .Query.Season .Query.Ep }}tvsearch{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.Season .Query.Ep }}{{ else }}search{{ end }}"
|
||||
q: "{{ .Keywords }}"
|
||||
cat: "{{ join .Categories \",\" }}"
|
||||
season: "{{ .Query.Season }}"
|
||||
ep: "{{ .Query.Ep }}"
|
||||
imdbid: "{{ .Query.IMDBID }}"
|
||||
limit: 100
|
||||
|
||||
keywordsfilters:
|
||||
# replace spaces between words with percent wildcard
|
||||
- name: re_replace
|
||||
args: ["\\W+", "%"]
|
||||
|
||||
rows:
|
||||
selector: rss > channel > item
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: '[name="category"]'
|
||||
attribute: value
|
||||
title_phase1:
|
||||
selector: title
|
||||
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|VF2|VFF|VFQ|VOQ|VFI|VOF)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: link
|
||||
download:
|
||||
selector: enclosure
|
||||
attribute: url
|
||||
infohash:
|
||||
selector: '[name="infohash"]'
|
||||
attribute: value
|
||||
date:
|
||||
# Sun, 18 Jan 2026 04:05:41 +0000
|
||||
selector: pubDate
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "ddd, dd MMM yyyy HH:mm:ss zzz"
|
||||
size:
|
||||
selector: size
|
||||
seeders:
|
||||
selector: '[name="seeders"]'
|
||||
attribute: value
|
||||
leechers:
|
||||
selector: '[name="peers"]'
|
||||
attribute: value
|
||||
grabs:
|
||||
selector: '[name="grabs"]'
|
||||
attribute: value
|
||||
downloadvolumefactor:
|
||||
selector: '[name="downloadvolumefactor"]'
|
||||
attribute: value
|
||||
uploadvolumefactor:
|
||||
selector: '[name="uploadvolumefactor"]'
|
||||
attribute: value
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# torznab xml
|
||||
@@ -181,4 +181,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.6 2025-06-25
|
||||
# NexusPHP v1.9.11 2025-11-02
|
||||
|
||||
@@ -194,4 +194,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 9.1.7
|
||||
# json UNIT3D 9.2.0
|
||||
|
||||
@@ -37,6 +37,7 @@ caps:
|
||||
- {id: 80, cat: TV, desc: "Paketi"}
|
||||
- {id: 49, cat: PC, desc: "Programi"}
|
||||
- {id: 28, cat: Other, desc: "Razno"}
|
||||
- {id: 85, cat: Movies, desc: "Remux"}
|
||||
- {id: 62, cat: TV/SD, desc: "SD Boxset"}
|
||||
- {id: 38, cat: TV/Sport, desc: "Sport"}
|
||||
- {id: 39, cat: Audio/Video, desc: "Spotovi DVD"}
|
||||
|
||||
@@ -211,4 +211,4 @@ search:
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Result.description_verified }} "
|
||||
# NexusPHP v1.8.14 2024-10-07
|
||||
# NexusPHP v1.9.11 2025-11-02
|
||||
|
||||
@@ -173,4 +173,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 2 day (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json DBy v0.96
|
||||
# json DBy v0.96 (based on UNIT3D 6.3.0?)
|
||||
|
||||
@@ -24,6 +24,7 @@ caps:
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
allowtvsearchimdb: true
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
@@ -194,4 +195,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 6 days (as seconds = 6 x 24 x 60 x 60)
|
||||
text: 518400
|
||||
# json UNIT3D 9.1.7
|
||||
# json UNIT3D 9.2.0
|
||||
|
||||
@@ -109,24 +109,27 @@ search:
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
selector: a[href*="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
selector: a[href*="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
selector: a[title][href*="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
selector: a[href*="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
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
|
||||
|
||||
@@ -0,0 +1,187 @@
|
||||
---
|
||||
id: dubhe
|
||||
name: dubhe (天枢)
|
||||
description: "dubhe (天枢) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://dubhe.site/
|
||||
|
||||
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: "动漫/Anime"}
|
||||
- {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/Misc, desc: "其他/Other"}
|
||||
- {id: 410, cat: Books, desc: "书籍/Books"}
|
||||
- {id: 411, cat: Other, desc: "照片/Photo"}
|
||||
|
||||
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>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 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 100 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(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
|
||||
@@ -6,8 +6,12 @@ language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
certificates:
|
||||
- 1dad798f690521cfb37d6817b66f1f08fe8c8f36 # using CA from audiobookbay.lu (sister site)
|
||||
links:
|
||||
- http://ebb.la/ # site does not support https SSL_ERROR_BAD_CERT_DOMAIN
|
||||
- https://ebb.la/
|
||||
legacylinks:
|
||||
- http://ebb.la/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -85,8 +89,8 @@ download:
|
||||
search:
|
||||
paths:
|
||||
# with just 5 results per page, try to grab up to 25 results
|
||||
# http://ebb.la/?s=teeth
|
||||
# http://ebb.la/page/2/?s=teeth
|
||||
# https://ebb.la/?s=teeth
|
||||
# https://ebb.la/page/2/?s=teeth
|
||||
- path: /
|
||||
- path: "page/2/"
|
||||
- path: "page/3/"
|
||||
@@ -119,9 +123,15 @@ search:
|
||||
details:
|
||||
selector: a.detail
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["http:", "https:"]
|
||||
download:
|
||||
selector: a.detail
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["http:", "https:"]
|
||||
poster:
|
||||
selector: img[src^="http"]:not(img[src*="images/default_cover.jpg"])
|
||||
attribute: src
|
||||
|
||||
@@ -82,6 +82,7 @@ caps:
|
||||
- {id: 330, cat: Books/EBook, desc: "D.I.Y"}
|
||||
- {id: 332, cat: Books/EBook, desc: "Trivia/Quiz"}
|
||||
- {id: 367, cat: Books/EBook, desc: "Health & Fitness"}
|
||||
- {id: 369, cat: Books/EBook, desc: "Woodworking"}
|
||||
# Non Fict/Ref
|
||||
- {id: 285, cat: Books/EBook, desc: "General Non-fiction"}
|
||||
- {id: 289, cat: Books/EBook, desc: "Autobiography/Memoir"}
|
||||
@@ -93,7 +94,6 @@ caps:
|
||||
- {id: 351, cat: Books/EBook, desc: "Religion"}
|
||||
- {id: 358, cat: Books/EBook, desc: "History"}
|
||||
- {id: 362, cat: Books/EBook, desc: "Politics"}
|
||||
- {id: 368, cat: Books/EBook, desc: "Music"}
|
||||
# Military
|
||||
- {id: 287, cat: Books/EBook, desc: "WW1"}
|
||||
- {id: 288, cat: Books/EBook, desc: "WW2"}
|
||||
|
||||
@@ -5,12 +5,13 @@ description: "Empornium (EMP) is a Private Torrent Tracker for 3X"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
# status: http://about.empornium.ph/
|
||||
links:
|
||||
- https://www.empornium.is/
|
||||
- https://www.empornium.sx/ # site forces www.
|
||||
legacylinks:
|
||||
- https://www.empornium.me/
|
||||
- https://empornium.sx/
|
||||
- https://www.empornium.is/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -5,12 +5,13 @@ description: "Empornium (EMP) is a Private Torrent Tracker for 3X. This indexer
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
# status: http://about.empornium.ph/
|
||||
links:
|
||||
- https://www.empornium.is/
|
||||
- https://www.empornium.sx/ # site forces www.
|
||||
legacylinks:
|
||||
- https://www.empornium.me/
|
||||
- https://empornium.sx/
|
||||
- https://www.empornium.is/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -6,6 +6,8 @@ language: es-ES
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://emuwarez.com/
|
||||
legacylinks:
|
||||
- https://emuwarez.it/
|
||||
|
||||
caps:
|
||||
@@ -30,7 +32,7 @@ settings:
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://emuwarez.it/\" target=\"_blank\">eMuwarez</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://emuwarez.com/\" target=\"_blank\">eMuwarez</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -114,8 +116,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -189,4 +189,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 9.0.8
|
||||
# json UNIT3D 9.2.0
|
||||
|
||||
@@ -30,6 +30,8 @@ caps:
|
||||
- {id: Dubbed Movies, cat: Movies/Foreign, desc: Movies Dubbed}
|
||||
- {id: Ebooks, cat: Books/EBook, desc: Books Ebook}
|
||||
- {id: English-translated, cat: TV/Anime, desc: Anime English-translated}
|
||||
- {id: Episodes HD, cat: TV/HD, desc: Episodes HD}
|
||||
- {id: Episodes 4K UHD, cat: TV/UHD, desc: Episodes 4K UHD}
|
||||
- {id: Games, cat: XXX/Other, desc: Adult Games}
|
||||
- {id: Hentai, cat: XXX/Other, desc: Adult Hentai}
|
||||
- {id: Highres Movies, cat: Movies/HD, desc: Movies HD}
|
||||
@@ -59,6 +61,7 @@ caps:
|
||||
- {id: Pictures, cat: XXX/ImageSet, desc: Adult Pictures}
|
||||
- {id: Radio Shows, cat: Audio/Other, desc: Music Radio}
|
||||
- {id: Raw, cat: TV/Anime, desc: Anime Raw}
|
||||
- {id: Season Packs, cat: TV, desc: Season Packs}
|
||||
- {id: Software, cat: PC/0day, desc: Software}
|
||||
- {id: Subs, cat: TV/Anime, desc: Anime Subs}
|
||||
- {id: Switch, cat: Console/Other, desc: Games Switch}
|
||||
|
||||
@@ -121,8 +121,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
@@ -167,4 +165,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 2 day (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 9.1.5 (custom)
|
||||
# json UNIT3D 9.2.0 (custom)
|
||||
|
||||
@@ -24,6 +24,10 @@ caps:
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA"
|
||||
default: "If you want to enable 2FA then use the Fappaizuri2FA indexer instead."
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
@@ -92,7 +96,7 @@ search:
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all, 1 notfree, 2 onlyfree
|
||||
freeleech: "{{ if .Config.freeleech }}{{ .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
lang: "{{ .Config.lang }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
---
|
||||
id: fappaizuri2fa
|
||||
name: Fappaizuri2FA
|
||||
description: "Fappaizuri is a Private Torrent Tracker for HENTAI / JAV. This indexer uses cookie login for 2FA."
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.fappaizuri.me/
|
||||
legacylinks:
|
||||
- https://fappaizuri.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 5, cat: XXX, desc: "JAV"}
|
||||
- {id: 6, cat: Books, desc: "Manga"}
|
||||
- {id: 7, cat: Console, desc: "H-games"}
|
||||
- {id: 8, cat: TV/Anime, desc: "Hentai"}
|
||||
- {id: 9, cat: XXX, desc: "OFFS"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
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: lang
|
||||
type: select
|
||||
label: Language
|
||||
default: 0
|
||||
options:
|
||||
0: All
|
||||
4: Japanese
|
||||
5: Chinese
|
||||
6: Malaysia
|
||||
7: North Korea
|
||||
8: English
|
||||
- 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_flaresolverr
|
||||
type: info_flaresolverr
|
||||
|
||||
login:
|
||||
# using cookie method because login page can present second page for 2FA when enabled
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="account-logout.php"]
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://fappaizuri.me/torrents-search.php?search=&c8=1&c6=1&incldead=1&freeleech=0&lang=0
|
||||
- path: torrents-search.php
|
||||
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}&c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all, 1 notfree, 2 onlyfree
|
||||
freeleech: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
lang: "{{ .Config.lang }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
order: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: tr.t-row
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents-search.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="torrents-details.php?id="] > b
|
||||
details:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: onMouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src=(.+?)>
|
||||
_language:
|
||||
selector: img[src*="images/languages/"]
|
||||
attribute: alt
|
||||
optional: true
|
||||
description:
|
||||
selector: font[color="red"]
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result._language }} - {{ .Result._language }}{{ else }}{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
date:
|
||||
selector: td:nth-child(8)
|
||||
filters:
|
||||
- name: timeago
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="images/free.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src="images/doubleupload.gif"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
||||
text: 345600
|
||||
# evolution
|
||||
@@ -49,19 +49,11 @@ caps:
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
- name: cookie
|
||||
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 Free Farm Web Site. Otherwise just leave it empty."
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -94,24 +86,10 @@ settings:
|
||||
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>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
# 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:
|
||||
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("失败"))
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
@@ -231,4 +209,4 @@ search:
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Result.description_verified }} "
|
||||
# NexusPHP v1.9.10 2025-10-30
|
||||
# NexusPHP v1.9.13 2025-12-28
|
||||
|
||||
@@ -6,8 +6,6 @@ language: es-ES
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
certificates:
|
||||
- 4a2229e8450d4cd573b4c6b2354c6e86fb038295 # Expired 29 June 2025
|
||||
links:
|
||||
- https://www.frozen-layer.com/
|
||||
|
||||
|
||||
@@ -53,6 +53,7 @@ caps:
|
||||
- {id: 41, cat: PC/Games, desc: " |-- Pc"}
|
||||
- {id: 42, cat: Console/PS3, desc: " |-- Ps3"}
|
||||
- {id: 43, cat: Console/PS4, desc: " |-- Ps4"}
|
||||
- {id: 67, cat: Console/PS4, desc: " |-- Ps5"}
|
||||
- {id: 44, cat: Console/Wii, desc: " |-- Wii"}
|
||||
- {id: 45, cat: Console/WiiU, desc: " |-- Wii-U"}
|
||||
- {id: 46, cat: Console/XBox, desc: " |-- Xbox"}
|
||||
|
||||
@@ -163,4 +163,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.11 2024-03-27
|
||||
# NexusPHP v1.9.11 2025-11-02
|
||||
|
||||
@@ -84,7 +84,7 @@ login:
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
returnto: /
|
||||
returnto: /browse.php
|
||||
error:
|
||||
- selector: td:contains("Login failed!")
|
||||
message:
|
||||
|
||||
@@ -40,11 +40,6 @@ caps:
|
||||
- {id: 28, cat: Movies/Foreign, desc: "Movie Subbed-ita"}
|
||||
- {id: 73, cat: Movies/SD, desc: "Movie MP4"}
|
||||
- {id: 29, cat: Movies/Foreign, desc: "Movie Lingua Originale"}
|
||||
# ANIMAZIONE
|
||||
- {id: 32, cat: TV/Anime, desc: "Anime Disney"}
|
||||
- {id: 33, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 34, cat: TV/Anime, desc: "Anime Altri Cartoni"}
|
||||
- {id: 62, cat: TV/Anime, desc: "Anime Natale Bimbi Girotor"}
|
||||
# TELEVISIONE
|
||||
- {id: 36, cat: TV, desc: "TV Serie"}
|
||||
- {id: 99, cat: TV/HD, desc: "TV Serie Hevc"}
|
||||
@@ -54,6 +49,11 @@ caps:
|
||||
- {id: 38, cat: TV, desc: "TV Concerti-Spettacoli"}
|
||||
- {id: 39, cat: TV, desc: "TV Teatro-Cabaret"}
|
||||
- {id: 40, cat: TV/Documentary, desc: "Tv Documentario"}
|
||||
# ANIMAZIONE
|
||||
- {id: 32, cat: TV/Anime, desc: "Anime Disney"}
|
||||
- {id: 33, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 34, cat: TV/Anime, desc: "Anime Altri Cartoni"}
|
||||
- {id: 62, cat: TV/Anime, desc: "Anime Natale Bimbi Girotor"}
|
||||
# MUSICA
|
||||
- {id: 42, cat: Audio, desc: "Musica CD Singoli"}
|
||||
- {id: 43, cat: Audio, desc: "Musica Italiana"}
|
||||
@@ -149,13 +149,12 @@ download:
|
||||
|
||||
search:
|
||||
paths:
|
||||
# 15 results per page fetch 5 (site is slow, dont be greedy and fetch more)
|
||||
- path: index.php
|
||||
inputs:
|
||||
page: torrents
|
||||
search: "{{ .Keywords }}"
|
||||
category: "{{ range .Categories }}{{.}};{{end}}"
|
||||
# 0 name, 1 name&descr, 2 descr, 3 uploader, 5 gold, 6 silver, 7 bronze
|
||||
# 0 filename, 1 file&descr, 2 descr, 3 uploader, 5 gold, 6 silver, 7 bronze
|
||||
# note the options are exclusive, so searching for gold means the search keywords are ignored
|
||||
options: 0
|
||||
# 0 all, 1 activeonly, 2 deadonly
|
||||
@@ -252,4 +251,4 @@ search:
|
||||
args: ["x Upload Multiplier", ""]
|
||||
minimumratio:
|
||||
text: 0.5
|
||||
# xbtitFM 3.1.00
|
||||
# xbtitFM v4.2.12
|
||||
|
||||
@@ -10,6 +10,7 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 15, cat: XXX, desc: "AI"}
|
||||
- {id: 11, cat: XXX, desc: "Asian"}
|
||||
- {id: 6, cat: XXX, desc: "Fansite"}
|
||||
- {id: 13, cat: XXX, desc: "Games"}
|
||||
|
||||
@@ -10,6 +10,7 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 15, cat: XXX, desc: "AI"}
|
||||
- {id: 11, cat: XXX, desc: "Asian"}
|
||||
- {id: 6, cat: XXX, desc: "Fansite"}
|
||||
- {id: 13, cat: XXX, desc: "Games"}
|
||||
|
||||
@@ -34,8 +34,8 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
@@ -92,14 +92,13 @@ search:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
search: "{{ if or .Query.IMDBID .Query.DoubanID }}{{ or .Query.IMDBID .Query.DoubanID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all, 1 normal, 2 free, 2 2x, 4 2xFree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 Exact
|
||||
# uses 'smart search'
|
||||
search_area: 0
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
@@ -131,6 +130,9 @@ search:
|
||||
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.rowfollow:nth-last-child(6) > span[title]
|
||||
@@ -179,4 +181,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP Standard v1.5 Beta 4 (customised)
|
||||
# NexusPHP Standard v1.5 Beta 4 (customised)
|
||||
|
||||
@@ -6,6 +6,8 @@ language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.hdclone.top/
|
||||
legacylinks:
|
||||
- https://pt.hdclone.org/
|
||||
|
||||
caps:
|
||||
@@ -15,9 +17,9 @@ caps:
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 403, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动漫、动画"}
|
||||
- {id: 408, cat: Audio/Video, desc: "Playlet/短剧"}
|
||||
- {id: 409, cat: Audio/Video, desc: "Playlet/短剧"}
|
||||
- {id: 410, cat: Audio/Video, desc: "MV/演唱会"}
|
||||
- {id: 406, cat: Audio, desc: "Music/音乐"}
|
||||
- {id: 408, cat: Audio, desc: "Music/音乐"}
|
||||
- {id: 407, cat: Other, desc: "Others/其他(慎选)"}
|
||||
|
||||
modes:
|
||||
|
||||
@@ -20,8 +20,9 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
allowtvsearchimdb: true
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
@@ -79,7 +80,11 @@ settings:
|
||||
- name: info_radarr
|
||||
type: info
|
||||
label: About Radarr
|
||||
default: The HD-F web site cannot find movies if you use the release year in a title search. When you define your Radarr v3 Indexer remember to tick the <i>Remove year from search string</i> checkbox.
|
||||
default: The HD-F web site cannot find movies if you use the release year in a title search. When you define your Radarr Indexer remember to tick the <i>Remove year from search string</i> checkbox.
|
||||
- name: info_release_name
|
||||
type: info
|
||||
label: About release names
|
||||
default: For more stable release names, enable <b>Afficher les noms de fichiers</b> in your HD-F profile settings.
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
@@ -107,7 +112,8 @@ search:
|
||||
searchsubmit: 1
|
||||
# 1 freeleech, 2 neutral, 3 both, 0 normal
|
||||
freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
# site does not support imdbid search or display imdb links in results
|
||||
tmdbid: "{{ .Query.TMDBID }}"
|
||||
imdbid: "{{ .Query.IMDBID }}"
|
||||
|
||||
rows:
|
||||
selector: table#torrent_table > tbody > tr.torrent:has(a[href^="torrents.php?action=download&"])
|
||||
@@ -145,10 +151,14 @@ search:
|
||||
poster:
|
||||
selector: div.group_image img
|
||||
attribute: src
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
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: td:nth-child(4)
|
||||
selector: span.time
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Il y a ", ""]
|
||||
@@ -182,116 +192,74 @@ search:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"div.group_info:contains(\"/ Free\")": 0
|
||||
"div.group_info:contains(\"↓75%\")": 0.75
|
||||
"div.group_info:contains(\"↓50%\")": 0.50
|
||||
"div.group_info:contains(\"↓25%\")": 0.25 # for this site this is the count ratio, which is 25% of the total torrent size. (I.E. it's 75% free)
|
||||
"div.torrent_info .tl_free": 0
|
||||
"div.torrent_info .tl_notice[title*=\"Freeleech\"]": 0 # Global freeleech enabled
|
||||
"div.torrent_info .tl_notice[title=\"-75%\"]": 0.75
|
||||
"div.torrent_info .tl_notice[title=\"-50%\"]": 0.50
|
||||
"div.torrent_info .tl_notice[title=\"-25%\"]": 0.25 # for this site this is the count ratio, which is 25% of the total torrent size. (I.E. it's 75% free)
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
title_phase1:
|
||||
title_torrent_filename:
|
||||
selector: div.torrent_filename_row
|
||||
optional: true
|
||||
filters:
|
||||
- name: trim
|
||||
title_parsed:
|
||||
selector: div.group_info
|
||||
remove: span.team_name, span:has(a[href^="torrents.php?action=download"]), div.tags, div.vote_controls, div.stats-content, .add_bookmark, img
|
||||
remove: span.team_name, span:has(a[href^="torrents.php?action=download"]), div.tags, div.vote_controls, div.stats-content, .add_bookmark, img, .tl_free, .tl_notice, .torrent_filename_row
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\n", " "]
|
||||
- name: re_replace
|
||||
args: ["\\s+", " "]
|
||||
args: ["\\[(?:Concert|Film|Film d'animation|Spectacle|Série|Série d'animation|Documentaire)\\]", ""]
|
||||
- name: replace
|
||||
args: ["Blu-Ray Original", "Complete.BluRay"]
|
||||
args: ["Blu-ray Original", "Complete.BluRay"]
|
||||
- name: replace
|
||||
args: ["Blu-Ray Remux", "Remux"]
|
||||
args: ["Blu-ray Remux", "Remux"]
|
||||
- name: replace
|
||||
args: ["Blu-Ray Rip", "BluRay.Rip"]
|
||||
args: ["Blu-ray Rip", "BluRay.Rip"]
|
||||
- name: replace
|
||||
args: ["mHD", "mHD.BluRay.Rip"]
|
||||
- name: replace
|
||||
args: ["/ DC", "/ Directors.Cut"]
|
||||
- name: replace
|
||||
args: ["/ VL", "/ Extended"]
|
||||
- name: replace
|
||||
args: ["/ RM", "/ Remastered"]
|
||||
- name: replace
|
||||
args: ["/ UC", "/ Uncut"]
|
||||
- name: replace
|
||||
args: ["/ ES", "/ Special.Edition"]
|
||||
- name: replace
|
||||
args: [" / Cust_sub", ""]
|
||||
- name: replace
|
||||
args: [" / Cust", ""]
|
||||
- name: replace
|
||||
args: ["/ UN", "/ Unrated"]
|
||||
- name: replace
|
||||
args: [" / Crit", ""]
|
||||
- name: replace
|
||||
args: [" / WAC", ""]
|
||||
- name: replace
|
||||
args: [" / MoC", ""]
|
||||
- name: replace
|
||||
args: [" / BFI", ""]
|
||||
- name: replace
|
||||
args: [" / MUET", ""]
|
||||
- name: replace
|
||||
args: ["/ Exc NF", "/ NF"]
|
||||
- name: replace
|
||||
args: ["/ Exc AMZ", "/ AMZ"]
|
||||
- name: replace
|
||||
args: ["/ Exc YOU", "/ YT"]
|
||||
- name: replace
|
||||
args: [" / ↓25%", ""]
|
||||
- name: replace
|
||||
args: [" / ↓50%", ""]
|
||||
- name: replace
|
||||
args: [" / ↓75%", ""]
|
||||
- name: replace
|
||||
args: [" / Free", ""]
|
||||
- name: replace
|
||||
args: [" / Complété!", ""]
|
||||
- name: replace
|
||||
args: [" / ", "."]
|
||||
- name: re_replace
|
||||
args: ["(?:\\]|\\/\\s)DC", ".Directors.Cut"]
|
||||
- name: re_replace
|
||||
args: ["(?:\\]|\\/\\s)VL", ".Extended"]
|
||||
- name: re_replace
|
||||
args: ["(?:\\]|\\/\\s)RM", ".Remastered"]
|
||||
- name: re_replace
|
||||
args: ["(?:\\]|\\/\\s)UC", ".Uncut"]
|
||||
- name: re_replace
|
||||
args: ["(?:\\]|\\/\\s)UR", ".Unrated"]
|
||||
- name: re_replace
|
||||
args: ["(?:\\]|\\/\\s)ES", ".Special.Edition"]
|
||||
- name: re_replace
|
||||
args: ["(?:\\]|\\/\\s)Crit", ".Criterion"]
|
||||
- name: re_replace
|
||||
args: ["(?:\\/ )?(?:Remplaçable|Complété|Bonus|Note Modo|[2-9]+ème partie|\\b(?:Cust(?:_sub)?|WAC|BFI|MUET)\\b)(?: \\/)?", ""]
|
||||
- name: trim
|
||||
- name: replace
|
||||
args: [".VFF.VFQ.StFr.MULTI", ".MULTI.VFF.VFQ"]
|
||||
- name: replace
|
||||
args: [".VFF.VFQ.VO.StFr.MULTI", ".MULTI.VFF.VFQ"]
|
||||
- name: replace
|
||||
args: [".VFF.VFQ.VO.StFr", ".MULTI.VFF.VFQ"]
|
||||
- name: replace
|
||||
args: [".VFQ.VO.StFr", ".MULTI.VFQ"]
|
||||
- name: replace
|
||||
args: [".VO.VFI.StFr", ".MULTI"]
|
||||
- name: replace
|
||||
args: [".VO.VF?.StFr", ".MULTI"]
|
||||
- name: replace
|
||||
args: [".VFF.VO.StFr", ".MULTI.VFF"]
|
||||
- name: replace
|
||||
args: [".VOF.StFr", ".FRENCH"]
|
||||
- name: replace
|
||||
args: [".VFQ.StFr", ".FRENCH"]
|
||||
- name: replace
|
||||
args: [".VFF.StFr.MULTI", ".MULTI.VFF"]
|
||||
- name: replace
|
||||
args: [".VFF.StFr", ".FRENCH"]
|
||||
- name: replace
|
||||
args: [".VFI.MULTI", ".MULTI"]
|
||||
- name: replace
|
||||
args: [".VO.StFr", ".VOSTFR"]
|
||||
- name: replace
|
||||
args: [".VFQ.VO", ".MULTI.VFQ"]
|
||||
- name: replace
|
||||
args: [".VFF.VO", ".MULTI.VFF"]
|
||||
- name: replace
|
||||
args: [".VO.VF?.StFr", ".MULTI"]
|
||||
- name: replace
|
||||
args: [".VFI.StFr", ".FRENCH"]
|
||||
- name: replace
|
||||
args: [".VOF.MULTI", ".MULTI.FRENCH"]
|
||||
- name: replace
|
||||
args: [".VOF", ".FRENCH"]
|
||||
- name: replace
|
||||
args: [".VFQ.MULTI", ".MULTI.VFQ"]
|
||||
- name: re_replace
|
||||
args: ["[\\[\\]\\/\\s?.,:'!]+", "."]
|
||||
- name: trim
|
||||
args: "."
|
||||
- name: re_replace
|
||||
args: ["(?i)\\.VFF\\.VFQ\\.(?:MULTI|StFR(?:\\.MULTI)?|VO(?:\\.StFR)?)", ".MULTI.VF2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\.VFF\\.(?:MULTI|StFR(?:\\.MULTI)?|VO(?:\\.StFR)?)", ".MULTI.VFF"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\.VFQ\\.(?:MULTI|StFR(?:\\.MULTI)?|VO(?:\\.StFR)?)", ".MULTI.VFQ"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\.VOQ\\.(?:MULTI|StFR(?:\\.MULTI)?|VO(?:\\.StFR)?)", ".MULTI.VOQ"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\.VFI\\.(?:MULTI|StFR(?:\\.MULTI)?|VO(?:\\.StFR)?)", ".MULTI.VFI"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\.VOF\\.(?:MULTI|StFR(?:\\.MULTI)?|VO(?:\\.StFR)?)", ".MULTI.VOF"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\.(?:VO\\.)?StFR", ".VOSTFR"]
|
||||
- name: append
|
||||
args: "{{ if .Result._release_group }}-{{ .Result._release_group }}{{ else }}{{ end }}"
|
||||
title_phase1:
|
||||
text: "{{ if .Result.title_torrent_filename }}{{ .Result.title_torrent_filename }}{{ else }}{{ .Result.title_parsed }}{{ end }}"
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
@@ -303,15 +271,20 @@ search:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
|
||||
args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR|VF2|VFF|VFQ|VOQ|VFI|VOF)))\\b", "{{ .Config.multilanguage }}"]
|
||||
title:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
description:
|
||||
selector: div.group_info
|
||||
minimumratio:
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\n", " "]
|
||||
- name: re_replace
|
||||
args: ["\\s+", " "]
|
||||
# global MR is 0.6 but torrents must be seeded for 3 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.6
|
||||
# minimumseedtime:
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# Gazelle
|
||||
|
||||
@@ -62,7 +62,7 @@ settings:
|
||||
4: created
|
||||
1: title
|
||||
5: size
|
||||
8: seeders
|
||||
7: seeders
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
@@ -85,22 +85,13 @@ login:
|
||||
selector: a[href="mybonus.php"]
|
||||
|
||||
search:
|
||||
# https://www.trackerpmr.com/browse.php?search=&stype=0&s=0&cat=0&gr=0&kp=0&im=0&incldead=1&sort=0&type=desc
|
||||
# https://www.trackerpmr.com/browse.php?cat[]=0&shw_incl_cats=0&incldead=0&search=the+fix&tag=#results
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 title, 1 descr, 2 filename, 4 infohash
|
||||
stype: 0
|
||||
# 0 AND 1 OR
|
||||
s: 0
|
||||
# release group
|
||||
gr: 0
|
||||
# ratings
|
||||
kp: 0
|
||||
# 1 active, 2 dead, 3 gold, 4 sticky, lots of others
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
# 0 default, 1 active, 2 dead, 3 gold, 4 sticky, lots of others
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
|
||||
search: "{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
@@ -115,18 +106,25 @@ search:
|
||||
args: ["[^a-zA-Z0-9]+", "%"]
|
||||
|
||||
rows:
|
||||
selector: div.torrent-card
|
||||
selector: div.tr-torrent-card-compact:not(:has(div.tr-sticky-highlight))
|
||||
dateheaders:
|
||||
selector: a[href*="date="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: date
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd"
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: div.category-badge
|
||||
optional: true
|
||||
default: Другое
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["---", "Другое"]
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a.torrent-title-link
|
||||
selector: a.tr-title-link-compact
|
||||
attribute: title
|
||||
filters:
|
||||
# normalize to SXXEYY format
|
||||
@@ -187,47 +185,32 @@ search:
|
||||
- name: append
|
||||
args: "{{ if .Config.addrussiantotitle }} RUS{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: a.torrent-title-link
|
||||
selector: a.tr-title-link-compact
|
||||
attribute: href
|
||||
# there is either a magnet or a download link
|
||||
magnet:
|
||||
selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
optional: true
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
optional: true
|
||||
optional: true # for users that do not have DL access
|
||||
poster:
|
||||
selector: img.torrent-poster
|
||||
selector: img.tr-main-poster-compact
|
||||
attribute: src
|
||||
imdbid:
|
||||
selector: a[href^="browse.php?imdb="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: imdb
|
||||
size:
|
||||
selector: div.size-section
|
||||
selector: div.tr-stat-block-compact:nth-child(3)
|
||||
seeders:
|
||||
selector: span.peers-seeders
|
||||
selector: div.tr-stat-block-compact:nth-child(4)
|
||||
leechers:
|
||||
selector: span.peers-leechers
|
||||
selector: div.tr-stat-block-compact:nth-child(5)
|
||||
grabs:
|
||||
selector: span:has(i.fa-download)
|
||||
date:
|
||||
selector: div.added-date
|
||||
filters:
|
||||
- name: timeago
|
||||
selector: div.tr-meta-info-compact span:has(i.fa-download)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
span.bg-success: 0
|
||||
span.tr-badge-free: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
description:
|
||||
selector: a.tag
|
||||
selector: a.tr-tag-item-compact
|
||||
attribute: title
|
||||
# engine n/a
|
||||
|
||||
@@ -12,34 +12,23 @@ legacylinks:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 506, cat: Movies/BluRay, desc: "Movies 8K UHD BD"}
|
||||
- {id: 499, cat: Movies/BluRay, desc: "Movies UHD Blu-ray"}
|
||||
- {id: 518, cat: Movies/UHD, desc: "Movies UHD REMUX"}
|
||||
- {id: 450, cat: Movies/BluRay, desc: "Movies Bluray"}
|
||||
- {id: 415, cat: Movies/HD, desc: "Movies REMUX"}
|
||||
- {id: 505, cat: Movies/UHD, desc: "Movies 8K/4320p"}
|
||||
- {id: 416, cat: Movies/UHD, desc: "Movies 2160p"}
|
||||
- {id: 414, cat: Movies/HD, desc: "Movies 1080p"}
|
||||
- {id: 413, cat: Movies/HD, desc: "Movies 720p"}
|
||||
- {id: 411, cat: Movies/SD, desc: "Movies SD"}
|
||||
- {id: 412, cat: Movies/SD, desc: "Movies IPad"}
|
||||
- {id: 413, cat: Movies/HD, desc: "Movies 720p"}
|
||||
- {id: 414, cat: Movies/HD, desc: "Movies 1080p"}
|
||||
- {id: 415, cat: Movies/HD, desc: "Movies REMUX"}
|
||||
- {id: 450, cat: Movies/BluRay, desc: "Movies Bluray"}
|
||||
- {id: 499, cat: Movies/BluRay, desc: "Movies UHD Blu-ray"}
|
||||
- {id: 416, cat: Movies/UHD, desc: "Movies 2160p"}
|
||||
- {id: 417, cat: TV/Documentary, desc: "Doc SD"}
|
||||
- {id: 418, cat: TV/Documentary, desc: "Doc IPad"}
|
||||
- {id: 419, cat: TV/Documentary, desc: "Doc 720p"}
|
||||
- {id: 420, cat: TV/Documentary, desc: "Doc 1080p"}
|
||||
- {id: 421, cat: TV/Documentary, desc: "Doc REMUX"}
|
||||
- {id: 523, cat: TV/UHD, desc: "TVSeries 8KUHD"}
|
||||
- {id: 502, cat: TV/UHD, desc: "TVSeries 4K Bluray"}
|
||||
- {id: 451, cat: TV/Documentary, desc: "Doc Bluray"}
|
||||
- {id: 500, cat: TV/Documentary, desc: "Doc UHD Blu-ray"}
|
||||
- {id: 422, cat: TV/Documentary, desc: "Doc 2160p"}
|
||||
- {id: 423, cat: TV/HD, desc: "TVMusic 720p"}
|
||||
- {id: 424, cat: TV/HD, desc: "TVMusic 1080i"}
|
||||
- {id: 425, cat: TV/SD, desc: "TVShow SD"}
|
||||
- {id: 426, cat: TV/SD, desc: "TVShow IPad"}
|
||||
- {id: 471, cat: TV/SD, desc: "TVShow IPad"}
|
||||
- {id: 427, cat: TV/HD, desc: "TVShow 720p"}
|
||||
- {id: 428, cat: TV/HD, desc: "TVShow 1080i"}
|
||||
- {id: 429, cat: TV/HD, desc: "TVShow 1080p"}
|
||||
- {id: 430, cat: TV/HD, desc: "TVShow REMUX"}
|
||||
- {id: 452, cat: TV/HD, desc: "TVShows Bluray"}
|
||||
- {id: 421, cat: TV/Documentary, desc: "Doc REMUX"}
|
||||
- {id: 526, cat: TV/UHD, desc: "TVSeries 4320p"}
|
||||
- {id: 431, cat: TV/HD, desc: "TVShow 2160p"}
|
||||
- {id: 432, cat: TV/SD, desc: "TVSeries SD"}
|
||||
- {id: 433, cat: TV/SD, desc: "TVSeries IPad"}
|
||||
- {id: 434, cat: TV/HD, desc: "TVSeries 720p"}
|
||||
- {id: 435, cat: TV/HD, desc: "TVSeries 1080i"}
|
||||
@@ -47,11 +36,13 @@ caps:
|
||||
- {id: 437, cat: TV/HD, desc: "TVSeries REMUX"}
|
||||
- {id: 453, cat: TV/HD, desc: "TVSereis Bluray"}
|
||||
- {id: 438, cat: TV/UHD, desc: "TVSeries 2160p"}
|
||||
- {id: 502, cat: TV/UHD, desc: "TVSeries 4K Bluray"}
|
||||
- {id: 439, cat: Audio/Other, desc: "Musics APE"}
|
||||
- {id: 432, cat: TV/SD, desc: "TVSeries SD"}
|
||||
- {id: 440, cat: Audio/Lossless, desc: "Musics FLAC"}
|
||||
- {id: 441, cat: Audio/Video, desc: "Musics MV"}
|
||||
- {id: 503, cat: Audio/Video, desc: "Musics Bluray"}
|
||||
- {id: 442, cat: TV/Sport, desc: "Sports 720p"}
|
||||
- {id: 510, cat: TV/Anime, desc: "Anime 8K UHD BD"}
|
||||
- {id: 443, cat: TV/Sport, desc: "Sports 1080i"}
|
||||
- {id: 444, cat: TV/Anime, desc: "Anime SD"}
|
||||
- {id: 445, cat: TV/Anime, desc: "Anime IPad"}
|
||||
@@ -59,9 +50,31 @@ caps:
|
||||
- {id: 447, cat: TV/Anime, desc: "Anime 1080p"}
|
||||
- {id: 448, cat: TV/Anime, desc: "Anime REMUX"}
|
||||
- {id: 454, cat: TV/Anime, desc: "Anime Bluray"}
|
||||
- {id: 531, cat: TV/Anime, desc: "Anime UHD REMUX"}
|
||||
- {id: 409, cat: Other, desc: "Misc"}
|
||||
- {id: 449, cat: TV/Anime, desc: "Anime 2160p"}
|
||||
- {id: 509, cat: TV/Anime, desc: "Anime 8K/4320p"}
|
||||
- {id: 501, cat: TV/Anime, desc: "Anime UHD Blu-ray"}
|
||||
- {id: 504, cat: TV/Sport, desc: "Sports 2160p"}
|
||||
- {id: 511, cat: TV/Sport, desc: "Sport 8K/4320p"}
|
||||
- {id: 508, cat: TV/Documentary, desc: "Doc 8K UHD BD"}
|
||||
- {id: 529, cat: TV/Documentary, desc: "Doc 8K UHD BD REMUX"}
|
||||
- {id: 500, cat: TV/Documentary, desc: "Doc UHD Blu-ray"}
|
||||
- {id: 507, cat: TV/Documentary, desc: "Doc 8K/4320p"}
|
||||
- {id: 422, cat: TV/Documentary, desc: "Doc 2160p"}
|
||||
- {id: 420, cat: TV/Documentary, desc: "Doc 1080p"}
|
||||
- {id: 419, cat: TV/Documentary, desc: "Doc 720p"}
|
||||
- {id: 417, cat: TV/Documentary, desc: "Doc SD"}
|
||||
- {id: 418, cat: TV/Documentary, desc: "Doc IPad"}
|
||||
- {id: 424, cat: TV/HD, desc: "TVMusic 1080i"}
|
||||
- {id: 423, cat: TV/HD, desc: "TVMusic 720p"}
|
||||
- {id: 452, cat: TV/HD, desc: "TVShows Bluray"}
|
||||
- {id: 430, cat: TV/HD, desc: "TVShow REMUX"}
|
||||
- {id: 429, cat: TV/HD, desc: "TVShow 1080p"}
|
||||
- {id: 428, cat: TV/HD, desc: "TVShow 1080i"}
|
||||
- {id: 427, cat: TV/HD, desc: "TVShow 720p"}
|
||||
- {id: 425, cat: TV/SD, desc: "TVShow SD"}
|
||||
- {id: 426, cat: TV/SD, desc: "TVShow IPad"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -83,6 +96,22 @@ settings:
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
# using cookie method due to #6460
|
||||
@@ -99,30 +128,40 @@ search:
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
incldead: 1
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
selector: a[href*="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: table.torrentname td a[href*="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href*="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
selector: a[title][href*="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
selector: a[href*="download.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
|
||||
@@ -108,6 +108,9 @@ search:
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
# change broken/missing cat 0 to Others
|
||||
- name: re_replace
|
||||
args: ["\\b0\\b", "38"]
|
||||
title_default:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
filters:
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
---
|
||||
id: hxpt
|
||||
name: HxPT (好学)
|
||||
description: "HxPT (好学) is a CHINESE Private Torrent Tracker for E-LEARNING"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.hxpt.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Other, desc: "学前教育 (Preschool)"}
|
||||
- {id: 402, cat: Other, desc: "小学部 (Primary School)"}
|
||||
- {id: 403, cat: Other, desc: "初中部 (Middle School)"}
|
||||
- {id: 404, cat: Other, desc: "高职部 (Vocational High School)"}
|
||||
- {id: 405, cat: Other, desc: "高中部 (High School)"}
|
||||
- {id: 406, cat: Other, desc: "教育影音 (Educational Video)"}
|
||||
|
||||
modes:
|
||||
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>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 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 100 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: "{{ .Keywords }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: 0
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(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
|
||||
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
|
||||
minimumseedtime:
|
||||
# 24 hours (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.6 2025-06-25
|
||||
@@ -125,6 +125,8 @@ settings:
|
||||
options:
|
||||
DESC: desc
|
||||
ASC: asc
|
||||
- name: info_flaresolverr
|
||||
type: info_flaresolverr
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
@@ -188,7 +190,7 @@ search:
|
||||
# auto adjusted by site account profile
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "dd/MM/yyyy HH:mm:ss"
|
||||
args: "dd/MM/yyyyHH:mm:ss"
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
|
||||
@@ -88,8 +88,8 @@ search:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
# seasonNumber: "{{ .Query.Season }}" # not supported
|
||||
# episodeNumber: "{{ .Query.Ep }}" # not supported
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
@@ -163,4 +163,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 4 days (as seconds = 4 x 24 x 60 x 60)
|
||||
text: 345600
|
||||
# json UNIT3D 6.0.4
|
||||
# json UNIT3D 6.0.4 (custom)
|
||||
|
||||
@@ -68,12 +68,15 @@ login:
|
||||
- selector: form#loginform > span.warning, font[color="red"]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?auth="]
|
||||
selector: a[href^="logout.php?auth="], a[href^="torrents.php?action=download&id="]
|
||||
|
||||
search:
|
||||
# https://jpopsuki.eu/ajax.php?section=torrents&artistname=&action=advanced&torrentname=snow+man&remastertitle=&filelist=&bitrate=&format=&media=&year=&freeleech=&remastered=&searchtags=&tags_type=0&order_by=s3&order_way=desc&enablegrouping=1
|
||||
paths:
|
||||
- path: ajax.php
|
||||
keywordsfilters:
|
||||
- name: re_replace # replace special characters with " " (space)
|
||||
args: ["[\\[!\"#$%&'()*+,\\-.\\/:;<=>?@[\\]^_`{|}~]", " "]
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}{{ if or .Query.Album .Query.Artist .Keywords }}action=advanced{{ else }}searchtags=japanese&tags_type=0{{ end }}"
|
||||
artistname: "{{ .Query.Artist }}"
|
||||
|
||||
@@ -0,0 +1,197 @@
|
||||
---
|
||||
id: jptv4us-api
|
||||
name: JPTV4us (API)
|
||||
description: "JPTV4us is a JAPANESE Private Torrent Tracker for MOVIES / TV / MUSIC / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://jptv4.us/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV/Anime, desc: "Anime Movie"}
|
||||
- {id: 2, cat: TV/Anime, desc: "Anime Series"}
|
||||
- {id: 3, cat: TV/Documentary, desc: "Documentary"}
|
||||
- {id: 4, cat: TV, desc: "Drama"}
|
||||
- {id: 5, cat: TV/Other, desc: "Informational"}
|
||||
- {id: 6, cat: Movies, desc: "Movie"}
|
||||
- {id: 7, cat: Audio/Video, desc: "Music"}
|
||||
- {id: 8, cat: TV/Other, desc: "News"}
|
||||
- {id: 9, cat: TV/Other, desc: "Variety"}
|
||||
- {id: 10, cat: Other, desc: "Other"}
|
||||
- {id: 11, cat: Audio, desc: "Audio Only"}
|
||||
|
||||
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://jptv4.us/\" target=\"_blank\">JPTV4us</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: single_file_release_use_filename
|
||||
type: checkbox
|
||||
label: Use filename as title for single file releases
|
||||
default: true
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: created_at
|
||||
options:
|
||||
created_at: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
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 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.7
|
||||
@@ -87,6 +87,7 @@ caps:
|
||||
- {id: MoviesHighresMovies, cat: Movies/HD, desc: "Movies Highres"}
|
||||
- {id: MoviesMP4, cat: Movies/HD, desc: "Movies MP4"}
|
||||
- {id: MoviesMusicvideos, cat: Audio/Video, desc: "Movies Music videos"}
|
||||
- {id: MoviesMovieclips, cat: Other, desc: "Movies Movie clips"}
|
||||
- {id: MoviesOtherMovies, cat: Movies/Other, desc: "Movies Other"}
|
||||
- {id: MoviesUltraHD, cat: Movies/UHD, desc: "Movies UltraHD"}
|
||||
- {id: Music, cat: Audio, desc: Music}
|
||||
|
||||
@@ -16,8 +16,8 @@ caps:
|
||||
- {id: 80, cat: Audio, desc: "DMC: DMC"}
|
||||
- {id: 49, cat: Audio/MP3, desc: "KZN MP3 Weekly: Ex-Vip"}
|
||||
- {id: 76, cat: Audio, desc: "KZN-Exclusive: Exclusive "}
|
||||
- {id: 77, cat: Audio, desc: "KZN: Out Of VIP"}
|
||||
- {id: 98, cat: Audio/MP3, desc: "Other Mp3 Weeky: Mp3"}
|
||||
- {id: 77, cat: Audio, desc: "KZN: Out Of VIP"}
|
||||
- {id: 99, cat: Audio/MP3, desc: "KZ Internal: KZ Internal"}
|
||||
- {id: 74, cat: Audio, desc: "Discography: Collection"}
|
||||
- {id: 82, cat: Audio/Lossless, desc: "Flac: Flac-Flac Packs"}
|
||||
@@ -29,16 +29,17 @@ caps:
|
||||
- {id: 24, cat: Audio, desc: "Karaoke: All Karaoke"}
|
||||
- {id: 47, cat: Movies/BluRay, desc: "Movies: Bluray-HD"}
|
||||
- {id: 52, cat: Movies, desc: "Pre 90s Movies: Pre90s"}
|
||||
- {id: 28, cat: Movies, desc: "Movies: 2025"}
|
||||
- {id: 25, cat: Movies/WEB-DL, desc: "Movies: Web-DL"}
|
||||
- {id: 28, cat: Movies, desc: "Movies: 2026"}
|
||||
- {id: 102, cat: Movies/HD, desc: "Movies MP4: Movie MP4"}
|
||||
- {id: 25, cat: Movies/WEB-DL, desc: "Movies: Web-DL"}
|
||||
- {id: 105, cat: Movies, desc: "Pre 2000 MP4 Movies: Pre 2000 Mp4"}
|
||||
- {id: 48, cat: Movies/SD, desc: "Movies: Xvid-Dvd-Webrip"}
|
||||
- {id: 23, cat: Movies/Other, desc: "Movie: Kids-Anime-Family"}
|
||||
- {id: 41, cat: Movies/3D, desc: "Remux-3D: Remux-3D"}
|
||||
- {id: 86, cat: Movies/HD, desc: "1440P QHD: 1440P QHD"}
|
||||
- {id: 9, cat: Movies/DVD, desc: "Movies: Ntsc Dvdr-ISO"}
|
||||
- {id: 22, cat: Movies/Foreign, desc: "Movies: Foreign"}
|
||||
- {id: 27, cat: Movies/UHD, desc: "Movies: 4K"}
|
||||
- {id: 22, cat: Movies/Foreign, desc: "Movies: Foreign"}
|
||||
- {id: 53, cat: Movies, desc: "Movie Packs: Movie Pks"}
|
||||
- {id: 54, cat: Movies, desc: "Movie Pack: Pre-90s"}
|
||||
- {id: 6, cat: Movies/Other, desc: "Kids Movie Pk: Movie Pks"}
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
---
|
||||
id: kunlun
|
||||
name: Kunlun (昆仑)
|
||||
description: "Kunlun (昆仑) is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.yhpp.cc/
|
||||
|
||||
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/Lossless, desc: "Music/音乐"}
|
||||
- {id: 409, cat: Other, desc: "Others/其他"}
|
||||
|
||||
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: "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>Un-parked 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>"
|
||||
|
||||
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 }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
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
|
||||
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
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.13 2025-12-28
|
||||
@@ -0,0 +1,175 @@
|
||||
---
|
||||
id: lacale-api
|
||||
name: La Cale (API)
|
||||
description: "La Cale is a FRENCH Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2.1
|
||||
links:
|
||||
- https://la-cale.space/
|
||||
|
||||
caps:
|
||||
# use https://la-cale.space/api/external/meta?passkey=YOUR-PASSKEY for cat mappings, slug is id, name is desc
|
||||
categorymappings:
|
||||
# Autres
|
||||
- {id: autres, cat: Other, desc: "Autres"}
|
||||
# Vidéo
|
||||
- {id: video, cat: Movies, desc: "Vidéo"}
|
||||
- {id: video, cat: TV, desc: "Vidéo"}
|
||||
- {id: films, cat: Movies, desc: "Films"}
|
||||
- {id: animation, cat: Movies/Other, desc: "Animation"}
|
||||
- {id: spectacles-concerts, cat: TV/Other, desc: "Spectacles & Concerts"}
|
||||
- {id: sports, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: series, cat: TV, desc: "Séries TV"}
|
||||
- {id: s-ries-hd, cat: TV/HD, desc: "Séries HD"}
|
||||
# Applications
|
||||
- {id: applications, cat: PC, desc: "Applications"}
|
||||
- {id: software, cat: PC, desc: "Logiciels"}
|
||||
- {id: linux, cat: PC, desc: "Linux"}
|
||||
- {id: systemes, cat: PC, desc: "Systèmes"}
|
||||
# Jeux
|
||||
- {id: games, cat: PC/Games, desc: "Jeux"}
|
||||
- {id: nintendo, cat: Console/NDS, desc: "Nintendo"}
|
||||
- {id: pc, cat: PC/Games, desc: "PC"}
|
||||
- {id: playstation, cat: Console/PS4, desc: "Playstation"}
|
||||
- {id: sega, cat: Console/Other, desc: "Sega"}
|
||||
- {id: t-l-phones, cat: PC/Mobile-Other, desc: "Téléphones"}
|
||||
- {id: xbox, cat: Console/XBox, desc: "Xbox"}
|
||||
# E-books
|
||||
- {id: e-books, cat: Books/EBook, desc: "E-books"}
|
||||
- {id: bd, cat: Books/Comics, desc: "BD"}
|
||||
- {id: comics, cat: Books/Comics, desc: "Comics"}
|
||||
- {id: divers, cat: Books/Other, desc: "Divers"}
|
||||
- {id: livres, cat: Books/EBook, desc: "Livres"}
|
||||
- {id: mangas, cat: Books/Comics, desc: "Mangas"}
|
||||
- {id: presse, cat: Books/Mags, desc: "Presse"}
|
||||
# Audio
|
||||
- {id: audio, cat: Audio, desc: "Audio"}
|
||||
- {id: audio-divers, cat: Audio/Other, desc: "Audio divers"}
|
||||
- {id: audiobooks, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: music, cat: Audio, desc: "Musique"}
|
||||
- {id: flac, cat: Audio/Lossless, desc: "FLAC"}
|
||||
- {id: m4a, cat: Audio, desc: "M4A"}
|
||||
- {id: mp3, cat: Audio/MP3, desc: "MP3"}
|
||||
- {id: podcast, cat: Audio/Other, desc: "Podcast"}
|
||||
# XXX
|
||||
- {id: xxx, cat: XXX, desc: "XXX"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, tmdbid]
|
||||
movie-search: [q, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: passkey
|
||||
type: text
|
||||
label: Passkey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your Passkey
|
||||
default: "Find your Passkey on your <a href=\"https://la-cale.space/profile\" target=\"_blank\">La Cale profile page</a>."
|
||||
- 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
|
||||
|
||||
login:
|
||||
path: api/external
|
||||
method: get
|
||||
inputs:
|
||||
passkey: "{{ .Config.passkey }}"
|
||||
error:
|
||||
- selector: ":root:contains(\"Passkey invalide\")"
|
||||
message:
|
||||
text: "The Passkey was not accepted by {{ .Config.sitelink }}."
|
||||
- selector: ":root:contains(\"Passkey manquant\")"
|
||||
message:
|
||||
text: "The Passkey was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# docs at https://la-cale.space/faq/api
|
||||
- path: api/external
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
passkey: "{{ .Config.passkey }}"
|
||||
$raw: "{{ range .Categories }}cat={{.}}&{{end}}"
|
||||
q: "{{ .Keywords }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
|
||||
rows:
|
||||
selector: $
|
||||
missingAttributeEqualsNoResults: true
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: category
|
||||
title_phase1:
|
||||
selector: title
|
||||
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:
|
||||
text: "{{ .Config.sitelink }}"
|
||||
infohash:
|
||||
selector: infoHash
|
||||
download:
|
||||
selector: link
|
||||
filters:
|
||||
- name: append
|
||||
args: "?passkey={{ .Config.passkey }}"
|
||||
size:
|
||||
selector: size
|
||||
date:
|
||||
# "pubDate": "2026-01-16T16:32:19.243Z" is returned by Newtonsoft.Json.Linq as 16/01/2026 16:32:19
|
||||
selector: pubDate
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # GMT
|
||||
- name: dateparse
|
||||
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json API
|
||||
@@ -34,6 +34,7 @@ caps:
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
allowtvsearchimdb: true
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
@@ -136,8 +137,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -212,4 +211,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 9.1.5 (custom)
|
||||
# json UNIT3D 9.2.0 (custom)
|
||||
|
||||
@@ -108,12 +108,12 @@ login:
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://leech24.net/torrents-search.php?c3=1&c1=1&c2=1&c42=1&c4=1&c7=1&search=&cat=0&incldead=1&freeleech=0&lang=0
|
||||
# https://leech24.net/torrents-search.php?&search=&incldead=1&freeleech=0&lang=0
|
||||
- path: torrents-search.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
cat: 0
|
||||
# cat: 0 # causes 0 results
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
# 0 all, 1 notfree, 2 onlyfree
|
||||
|
||||
@@ -0,0 +1,183 @@
|
||||
---
|
||||
id: lemonhd-net
|
||||
name: LemonHD.net
|
||||
description: "LemonHD.net is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://lemonhd.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies"}
|
||||
- {id: 402, cat: Audio, desc: "Misc"}
|
||||
- {id: 403, cat: TV/Anime, desc: "Animations"}
|
||||
- {id: 404, cat: Audio/Video, desc: "Music Videos"}
|
||||
- {id: 405, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 406, cat: TV, desc: "TV Series"}
|
||||
- {id: 407, cat: TV, desc: "TV Shows"}
|
||||
- {id: 408, cat: Movies/3D, desc: "3D"}
|
||||
- {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: 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: "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>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
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, 3 uploader, 4 imdb
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
notnewword: 1
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(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
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "yyyy-MM-ddHH:mm:ss zzz"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
img.pro_free2up: 0
|
||||
img.pro_50pctdown: 0.5
|
||||
img.pro_50pctdown2up: 0.5
|
||||
img.pro_30pctdown: 0.3
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: 2
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.13 2025-12-28
|
||||
@@ -5,8 +5,6 @@ description: "LetSeed is a TURKISH Private Torrent Tracker for MOVIES / TV / GEN
|
||||
language: tr-TR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- 5a61cc89a0417dcfe03ef685f7423b6b0bd4dc6b # expired 28 Aug 2025
|
||||
links:
|
||||
- https://letseed.org/
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ caps:
|
||||
- {id: 2237, cat: PC/ISO, desc: "Batocera Linux"}
|
||||
- {id: 2272, cat: PC/ISO, desc: "BeeFree OS"}
|
||||
- {id: 2017, cat: PC/ISO, desc: "Berry Linux"}
|
||||
- {id: 2301, cat: PC/ISO, desc: "Berserk Arch"}
|
||||
- {id: 2243, cat: PC/ISO, desc: "BicomSystems PBXware"}
|
||||
- {id: 2275, cat: PC/ISO, desc: "BigLinux"}
|
||||
- {id: 2286, cat: PC/ISO, desc: "BitKey"}
|
||||
@@ -155,9 +156,11 @@ caps:
|
||||
- {id: 343, cat: PC/ISO, desc: "MidnightBSD"}
|
||||
- {id: 2075, cat: PC/ISO, desc: "Minino"}
|
||||
- {id: 2076, cat: PC/ISO, desc: "Minix"}
|
||||
- {id: 2300, cat: PC/ISO, desc: "MocaccinoOS"}
|
||||
- {id: 2241, cat: PC/ISO, desc: "MorpheusArch Linux"}
|
||||
- {id: 373, cat: PC/ISO, desc: "Mythbuntu"}
|
||||
- {id: 2078, cat: PC/ISO, desc: "NAS4Free"}
|
||||
- {id: 2302, cat: PC/ISO, desc: "NakeDeb"}
|
||||
- {id: 2217, cat: PC/ISO, desc: "Namib GNU/Linux"}
|
||||
- {id: 2079, cat: PC/ISO, desc: "Neptune"}
|
||||
- {id: 2080, cat: PC/ISO, desc: "Nethserver"}
|
||||
@@ -187,7 +190,6 @@ caps:
|
||||
- {id: 419, cat: PC/ISO, desc: "Pardus"}
|
||||
- {id: 2162, cat: PC/ISO, desc: "Parrot"}
|
||||
- {id: 422, cat: PC/ISO, desc: "Pcbsd"}
|
||||
- {id: 429, cat: PC/ISO, desc: "Pentoo"}
|
||||
- {id: 430, cat: PC/ISO, desc: "Peppermint"}
|
||||
- {id: 432, cat: PC/ISO, desc: "Pfsense"}
|
||||
- {id: 2101, cat: PC/ISO, desc: "Pinguy OS"}
|
||||
@@ -227,6 +229,7 @@ caps:
|
||||
- {id: 2118, cat: PC/ISO, desc: "Salentos"}
|
||||
- {id: 477, cat: PC/ISO, desc: "Salix"}
|
||||
- {id: 482, cat: PC/ISO, desc: "Scientific Linux"}
|
||||
- {id: 2304, cat: PC/ISO, desc: "Security Onion"}
|
||||
- {id: 2250, cat: PC/ISO, desc: "Septor"}
|
||||
- {id: 489, cat: PC/ISO, desc: "SharkLinux"}
|
||||
- {id: 2121, cat: PC/ISO, desc: "Siduction"}
|
||||
@@ -235,6 +238,7 @@ caps:
|
||||
- {id: 493, cat: PC/ISO, desc: "Slackel"}
|
||||
- {id: 495, cat: PC/ISO, desc: "Slackware"}
|
||||
- {id: 499, cat: PC/ISO, desc: "Slax"}
|
||||
- {id: 2303, cat: PC/ISO, desc: "Slimbook OS"}
|
||||
- {id: 2124, cat: PC/ISO, desc: "SmartOS"}
|
||||
- {id: 2125, cat: PC/ISO, desc: "Smeserver"}
|
||||
- {id: 505, cat: PC/ISO, desc: "Smoothwall Express"}
|
||||
@@ -291,7 +295,7 @@ caps:
|
||||
- {id: 2193, cat: PC/ISO, desc: "Zevenet"}
|
||||
- {id: 1233, cat: PC/ISO, desc: "Zorin"}
|
||||
# undocumented categories
|
||||
- {id: 531, cat: PC/ISO, desc: "Super Grub2 Disk"}
|
||||
- {id: 531, cat: PC/ISO, desc: "no category"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -0,0 +1,199 @@
|
||||
---
|
||||
id: longpt
|
||||
name: LongPT
|
||||
description: "LongPT is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://longpt.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 408, cat: Audio/Lossless, desc: "音频"}
|
||||
- {id: 410, cat: Audio/Audiobook, desc: "有声书"}
|
||||
- {id: 409, cat: Other, desc: "其他"}
|
||||
- {id: 407, cat: TV/Sport, desc: "体育"}
|
||||
- {id: 406, cat: Audio/Video, desc: "音乐视频"}
|
||||
- {id: 403, cat: TV, desc: "综艺"}
|
||||
- {id: 402, cat: TV, desc: "剧集"}
|
||||
- {id: 405, cat: TV/Anime, desc: "动画"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "纪录片"}
|
||||
- {id: 401, cat: Movies, desc: "电影"}
|
||||
- {id: 411, cat: Other, desc: "其他"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the LongPT Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
- name: info_activity
|
||||
type: info
|
||||
label: Account Inactivity
|
||||
default: "Cherish your user account. Inactive accounts would be deleted based on the following rules:<ol><li>Veteran User or above would never be deleted</li><li>Elite User or above would never be deleted if parked (at User CP)</li><li>Parked accounts would be deleted if users have not logged in for more than 400 days in a row</li><li>Un-parked 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>"
|
||||
|
||||
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 }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
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
|
||||
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.9.6 2025-06-25
|
||||
@@ -123,8 +123,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -199,4 +197,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 9.1.5
|
||||
# json UNIT3D 9.2.0
|
||||
|
||||
@@ -182,4 +182,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.9 2025-10-02
|
||||
# NexusPHP v1.9.11 2025-11-02
|
||||
|
||||
@@ -31,11 +31,11 @@ download:
|
||||
- name: replace
|
||||
args: ["/download?", "/download/?"]
|
||||
selectors:
|
||||
- selector: script:contains("downloadLink")
|
||||
- selector: script:contains("torrentLink")
|
||||
usebeforeresponse: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "downloadLink = '(.+?)';"
|
||||
args: "torrentLink = '(.+?)';"
|
||||
|
||||
search:
|
||||
paths:
|
||||
|
||||
@@ -0,0 +1,328 @@
|
||||
---
|
||||
id: magico
|
||||
replaces:
|
||||
- trellas
|
||||
name: Magico
|
||||
description: "Magico (Trellas) is a GREEK Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: el-GR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://magico.to/
|
||||
legacylinks:
|
||||
- https://magico.info/
|
||||
- https://magico.one/
|
||||
- https://magico.club/
|
||||
- https://magico.fun/
|
||||
- https://trellas.info/
|
||||
- https://trelas.club/
|
||||
- https://trellas.net/
|
||||
- https://trellas.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 84, cat: Movies, desc: "Movies New (2022, 2023, 2024)"}
|
||||
- {id: 14, cat: Movies/SD, desc: "Movies DVDRip-WEBRip-BRRip (up to 2021)"}
|
||||
- {id: 16, cat: Movies/SD, desc: "Movies (CAM)"}
|
||||
- {id: 17, cat: Movies/BluRay, desc: "Movies BLU-RAY"}
|
||||
- {id: 44, cat: Movies, desc: "Movies Greek"}
|
||||
- {id: 76, cat: Movies, desc: "Movies Documentaries"}
|
||||
- {id: 82, cat: Movies, desc: "Movies Theater"}
|
||||
|
||||
- {id: 52, cat: TV, desc: "TV Series"}
|
||||
- {id: 53, cat: TV/SD, desc: "TV Series Foreign"}
|
||||
- {id: 70, cat: TV/HD, desc: "TV Series Foreign (720p/1080p)"}
|
||||
- {id: 54, cat: TV, desc: "TV Series Greek"}
|
||||
- {id: 86, cat: TV, desc: "TV Series Foreign Complete Seasons"}
|
||||
- {id: 92, cat: TV, desc: "TV Series Foreign Complete Seasons (720p/1080p)"}
|
||||
- {id: 87, cat: TV, desc: "TV Series Greek Complete Seasons"}
|
||||
- {id: 99, cat: TV, desc: "TV Series Greek Turkish women"}
|
||||
- {id: 63, cat: TV, desc: "TV Series Recreational"}
|
||||
- {id: 83, cat: TV/Sport, desc: "TV Sports"}
|
||||
|
||||
- {id: 55, cat: Movies, desc: "Children"}
|
||||
- {id: 38, cat: Movies, desc: "Children (Movies)"}
|
||||
- {id: 39, cat: Movies, desc: "Children Subtitled (Movies)"}
|
||||
- {id: 93, cat: Movies, desc: "Children (TV Series)"}
|
||||
- {id: 94, cat: Movies, desc: "Children Subtitled (TV Series)"}
|
||||
- {id: 45, cat: Movies, desc: "Children Anime"}
|
||||
- {id: 98, cat: Movies, desc: "Children 3D"}
|
||||
- {id: 64, cat: Movies, desc: "Children Music"}
|
||||
|
||||
- {id: 7, cat: Audio, desc: "Music Foreign"}
|
||||
- {id: 21, cat: Audio, desc: "Music Foreign New Releases"}
|
||||
- {id: 46, cat: Audio, desc: "Music Foreign Old Releases"}
|
||||
- {id: 32, cat: Audio, desc: "Music Foreign Discographies"}
|
||||
- {id: 20, cat: Audio, desc: "Music Foreign Collections"}
|
||||
- {id: 102, cat: Audio, desc: "Music Foreign MAGICO Radio"}
|
||||
- {id: 108, cat: Audio, desc: "Music Foreign Lice Cd's"}
|
||||
- {id: 81, cat: Audio, desc: "Music Foreign Karaoke"}
|
||||
- {id: 95, cat: Audio, desc: "Music Foreign Soundtrack"}
|
||||
|
||||
- {id: 47, cat: Audio, desc: "Music Greek"}
|
||||
- {id: 48, cat: Audio, desc: "Music Greek New Releases"}
|
||||
- {id: 49, cat: Audio, desc: "Music Greek Old Releases"}
|
||||
- {id: 51, cat: Audio, desc: "Music Greek Discographies"}
|
||||
- {id: 50, cat: Audio, desc: "Music Greek Collections"}
|
||||
- {id: 101, cat: Audio, desc: "Music Greek MAGICO Radio"}
|
||||
- {id: 97, cat: Audio, desc: "Music Greek Live Cd's"}
|
||||
- {id: 57, cat: Audio, desc: "Music Greek Rebetika"}
|
||||
- {id: 58, cat: Audio, desc: "Music Greek Primary"}
|
||||
- {id: 59, cat: Audio, desc: "Music Greek Cretan"}
|
||||
- {id: 60, cat: Audio, desc: "Music Greek Island"}
|
||||
- {id: 62, cat: Audio, desc: "Music Greek Pontian"}
|
||||
- {id: 80, cat: Audio, desc: "Music Greek Karaoke"}
|
||||
- {id: 96, cat: Audio, desc: "Music Greek Soundtracks"}
|
||||
|
||||
- {id: 73, cat: Audio, desc: "Music Seasonal"}
|
||||
- {id: 74, cat: Audio, desc: "Music Seasonal Xmas"}
|
||||
- {id: 79, cat: Audio, desc: "Music Seasonal Easter"}
|
||||
- {id: 75, cat: Audio, desc: "Music Seasonal Halloween"}
|
||||
- {id: 78, cat: Audio, desc: "Music Seasonal Valentines"}
|
||||
|
||||
- {id: 33, cat: Books, desc: "Books"}
|
||||
- {id: 41, cat: Books, desc: "Books Greek"}
|
||||
- {id: 71, cat: Books, desc: "Books (A)"}
|
||||
- {id: 65, cat: Books, desc: "Books Comics"}
|
||||
- {id: 43, cat: Books, desc: "Books Periodicals"}
|
||||
- {id: 105, cat: Books, desc: "Books Audio"}
|
||||
- {id: 72, cat: Books, desc: "Books Children"}
|
||||
- {id: 66, cat: Books, desc: "Books Educational"}
|
||||
- {id: 42, cat: Books, desc: "Books Foreign"}
|
||||
- {id: 67, cat: Books, desc: "Books Photos"}
|
||||
|
||||
- {id: 6, cat: PC, desc: "Programs"}
|
||||
- {id: 18, cat: PC/0day, desc: "Programs PC"}
|
||||
- {id: 40, cat: PC/Mobile-Android, desc: "Programs Android"}
|
||||
- {id: 19, cat: PC/Mac, desc: "Programs Mac"}
|
||||
|
||||
- {id: 2, cat: PC/Games, desc: "Games"}
|
||||
- {id: 27, cat: PC/Games, desc: "Games PC"}
|
||||
|
||||
- {id: 88, cat: Other, desc: "Tutorials / Design / Accessories"}
|
||||
- {id: 89, cat: Other, desc: "Tutorials Photoshop"}
|
||||
- {id: 91, cat: Other, desc: "Tutorials Illustrator"}
|
||||
- {id: 90, cat: Other, desc: "Tutorials After Effects"}
|
||||
|
||||
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: added
|
||||
options:
|
||||
added: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
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: div#member_info_bar
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: /?p=torrents&pid=10
|
||||
method: post
|
||||
keywordsfilters:
|
||||
- name: toupper
|
||||
- name: re_replace # add brackets to year on searchquery if missing
|
||||
args: ["\\(*((19|20)\\d{2})\\)*", "($1)"]
|
||||
- name: replace # use this as a workaround till #893 is implemented
|
||||
args: ["Greys Anatomy", "Grey's Anatomy"]
|
||||
- name: re_replace
|
||||
args: ["[^\\w\\d\\(\\)]+", "+"]
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cid[]={{.}}&{{end}}"
|
||||
keywords: "{{ .Keywords }}"
|
||||
# name, description, both, uploader
|
||||
search_type: name
|
||||
"sortOptions[sortBy]": "{{ .Config.sort }}"
|
||||
"sortOptions[sortOrder]": "{{ .Config.type }}"
|
||||
error:
|
||||
- selector: div#show_error:not(:contains("Δεν βρέθηκαν αποτελέσματα")) font
|
||||
|
||||
rows:
|
||||
selector: "div#content > div.torrent-box[id^=\"torrent_\"]{{ if .Config.freeleech }}:has(img[src$=\"torrent_free.png\"]){{ else }}{{ end }}, tr:has(a[href*=\"?p=torrents\"][href*=\"&action=details\"]){{ if .Config.freeleech }}:has(img[src$=\"torrent_free.png\"]){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: a[href*="?p=torrents"][href*="&action=details"]
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Grey's Anatomy", "Greys Anatomy"]
|
||||
category:
|
||||
selector: a[href*="?p=torrents"][href*="&cid="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cid
|
||||
details:
|
||||
selector: a[href*="?p=torrents"][href*="&action=details"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="?p=torrents"][href*="&action=download"]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
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
|
||||
description:
|
||||
selector: div.torrentDetails > div:has(span.floatright)
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["^(.+?\\/10)", "IMDB Rating: $1"]
|
||||
genre:
|
||||
selector: div.torrentDetails > div:has(span.floatright)
|
||||
remove: span
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(Είδος:|\\))", ""]
|
||||
- name: replace
|
||||
args: [" (", "_"]
|
||||
- name: replace
|
||||
args: ["Α- ", "Α-_"]
|
||||
- name: replace
|
||||
args: ["Ω- ", "Ω-_"]
|
||||
- name: replace
|
||||
args: [" - ", "_-_"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src$=\"torrent_free.png\"]": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": 1
|
||||
date_day:
|
||||
# Uploaded Yesterday at 20:12 by
|
||||
selector: div.torrentOwner:not(:has(abbr.timeago)):contains("day"), div.torrentOwner:not(:has(abbr.timeago)):contains("σήμερα"), div.torrentOwner:not(:has(abbr.timeago)):contains("εχθές"), div.torrentOwner:not(:has(abbr.timeago)):contains("Δευτέρα"), div.torrentOwner:not(:has(abbr.timeago)):contains("Τρίτη"), div.torrentOwner:not(:has(abbr.timeago)):contains("Τετάρτη"), div.torrentOwner:not(:has(abbr.timeago)):contains("Πέμπτη"), div.torrentOwner:not(:has(abbr.timeago)):contains("Παρασκευή"), div.torrentOwner:not(:has(abbr.timeago)):contains("Σάββατο"), div.torrentOwner:not(:has(abbr.timeago)):contains("Κυριακή")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
remove: span
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Uploaded ", ""]
|
||||
- name: replace
|
||||
args: [" by", ""]
|
||||
- name: replace
|
||||
args: ["Ανέβηκε ", ""] # Uploaded
|
||||
- name: replace
|
||||
args: [" από", ""] # by
|
||||
- name: replace
|
||||
args: [" τον/την", ""] # him/her
|
||||
- name: replace
|
||||
args: ["στις ", "at "] # at
|
||||
- name: replace
|
||||
args: ["σήμερα", "Today"]
|
||||
- name: replace
|
||||
args: ["εχθές", "Yesterday"]
|
||||
- name: replace
|
||||
args: ["Δευτέρα", "Monday"]
|
||||
- name: replace
|
||||
args: ["Τρίτη", "Tuesday"]
|
||||
- name: replace
|
||||
args: ["Τετάρτη", "Wednesday"]
|
||||
- name: replace
|
||||
args: ["Πέμπτη", "Thursday"]
|
||||
- name: replace
|
||||
args: ["Παρασκευή", "Friday"]
|
||||
- name: replace
|
||||
args: ["Σάββατο", "Saturday"]
|
||||
- name: replace
|
||||
args: ["Κυριακή", "Sunday"]
|
||||
- name: fuzzytime
|
||||
date_year:
|
||||
# 23-10-2021 22:59
|
||||
selector: div.torrentOwner:not(:has(abbr.timeago)):contains("-")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
remove: span
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Uploaded ", ""]
|
||||
- name: replace
|
||||
args: [" by", ""]
|
||||
- name: replace
|
||||
args: ["at ", ""]
|
||||
- name: replace
|
||||
args: ["Ανέβηκε ", ""] # Uploaded
|
||||
- name: replace
|
||||
args: [" από", ""] # by
|
||||
- name: replace
|
||||
args: [" τον/την", ""] # him/her
|
||||
- name: replace
|
||||
args: ["στις ", ""] # at
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm"
|
||||
date_other:
|
||||
selector: td.torrent_name
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
remove: div, a, span
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Uploaded ", ""]
|
||||
- name: replace
|
||||
args: [" by", ""]
|
||||
- name: replace
|
||||
args: ["at ", ""]
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm"
|
||||
date_unix:
|
||||
selector: div.torrentOwner > abbr.timeago
|
||||
attribute: data-time
|
||||
optional: true
|
||||
date:
|
||||
text: "{{ if or .Result.date_day .Result.date_year .Result.date_other .Result.date_unix }}{{ or .Result.date_day .Result.date_year .Result.date_other .Result.date_unix }}{{ else }}now{{ end }}"
|
||||
# TSUE 2.2
|
||||
@@ -9,21 +9,12 @@ encoding: UTF-8
|
||||
links:
|
||||
- https://magnetcatcat.com/
|
||||
- https://clmclm.com/
|
||||
- https://www.8800519.xyz/
|
||||
- https://www.8800521.xyz/
|
||||
- https://www.8800522.xyz/
|
||||
- https://www.8800523.xyz/
|
||||
- https://www.8800531.xyz/
|
||||
- https://www.8800532.xyz/
|
||||
- https://www.8800533.xyz/
|
||||
- https://www.8800534.xyz/
|
||||
legacylinks:
|
||||
- https://www.clm472.sbs/
|
||||
- https://www.8800500.xyz/
|
||||
- https://www.8800503.xyz/
|
||||
- https://www.8800504.xyz/
|
||||
- https://www.8800505.xyz/
|
||||
- https://www.8800506.xyz/
|
||||
- https://www.8800507.xyz/
|
||||
- https://www.8800508.xyz/
|
||||
- https://www.8800509.xyz/
|
||||
- https://www.8800510.xyz/
|
||||
- https://www.8800511.xyz/
|
||||
- https://www.8800514.xyz/
|
||||
- https://www.8800515.xyz/
|
||||
@@ -31,6 +22,16 @@ legacylinks:
|
||||
- https://www.8800517.xyz/
|
||||
- https://www.8800518.xyz/
|
||||
- https://www.8800520.xyz/
|
||||
- https://www.8800519.xyz/
|
||||
- https://www.8800521.xyz/
|
||||
- https://www.8800522.xyz/
|
||||
- https://www.8800523.xyz/
|
||||
- https://www.8800526.xyz/
|
||||
- https://www.8800524.xyz/
|
||||
- https://www.8800525.xyz/
|
||||
- https://www.8800528.xyz/
|
||||
- https://www.8800527.xyz/
|
||||
- https://www.8800529.xyz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
||||
@@ -13,12 +13,14 @@ caps:
|
||||
- {id: 1, cat: Movies, desc: "Movie"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Audio, desc: "Musik"}
|
||||
- {id: 4, cat: Books, desc: "Book"}
|
||||
|
||||
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
|
||||
|
||||
@@ -0,0 +1,176 @@
|
||||
---
|
||||
id: march
|
||||
name: March
|
||||
description: "March is a CHINESE Private Torrent Tracker for MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://duckboobee.org/
|
||||
|
||||
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: "Documentary/纪录片"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动画"}
|
||||
- {id: 406, cat: Audio/Video, desc: "MV/演唱会"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
||||
- {id: 408, cat: Audio, desc: "Music/音乐"}
|
||||
- {id: 409, cat: Other/Misc, desc: "Misc/其他"}
|
||||
|
||||
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>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 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 100 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.9 2025-10-02
|
||||
@@ -15,9 +15,9 @@ caps:
|
||||
- {id: 23, cat: Movies/Other, desc: "Animációk"}
|
||||
# - {id: 61, cat: Movies/Other, desc: "Cam/EN"}
|
||||
- {id: 60, cat: Movies/Other, desc: "Cam/HU"}
|
||||
# - {id: 45, cat: Books/EBook, desc: "eBook/EN"}
|
||||
- {id: 45, cat: Books/EBook, desc: "eBook/EN"}
|
||||
- {id: 40, cat: Books/EBook, desc: "eBook/HU"}
|
||||
# - {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
|
||||
- {id: 20, cat: Movies/DVD, desc: "Film/DVD9"}
|
||||
- {id: 48, cat: Movies/HD, desc: "Film/EN/1080p"}
|
||||
- {id: 32, cat: Movies/HD, desc: "Film/EN/720p"}
|
||||
- {id: 38, cat: Movies/BluRay, desc: "Film/EN/Blu-ray"}
|
||||
@@ -31,9 +31,9 @@ caps:
|
||||
- {id: 62, cat: Movies/UHD, desc: "Film/HU/UHD"}
|
||||
- {id: 4, cat: PC/Games, desc: "Játékok/ISO"}
|
||||
- {id: 39, cat: PC/Games, desc: "Játékok/Rip/Dox"}
|
||||
# - {id: 47, cat: Other, desc: "Klippek"}
|
||||
- {id: 47, cat: Other, desc: "Klippek"}
|
||||
- {id: 30, cat: Audio/Lossless, desc: "Lossless/EN"}
|
||||
# - {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
|
||||
- {id: 29, cat: Audio/Lossless, desc: "Lossless/HU"}
|
||||
- {id: 25, cat: Audio/MP3, desc: "MP3/EN"}
|
||||
- {id: 6, cat: Audio/MP3, desc: "MP3/HU"}
|
||||
- {id: 33, cat: PC, desc: "Program/egyéb"}
|
||||
@@ -125,9 +125,9 @@ search:
|
||||
img[src="/pic/categories/cat_anime.gif"]: 23
|
||||
# img[src="/pic/categories/061.png"]: 61
|
||||
img[src="/pic/categories/061.png"]: 60
|
||||
# img[]: 45
|
||||
img[src="/pic/categories/017.png"]: 45
|
||||
img[src="/pic/categories/016.png"]: 40
|
||||
# img[]: 20
|
||||
img[src="/pic/categories/cat_movies.gif"]: 20
|
||||
img[src="/pic/categories/010.png"]: 48
|
||||
img[src="/pic/categories/9.png"]: 32
|
||||
img[src="/pic/categories/011.png"]: 38
|
||||
@@ -141,9 +141,9 @@ search:
|
||||
img[src="/pic/categories/uhd_hun.png"]: 62
|
||||
img[src="/pic/categories/021.png"]: 4
|
||||
img[src="/pic/categories/cat_games.gif"]: 39
|
||||
# img[]: 47
|
||||
img[src="/pic/categories/026.png"]: 47
|
||||
img[src="/pic/categories/024.png"]: 30
|
||||
# img[]: 29
|
||||
img[src="/pic/categories/019.png" ]: 29
|
||||
img[src="/pic/categories/023.png"]: 25
|
||||
img[src="/pic/categories/018.png"]: 6
|
||||
img[src="/pic/categories/025.png"]: 33
|
||||
|
||||
@@ -85,8 +85,8 @@ search:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
# seasonNumber: "{{ .Query.Season }}" # not supported
|
||||
# episodeNumber: "{{ .Query.Ep }}" # not supported
|
||||
imdbId: "{{ .Query.IMDBIDShort }}"
|
||||
tmdbId: "{{ .Query.TMDBID }}"
|
||||
tvdbId: "{{ .Query.TVDBID }}"
|
||||
@@ -156,4 +156,4 @@ search:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 0.4
|
||||
# json UNIT3D 6.4.1 (Custom)
|
||||
# json UNIT3D 6.4.1 (custom)
|
||||
|
||||
@@ -6,6 +6,8 @@ language: en-US
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://musebootlegs.com/
|
||||
legacylinks:
|
||||
- https://www.musebootlegs.com/
|
||||
|
||||
caps:
|
||||
@@ -34,6 +36,9 @@ caps:
|
||||
- {id: 58, cat: Audio/Lossless, desc: "Audio Lossless 2019"}
|
||||
- {id: 61, cat: Audio/Lossless, desc: "Audio Lossless 2022"}
|
||||
- {id: 63, cat: Audio/Lossless, desc: "Audio Lossless 2023"}
|
||||
- {id: 66, cat: Audio/Lossless, desc: "Audio Lossless 2024"}
|
||||
- {id: 65, cat: Audio/Lossless, desc: "Audio Lossless 2025"}
|
||||
- {id: 67, cat: Audio/Lossless, desc: "Audio Lossless 2026"}
|
||||
- {id: 28, cat: Audio/Lossless, desc: "Audio Lossless Misc"}
|
||||
- {id: 8, cat: Audio/Video, desc: "DVD Amateur"}
|
||||
- {id: 3, cat: Audio/Video, desc: "DVD Pro-Shot"}
|
||||
@@ -59,6 +64,10 @@ caps:
|
||||
- {id: 59, cat: Audio/Video, desc: "DVD Pro-Shot 2018"}
|
||||
- {id: 60, cat: Audio/Video, desc: "DVD Pro-Shot 2019"}
|
||||
- {id: 62, cat: Audio/Video, desc: "DVD Pro-Shot 2022"}
|
||||
- {id: 68, cat: Audio/Video, desc: "DVD Pro-Shot 2023"}
|
||||
- {id: 69, cat: Audio/Video, desc: "DVD Pro-Shot 2024"}
|
||||
- {id: 70, cat: Audio/Video, desc: "DVD Pro-Shot 2025"}
|
||||
- {id: 71, cat: Audio/Video, desc: "DVD Pro-Shot 2026"}
|
||||
- {id: 44, cat: Audio/Video, desc: "DVD Pro-Shot Compilations"}
|
||||
- {id: 45, cat: Audio/Video, desc: "DVD Pro-Shot Music Videos"}
|
||||
- {id: 7, cat: Audio/Video, desc: "High-Definition"}
|
||||
|
||||
@@ -57,6 +57,7 @@ caps:
|
||||
movie-search: [q, imdbid, genre]
|
||||
music-search: [q, genre]
|
||||
book-search: [q, genre]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
|
||||
@@ -0,0 +1,146 @@
|
||||
---
|
||||
id: nekobt
|
||||
name: nekoBT
|
||||
description: "nekoBT is a Public Torrent Tracker for ANIME"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://nekobt.to/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 5070, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 2000, cat: Movies/Other, desc: "Movies"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, tvdbid]
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: API Key (Optional)
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "API key is optional. You can find or generate a new API Key by accessing your <a href=\"https://nekobt.to/\" target=\"_blank\">nekoBT</a> account settings page if needed."
|
||||
- name: levels
|
||||
type: select
|
||||
label: Subtitle Level
|
||||
default: _
|
||||
options:
|
||||
_: "All"
|
||||
"0": "Level 0"
|
||||
"1": "Level 1"
|
||||
"2": "Level 2"
|
||||
"3": "Level 3"
|
||||
"4": "Level 4"
|
||||
- name: audio_lang
|
||||
type: text
|
||||
label: Audio Language (comma-separated codes, e.g. en,ja)
|
||||
- name: fansub_lang
|
||||
type: text
|
||||
label: Fansub Language (comma-separated codes, e.g. en,ja)
|
||||
- name: sub_lang
|
||||
type: text
|
||||
label: Subtitle Language (comma-separated codes, e.g. en,ja)
|
||||
- name: hardsub
|
||||
type: select
|
||||
label: Hardcoded Subtitles
|
||||
default: _
|
||||
options:
|
||||
_: "No Filter"
|
||||
"true": "Include Only"
|
||||
"false": "Exclude"
|
||||
- name: otl
|
||||
type: select
|
||||
label: OTL Subtitles
|
||||
default: _
|
||||
options:
|
||||
_: "No Filter"
|
||||
"true": "Include Only"
|
||||
"false": "Exclude"
|
||||
- name: mtl
|
||||
type: select
|
||||
label: MTL Subtitles
|
||||
default: _
|
||||
options:
|
||||
_: "No Filter"
|
||||
"true": "Include Only"
|
||||
"false": "Exclude"
|
||||
- name: group_id
|
||||
type: text
|
||||
label: Group ID
|
||||
default: ""
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: api/torznab/api
|
||||
response:
|
||||
type: xml
|
||||
|
||||
inputs:
|
||||
t: "search"
|
||||
q: "{{ .Keywords }}"
|
||||
apikey: "{{ .Config.apikey }}"
|
||||
tvdbid: "{{ .Query.TVDBID }}"
|
||||
season: "{{ .Query.Season }}"
|
||||
ep: "{{ .Query.Ep }}"
|
||||
levels: "{{ re_replace .Config.levels \"_\" \"\" }}"
|
||||
audio_lang: "{{ .Config.audio_lang }}"
|
||||
fansub_lang: "{{ .Config.fansub_lang }}"
|
||||
sub_lang: "{{ .Config.sub_lang }}"
|
||||
hardsub: "{{ re_replace .Config.hardsub \"_\" \"\" }}"
|
||||
otl: "{{ re_replace .Config.otl \"_\" \"\" }}"
|
||||
mtl: "{{ re_replace .Config.mtl \"_\" \"\" }}"
|
||||
group_id: "{{ .Config.group_id }}"
|
||||
limit: 100
|
||||
|
||||
rows:
|
||||
selector: rss > channel > item
|
||||
|
||||
fields:
|
||||
title:
|
||||
selector: title
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(.+?) {Tags:.+", "$1"]
|
||||
description:
|
||||
selector: title
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: [".+ {(Tags:.+?)}", "$1"]
|
||||
details:
|
||||
selector: comments
|
||||
magnet:
|
||||
selector: enclosure
|
||||
attribute: url
|
||||
date:
|
||||
# Sat, 03 Jan 2026 01:27:58 GMT
|
||||
selector: pubDate
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["GMT", "+00:00"]
|
||||
- name: dateparse
|
||||
args: "ddd, dd MMM yyyy HH:mm:ss zzz"
|
||||
category:
|
||||
selector: '[name="category"]'
|
||||
attribute: value
|
||||
size:
|
||||
selector: size
|
||||
seeders:
|
||||
selector: '[name="seeders"]'
|
||||
attribute: value
|
||||
leechers:
|
||||
selector: '[name="leechers"]'
|
||||
attribute: value
|
||||
grabs:
|
||||
selector: '[name="grabs"]'
|
||||
attribute: value
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# torznab xml
|
||||
@@ -23,19 +23,11 @@ caps:
|
||||
search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
- name: cookie
|
||||
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 NicePT Web Site. Otherwise just leave it empty."
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -66,20 +58,10 @@ settings:
|
||||
default: "Account retention rules:<ol><li>Veteran Users users and above will be retained forever</li><li>Elite Users and above will not have their account deleted after parking (in the Control Panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be banned if they do not log in for 40 consecutive days</li><li>Users with no traffic (ie, upload/download data are both 0) will be banned if they do not log in for 7 consecutive days.</li></ol>"
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
# 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:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
@@ -187,4 +169,4 @@ search:
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ .Result.description_verified }} "
|
||||
# NexusPHP v1.9.4 2025-06-01
|
||||
# NexusPHP v1.9.11 2025-11-02
|
||||
|
||||
@@ -6,36 +6,42 @@ language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://nordichd.org/
|
||||
- http://nordichd.sytes.net/
|
||||
legacylinks:
|
||||
- http://nordichd.org/
|
||||
- https://nordichd.sytes.net/ # https not supported
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 14, cat: Movies/SD, desc: "Movies SD"}
|
||||
- {id: 16, cat: Movies/SD, desc: "Movies Retro"}
|
||||
- {id: 17, cat: Movies/HD, desc: "Movies HD"}
|
||||
- {id: 31, cat: Movies/BluRay, desc: "Movies BDRip"}
|
||||
- {id: 32, cat: Movies/BluRay, desc: "Movies BluRay"}
|
||||
- {id: 33, cat: Movies, desc: "Movies Pack"}
|
||||
- {id: 6, cat: Movies, desc: "iNTERNAL"}
|
||||
- {id: 18, cat: Movies/SD, desc: "iNTERNAL SD"}
|
||||
- {id: 19, cat: Movies/SD, desc: "iNTERNAL Retro"}
|
||||
- {id: 34, cat: Movies/HD, desc: "iNTERNAL HD"}
|
||||
- {id: 35, cat: Movies/BluRay, desc: "iNTERNAL BDRip"}
|
||||
- {id: 36, cat: Movies/BluRay, desc: "iNTERNAL BluRay"}
|
||||
- {id: 37, cat: Movies, desc: "iNTERNAL Pack"}
|
||||
- {id: 2, cat: TV, desc: "TV Episodes"}
|
||||
- {id: 3, cat: TV/SD, desc: "TV Episodes SD"}
|
||||
- {id: 4, cat: TV, desc: "TV Episodes Series"}
|
||||
- {id: 26, cat: TV/HD, desc: "TV Episodes HDTV Episodes"}
|
||||
- {id: 27, cat: TV/HD, desc: "TV Episodes HDTV Series"}
|
||||
- {id: 37, cat: Movies/HD, desc: "Internal/HD-1080p"}
|
||||
- {id: 17, cat: Movies/HD, desc: "Internal/HD-720p"}
|
||||
- {id: 30, cat: TV/HD, desc: "Internal/HDTV"}
|
||||
- {id: 15, cat: Movies/HD, desc: "Internal/mHD"}
|
||||
- {id: 40, cat: Movies/HD, desc: "Internal/Mp4"}
|
||||
- {id: 26, cat: Movies, desc: "Internal/Remux"}
|
||||
- {id: 45, cat: Movies/WEB-DL, desc: "Internal/WEB-DL"}
|
||||
- {id: 25, cat: Movies/3D, desc: "Movies/3D-Ou"}
|
||||
- {id: 16, cat: Movies/3D, desc: "Movies/3D-SbS"}
|
||||
- {id: 5, cat: Movies/BluRay, desc: "Movies/BluRay"}
|
||||
- {id: 38, cat: Movies/HD, desc: "Movies/HD-1080p"}
|
||||
- {id: 10, cat: Movies/HD, desc: "Movies/HD-720p"}
|
||||
- {id: 29, cat: Movies/HD, desc: "Movies/mHD"}
|
||||
- {id: 41, cat: Movies/HD, desc: "Movies/Mp4"}
|
||||
- {id: 39, cat: Movies, desc: "Movies/Remux"}
|
||||
- {id: 44, cat: Movies/WEB-DL, desc: "Movies/WEB-DL"}
|
||||
- {id: 23, cat: Audio/Lossless, desc: "Lossless"}
|
||||
- {id: 14, cat: Audio/MP3, desc: "MP3-Packs"}
|
||||
- {id: 22, cat: Audio/MP3, desc: "Music-MP3"}
|
||||
- {id: 43, cat: Audio/Video, desc: "Music/1080p"}
|
||||
- {id: 42, cat: Audio/Video, desc: "Music/720p"}
|
||||
- {id: 12, cat: TV/HD, desc: "HDTV-Packs"}
|
||||
- {id: 21, cat: TV/HD, desc: "Movies/HDTV"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
@@ -44,18 +50,23 @@ settings:
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- 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 <a href=\"http://nordichd.sytes.net/usercp.php?action=personal\" target=\"_blank\">NORDiCHD</a> account.
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
default: 4
|
||||
options:
|
||||
added: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
@@ -63,119 +74,95 @@ settings:
|
||||
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 180 days."
|
||||
|
||||
login:
|
||||
path: ?p=home&pid=1
|
||||
path: login.php
|
||||
method: form
|
||||
form: form#sls_form
|
||||
submitpath: ajax/login.php
|
||||
form: form[action="takelogin.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: \"(.+?)\","
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div.error
|
||||
- selector: :contains("-ERROR-")
|
||||
- selector: h2
|
||||
message:
|
||||
selector: table tr td.text
|
||||
test:
|
||||
path: ?p=home&pid=1
|
||||
selector: div#member_info_bar
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?hash_please="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# 7 results per page, but fetching more pages when results < 7 returns duplicates from each additional page.
|
||||
- path: /
|
||||
# http://nordichd.sytes.net/browse.php?cats3[]=37&cats3[]=17&cats2[]=38&cats2[]=10&search=&searchin=title&incldead=1&only_free=1
|
||||
- path: browse.php
|
||||
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 }}"
|
||||
# does not support imdbid search or have imdbid links in results.
|
||||
error:
|
||||
- selector: div.error:not(:contains("There are no results found."))
|
||||
# note: site uses the catsX[]=nn method which cardigann does not support.
|
||||
search: "{{ .Keywords }}"
|
||||
# title, descr, filelist, genre, all
|
||||
searchin: title
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
only_free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# does not support searching imdbid and does not return imdb links
|
||||
|
||||
rows:
|
||||
selector: "div.torrent-box[id^=\"torrent_\"]{{ if .Config.freeleech }}:has(img[src$=\"/torrent_free.png\"]){{ else }}{{ end }}"
|
||||
selector: table tbody tr.browse_color:has(a[href^="download.php?torrent="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
- name: strdump
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="?p=torrents&pid=10&cid="]
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cid
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href*="?p=torrents&pid=10&action=details&tid="]
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href*="?p=torrents&pid=10&action=details&tid="]
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="?p=torrents&pid=10&action=download&tid="]
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href*="data/torrents/torrent_images/"]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: div.torrentDetails > div:has(a[href*="&genre="])
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Genre:", ""]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
size:
|
||||
selector: a[rel="torrent_size"]
|
||||
grabs:
|
||||
selector: a[rel="times_completed"]
|
||||
seeders:
|
||||
selector: a[rel="torrent_seeders"]
|
||||
leechers:
|
||||
selector: a[rel="torrent_leechers"]
|
||||
- name: regexp
|
||||
args: "src=..(https.+).. width"
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
date_day:
|
||||
selector: div.torrentOwner:contains("day")
|
||||
# Today<br>08:10 AM
|
||||
# Yesterday<br>06:44 PM
|
||||
selector: td:nth-last-child(6):contains("day")
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Uploaded (.+?) by"
|
||||
- name: fuzzytime
|
||||
date_year:
|
||||
selector: div.torrentOwner:contains("-")
|
||||
# Dec 4 2021<br>10:20 AM
|
||||
selector: td:nth-last-child(6):not(:contains("day"))
|
||||
# auto adjusted by site account profile
|
||||
optional: true
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Uploaded (.+?) by"
|
||||
- name: dateparse
|
||||
args: "dd-MM-yyyy HH:mm"
|
||||
date_unix:
|
||||
selector: div.torrentOwner abbr
|
||||
optional: true
|
||||
attribute: data-time
|
||||
args: "MMM d yyyy hh:mm tt"
|
||||
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 }}"
|
||||
text: "{{ if or .Result.date_day .Result.date_year }}{{ or .Result.date_day .Result.date_year }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="/torrent_free.png"]: 0
|
||||
"*": 1
|
||||
text: 1 # site does not appear to have a freeleech flag
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# TSUE 2.2
|
||||
# U-232 V3
|
||||
|
||||
@@ -10,8 +10,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
# to fetch current domain use https://www.rantop.org/
|
||||
links:
|
||||
- https://www.nortorrent.town/
|
||||
- https://nortorrent-proxy.site/
|
||||
- https://www.nortorrent8.com/
|
||||
legacylinks:
|
||||
# latest domains list
|
||||
- https://www.rantop.org/
|
||||
@@ -27,12 +26,6 @@ legacylinks:
|
||||
- https://www.site-torrent.com/
|
||||
- https://www.rantop.my/
|
||||
# actual legacylinks
|
||||
- https://www.torrent9.run/
|
||||
- https://www.torrent9.cv/
|
||||
- https://www.torrent9.ke/
|
||||
- https://www.torrent9.gdn/
|
||||
- https://www.torrent9.men/
|
||||
- https://www.torrent9.icu/
|
||||
- https://www-torrent9.com/
|
||||
- https://www.nortorrent.com/
|
||||
- https://www.nortorrent1.com/
|
||||
@@ -42,6 +35,12 @@ legacylinks:
|
||||
- https://www.nortorrent5.com/
|
||||
- https://www.nortorrent6.com/
|
||||
- https://www.nortorrent.net/
|
||||
- https://www.nortorrent.town/
|
||||
- https://nortorrent-proxy.site/
|
||||
- https://ww1-nortorrent.me/
|
||||
- https://www.nortorrent.rent/
|
||||
- https://ww1-nortorrent.town/
|
||||
- https://www.nortorrent7.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -95,12 +94,8 @@ settings:
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?"]
|
||||
- selector: a[href^="/get_torrents/"]
|
||||
attribute: href
|
||||
- selector: script:contains("magnet:?")
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\s'(magnet:\\?.+?)';"
|
||||
|
||||
search:
|
||||
paths:
|
||||
|
||||
@@ -0,0 +1,180 @@
|
||||
---
|
||||
id: novahd
|
||||
name: NovaHD
|
||||
description: "NovaHD is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.novahd.top/
|
||||
- https://tracker.novahd.top/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 413, cat: TV/Anime, desc: "Anime Series/番剧"}
|
||||
- {id: 412, cat: TV/Anime, desc: "Anime/动漫"}
|
||||
- {id: 411, cat: TV, desc: "Playlet/短剧"}
|
||||
- {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: "Documentary/纪录片"}
|
||||
- {id: 405, cat: TV/Anime, desc: "Animations/动画"}
|
||||
- {id: 406, cat: Audio/Video, desc: "MV/演唱会"}
|
||||
- {id: 407, cat: TV/Sport, desc: "Sports/体育"}
|
||||
- {id: 409, cat: Audio, desc: "Music/音乐"}
|
||||
- {id: 410, cat: Other/Misc, desc: "Misc/其他"}
|
||||
|
||||
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>Veteran User and above will be retained forever</li><li>Elite User and above will not have their account deleted after parking (in the control panel)</li><li>Users with a parked account will be deleted if they do not log in for 400 consecutive days</li><li>Users with a non-parked account will be deleted if they do not log in for 150 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 100 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.9 2025-10-02
|
||||
@@ -12,84 +12,86 @@ legacylinks:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 3, cat: PC, desc: "Apps"}
|
||||
- {id: 7, cat: PC/Mobile-Android, desc: "Apps: Android"}
|
||||
# Apps
|
||||
- {id: 4, cat: PC/0day, desc: "Apps: Windows"}
|
||||
- {id: 5, cat: PC/0day, desc: "Apps: Linux"}
|
||||
- {id: 6, cat: PC/Mac, desc: "Apps: MacOS"}
|
||||
- {id: 4, cat: PC/0day, desc: "Apps: Windows"}
|
||||
- {id: 22, cat: Books, desc: "Books"}
|
||||
- {id: 27, cat: Books/Comics, desc: "Books: Comics"}
|
||||
- {id: 114, cat: Audio/Audiobook, desc: "Books: Foreign Audio Books"}
|
||||
- {id: 23, cat: Books/EBook, desc: "Books: Foreign Books"}
|
||||
- {id: 69, cat: Audio/Audiobook, desc: "Books: Greek Audio Books"}
|
||||
- {id: 24, cat: Books/EBook, desc: "Books: Greek Books"}
|
||||
- {id: 73, cat: Console, desc: "Games"}
|
||||
- {id: 74, cat: PC/Games, desc: "Games: PC Games"}
|
||||
- {id: 15, cat: Movies/SD, desc: "Movies"}
|
||||
- {id: 132, cat: Movies/SD, desc: "Movies: CAM / TS / TC"}
|
||||
- {id: 7, cat: PC/Mobile-Android, desc: "Apps: Android"}
|
||||
# Music
|
||||
- {id: 9, cat: Audio/MP3, desc: "Music: Greek MP3"}
|
||||
- {id: 10, cat: Audio/Lossless, desc: "Music: Greek FLAC"}
|
||||
- {id: 11, cat: Audio/MP3, desc: "Music: Foreign MP3"}
|
||||
- {id: 12, cat: Audio/Lossless, desc: "Music: Foreign FLAC"}
|
||||
- {id: 68, cat: Audio, desc: "Music:Discographies"}
|
||||
- {id: 71, cat: Audio, desc: "Music: Collections"}
|
||||
- {id: 72, cat: Audio/Other, desc: "Music: Foreign Soundtracks"}
|
||||
- {id: 86, cat: Audio, desc: "Music: Greek Discographies"}
|
||||
- {id: 87, cat: Audio, desc: "Music: Greek Collections"}
|
||||
- {id: 92, cat: Audio/Other, desc: "Music: Greek Soundtracks"}
|
||||
- {id: 115, cat: Audio/Video, desc: "Music: Foreign Music Videos"}
|
||||
- {id: 116, cat: Audio/Video, desc: "Music: Greek Music Videos"}
|
||||
# Movies
|
||||
- {id: 16, cat: Movies/SD, desc: "Movies: Foreign Movies Non HD"}
|
||||
- {id: 20, cat: Movies/SD, desc: "Movies: Filmographies"}
|
||||
- {id: 105, cat: Movies, desc: "Movies: Animation"}
|
||||
- {id: 106, cat: Movies, desc: "Movies: Cartoons"}
|
||||
- {id: 133, cat: Movies/DVD, desc: "Movies: Foreign DVD5/DVD9"}
|
||||
- {id: 138, cat: Movies/DVD, desc: "Movies: Foreign DVDRip"}
|
||||
- {id: 112, cat: Movies/HD, desc: "Movies: Movie Packs"}
|
||||
- {id: 119, cat: Movies/SD, desc: "Movies: Greek Movies Non HD"}
|
||||
- {id: 122, cat: Movies/HD, desc: "Movies: Foreign HDRip / BRRip"}
|
||||
- {id: 16, cat: Movies/SD, desc: "Movies: Foreign Movies Non HD"}
|
||||
- {id: 129, cat: Movies/SD, desc: "Movies: Greek VHS"}
|
||||
- {id: 130, cat: Movies/SD, desc: "Movies: Foreign VHS"}
|
||||
- {id: 145, cat: Movies/WEB-DL, desc: "Movies: Foreign WEBRip"}
|
||||
- {id: 141, cat: Movies, desc: "Movies: Greek Audio Animation"}
|
||||
- {id: 140, cat: Movies, desc: "Movies: Greek Audio Cartoons"}
|
||||
- {id: 132, cat: Movies/SD, desc: "Movies: CAM / TS / TC"}
|
||||
- {id: 133, cat: Movies/DVD, desc: "Movies: Foreign DVD5/DVD9"}
|
||||
- {id: 134, cat: Movies/DVD, desc: "Movies: Greek DVD5/DVD9"}
|
||||
- {id: 136, cat: Movies/DVD, desc: "Movies: Greek DVDRip"}
|
||||
- {id: 138, cat: Movies/DVD, desc: "Movies: Foreign DVDRip"}
|
||||
- {id: 139, cat: Movies/HD, desc: "Movies: Greek HDRip / BRRip"}
|
||||
- {id: 119, cat: Movies/SD, desc: "Movies: Greek Movies Non HD"}
|
||||
- {id: 129, cat: Movies/SD, desc: "Movies: Greek VHS"}
|
||||
- {id: 140, cat: Movies, desc: "Movies: Greek Audio Cartoons"}
|
||||
- {id: 141, cat: Movies, desc: "Movies: Greek Audio Animation"}
|
||||
- {id: 145, cat: Movies/WEB-DL, desc: "Movies: Foreign WEBRip"}
|
||||
- {id: 146, cat: Movies/WEB-DL, desc: "Movies: Greek WEBRip"}
|
||||
- {id: 112, cat: Movies/HD, desc: "Movies: Movie Packs"}
|
||||
- {id: 41, cat: Movies/HD, desc: "Movies HD"}
|
||||
- {id: 50, cat: Movies/HD, desc: "Movies HD: BluRay / 1080p"}
|
||||
- {id: 51, cat: Movies/UHD, desc: "Movies HD: BluRay / 4K (UHD)"}
|
||||
- {id: 49, cat: Movies/HD, desc: "Movies HD: BluRay / 720p"}
|
||||
- {id: 45, cat: Movies/BluRay, desc: "Movies HD: BluRay Disk / 1080p"}
|
||||
- {id: 66, cat: Movies/BluRay, desc: "Movies HD: BluRay Disk / 4K (UHD)"}
|
||||
# Books
|
||||
- {id: 23, cat: Books/EBook, desc: "Books: Foreign Books"}
|
||||
- {id: 24, cat: Books/EBook, desc: "Books: Greek Books"}
|
||||
- {id: 27, cat: Books/Comics, desc: "Books: Comics"}
|
||||
- {id: 69, cat: Audio/Audiobook, desc: "Books: Greek Audio Books"}
|
||||
- {id: 114, cat: Audio/Audiobook, desc: "Books: Foreign Audio Books"}
|
||||
# TV
|
||||
- {id: 29, cat: TV/Anime, desc: "TV: Foreign Animation"}
|
||||
- {id: 31, cat: TV/Other, desc: "TV: Foreign Cartoons"}
|
||||
- {id: 35, cat: TV, desc: "TV: Greek TV Series"}
|
||||
- {id: 36, cat: TV, desc: "TV: Greek TV Packs"}
|
||||
- {id: 40, cat: TV, desc: "TV: Greek TV Shows"}
|
||||
- {id: 67, cat: TV/Sport, desc: "TV: Sports"}
|
||||
- {id: 75, cat: TV, desc: "TV: Foreign TV Series"}
|
||||
- {id: 76, cat: TV, desc: "TV: Foreign TV Shows"}
|
||||
- {id: 77, cat: TV, desc: "TV: Foreign TV Episodes"}
|
||||
- {id: 79, cat: TV/Documentary, desc: "TV: Foreign Documentaries"}
|
||||
- {id: 127, cat: TV/Other, desc: "TV: Tutorials"}
|
||||
- {id: 142, cat: TV/Other, desc: "TV: Greek Audio Cartoons"}
|
||||
- {id: 143, cat: TV/Anime, desc: "TV: Greek Audio Animation"}
|
||||
- {id: 144, cat: TV/Documentary, desc: "TV: Greek Audio Documentaries"}
|
||||
- {id: 147, cat: TV, desc: "TV: Foreign Packs"}
|
||||
# Movies HD
|
||||
- {id: 42, cat: Movies/HD, desc: "Movies HD: Remux / 1080p"}
|
||||
- {id: 43, cat: Movies/WEB-DL, desc: "Movies HD: WEB-DL / 720p"}
|
||||
- {id: 45, cat: Movies/BluRay, desc: "Movies HD: BluRay Disk / 1080p"}
|
||||
- {id: 46, cat: Movies/UHD, desc: "Movies HD: Remux / 4K (UHD)"}
|
||||
- {id: 47, cat: Movies/WEB-DL, desc: "Movies HD: WEB-DL / 1080p"}
|
||||
- {id: 48, cat: Movies/UHD, desc: "Movies HD: WEB-DL / 4K (UHD)"}
|
||||
- {id: 43, cat: Movies/WEB-DL, desc: "Movies HD: WEB-DL / 720p"}
|
||||
- {id: 8, cat: Audio, desc: "Music"}
|
||||
- {id: 71, cat: Audio, desc: "Music: Collections"}
|
||||
- {id: 68, cat: Audio, desc: "Music:Discographies"}
|
||||
- {id: 12, cat: Audio/Lossless, desc: "Music: Foreign FLAC"}
|
||||
- {id: 11, cat: Audio/MP3, desc: "Music: Foreign MP3"}
|
||||
- {id: 115, cat: Audio/Video, desc: "Music: Foreign Music Videos"}
|
||||
- {id: 72, cat: Audio/Other, desc: "Music: Foreign Soundtracks"}
|
||||
- {id: 87, cat: Audio, desc: "Music: Greek Collections"}
|
||||
- {id: 86, cat: Audio, desc: "Music: Greek Discographies"}
|
||||
- {id: 10, cat: Audio/Lossless, desc: "Music: Greek FLAC"}
|
||||
- {id: 9, cat: Audio/MP3, desc: "Music: Greek MP3"}
|
||||
- {id: 116, cat: Audio/Video, desc: "Music: Greek Music Videos"}
|
||||
- {id: 92, cat: Audio/Other, desc: "Music: Greek Soundtracks"}
|
||||
- {id: 28, cat: TV, desc: "TV"}
|
||||
- {id: 29, cat: TV/Anime, desc: "TV: Foreign Animation"}
|
||||
- {id: 31, cat: TV/Other, desc: "TV: Foreign Cartoons"}
|
||||
- {id: 79, cat: TV/Documentary, desc: "TV: Foreign Documentaries"}
|
||||
- {id: 147, cat: TV, desc: "TV: Foreign Packs"}
|
||||
- {id: 77, cat: TV, desc: "TV: Foreign TV Episodes"}
|
||||
- {id: 75, cat: TV, desc: "TV: Foreign TV Series"}
|
||||
- {id: 76, cat: TV, desc: "TV: Foreign TV Shows"}
|
||||
- {id: 143, cat: TV/Anime, desc: "TV: Greek Audio Animation"}
|
||||
- {id: 142, cat: TV/Other, desc: "TV: Greek Audio Cartoons"}
|
||||
- {id: 144, cat: TV/Documentary, desc: "TV: Greek Audio Documentaries"}
|
||||
- {id: 36, cat: TV, desc: "TV: Greek TV Packs"}
|
||||
- {id: 35, cat: TV, desc: "TV: Greek TV Series"}
|
||||
- {id: 40, cat: TV, desc: "TV: Greek TV Shows"}
|
||||
- {id: 67, cat: TV/Sport, desc: "TV: Sports"}
|
||||
- {id: 127, cat: TV/Other, desc: "TV: Tutorials"}
|
||||
- {id: 49, cat: Movies/HD, desc: "Movies HD: BluRay / 720p"}
|
||||
- {id: 50, cat: Movies/HD, desc: "Movies HD: BluRay / 1080p"}
|
||||
- {id: 51, cat: Movies/UHD, desc: "Movies HD: BluRay / 4K (UHD)"}
|
||||
- {id: 66, cat: Movies/BluRay, desc: "Movies HD: BluRay Disk / 4K (UHD)"}
|
||||
# Games
|
||||
- {id: 74, cat: PC/Games, desc: "Games: PC Games"}
|
||||
# the following are not selectable from the site's category pull down but exist as categories in results
|
||||
- {id: 3, cat: PC, desc: "Apps"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
movie-search: [q, imdbid]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
@@ -123,114 +125,106 @@ settings:
|
||||
- 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. The Default is <i>15</i>.
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile. The Default is <i>15</i>.
|
||||
- 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: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img#regimage
|
||||
input: imagestring
|
||||
path: index.php?page=login
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
logout: ""
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table:contains("error has occured")
|
||||
- selector: tr td span[style="color:#FF0000;"]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href*="/logout.php?logouthash="]
|
||||
|
||||
download:
|
||||
before:
|
||||
path: takethanks.php
|
||||
method: post
|
||||
inputs:
|
||||
torrentid: "{{ .DownloadUri.Query.id }}"
|
||||
selectors:
|
||||
- selector: a[href*="download-torrent-"]
|
||||
attribute: href
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
method: post
|
||||
# https://oldgreektracker.xyz/index.php?page=torrents&search=&category=0&active=0
|
||||
- path: index.php
|
||||
inputs:
|
||||
page: torrents
|
||||
search: "{{ .Keywords }}"
|
||||
category: "{{ range .Categories }}{{.}};{{end}}"
|
||||
# 0 filename, 1 file&descr, 2 descr, 3 uploaders, 18 genre, 4 imdb, 5 gold, 6 silver, 7 bronze
|
||||
options: "{{ if .Config.freeleech }}5{{ else }}0{{ end }}"
|
||||
# 0 all, 1 active only, 2 dead only
|
||||
active: 0
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[\\s]+", "%"]
|
||||
inputs:
|
||||
do: search
|
||||
keywords: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# t_name, t_description, t_both, t_uploader, t_genre
|
||||
search_type: "{{ if .Query.IMDBID }}t_genre{{ else }}t_name{{ end }}"
|
||||
# does not support multi category searching so defaulting to all.
|
||||
category: 0
|
||||
# yes, no
|
||||
include_dead_torrents: yes
|
||||
sort: "{{ if .Config.freeleech }}free{{ else }}{{ .Config.sort }}{{ end }}"
|
||||
order: "{{ if .Config.freeleech }}asc{{ else }}{{ .Config.type }}{{ end }}"
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: "table.sortable tr:has(a[href*=\"download-torrent-\"]){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
|
||||
selector: table.lista > tbody > tr:has(a[href^="download.php?id="]):has(strong img)
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*="torrent-category-"]
|
||||
selector: a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: torrent-category-(\d+)
|
||||
title_default:
|
||||
# is usually abbreaviated
|
||||
selector: a[href*="torrent-details-"]
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
# while still abbreviated, is usually longer than the default
|
||||
selector: div.tooltip-content div
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
details:
|
||||
selector: a[href*="torrent-details-"]
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href*="torrent-details-"]
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[src*="/torrents/images/"]
|
||||
attribute: src
|
||||
date:
|
||||
selector: td:nth-child(2)
|
||||
# auto adjusted by site account profile
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(\\d{2}-\\d{2}-\\d{2} \\d{2}:\\d{2})"
|
||||
- name: dateparse
|
||||
args: "dd-MM-yy HH:mm"
|
||||
args: src=(.+?) width
|
||||
- name: replace
|
||||
args: ["torrentimg/nocover.jpg", ""]
|
||||
size:
|
||||
selector: td:nth-last-child(5)
|
||||
grabs:
|
||||
selector: td:nth-last-child(4)
|
||||
selector: td:nth-child(12)
|
||||
date:
|
||||
# auto adjusted by site account profile
|
||||
selector: td:nth-child(8)
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "dd/MM/yyyy"
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
selector: td:nth-child(8)
|
||||
optional: true
|
||||
default: 0
|
||||
leechers:
|
||||
selector: td:nth-last-child(2)
|
||||
optional: true
|
||||
selector: td:nth-child(10)
|
||||
default: 0
|
||||
grabs:
|
||||
optional: true
|
||||
selector: td:nth-child(11)
|
||||
default: 0
|
||||
description:
|
||||
selector: td:nth-child(1)
|
||||
case:
|
||||
img[src="/images/mod/ok.png"]: Verified
|
||||
"*": Not Verified
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src$="/freedownload.gif"]: 0
|
||||
img[src$="/silverdownload.gif"]: 0.5
|
||||
img[src="images/freeleech.gif"]: 0
|
||||
img[src="images/gold.gif"]: 0
|
||||
img[src="images/silver.gif"]: 0.5
|
||||
img[src="images/bronze.gif"]: 0.75
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src$="/x2.gif"]: 2
|
||||
"*": 1
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# TS Special Edition v.8.0
|
||||
# xbtitFM v4.2.12
|
||||
|
||||
@@ -45,7 +45,7 @@ settings:
|
||||
- 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 Kufei Web Site. Otherwise just leave it empty."
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the Panda Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
|
||||
@@ -0,0 +1,211 @@
|
||||
---
|
||||
id: parabellumhd-api
|
||||
name: ParabellumHD (API)
|
||||
description: "ParabellumHD is a SPANISH Private Torrent Tracker for HEVC & AV1-encoded MOVIES / TV"
|
||||
language: es-ES
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://parabellumhd.cx/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Películas"}
|
||||
- {id: 2, cat: TV, desc: "Series"}
|
||||
- {id: 7, cat: Movies/Other, desc: "Películas Animación"}
|
||||
- {id: 8, cat: TV/Other, desc: "Series Animación"}
|
||||
- {id: 9, cat: Movies/Other, desc: "Películas Anime"}
|
||||
- {id: 10, cat: TV/Anime, desc: "Series Anime"}
|
||||
- {id: 6, cat: Other, desc: "Varios"}
|
||||
- {id: 11, cat: Movies/UHD, desc: "Películas 4K"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: APIKey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Token by accessing your <a href=\"https://parabellumhd.cx/\" target=\"_blank\">ParabellumHD</a> account <i>My Settings</i> page and clicking on the <b>API Key</b> tab."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: single_file_release_use_filename
|
||||
type: checkbox
|
||||
label: Use filename as title for single file releases
|
||||
default: true
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: created_at
|
||||
options:
|
||||
created_at: created
|
||||
seeders: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: /api/torrents
|
||||
method: get
|
||||
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
|
||||
_resolution:
|
||||
selector: resolution
|
||||
_type:
|
||||
selector: type
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Encode", "BluRay"]
|
||||
- name: replace
|
||||
args: ["Full Disc", "BR-DISK"]
|
||||
title_optional:
|
||||
selector: name
|
||||
filters:
|
||||
- name: append
|
||||
args: " {{ .Result._resolution }} {{ .Result._type }}"
|
||||
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 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bTemporada (\\d+)\\b", "S$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bEpisodio (\\d+)\\b", "E$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\d+)x(\\d+)", "S$1E$2"]
|
||||
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 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 9.2.0 (custom)
|
||||
@@ -51,6 +51,7 @@ caps:
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
allowtvsearchimdb: true
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
@@ -168,8 +169,6 @@ search:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
@@ -242,6 +241,6 @@ search:
|
||||
# minimumratio:
|
||||
# text: 0.7
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 9.1.5 (custom)
|
||||
# 10 days (as seconds = 10 x 24 x 60 x 60)
|
||||
text: 864000
|
||||
# json UNIT3D 9.2.0 (custom)
|
||||
|
||||
@@ -107,12 +107,11 @@ caps:
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info_cookie
|
||||
- name: multilang
|
||||
type: checkbox
|
||||
label: Replace MULTi by another language in release name
|
||||
@@ -126,15 +125,9 @@ settings:
|
||||
MULTi POLISH: MULTi POLISH
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[name="login"]
|
||||
method: cookie
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
keeplogged: 1
|
||||
error:
|
||||
- selector: font[color="#FF0000"]
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
@@ -149,7 +142,7 @@ search:
|
||||
# does not support sorting results, or imdbid searching, or have imdb in results
|
||||
|
||||
rows:
|
||||
selector: div.boxcontent > table > tbody > tr:has(a.link1)
|
||||
selector: div.boxcontent > table:has(a.link2)
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
@@ -157,13 +150,7 @@ search:
|
||||
optional: true
|
||||
default: Pozostale
|
||||
title_phase1:
|
||||
selector: a.link1
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: f=(.+?)\.torrent
|
||||
- name: urldecode
|
||||
- name: htmldecode
|
||||
selector: a.link2[href^="details.php?id="]
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
@@ -177,10 +164,13 @@ search:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a.link1
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details.php?id=", "download.php?torrent="]
|
||||
poster:
|
||||
selector: img
|
||||
selector: img.poster-torrent
|
||||
attribute: src
|
||||
date:
|
||||
selector: td.pole
|
||||
@@ -193,7 +183,7 @@ search:
|
||||
selector: td.pole
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Rozmiar: (\\d+\\.\\d+ [T|G|M|K|k]B)"
|
||||
args: "(\\d+\\.\\d+ [T|G|M|K|k]B)"
|
||||
seeders:
|
||||
selector: td.pole
|
||||
filters:
|
||||
|
||||
@@ -21,16 +21,16 @@ caps:
|
||||
- {id: 508, cat: XXX, desc: "Классические фильмы / Classic"}
|
||||
- {id: 555, cat: XXX, desc: "Фильмы с сюжетом / Feature & Vignettes"}
|
||||
- {id: 1845, cat: XXX, desc: "Гонзо-фильмы 1991-2010 / Gonzo 1991-2010"}
|
||||
- {id: 1673, cat: XXX, desc: "Гонзо-фильмы 2011-2025 / Gonzo 2011-2025"}
|
||||
- {id: 1673, cat: XXX, desc: "Гонзо-фильмы 2011-2026 / Gonzo 2011-2026"}
|
||||
- {id: 1112, cat: XXX, desc: "Фильмы без сюжета 1991-2010 / All Sex & Amateur 1991-2010"}
|
||||
- {id: 1718, cat: XXX, desc: "Фильмы без сюжета 2011-2025 / All Sex & Amateur 2011-2025"}
|
||||
- {id: 1718, cat: XXX, desc: "Фильмы без сюжета 2011-2026 / All Sex & Amateur 2011-2026"}
|
||||
- {id: 553, cat: XXX, desc: "Лесбо-фильмы / All Girl & Solo"}
|
||||
- {id: 1143, cat: XXX, desc: "Этнические фильмы / Ethnic-Themed"}
|
||||
- {id: 1646, cat: XXX, desc: "Видео для телефонов и КПК / Pocket РС & Phone Video"}
|
||||
|
||||
- {id: 1717, cat: XXX, desc: "Зарубежные фильмы в высоком качестве (DVD&HD) / Full Length Movies High-Quality"}
|
||||
- {id: 1851, cat: XXX/DVD, desc: "Эротические и Документальные видео (DVD) / Erotic, Documentary & Reality (DVD)"}
|
||||
- {id: 1713, cat: XXX/DVD, desc: "Фильмы с сюжетом, Классические (DVD) / Feature & Vignetts, Classic (DVD)"}
|
||||
- {id: 1713, cat: XXX/DVD, desc: "Фильмы с сюжетом, Классические (DVD) / Feature & Vignettes, Classic (DVD)"}
|
||||
- {id: 512, cat: XXX/DVD, desc: "Гонзо, Лесбо и Фильмы без сюжета (DVD) / Gonzo, All Girl & Solo, All Sex (DVD)"}
|
||||
- {id: 1712, cat: XXX, desc: "Эротические и Документальные видео (HD Video) / Erotic, Documentary & Reality (HD Video)"}
|
||||
- {id: 1775, cat: XXX, desc: "Фильмы с сюжетом, Классические (HD Video) / Feature & Vignettes, Classic (HD Video)"}
|
||||
@@ -43,6 +43,8 @@ caps:
|
||||
- {id: 1830, cat: XXX, desc: "Сайтрипы с русскими актрисами 1991-2015 (HD Video) / Russian SiteRip's 1991-2015 (HD Video)"}
|
||||
- {id: 1803, cat: XXX, desc: "Сайтрипы с русскими актрисами 2016-2025 / Russian SiteRip's 2016-2025"}
|
||||
- {id: 1831, cat: XXX, desc: "Сайтрипы с русскими актрисами 2016-2025 (HD Video) / Russian SiteRip's 2016-2025 (HD Video)"}
|
||||
- {id: 1877, cat: XXX, desc: "Сайтрипы с русскими актрисами 2026 / Russian SiteRip's 2026"}
|
||||
- {id: 1878, cat: XXX, desc: "Сайтрипы с русскими актрисами 2026 (HD Video) / Russian SiteRip's 2026 (HD Video)"}
|
||||
- {id: 1741, cat: XXX, desc: "Русские Порноролики Разное / Russian Clips (various)"}
|
||||
- {id: 1676, cat: XXX, desc: "Русское любительское видео / Russian Amateur Video"}
|
||||
|
||||
@@ -65,6 +67,7 @@ caps:
|
||||
- {id: 1861, cat: XXX, desc: "Сайтрипы 2023 (HD Video) / SiteRip's 2023 (HD Video)"}
|
||||
- {id: 1867, cat: XXX, desc: "Сайтрипы 2024 (HD Video) / SiteRip's 2024 (HD Video)"}
|
||||
- {id: 1872, cat: XXX, desc: "Сайтрипы 2025 (HD Video) / SiteRip's 2025 (HD Video)"}
|
||||
- {id: 1875, cat: XXX, desc: "Сайтрипы 2026 (HD Video) / SiteRip's 2026 (HD Video)"}
|
||||
- {id: 1451, cat: XXX, desc: "Сайтрипы 1991-2010 / SiteRip's 1991-2010"}
|
||||
- {id: 1788, cat: XXX, desc: "Сайтрипы 2011-2012 / SiteRip's 2011-2012"}
|
||||
- {id: 1789, cat: XXX, desc: "Сайтрипы 2013 / SiteRip's 2013"}
|
||||
@@ -80,7 +83,9 @@ caps:
|
||||
- {id: 1862, cat: XXX, desc: "Сайтрипы 2023 / SiteRip's 2023"}
|
||||
- {id: 1868, cat: XXX, desc: "Сайтрипы 2024 / SiteRip's 2024"}
|
||||
- {id: 1873, cat: XXX, desc: "Сайтрипы 2025 / SiteRip's 2025"}
|
||||
- {id: 1876, cat: XXX, desc: "Сайтрипы 2026 / SiteRip's 2026"}
|
||||
- {id: 1707, cat: XXX, desc: "Сцены из фильмов / Movie Scenes (кроме SiteRip)"}
|
||||
- {id: 1874, cat: XXX, desc: "Порноролики с переводом / Clips with translation"}
|
||||
- {id: 284, cat: XXX, desc: "Порноролики Разное / Clips (various)"}
|
||||
- {id: 1853, cat: XXX, desc: "Компиляции и Музыкальные порно клипы / Compilations & Porn Music Video (PMV)"}
|
||||
- {id: 1823, cat: XXX, desc: "Порноролики в 3D и Virtual Reality (VR) / 3D & Virtual Reality Videos"}
|
||||
@@ -89,9 +94,8 @@ caps:
|
||||
- {id: 1801, cat: XXX/Pack, desc: "Паки японских фильмов и сайтрипов / Full Length Japanese Movies Packs & SiteRip's Packs"}
|
||||
- {id: 1719, cat: XXX, desc: "Японские фильмы и сайтрипы (DVD и HD Video) / Japanese Movies & SiteRip's (DVD & HD Video)"}
|
||||
- {id: 997, cat: XXX, desc: "Японские фильмы и сайтрипы 1991-2014 / Japanese Movies & SiteRip's 1991-2014"}
|
||||
- {id: 1818, cat: XXX, desc: "Японские фильмы и сайтрипы 2015-2025 / Japanese Movies & SiteRip's 2015-2025"}
|
||||
- {id: 1818, cat: XXX, desc: "Японские фильмы и сайтрипы 2015-2026 / Japanese Movies & SiteRip's 2015-2026"}
|
||||
- {id: 1849, cat: XXX, desc: "Китайские фильмы и сайтрипы (DVD и HD Video) / Chinese Movies & SiteRip's (DVD & HD Video)"}
|
||||
- {id: 1815, cat: XXX, desc: "Архив (Японское и китайское порно)"}
|
||||
|
||||
- {id: 1723, cat: XXX, desc: "Фото и журналы / Photos & Magazines"}
|
||||
- {id: 1726, cat: XXX, desc: "MetArt & MetModels"}
|
||||
@@ -102,7 +106,6 @@ caps:
|
||||
- {id: 1757, cat: XXX/ImageSet, desc: "Подборки сетов / Picture Sets Packs"}
|
||||
- {id: 1735, cat: XXX/ImageSet, desc: "Тематическое и нетрадиционное фото / Misc & Special Interest Picture Packs"}
|
||||
- {id: 1731, cat: XXX/ImageSet, desc: "Журналы / Magazines"}
|
||||
- {id: 1802, cat: XXX, desc: "Архив (Фото)"}
|
||||
|
||||
- {id: 1745, cat: XXX, desc: "Хентай и Манга, Мультфильмы и Комиксы, Рисунки, Аудио / Hentai & Manga, Cartoons & Comics, Artwork & Audio"}
|
||||
- {id: 1679, cat: XXX, desc: "Хентай: основной подраздел / Hentai: main subsection"}
|
||||
@@ -114,19 +117,17 @@ caps:
|
||||
- {id: 1711, cat: XXX, desc: "Мультфильмы / Cartoons"}
|
||||
- {id: 1296, cat: XXX, desc: "Комиксы, рисунки, аудио / Comics, Artwork & Audio"}
|
||||
- {id: 1863, cat: XXX, desc: "Обсуждение / Discussion"}
|
||||
- {id: 1864, cat: XXX, desc: "Архив (Хентай и Манга, Мультфильмы и Комиксы, Рисунки, А.."}
|
||||
|
||||
- {id: 1838, cat: XXX, desc: "Игры / Games"}
|
||||
- {id: 1750, cat: XXX, desc: "Игры: основной подраздел / Games: main subsection"}
|
||||
- {id: 1756, cat: XXX, desc: "Игры: визуальные новеллы (профессиональная студия) / Games: Visual Novels (Pro)"}
|
||||
- {id: 1869, cat: XXX, desc: "Игры: визуальные новеллы (независимый разработчик) / Games: Visual Novels (Indie)"}
|
||||
- {id: 1785, cat: XXX, desc: "Игры: ролевые / Games: role-playing (RPG Maker and WOLF RPG Editor)"}
|
||||
- {id: 1785, cat: XXX, desc: "Игры: ролевые / Games: role-playing [RPG Maker / WOLF RPG Editor]"}
|
||||
- {id: 1790, cat: XXX, desc: "Игры и Софт: Анимация / Software: Animation"}
|
||||
- {id: 1827, cat: XXX, desc: "Игры: В разработке и Демо (основной подраздел) / Games: In Progress and Demo (main subsection)"}
|
||||
- {id: 1870, cat: XXX, desc: "Игры: В разработке и Демо (визуальные новеллы - независимый разработчик) / Games: In Progress and Demo (visual novels - Indie)"}
|
||||
- {id: 1828, cat: XXX, desc: "Игры: В разработке и Демо (ролевые) / Games: In Progress and Demo (role-playing - RPG Maker and WOLF RPG Editor)"}
|
||||
- {id: 1828, cat: XXX, desc: "Игры: В разработке и Демо (ролевые) / Games: In Progress and Demo (role-playing) [RPG Maker / WOLF RPG Editor]"}
|
||||
- {id: 1829, cat: XXX, desc: "Обсуждение игр / Games Discussion"}
|
||||
- {id: 1865, cat: XXX, desc: "Архив (Игры)"}
|
||||
|
||||
- {id: 11, cat: XXX, desc: "Нетрадиционное порно / Special Interest Movies & Clips"}
|
||||
- {id: 1715, cat: XXX, desc: "Транссексуалы (DVD и HD) / Transsexual (DVD & HD)"}
|
||||
@@ -142,11 +143,10 @@ caps:
|
||||
- {id: 1685, cat: XXX, desc: "Мочеиспускание / Peeing"}
|
||||
- {id: 1762, cat: XXX, desc: "Фетиш / Fetish"}
|
||||
- {id: 1681, cat: XXX, desc: "Дефекация / Scat"}
|
||||
- {id: 1683, cat: XXX, desc: "Архив (общий)"}
|
||||
|
||||
- {id: 1688, cat: XXX, desc: "Гей-порно / Gay Forum"}
|
||||
- {id: 903, cat: XXX, desc: "Полнометражные гей-фильмы / Full Length Movies (Gay)"}
|
||||
- {id: 1765, cat: XXX, desc: "Полнометражные азиатские гей-фильмы / Full-length Asian (Gay)"}
|
||||
- {id: 1765, cat: XXX, desc: "Полнометражные азиатские гей-фильмы / Full-length Asian Films (Gay)"}
|
||||
- {id: 1767, cat: XXX, desc: "Классические гей-фильмы (до 1990 года) / Classic Gay Films (Pre-1990's)"}
|
||||
- {id: 1755, cat: XXX, desc: "Гей-фильмы в высоком качестве (DVD и HD) / High-Quality Full Length Movies (Gay DVD & HD)"}
|
||||
- {id: 1787, cat: XXX, desc: "Азиатские гей-фильмы в высоком качестве (DVD и HD) / High-Quality Full Length Asian Movies (Gay DVD & HD)"}
|
||||
@@ -154,7 +154,6 @@ caps:
|
||||
- {id: 1777, cat: XXX, desc: "Гей-ролики в высоком качестве (HD Video) / Gay Clips (HD Video)"}
|
||||
- {id: 1691, cat: XXX, desc: "Ролики, SiteRip'ы и сцены из гей-фильмов / Clips & Movie Scenes (Gay)"}
|
||||
- {id: 1692, cat: XXX/ImageSet, desc: "Гей-журналы, фото, разное / Magazines, Photo, Rest (Gay)"}
|
||||
- {id: 1720, cat: XXX, desc: "Архив (Гей-порно)"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
||||
@@ -200,9 +200,10 @@ search:
|
||||
True: 2 # double
|
||||
uploadvolumefactor:
|
||||
text: "{{ if .Result._featured }}2{{ else }}{{ .Result.uploadvolumefactor_double_upload }}{{ end }}"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 8.3.6 (custom)
|
||||
|
||||
@@ -183,4 +183,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.6 2025-06-25
|
||||
# NexusPHP v1.9.11 2025-11-02
|
||||
|
||||
@@ -6,8 +6,10 @@ language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://pt.gtk.pw/
|
||||
# backup domain - https://pt1.gtkpw.xyz/
|
||||
- https://pt.gtkpw.xyz/
|
||||
legacylinks:
|
||||
- https://pt.gtk.pw/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -44,7 +46,7 @@ settings:
|
||||
- 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 Uploads Web Site. Otherwise just leave it empty."
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the PT GTK Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -195,4 +197,4 @@ search:
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.8.15 2024-12-23
|
||||
# NexusPHP v1.9.11 2025-11-02
|
||||
|
||||
@@ -91,33 +91,33 @@ search:
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="torrents.php?cat="]
|
||||
selector: a[href*="torrents.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: table.torrentname td a[href^="details.php?id="]
|
||||
selector: table.torrentname td a[href*="details.php?id="]
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
selector: a[title][href*="details.php?id="]
|
||||
attribute: title
|
||||
optional: true
|
||||
default: "{{ .Result.title_default }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
selector: a[href*="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
selector: a[href*="download.php?id="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img.tooltip
|
||||
attribute: src
|
||||
selector: img[data-src]
|
||||
attribute: data-src
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["pic/imdb_pic/nophoto.gif", ""]
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(5) > span[title]
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
@@ -127,7 +127,7 @@ search:
|
||||
args: "yyyy-MM-dd HH:mm:ss zzz"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(5):not(:has(span))
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
@@ -137,13 +137,13 @@ search:
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow:nth-child(9)
|
||||
selector: td.rowfollow:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: 0
|
||||
@@ -158,4 +158,4 @@ search:
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
# NexusPHP custom 22082802
|
||||
# NexusPHP v1.9.11 2025-11-02
|
||||
|
||||
@@ -194,4 +194,4 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, b, font, img, span
|
||||
# NexusPHP v1.9.6 2025-06-25
|
||||
# NexusPHP v1.9.13 2025-12-28
|
||||
|
||||
@@ -115,8 +115,8 @@ search:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||
name: "{{ .Keywords }}"
|
||||
seasonNumber: "{{ .Query.Season }}"
|
||||
episodeNumber: "{{ .Query.Ep }}"
|
||||
# seasonNumber: "{{ .Query.Season }}" # not supported
|
||||
# episodeNumber: "{{ .Query.Ep }}" # not supported
|
||||
"free[]": "{{ if .Config.freeleech }}100{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
|
||||
@@ -44,7 +44,7 @@ settings:
|
||||
- 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 Rain Web Site. Otherwise just leave it empty."
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the RailgunPT Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user