--- id: ptlsp name: PTLSP description: "PTLSP is a CHINESE Private Torrent Tracker for MOVIES / TV / GENERAL" language: zh-CN type: private encoding: UTF-8 links: - https://www.ptlsp.com/ caps: categorymappings: - {id: 414, cat: Other, desc: "Ai(人工智能)"} - {id: 401, cat: Movies, desc: "Movie(电影)"} - {id: 402, cat: TV, desc: "TV Series(电视剧)"} - {id: 405, cat: TV/Anime, desc: "Anime(动画)"} - {id: 411, cat: Audio, desc: "Music(音乐)"} - {id: 416, cat: Books/Comics, desc: "Comic(漫画)"} - {id: 406, cat: Audio/Video, desc: "MV(演唱)"} - {id: 412, cat: PC/0day, desc: "Software(软件)"} - {id: 413, cat: PC/Games, desc: "Game(游戏)"} - {id: 403, cat: TV, desc: "TV Shows(综艺)"} - {id: 404, cat: TV/Documentary, desc: "Documentaries(纪录片)"} - {id: 407, cat: TV/Sport, desc: "Sports(体育)"} - {id: 408, cat: Audio, desc: "Audio(音频)"} - {id: 415, cat: Books/EBook, desc: "E-Booko(电子书/有声书)"} - {id: 417, cat: Other, desc: "学习资料(Education)"} - {id: 409, cat: Other, desc: "Misc(其他)"} modes: search: [q] tv-search: [q, season, ep, imdbid, doubanid] movie-search: [q, imdbid, doubanid] music-search: [q] book-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 PTLSP 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 packed (at User CP).
  3. Packed accounts would be deleted if users have not logged in for more than 400 days in a row.
  4. Unpacked accounts would be deleted if users have not logged in for more than 150 days in a row.
  5. Accounts with both uploaded and downloaded amount being 0 would be deleted if users have not logged in for more than 7 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:has(h2:contains("失败")) message: selector: td.text 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, 2 exact search_mode: 0 sort: "{{ .Config.sort }}" type: "{{ .Config.type }}" notnewword: 1 rows: selector: table.torrents > tbody > tr:has(table.torrentname) 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_verified: case: span[title="通过"], span[title="通過"], span[title="Allowed"]: "Verified:" span[title="未审"], span[title="未審"], span[title="Not reviewed"]: "Unverified:" span[title="拒绝"], span[title="拒絕"], span[title="Denied"]: "Banned:" description: selector: td:nth-child(2) remove: a, b, font, img, span filters: - name: prepend args: "{{ .Result.description_verified }} " # NexusPHP v1.8.8 2023-09-25