222 lines
6.7 KiB
YAML
222 lines
6.7 KiB
YAML
|
---
|
||
|
id: speedmasterhd
|
||
|
name: Speedmaster HD
|
||
|
description: "Speedmaster HD is a German Time based tracker for MOVIES / TV"
|
||
|
language: de-DE
|
||
|
type: private
|
||
|
encoding: UTF-8
|
||
|
links:
|
||
|
- https://speedmaster-hd.net/
|
||
|
|
||
|
caps:
|
||
|
categorymappings:
|
||
|
# 1080p
|
||
|
- {id: 131, cat: Movies/HD, desc: "Movies 1080p"}
|
||
|
- {id: 133, cat: Movies/HD, desc: "Movie Pack 1080p"}
|
||
|
- {id: 29, cat: TV/HD, desc: "Serien 1080p"}
|
||
|
- {id: 17, cat: TV/Documentary, desc: "Doku 1080p"}
|
||
|
- {id: 18, cat: XXX, desc: "XXX 1080p"}
|
||
|
- {id: 95, cat: TV/HD, desc: "Serien Packs 1080p"}
|
||
|
- {id: 138, cat: Movies/HD, desc: "x265 1080p"}
|
||
|
# 720p
|
||
|
- {id: 60, cat: Movies/HD, desc: "Movies 720p"}
|
||
|
- {id: 132, cat: Movies/HD, desc: "Movie Pack 720p"}
|
||
|
- {id: 30, cat: TV/HD, desc: "Serien 720p"}
|
||
|
- {id: 21, cat: TV/Documentary, desc: "Doku 720p"}
|
||
|
- {id: 22, cat: XXX, desc: "XXX 720p"}
|
||
|
- {id: 96, cat: TV/HD, desc: "Serien Packs 720p"}
|
||
|
- {id: 139, cat: Movies/HD, desc: "x265 720p"}
|
||
|
# 4K/2k
|
||
|
- {id: 129, cat: Movies/UHD, desc: "Remux 4K/2k"}
|
||
|
- {id: 130, cat: Movies/UHD, desc: "Untouched 4K/2k"}
|
||
|
- {id: 134, cat: Movies/UHD, desc: "UHD/2160p 4K/2k"}
|
||
|
- {id: 120, cat: Movies/UHD, desc: "Movies 4K/2k"}
|
||
|
- {id: 121, cat: TV/UHD, desc: "Serien 4K/2k"}
|
||
|
- {id: 122, cat: TV/Documentary, desc: "Doku 4K/2k"}
|
||
|
- {id: 123, cat: XXX, desc: "XXX 4K/2k"}
|
||
|
# 3D
|
||
|
- {id: 90, cat: Movies/3D, desc: "Untouched 3D"}
|
||
|
- {id: 87, cat: Movies/3D, desc: "1080p 3D"}
|
||
|
- {id: 92, cat: Movies/3D, desc: "720p 3D"}
|
||
|
- {id: 118, cat: TV/Documentary, desc: "Doku 3D"}
|
||
|
- {id: 97, cat: XXX, desc: "XXX 3D"}
|
||
|
# Audio
|
||
|
- {id: 135, cat: Audio/Audiobook, desc: "Audio A-Book/FLAC"}
|
||
|
- {id: 136, cat: Audio/Audiobook, desc: "Audio A-Book/MP3"}
|
||
|
- {id: 33, cat: Audio/Lossless, desc: "Audio Lossless"}
|
||
|
- {id: 124, cat: Audio/MP3, desc: "Audio Lossy"}
|
||
|
- {id: 125, cat: Audio, desc: "Audio Tonspur"}
|
||
|
# MusikVideo
|
||
|
- {id: 42, cat: Audio/Video, desc: "MusikVideo Untouched"}
|
||
|
- {id: 101, cat: Audio/Video, desc: "MusikVideo Remux"}
|
||
|
- {id: 43, cat: Audio/Video, desc: "MusikVideo 1080p"}
|
||
|
- {id: 44, cat: Audio/Video, desc: "MusikVideo 720p"}
|
||
|
# Untouched
|
||
|
- {id: 51, cat: Movies, desc: "Movies Untouched"}
|
||
|
- {id: 100, cat: TV, desc: "Serien Untouched"}
|
||
|
- {id: 99, cat: TV/Documentary, desc: "Doku Untouched"}
|
||
|
- {id: 102, cat: XXX, desc: "XXX Untouched"}
|
||
|
# Remux
|
||
|
- {id: 12, cat: Movies, desc: "Movies Remux"}
|
||
|
- {id: 126, cat: TV, desc: "Serien Remux"}
|
||
|
- {id: 11, cat: TV/Documentary, desc: "Doku Remux"}
|
||
|
- {id: 10, cat: XXX, desc: "XXX Remux"}
|
||
|
# Sonstiges
|
||
|
- {id: 49, cat: Other, desc: "Sonstiges RarFix"}
|
||
|
- {id: 93, cat: Other, desc: "Sonstiges HD-Pics"}
|
||
|
- {id: 94, cat: Other, desc: "Sonstiges HD-XXX Pics"}
|
||
|
- {id: 98, cat: Other, desc: "Sonstiges to sort"}
|
||
|
# E-Book
|
||
|
- {id: 103, cat: Books/EBook, desc: "E-Book Mixed"}
|
||
|
|
||
|
modes:
|
||
|
search: [q]
|
||
|
tv-search: [q, season, ep]
|
||
|
movie-search: [q]
|
||
|
music-search: [q]
|
||
|
book-search: [q]
|
||
|
|
||
|
settings:
|
||
|
- name: username
|
||
|
type: text
|
||
|
label: Username
|
||
|
- name: password
|
||
|
type: password
|
||
|
label: Password
|
||
|
- name: sort
|
||
|
type: select
|
||
|
label: Sort requested from site
|
||
|
default: added
|
||
|
options:
|
||
|
added: created
|
||
|
seeds: seeders
|
||
|
size: size
|
||
|
name: title
|
||
|
- name: type
|
||
|
type: select
|
||
|
label: Order requested from site
|
||
|
default: desc
|
||
|
options:
|
||
|
desc: desc
|
||
|
asc: asc
|
||
|
|
||
|
login:
|
||
|
path: login.php
|
||
|
method: form
|
||
|
form: form[action="login.php"]
|
||
|
cookies: ["JAVA=OK"] # avoid jscheck redirect
|
||
|
inputs:
|
||
|
input[id="username"]: "{{ .Config.username }}"
|
||
|
input[id="password"]: "{{ .Config.password }}"
|
||
|
input[name="loginkeeping"]: loginkeeping
|
||
|
input[name="loginnow"]: yes
|
||
|
selectors: true
|
||
|
selectorinputs:
|
||
|
uufl:
|
||
|
selector: input[name="uufl"]
|
||
|
attribute: value
|
||
|
uupf:
|
||
|
selector: input[name="uupf"]
|
||
|
attribute: value
|
||
|
error:
|
||
|
- selector: "div[style^=\"color: #EC0000;\"]"
|
||
|
test:
|
||
|
path: index.php
|
||
|
selector: a[href="logout.php"]
|
||
|
|
||
|
search:
|
||
|
paths:
|
||
|
- path: selection.php
|
||
|
inputs:
|
||
|
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||
|
search: "{{ .Keywords }}"
|
||
|
# 0 name, 1 descr, 2 both
|
||
|
blah: "0"
|
||
|
orderby: "{{ .Config.sort }}"
|
||
|
sort: "{{ .Config.type }}"
|
||
|
|
||
|
rows:
|
||
|
selector: div.content_wrap > div.selection_wrap:has(a[href^="details.php?id="])
|
||
|
|
||
|
fields:
|
||
|
category:
|
||
|
selector: a[href^="selection.php?cat="]
|
||
|
attribute: href
|
||
|
filters:
|
||
|
- name: querystring
|
||
|
args: cat
|
||
|
title:
|
||
|
selector: a[href^="details.php?id="]
|
||
|
details:
|
||
|
selector: a[href^="details.php?id="]
|
||
|
attribute: href
|
||
|
download:
|
||
|
selector: a[href^="download_ssl.php?torrent="]
|
||
|
attribute: href
|
||
|
imdbid:
|
||
|
selector: a[href*="imdb.com/title/tt"]
|
||
|
attribute: href
|
||
|
poster:
|
||
|
selector: div[id^="details-"] div div img
|
||
|
attribute: src
|
||
|
filters:
|
||
|
- name: replace
|
||
|
args: ["cloud-data/standard_cover/ebook_t.png", ""]
|
||
|
- name: replace
|
||
|
args: ["cloud-data/standard_cover/doku_t.png", ""]
|
||
|
- name: replace
|
||
|
args: ["cloud-data/standard_cover/serie_t.png", ""]
|
||
|
- name: replace
|
||
|
args: ["cloud-data/standard_cover/music_t.png", ""]
|
||
|
- name: replace
|
||
|
args: ["cloud-data/standard_cover/no_pic_t.png", ""]
|
||
|
- name: replace
|
||
|
args: ["cloud-data/standard_cover/xxx_t.png", ""]
|
||
|
description:
|
||
|
selector: div[class^="flag_pic_"]
|
||
|
attribute: onmouseover
|
||
|
filters:
|
||
|
- name: regexp
|
||
|
args: "'(.+?)'"
|
||
|
size:
|
||
|
selector: div.selection_unter_ad
|
||
|
grabs:
|
||
|
selector: div.selection_unter_ae
|
||
|
seeders:
|
||
|
selector: div.selection_unter_aa > b
|
||
|
leechers:
|
||
|
selector: div.selection_unter_aaa > b
|
||
|
date_day:
|
||
|
# Heute 03:27:27
|
||
|
# Gestern 21:00:59
|
||
|
selector: div.selection_unter_ab:contains("Heute"), div.selection_unter_ab:contains("Gestern")
|
||
|
optional: true
|
||
|
filters:
|
||
|
- name: replace
|
||
|
args: ["Heute ", "Today"]
|
||
|
- name: replace
|
||
|
args: ["Gestern ", "Yesterday"]
|
||
|
- name: fuzzytime
|
||
|
date_year:
|
||
|
# 03.03.2020 um 23:31:52
|
||
|
selector: div.selection_unter_ab:not(:contains("Heute")):not(:contains("Gestern"))
|
||
|
optional: true
|
||
|
filters:
|
||
|
- name: append
|
||
|
args: " +01:00" # CET
|
||
|
- name: replace
|
||
|
args: ["um ", ""]
|
||
|
- name: dateparse
|
||
|
args: "dd.MM.yyyy HH:mm:ss zzz"
|
||
|
date:
|
||
|
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
|
||
|
downloadvolumefactor:
|
||
|
text: 1
|
||
|
uploadvolumefactor:
|
||
|
text: 1
|
||
|
minimumratio:
|
||
|
text: 1.0
|
||
|
minimumseedtime:
|
||
|
text: 288000 # 80h
|
||
|
# THX custom
|