---
id: pixelcove2fa
name: PixelCove2FA
description: "PixelCove2FA (Ultimate Gamer) is a Private Torrent Tracker for GAMES. Cookie Login for 2FA use."
language: en-US
type: private
encoding: UTF-8
links:
  - https://www.pixelcove.me/

caps:
  categorymappings:
    # Computer
    - {id: 10, cat: PC/Games, desc: "Windows"}
    - {id: 11, cat: PC/Mac, desc: "Macintosh"}
    - {id: 47, cat: PC, desc: "Linux"}
    - {id: 56, cat: PC, desc: "VR"}
    # Microsoft
    - {id: 14, cat: Console/XBox, desc: "Xbox"}
    - {id: 61, cat: Console/XBox 360, desc: "Xbox 360"}
    - {id: 62, cat: Console/XBox One, desc: "Xbox One"}
    # Sony
    - {id: 43, cat: Console/PS3, desc: "Playstation "}
    - {id: 63, cat: Console/PS3, desc: "Playstation 2"}
    - {id: 64, cat: Console/PS3, desc: "Playstation 3"}
    - {id: 67, cat: Console/PS4, desc: "Playstation 4"}
    - {id: 12, cat: Console/Other, desc: "PSN"}
    # Nintendo
    - {id: 57, cat: Console/Other, desc: "Gamecube"}
    - {id: 44, cat: Console/Wii, desc: "Wii"}
    - {id: 46, cat: Console/Wii, desc: "Wii U"}
    - {id: 76, cat: Console/Other, desc: "Switch"}
    # Handheld
    - {id: 15, cat: Console/NDS, desc: "DS"}
    - {id: 68, cat: Console/NDS, desc: "3DS"}
    - {id: 69, cat: Console/PSP, desc: "PSP"}
    - {id: 70, cat: Console/PS Vita, desc: "PSVita"}
    # Mobile
    - {id: 65, cat: PC/Mobile-iOS, desc: "iOS"}
    - {id: 49, cat: PC/Mobile-Android, desc: "Android"}
    - {id: 66, cat: PC/Mobile-Other, desc: "Windows Mobile"}
    # Reading
    - {id: 53, cat: Books, desc: "Books/Mags"}
    - {id: 60, cat: Books, desc: "Comics"}
    - {id: 17, cat: Books, desc: "Guides"}
    # Media
    - {id: 58, cat: Audio/Video, desc: "Gaming Videos"}
    - {id: 52, cat: Audio, desc: "OST"}
    - {id: 55, cat: Other, desc: "Time for a Break"}
    - {id: 81, cat: Audio/Video, desc: "Videos"}
    # Various
    - {id: 59, cat: Other, desc: "Mods"}
    - {id: 54, cat: Other, desc: "Updates/Fixes"}
    - {id: 71, cat: PC/0day, desc: "Applications/Tools"}
    - {id: 48, cat: Other, desc: "Retro"}
    - {id: 72, cat: Other, desc: "Board Games"}
    - {id: 75, cat: Other, desc: "Paper Crafting"}
    - {id: 77, cat: Other, desc: "Arcade"}
    - {id: 78, cat: Other, desc: "Other"}

  modes:
    search: [q]
    music-search: [q]
    book-search: [q]

settings:
  # using cookie method because login page can present second page for 2FA when enabled
  - name: cookie
    type: text
    label: Cookie
  - name: info_cookie
    type: info_cookie
  - name: freeleech
    type: checkbox
    label: Search freeleech only
    default: false
  - name: sort
    type: select
    label: Sort requested from site
    default: time
    options:
      time: created
      seeders: seeders
      size: size
  - name: type
    type: select
    label: Order requested from site
    default: desc
    options:
      desc: desc
      asc: asc
  - name: info_activity
    type: info
    label: Account Inactivity
    default: "You must login regularly to maintain an active account. For User and Member, you must login once every 4 months. For Power User, Master and Elite you must login once per year. If you fail to do this your account will be disabled."

login:
  method: cookie
  inputs:
    cookie: "{{ .Config.cookie }}"
  test:
    path: torrents.php
    selector: a.username

search:
  paths:
    # https://www.pixelcove.me/torrents.php?order_by=time&order_way=desc&filter_freeleech=1&searchtext=&action=advanced&title=&sizeall=&sizetype=gb&sizerange=0.01&filelist=&taglist=&autocomplete_toggle=1
    - path: torrents.php
  inputs:
    $raw: "{{ range .Categories }}filter_cat[{{.}}]=1&{{end}}"
    order_by: "{{ .Config.sort }}"
    order_way: "{{ .Config.type }}"
    action: advanced
    filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
    searchtext: ""
    title: "{{ .Keywords }}"
    filelist: ""
    taglist: ""

  rows:
    selector: table#torrent_table > tbody > tr[class^="torrent row"]:has(a[href*="action=download"])

  fields:
    download:
      selector: a[href^="torrents.php?action=download&id="]
      attribute: href
    description_tags:
      selector: div.tags
    description:
      case:
        span.icon_okay: "Verified: {{ .Result.description_tags }}"
        "*": "Unverified: {{ .Result.description_tags }}"
    title:
      selector: a[href^="/torrents.php?id="]
    category:
      selector: a[href*="filter_cat"]
      attribute: href
      filters:
        - name: regexp
          args: "\\[(\\d+?)\\]"
    details:
      selector: a[href^="/torrents.php?id="]
      attribute: href
    poster:
      selector: td:nth-child(2) > script
      filters:
        - name: regexp
          args: "src=\\\\\"(.*?)\\\\\""
        - name: re_replace
          args: ["\\\\(.)", "$1"]
        - name: replace
          args: ["/static/common/noartwork/noimage.png", ""]
    files:
      selector: td:nth-child(3)
    date_elapsed:
      # <td class="nobr"><span class="time" alt="1 month ago" title="1 month ago">Oct 01 2022, 18:41</span></td>
      selector: td:nth-child(5) > span:not(:contains("ago"))
      # auto adjusted by site account profile
      optional: true
      filters:
        - name: dateparse
          args: "MMM dd yyyy, HH:mm"
    date_added:
    # <td class="nobr"><span class="time" alt="Nov 17 2022, 01:44" title="Nov 17 2022, 01:44">13 hours ago</span></td>
      selector: td:nth-child(5) > span:contains("ago")
      attribute: title
      # auto adjusted by site account profile
      optional: true
      filters:
        - name: dateparse
          args: "MMM dd yyyy, HH:mm"
    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(6)
    grabs:
      selector: td:nth-child(7)
    seeders:
      selector: td:nth-child(8)
    leechers:
      selector: td:nth-child(9)
    downloadvolumefactor:
      case:
        img[src$="/freedownload.gif"]: 0
        "*": 1
    uploadvolumefactor:
      case:
        span.icon[title*="DoubleSeed"]: 2
        "img[alt=\"DoubleSeed\"]": 2
        "*": 1
    minimumratio:
      text: 0.5
# luminance
