--- id: afun name: AFUN description: "AFUN is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL" language: zh-CN type: private encoding: UTF-8 links: - https://www.ptlover.cc/ caps: categorymappings: - {id: 407, cat: TV/Sport, desc: "Sports/赛事"} - {id: 414, cat: TV, desc: "TV Shows/综艺"} - {id: 408, cat: Audio, desc: "HQ Audio/HQ音频"} - {id: 409, cat: Other, desc: "Misc/其他"} - {id: 407, cat: TV/Sport, desc: "TV Sport/体育"} - {id: 406, cat: Audio/Video, desc: "Music Videos/MV"} - {id: 403, cat: TV, desc: "TV Talk Shows/脱口秀"} - {id: 402, cat: TV, desc: "TV Series/电视剧"} - {id: 405, cat: TV/Anime, desc: "Anime/动画"} - {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"} - {id: 401, cat: Movies, desc: "Movies/电影"} modes: search: [q] 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: 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 HDBao 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: "Cherish your user account. Inactive accounts would be deleted based on the following rules:
  1. Veteran User or above would never be deleted.
  2. Elite User or above would never be deleted if parked (at User CP).
  3. Parked accounts would be deleted if users have not logged in for more than 400 days in a row.
  4. Unparked accounts would be deleted if users have not logged in for more than 150 days in a row.
" 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 }}" logout: "" securelogin: "" ssl: yes trackerssl: yes error: - selector: td.embedded:contains("失败") test: path: index.php selector: a[href="logout.php"] search: paths: - path: torrents.php inputs: $raw: "{{ range .Categories }}cat{{.}}=1&{{end}}" # searching in description causes HTTP 500 so we will not support doubanid searching search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}" # 0: include dead, 1: alive, 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: description, 3: uploader, 4: imdburl search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}" # 0: AND, 2: exact search_mode: 0 sort: "{{ .Config.sort }}" type: "{{ .Config.type }}" # Support in NexusPHP so bots don't pollute trending searches: notnewword: 1 rows: 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: selector: a[title][href^="details.php?id="] attribute: title optional: true default: "{{ .Result.title_default }}" 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:nth-child(4) > 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: td:nth-child(4):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: td:nth-child(5) seeders: selector: td:nth-child(6) leechers: selector: td:nth-child(7) grabs: selector: td:nth-child(8) 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, b, font, img, span minimumratio: text: 1.0 minimumseedtime: # 2 days (as seconds = 2 x 24 x 60 x 60) text: 172800 # NexusPHP v1.9.0 2025-02-06