diff --git a/src/Jackett.Common/Definitions/hd4fans.yml b/src/Jackett.Common/Definitions/hd4fans.yml
index 667d0e57a..cbffdbdb8 100644
--- a/src/Jackett.Common/Definitions/hd4fans.yml
+++ b/src/Jackett.Common/Definitions/hd4fans.yml
@@ -22,8 +22,8 @@ caps:
modes:
search: [q]
- tv-search: [q, season, ep, imdbid]
- movie-search: [q, imdbid]
+ tv-search: [q, season, ep, imdbid, doubanid]
+ movie-search: [q, imdbid, doubanid]
music-search: [q]
settings:
@@ -33,30 +33,57 @@ settings:
- 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 Free Farm Web Site. Otherwise just leave it empty."
- name: freeleech
type: checkbox
label: Search freeleech only
default: false
+ - 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
- name: info_tpp
type: info
label: Results Per Page
default: For best results, change the Torrents per page: setting to 100 on your account profile.
login:
- path: takelogin.php
- method: post
- cookies: ["c_lang_folder=en"]
+ path: login.php
+ method: form
+ form: form[action="takelogin.php"]
+ captcha:
+ type: image
+ selector: img[alt="CAPTCHA"]
+ input: imagestring
inputs:
+ secret: ""
username: "{{ .Config.username }}"
password: "{{ .Config.password }}"
+ two_step_code: "{{ .Config.2facode }}"
logout: ""
securelogin: ""
ssl: yes
trackerssl: yes
error:
- selector: td.embedded:has(h2:contains("失败"))
- message:
- selector: td.text
test:
path: index.php
selector: a[href="logout.php"]
@@ -66,21 +93,29 @@ search:
- 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
+ search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }} {{ else }}{{ .Keywords }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}"
+ # 0 incldead, 1 active, 2 dead
incldead: 0
- # show promotions: 0=all, 1=normal, 2=free, 3=2x, 4=2xFree, 5=50%, 6=2x50%, 7=30%
+ # 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
- # 0=title, 1=descr, 3=uploader, 4=imdb URL
- search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
- # 0=AND, 1=OR, 2=Exact
+ # 0 title, 1 descr, 3 uploader, 4 imdburl
+ search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
+ # 0 AND, 2 exact
search_mode: 0
+ sort: "{{ .Config.sort }}"
+ type: "{{ .Config.type }}"
notnewword: 1
rows:
- selector: table.torrents > tbody > tr:has(table.torrentname)
+ selector: table.torrents > tbody > tr:has(a[href^="download.php?id="])
fields:
+ category:
+ selector: a[href^="?cat="]
+ attribute: href
+ filters:
+ - name: querystring
+ args: cat
title_default:
selector: a[href^="details.php?id="]
title:
@@ -88,18 +123,23 @@ search:
attribute: title
optional: true
default: "{{ .Result.title_default }}"
- category:
- selector: a[href^="?cat="]
- attribute: href
- filters:
- - name: querystring
- args: cat
details:
selector: a[href^="details.php?id="]
attribute: href
download:
selector: a[href^="download.php?id="]
attribute: href
+ poster:
+ selector: img[data-src]
+ attribute: data-src
+ imdbid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="imdb.com/title/tt"]
+ attribute: href
+ doubanid:
+ # site currently only has a badge and rating, the id is not present. just in case a future update.
+ selector: a[href*="movie.douban.com/subject/"]
+ attribute: href
date_elapsed:
# time type: time elapsed (default)
selector: td.rowfollow:nth-child(4) > span[title]
@@ -146,4 +186,4 @@ search:
description:
selector: td.rowfollow:nth-child(2)
remove: a, b, font, img, span
-# NexusPHP Standard v1.5 Beta 4
+# NexusPHP v1.8.8 2023-09-25