--- id: spiritofrevolution name: Spirit of Revolution description: "Spirit of Revolution is a German Time based tracker for 0DAY" language: de-DE type: private encoding: UTF-8 links: - https://sor-next.tk/ caps: categorymappings: - {id: 30, cat: Movies/SD, desc: "Filme SD"} - {id: 134, cat: Movies/HD, desc: "Filme HD"} - {id: 138, cat: Movies/BluRay, desc: "Filme BluRay"} - {id: 137, cat: Movies, desc: "Filme Remux"} - {id: 160, cat: Movies/UHD, desc: "Filme 4K/UHD"} - {id: 186, cat: Movies/Foreign, desc: "Filme Englisch-SD-HD"} - {id: 143, cat: Movies/3D, desc: "Filme 3D"} - {id: 133, cat: Movies/DVD, desc: "Filme DVD"} - {id: 182, cat: Movies/SD, desc: "Filme Pack/SD"} - {id: 183, cat: Movies/HD, desc: "Filme Pack/HD"} - {id: 174, cat: TV/Anime, desc: "Filme Anime"} - {id: 140, cat: TV/SD, desc: "Serien SD"} - {id: 135, cat: TV/HD, desc: "Serien HD"} - {id: 136, cat: TV/SD, desc: "Serien Pack/SD"} - {id: 180, cat: TV/HD, desc: "Serien Pack/HD"} - {id: 184, cat: TV/UHD, desc: "Serien Pack/UHD"} - {id: 179, cat: TV/Anime, desc: "Serien Anime"} - {id: 128, cat: Audio/MP3, desc: "Audio MP3/AAC"} - {id: 169, cat: Audio, desc: "Audio Pack"} - {id: 129, cat: Audio/Lossless, desc: "Audio FLAC"} - {id: 175, cat: Audio/Video, desc: "Audio Musikvideos"} - {id: 172, cat: Audio, desc: "Audio Charts"} - {id: 154, cat: Audio/Audiobook, desc: "Audio Hoerbuch"} - {id: 29, cat: PC/Games, desc: "Games PC"} - {id: 13, cat: Console, desc: "Games Konsole"} - {id: 150, cat: Console/Other, desc: "Games Android"} - {id: 49, cat: PC/0day, desc: "APPZ Windows"} - {id: 130, cat: PC/Mac, desc: "APPZ Mac/Linux"} - {id: 153, cat: PC/Mobile-Android, desc: "APPZ Android"} - {id: 132, cat: Books, desc: "E-Book Epub"} - {id: 131, cat: Books, desc: "E-Book PDF"} - {id: 173, cat: TV/Documentary, desc: "Dokus Packs"} - {id: 147, cat: TV/Documentary, desc: "Dokus SD / HD"} - {id: 22, cat: XXX, desc: "XXX Filme"} - {id: 176, cat: XXX, desc: "XXX Packs"} - {id: 185, cat: XXX, desc: "XXX PDF/Epub"} - {id: 156, cat: TV/Sport, desc: "Sport SD / HD"} - {id: 177, cat: Other, desc: "Sonstiges Alles andere"} modes: search: [q] tv-search: [q, season, ep, imdbid] movie-search: [q, imdbid] music-search: [q] book-search: [q] settings: - name: username type: text label: Username - name: password type: password label: Password - name: sort type: select label: Sort requested from site default: 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: haustuer.php method: form form: form[action="haustuer.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: "{{ if .Categories }}{{ range .Categories }}scat[]={{.}}&{{end}}{{ else }}{{ end }}" search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # 0 name, 1 descr, 2 both, 3 imdb blah: "{{ if .Query.IMDBID }}3{{ else }}0{{ end }}" 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 description: selector: div[class^="flag_pic_"] attribute: onmouseover filters: - name: regexp args: "'(.+?)'" size: selector: div.selection_unter_ad grabs: selector: div.selection_unter_ae filters: - name: replace args: [" x", ""] 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: 172800 # 2 day (48h) # THX custom