From a32ad215cd22cb795d65fd96b0756c46f63edb5c Mon Sep 17 00:00:00 2001 From: Garfield69 Date: Sat, 6 Apr 2019 10:06:35 +1300 Subject: [PATCH] add SoundPark a semi-private russian site for music. #5022 downloading is untested. the site has an aggressive advert method and the dl link is only available ad-free to members or vip a newbie like me has to wait 1 week before becoming a member meanwhile the dl link redirects to ads randomly :-( --- README.md | 1 + src/Jackett.Common/Definitions/soundpark.yml | 129 +++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 src/Jackett.Common/Definitions/soundpark.yml diff --git a/README.md b/README.md index 347e451f6..2e17338ba 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/ * RuTracker * Sharewood * SkTorrent + * SoundPark * Union Fansub * Vanila * XtreMeZone (MYXZ) diff --git a/src/Jackett.Common/Definitions/soundpark.yml b/src/Jackett.Common/Definitions/soundpark.yml new file mode 100644 index 000000000..447b78be3 --- /dev/null +++ b/src/Jackett.Common/Definitions/soundpark.yml @@ -0,0 +1,129 @@ +--- + site: soundpark + name: SoundPark + description: "SoundPark Semi-Private RUSSIAN site dedicated to MUSIC." + language: ru-RU + type: semi-private + encoding: UTF-8 + links: + - https://soundpark-club.com/ + - https://soundpark-club.casa/ + + caps: + categories: + "Music": Audio + + modes: + search: [q] + + login: + path: login + method: form + form: form[action="/login"] + inputs: + username: "{{ .Config.username }}" + password: "{{ .Config.password }}" + returnto: "" + error: + - selector: div.stdmsg_text + test: + path: / + selector: a[href="/logout"] + + download: + selector: a[href^="/album/download-torrent/"] + + search: + paths: + - path: "{{if .Keywords}}search{{else}}music{{end}}" + inputs: + q: "{{ .Keywords }}" + num: 50 + + rows: + # first selector is for the music page (recent uploads) and the second selector is for the search page + selector: div[itemscope] > table.browse_albums, div.div-rellist + fields: + title: + selector: tr:nth-child(1) td:nth-child(1) h2 a, div h3 a + details: + selector: tr:nth-child(1) td:nth-child(1) h2 a, div h3 a + attribute: href + category: + text: "Music" + banner: + selector: tr:nth-child(2) td:nth-child(1) a img, div i img + attribute: src + optional: true + download: + selector: tr:nth-child(1) td:nth-child(1) h2 a, div h3 a + attribute: href + # dates come in two flavours: + # Russian, Spanish and English supported + date: + # fix for spanish yesterday, the time is not present + text: now + date: + # Today at 22:28:10 + # Yesterday at 10:18:40 + # Вчера в 10:18:40 + # Hoy a las 07:33:17 + selector: tr:nth-child(1) > td:nth-child(2) > div.details > span:nth-child(1):contains(":"), div > span.edit:contains(":") + optional: true + filters: + - name: replace + args: [" at ", " "] + - name: re_replace + args: ["Ayer a las|Вчера в", "Yesterday"] + - name: re_replace + args: ["Hoy a las|Сегодня в", "Today"] + date: + # 3 april 2019 + selector: tr:nth-child(1) > td:nth-child(2) > div.details > span:nth-child(1):not(:contains(":")), div > span.edit:not(:contains(":")) + optional: true + filters: + - name: re_replace + args: ["enero|января", "January"] + - name: re_replace + args: ["febrero|февраля", "February"] + - name: re_replace + args: ["marzo|марта ", "March"] + - name: re_replace + args: ["abril|апреля", "April"] + - name: re_replace + args: ["mayo|мая", "May"] + - name: re_replace + args: ["junio|июня", "June"] + - name: re_replace + args: ["julio|июля", "July"] + - name: re_replace + args: ["agosto|августа", "August"] + - name: re_replace + args: ["septiembre|сентября", "September"] + - name: re_replace + args: ["octubre|октября", "October"] + - name: re_replace + args: ["noviembre|ноября", "November"] + - name: re_replace + args: ["diciembre|декабря", "December"] + - name: dateparse + args: "2 January 2006" + size: + # search page does not have size. + text: "500 MB" + size: + # but today's page can, if the content fixed-length string contains a title that is not too long. + selector: tr:nth-child(2) td.descr meta + attribute: content + optional: true + filters: + - name: regexp + args: "Size: (.*?)," + seeders: + text: 1 + leechers: + text: 1 + downloadvolumefactor: + text: 1 + uploadvolumefactor: + text: 1