--- id: hhanclub name: HHanClub description: "HHanClub is a CHINESE Private Torrent Tracker for HD MOVIES / TV" language: zh-CN type: private encoding: UTF-8 links: - https://hhanclub.top/ caps: categorymappings: - {id: 408, cat: Audio, desc: "HQ Audio"} - {id: 409, cat: Other, desc: "其他"} - {id: 407, cat: TV/Sport, desc: "Sports"} - {id: 406, cat: Audio/Video, desc: "MV"} - {id: 403, cat: TV, desc: "综艺"} - {id: 402, cat: TV, desc: "电视剧"} - {id: 405, cat: TV/Anime, desc: "动漫"} - {id: 404, cat: TV/Documentary, desc: "纪录片"} - {id: 401, cat: Movies, desc: "电影"} modes: search: [q] tv-search: [q, season, ep, imdbid, doubanid] movie-search: [q, imdbid, doubanid] music-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 HHanClub 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. - name: info_activity type: info label: Account Inactivity default: "Account retention rules:
  1. Ultimate User and above will be retained forever
  2. Veteran Users and above will not be deleted after parking (in the control panel)
  3. Users with a parked account will be banned if they do not log in for 400 consecutive days
  4. Users who do not log in for 30 consecutive days will be banned
  5. Newly registered users with no traffic within 7 days, will be banned.
" login: 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 }}" ssl: yes trackerssl: yes error: - 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 }}{{ 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 # 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 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, 1 OR, 2 exact search_mode: 0 sort: "{{ .Config.sort }}" type: "{{ .Config.type }}" notnewword: 1 rows: selector: div.w-full:has(a[href^="details.php?id="]) fields: category: selector: a[href^="?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.php?id="] 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: div.torrent-info-text:nth-child(2) > span[title] attribute: title optional: true filters: - name: append args: " +08:00" # CST - name: dateparse args: "yyyy-MM-dd HH:mm:ss zzz" date_added: # time added selector: div.torrent-info-text:nth-child(2):not(:has(span)) optional: true filters: - name: append args: " +08:00" # CST - name: dateparse args: "yyyy-MM-ddHH:mm:ss zzz" date: text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}" size: selector: div.torrent-info-text:nth-child(1) seeders: selector: div.torrent-info-text:nth-child(3) leechers: selector: div.torrent-info-text:nth-child(4) grabs: selector: div.torrent-info-text:nth-child(5) downloadvolumefactor: case: span.promotion-tag-free: 0 span.promotion-tag-free2up: 0 span.promotion-tag-50pctdown: 0.5 span.promotion-tag-50pctdown2up: 0.5 span.promotion-tag-30pctdown: 0.3 "*": 1 uploadvolumefactor: case: span.promotion-tag-50pctdown2up: 2 span.promotion-tag-free2up: 2 span.promotion-tag-2up: 2 "*": 1 minimumratio: text: 1.0 minimumseedtime: # 1 day (as seconds = 24 x 60 x 60) text: 86400 description: selector: div.torrent-title > div > div # NexusPHP v1.8.6 2023-08-15 (customised)