diff --git a/README.md b/README.md index 45d01b8c4..b361ac525 100644 --- a/README.md +++ b/README.md @@ -209,6 +209,7 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/ * 0day.kiev * 2 Fast 4 You + * 32Pages (32P) * 3ChangTrai (3CT) * 3D Torrents (3DT) * 3evils diff --git a/src/Jackett.Common/Definitions/32pages.yml b/src/Jackett.Common/Definitions/32pages.yml new file mode 100644 index 000000000..4f2df4cc6 --- /dev/null +++ b/src/Jackett.Common/Definitions/32pages.yml @@ -0,0 +1,140 @@ +# Because API is broken we use screen scraping instead of the generic Gazelle based approach +--- + site: 32pages + name: 32Pages + description: "32Pages (32P) is a Private Torrent Tracker for comic books/graphic novels" + language: en-us + type: private + encoding: UTF-8 + links: + - https://32pag.es/ + + caps: + categories: + "Comics": Books/Comics + + modes: + 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 2FA code box if you have enabled 2FA on the 32Pages Web Site. Otherwise just leave it empty." + - name: sort + type: select + label: Sort requested from site + default: "time" + options: + "time": "created" + "seeders": "seeders" + "size": "size" + "name": "title" + - name: type + type: select + label: Order requested from site + default: "desc" + options: + "desc": "desc" + "asc": "asc" + - name: info + type: info + label: Results Per Page + default: For best results, your search query has to be as specific as possible (only first 100 torrents will be displayed). + + login: + path: login + method: post + path: login.php + inputs: + username: "{{ .Config.username }}" + password: "{{ .Config.password }}" + twostep_pub: "{{ .Config.2facode }}" + keeploggedin: 1 + error: + - selector: "#formerror" + test: + path: torrents.php + selector: "#nav_userinfo" + + search: + paths: + - path: torrents.php + #site displays just 25 results per page, no profile options found to change this, so we attempt to fetch 4 pages + - path: torrents.php + inputs: + page: 2 + - path: torrents.php + inputs: + page: 3 + - path: torrents.php + inputs: + page: 4 + inputs: + searchstr: "{{ .Keywords }}" + order_by: "{{ .Config.sort}}" + order_way: "{{ .Config.type}}" + disablegrouping: 1 + + rows: + selector: table#torrent_table > tbody > tr[class^="torrent"] + + fields: + _grouptitle: + selector: a[href^="torrents.php?id="] + _language: + selector: img[class^="flag"] + attribute: alt + optional: true + title: + selector: a[title="View Torrent"] + filters: + - name: prepend + args: "{{.Result._grouptitle}} - " + - name: replace + args: ["/ /","/"] #removes slash left after freeleech images + - name: append + args: "{{if .Result._language}} [{{.Result._language}}]{{else}}{{end}}" + category: + text: Comics + details: + selector: a[title="View Torrent"] + attribute: href + download: + selector: a[title="Download"] + attribute: href + size: + selector: td[headers="browse_size"] + files: + selector: td[headers="browse_files"] + grabs: + selector: td[headers="browse_snatches"] + seeders: + selector: td[headers="browse_seeders"] + leechers: + selector: td[headers="browse_leechers"] + date: + selector: td[headers="browse_time"] > span[title] + attribute: title + filters: + - name: dateparse + args: "Apr 04 2020, 16:24" + downloadvolumefactor: + case: + img.fl-diamond: 0 + img.fl-sapphire: 0 + img.fl-emerald: 0 + img.fl-ruby: 0 + "*": 1 + uploadvolumefactor: + text: 1 +# gazelle