---
id: learnbits
name: LearnBits
description: "LearnBits is a Private Torrent Tracker for E-LEARNING"
language: en-US
type: private
encoding: UTF-8
links:
  - http://www.learnbits.me/

caps:
  categorymappings:
    - {id: 7, cat: TV/Documentary, desc: "Documentary"}
    - {id: 83, cat: TV/Documentary, desc: "Documentary - Architecture"}
    - {id: 61, cat: TV/Documentary, desc: "Documentary - Biography"}
    - {id: 76, cat: TV/Documentary, desc: "Documentary - Culture"}
    - {id: 75, cat: TV/Documentary, desc: "Documentary - EarthScience"}
    - {id: 67, cat: TV/Documentary, desc: "Documentary - History"}
    - {id: 80, cat: TV/Documentary, desc: "Documentary - MilitaryWar"}
    - {id: 81, cat: TV/Documentary, desc: "Documentary - Politics"}
    - {id: 82, cat: TV/Documentary, desc: "Documentary - Technology"}
    - {id: 77, cat: TV/Documentary, desc: "Documentary - Travel"}
    - {id: 74, cat: TV/Documentary, desc: "Documentary - Wildlife"}
    - {id: 79", cat: TV/Documentary, desc: "Documentary Channels"}
    - {id: 65, cat: TV/Documentary, desc: "Documentary Channels - BBC"}
    - {id: 69, cat: TV/Documentary, desc: "Documentary Channels - Discovery"}
    - {id: 56, cat: TV/Documentary, desc: "Documentary Channels - HistoryChannel"}
    - {id: 55, cat: TV/Documentary, desc: "Documentary Channels - NationalGeo"}
    - {id: 73, cat: TV/Documentary, desc: "Documentary Channels - PBS"}
    - {id: 78, cat: TV/Documentary, desc: "Documentary Series"}
    - {id: 58, cat: TV/Documentary, desc: "Documentary Series - AnimalPlanet"}
    - {id: 66, cat: TV/Documentary, desc: "Documentary Series - ExtremeWorld"}
    - {id: 70, cat: TV/Documentary, desc: "Documentary Series - Frontline"}
    - {id: 62, cat: TV/Documentary, desc: "Documentary Series - Horizon"}
    - {id: 59, cat: TV/Documentary, desc: "Documentary Series - HowItIsMade"}
    - {id: 10, cat: TV/Documentary, desc: "Documentary Series - MegaFactories"}
    - {id: 57, cat: TV/Documentary, desc: "Documentary Series - ModernMarvels"}
    - {id: 63, cat: TV/Documentary, desc: "Documentary Series - NaturalWorld"}
    - {id: 71, cat: TV/Documentary, desc: "Documentary Series - NatureOfThings"}
    - {id: 54, cat: TV/Documentary, desc: "Documentary Series - Nova"}
    - {id: 72, cat: TV/Documentary, desc: "Documentary Series - PBSNature"}
    - {id: 68, cat: TV/Documentary, desc: "Documentary Series - ThroughTheWormhole"}
    - {id: 60, cat: Other, desc: "General-Education"}
    - {id: 34, cat: Other, desc: "General-Education - 3D-4D"}
    - {id: 49, cat: Books/EBook, desc: "General-Education - Biographies"}
    - {id: 3, cat: Books/EBook, desc: "General-Education - Business"}
    - {id: 6, cat: Other, desc: "General-Education - Digital-Art"}
    - {id: 36, cat: Other, desc: "General-Education - Early-Learning"}
    - {id: 42, cat: Other, desc: "General-Education - Electronics"}
    - {id: 48, cat: Other, desc: "General-Education - Graphic-Arts"}
    - {id: 25, cat: Books/EBook, desc: "General-Education - History"}
    - {id: 16, cat: Other, desc: "General-Education - Languages"}
    - {id: 4, cat: Other, desc: "General-Education - Legal"}
    - {id: 20, cat: Other, desc: "General-Education - Math"}
    - {id: 21, cat: Other, desc: "General-Education - Medical"}
    - {id: 41, cat: Other, desc: "General-Education - Philosophy"}
    - {id: 53, cat: Other, desc: "General-Education - Photography"}
    - {id: 45, cat: Other, desc: "General-Education - Politics"}
    - {id: 39, cat: Other, desc: "General-Education - Psychology"}
    - {id: 50, cat: Other, desc: "General-Education - Science"}
    - {id: 35, cat: Other, desc: "General-Education - Trade-Skills"}
    - {id: 38, cat: Other, desc: "General-Education - Writing"}
    - {id: 46, cat: Other, desc: "Computer Science"}
    - {id: 5, cat: Other, desc: "General-Education - Database"}
    - {id: 9, cat: Other, desc: "General-Education - Exam-Guides"}
    - {id: 11, cat: Other, desc: "General-Education - Forensics"}
    - {id: 14, cat: Other, desc: "General-Education - IT-Manager"}
    - {id: 15, cat: Other, desc: "General-Education - IT-Security"}
    - {id: 17, cat: Other, desc: "General-Education - Linux-Unix"}
    - {id: 18, cat: Other, desc: "General-Education - Mac-Apple"}
    - {id: 31, cat: Other, desc: "General-Education - Microsoft"}
    - {id: 22, cat: Other, desc: "General-Education - Network"}
    - {id: 26, cat: Other, desc: "General-Education - Programming"}
    - {id: 27, cat: Other, desc: "General-Education - Server-Admin"}
    - {id: 29, cat: Other, desc: "General-Education - VOIP"}
    - {id: 30, cat: Other, desc: "General-Education - Web-Design"}
    - {id: 64, cat: Other, desc: "Just-4-Fun"}
    - {id: 51, cat: Other, desc: "Just-4-Fun - Culinary"}
    - {id: 12, cat: Other, desc: "Just-4-Fun - Fitness"}
    - {id: 13, cat: Other, desc: "Just-4-Fun - Hobbies"}
    - {id: 47, cat: Other, desc: "Just-4-Fun - Horticulture"}
    - {id: 33, cat: Other, desc: "Just-4-Fun - International"}
    - {id: 19, cat: Books/Mags, desc: "Just-4-Fun - Magazines"}
    - {id: 52, cat: Other, desc: "Just-4-Fun - Magic"}
    - {id: 32, cat: Other/Misc, desc: "Just-4-Fun - Miscellaneous"}
    - {id: 23, cat: Other, desc: "Just-4-Fun - Music-Dance"}
    - {id: 24, cat: Other, desc: "Just-4-Fun - Personal Growth"}
    - {id: 28, cat: Other, desc: "Just-4-Fun - Sports-Self-Defence"}
    - {id: 37, cat: Other, desc: "Just-4-Fun - VIP"}

  modes:
    search: [q]
    tv-search: [q, season, ep]
    book-search: [q]

settings:
  - name: username
    type: text
    label: Username
  - name: password
    type: password
    label: Password
  - name: sort
    type: select
    label: Sort requested from site
    default: added
    options:
      added: created
      seeders: seeders
      size: size
  - name: type
    type: select
    label: Order requested from site
    default: DESC
    options:
      DESC: desc
      ASC: asc

login:
  path: login.php
  method: form
  form: form[action="takelogin.php"]
  captcha:
    type: image
    selector: img#regimage
    input: security_code
  inputs:
    username: "{{ .Config.username }}"
    password: "{{ .Config.password }}"
  error:
    - selector: table:contains("An error has occured!")
  test:
    path: index.php
    selector: a[href*="/logout.php?logouthash="]

search:
  paths:
    - path: browse.php
      method: post
  keywordsfilters:
    - name: re_replace
      args: ["[^a-zA-Z0-9]+", "%"]
  inputs:
    do: search
    keywords: "{{ .Keywords }}"
    # t_name, t_description, t_both, t_uploader, t_genre
    search_type: t_name
    # does not support multi categories so defaulting to ALL
    category: 0
    sortby: "{{ .Config.sort }}"
    orderby: "{{ .Config.type }}"

  rows:
    selector: div#showcontents > table > tbody > tr:has(a[href])

  fields:
    category:
      selector: a[href*="/browse.php?browse_categories"]
      attribute: href
      filters:
        - name: querystring
          args: category
    title:
      selector: a[href*="/details.php?id="] > b
    details:
      selector: a[href*="/details.php?id="]
      attribute: href
    download:
      selector: a[href*="/download.php?id="]
      attribute: href
    files:
      selector: td:nth-child(4)
    seeders:
      selector: td:nth-child(6)
    leechers:
      selector: td:nth-child(7)
    grabs:
      selector: td:nth-child(8) > b
    downloadvolumefactor:
      case:
        img[src$="/external.gif"]: 0
        img[src$="/freedownload.gif"]: 0
        img[src$="/silverdownload.gif"]: 0.5
        "*": 1
    uploadvolumefactor:
      case:
        img[src$="/x2.gif"]: 2
        "*": 1
    size:
      selector: td:nth-child(8)
      remove: b
    date_day:
      selector: td:nth-child(2):contains("day ")
      optional: true
      remove: a, b, img, span
      filters:
        - name: append
          args: " +00:00" # auto adjusted by site account profile
        - name: fuzzytime
    date_year:
      # 2021-07-16 09:30 PM
      selector: td:nth-child(2):not(:contains("day "))
      optional: true
      remove: a, b, img, span
      filters:
        - name: append
          args: " +00:00" # auto adjusted by site account profile
        - name: dateparse
          args: "2006-01-02 03:04 PM -07:00"
    date:
      text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
    minimumratio:
      text: 1.0
# TS Special Edition
