195 lines
5.4 KiB
YAML
195 lines
5.4 KiB
YAML
|
---
|
||
|
id: uhdbits
|
||
|
name: UHDBits
|
||
|
description: "UHDBits is a Private Torrent Tracker for UHD Movies / TV"
|
||
|
language: en-US
|
||
|
type: private
|
||
|
encoding: UTF-8
|
||
|
links:
|
||
|
- https://uhdbits.org/
|
||
|
|
||
|
caps:
|
||
|
categorymappings:
|
||
|
- {id: 1, cat: Movies, desc: Movies}
|
||
|
- {id: 2, cat: Audio, desc: Music}
|
||
|
- {id: 3, cat: TV, desc: TV}
|
||
|
|
||
|
modes:
|
||
|
search: [q]
|
||
|
tv-search: [q, season, ep, imdbid]
|
||
|
movie-search: [q, imdbid]
|
||
|
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 UHDBits 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: time
|
||
|
options:
|
||
|
time: 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: "An account will be automatically disabled if there is no log-in activity for 1 year."
|
||
|
|
||
|
login:
|
||
|
path: login.php
|
||
|
form: form.auth_form
|
||
|
inputs:
|
||
|
username: "{{ .Config.username }}"
|
||
|
password: "{{ .Config.password }}"
|
||
|
two_step: "{{ .Config.2facode }}"
|
||
|
keeplogged: 1
|
||
|
error:
|
||
|
- selector: .auth_form > .warning
|
||
|
test:
|
||
|
path: index.php
|
||
|
selector: a[href^="logout.php?auth="]
|
||
|
|
||
|
search:
|
||
|
paths:
|
||
|
# https://uhdbits.org/torrents.php?groupname=&filelist=&description=&artistname=&recordlabel=&remastertitle=&remasterrecordlabel=&rating=0&rating1=10&freetorrent=1&searchstr=&taglist=&tags_type=1&order_by=time&order_way=desc&action=advanced&searchsubmit=1
|
||
|
- path: torrents.php
|
||
|
inputs:
|
||
|
$raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
|
||
|
searchstr: "{{ .Keywords }}"
|
||
|
imdbid: "{{ .Query.IMDBIDShort }}"
|
||
|
tags_type: 1
|
||
|
freetorrent: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||
|
order_by: "{{ .Config.sort }}"
|
||
|
order_way: "{{ .Config.type }}"
|
||
|
action: advanced
|
||
|
searchsubmit: 1
|
||
|
|
||
|
keywordsfilters:
|
||
|
- name: re_replace
|
||
|
args: ["\\.", " "]
|
||
|
# if searching for season packs switch S01 to season 1 #10423
|
||
|
- name: re_replace
|
||
|
args: ["(?i)\\bS(\\d{1,3})(E\\d+)?$", "season $1"]
|
||
|
|
||
|
rows:
|
||
|
selector: table#torrent_table > tbody > tr.torrent
|
||
|
|
||
|
fields:
|
||
|
# note: there are optional extra colums
|
||
|
category_id:
|
||
|
selector: a[href^="torrents.php?filter_cat"]
|
||
|
attribute: href
|
||
|
filters:
|
||
|
- name: regexp
|
||
|
args: "\\[(\\d+)\\]"
|
||
|
category:
|
||
|
text: "{{ .Result.category_id }}"
|
||
|
download:
|
||
|
selector: a[href^="torrents.php?action=download&id="]
|
||
|
attribute: href
|
||
|
filters:
|
||
|
- name: replace
|
||
|
args: ["\t", " "]
|
||
|
details:
|
||
|
selector: a.torrent_name
|
||
|
attribute: href
|
||
|
filters:
|
||
|
- name: replace
|
||
|
args: ["\t", " "]
|
||
|
- name: regexp
|
||
|
args: (.*)#torrent\d+$
|
||
|
size:
|
||
|
selector: td[class="number_column nobr"]
|
||
|
grabs:
|
||
|
selector: td[class="number_column nobr"] ~ td
|
||
|
files:
|
||
|
selector: td:nth-child(3)
|
||
|
seeders:
|
||
|
selector: td[class="number_column nobr"] ~ td ~ td
|
||
|
leechers:
|
||
|
selector: td[class="number_column nobr"] ~ td ~ td ~ td
|
||
|
date:
|
||
|
selector: td:nth-child(5) > span[title]
|
||
|
attribute: title
|
||
|
filters:
|
||
|
- name: replace
|
||
|
args: [",", ""]
|
||
|
- name: append
|
||
|
args: " +07:00" # ICT
|
||
|
- name: dateparse
|
||
|
args: "MMM dd yyyy HH:mm zzz"
|
||
|
downloadvolumefactor:
|
||
|
case:
|
||
|
"strong.blink_me:contains(\"Free\")": 0
|
||
|
"strong.blink_me:contains(\"50\")": 0.5
|
||
|
"strong.blink_me:contains(\"25\")": 0.75
|
||
|
"strong.blink_me:contains(\"75\")": 0.25
|
||
|
"*": 1
|
||
|
uploadvolumefactor:
|
||
|
case:
|
||
|
"strong.blink_me:contains(\"2x\")": 2
|
||
|
"*": 1
|
||
|
minimumratio:
|
||
|
text: 0.6
|
||
|
_release_info:
|
||
|
selector: div.torrent_info
|
||
|
remove: .torrent_label.red, .torrent_label.blink_me, .torrent_label:contains("User"), .torrent_label:contains("ViE"), .torrent_label:contains("Exclusive")
|
||
|
filters:
|
||
|
- name: re_replace
|
||
|
args: ["[\\s\\/]+$", ""]
|
||
|
- name: replace
|
||
|
args: [" / ", " "]
|
||
|
- name: re_replace
|
||
|
args: ["\\s+([\\w@\\.\\[\\]\\$\\-\\!\\u2122]+)$", " -$1"]
|
||
|
- name: re_replace
|
||
|
args: ["\\bEncode\\b", "Blu-Ray"]
|
||
|
- name: re_replace
|
||
|
args: ["\\b(H\\.264 )?Blu-ray\\b", "BR-DISK"]
|
||
|
- name: re_replace
|
||
|
args: ["\\bRemux\\b", "Blu-Ray Remux"]
|
||
|
- name: re_replace
|
||
|
args: ["\\s+", " "]
|
||
|
_release_info_music:
|
||
|
selector: div.torrent_info
|
||
|
remove: .torrent_label.red, .torrent_label.blink_me
|
||
|
filters:
|
||
|
- name: re_replace
|
||
|
args: ["[\\s\\/]+$", ""]
|
||
|
- name: replace
|
||
|
args: [" / ", " "]
|
||
|
- name: re_replace
|
||
|
args: ["\\s+", " "]
|
||
|
title:
|
||
|
selector: div.group_info
|
||
|
remove: span, div.tags, div.torrent_info
|
||
|
filters:
|
||
|
- name: re_replace
|
||
|
args: ["(?i)\\bSeason (\\d+)\\b", "S$1"]
|
||
|
- name: trim
|
||
|
- name: append
|
||
|
args: " {{ if eq .Result.category_id \"2\" }}{{ .Result._release_info_music }}{{ else }}{{ .Result._release_info }}{{ end }}"
|
||
|
# Gazelle
|