From 3b7d9b0947b0292876316005560f2eb22d77b1c0 Mon Sep 17 00:00:00 2001 From: Garfield69 Date: Mon, 4 May 2020 17:14:23 +1200 Subject: [PATCH] add soulvoice a Chinese private site. resolves #8451 --- README.md | 1 + src/Jackett.Common/Definitions/soulvoice.yml | 162 +++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 src/Jackett.Common/Definitions/soulvoice.yml diff --git a/README.md b/README.md index 434202528..3cf608d52 100644 --- a/README.md +++ b/README.md @@ -459,6 +459,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/ * Shellife (SL) * SiamBIT * SnowPT (SSPT) + * SoulVoice * SpaceTorrent * SpeedCD * Speedmaster HD diff --git a/src/Jackett.Common/Definitions/soulvoice.yml b/src/Jackett.Common/Definitions/soulvoice.yml new file mode 100644 index 000000000..f76908569 --- /dev/null +++ b/src/Jackett.Common/Definitions/soulvoice.yml @@ -0,0 +1,162 @@ +--- + site: soulvoice + name: SoulVoice + description: "SoulVoice is a CHINESE Private Torrent Tracker for Movies, TV, and e-Learning" + language: zh-cn + type: private + encoding: UTF-8 + links: + - https://pt.soulvoice.club/ + + caps: + categorymappings: + - {id: 407, cat: Other, desc: "Study/教学"} + - {id: 401, cat: Movies, desc: "Movies/电影"} + - {id: 402, cat: TV, desc: "TV Series/电视剧"} + - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"} + - {id: 405, cat: TV/Anime, desc: "Animations/动漫"} + - {id: 403, cat: TV, desc: "TV Show/综艺"} + - {id: 406, cat: Audio/Video, desc: "MusicVideo/音乐视频"} + - {id: 408, cat: Audio, desc: "HQ Audio/音乐"} + - {id: 409, cat: Other, desc: "其它 (Other)"} + + modes: + search: [q, imdbid] + 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: sort + type: select + label: Sort requested from site + default: "4" + options: + "4": "created" + "7": "seeders" + "5": "size" + "1": "title" + - name: type + type: select + label: Order requested from site + default: "desc" + options: + "desc": "desc" + "asc": "asc" + + login: + path: login.php + method: form + form: form[action="takelogin.php"] + captcha: + type: image + selector: img[alt="CAPTCHA"] + input: imagestring + inputs: + username: "{{ .Config.username }}" + password: "{{ .Config.password }}" + ssl: yes + tracker: yes + logout: "" + securelogin: "" + error: + - selector: td.embedded:has(h2:contains("失败")) + - 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}}{{ .Keywords }}{{end}}" + # 0 incldead 1 active 2 dead + incldead: 0 + # 0 all 1 normal 2 free 3 2x 4 2xfree 5 50% 6 2x50% 7 30% + spstate: 0 + # 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 }}" + + rows: + selector: table.torrents > tbody > tr:has(table.torrentname) + + fields: + category: + selector: a[href^="?cat="] + attribute: href + filters: + - name: querystring + args: cat + title: + selector: a[href^="details.php?id="] + title: + optional: true + selector: a[title][href^="details.php?id="] + attribute: title + details: + selector: a[href^="details.php?id="] + attribute: href + download: + selector: a[href^="download.php?id="] + attribute: href + imdb: + optional: true + selector: a[href*="www.imdb.com/title/tt"] + attribute: href + date: + # time type: time elapsed (default) + selector: td.rowfollow:nth-last-of-type(7) > span[title] + attribute: title + optional: true + filters: + - name: append + args: " +08:00" + - name: dateparse + args: "2006-01-02 15:04:05 -07:00" + date: + # time added + selector: td.rowfollow:nth-last-of-type(7):not(:has(span)) + optional: true + filters: + - name: append + args: " +08:00" + - name: dateparse + args: "2006-01-0215:04:05 -07:00" + size: + selector: td.rowfollow:nth-last-of-type(6) + seeders: + selector: td.rowfollow:nth-last-of-type(5) + leechers: + selector: td.rowfollow:nth-last-of-type(4) + grabs: + selector: td.rowfollow:nth-last-of-type(3) + downloadvolumefactor: + case: + img.pro_free: 0 + img.pro_free2up: 0 + img.pro_50pctdown: 0.5 + img.pro_50pctdown2up: 0.5 + img.pro_30pctdown: 0.3 + "*": 1 + uploadvolumefactor: + case: + img.pro_50pctdown2up: 2 + img.pro_free2up: 2 + img.pro_2up: 2 + "*": 1 + description: + selector: td:nth-child(2) + remove: a, img +# NexusPHP Standard v1.5 Beta 5