autobrr/internal/indexer/definitions/torrentleech.yaml
Frederick Robinson fef0da5711
feat(definitions): add expectations for test lines (#1257)
* factor out test helpers

* refactor, add tests for animebytes

* revert test refactor

* better name

* change format, migrate some examples

* migrated remaining test cases

* add comment about `Test` vs `Tests`

* refactor

* reorder expectations to match vars

* generate

* turn on strict unmarshalling, remove old `Test` from schema

* start modifying actual definitions

* done with the As

* Bs

* C, D

* E, F

* G, H, I, ... L

* M, N

* O, P

* R

* bonus error. without this, pattern/vars disagreement can panic.

* S

* T, U

* X.. Now we know our ABCs next time won't you sing with meeeee

* fix another test

* another driveby change

* be less strict parsing custom definitions

* fix(definitions): load custom definitions

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2023-11-18 15:41:39 +01:00

88 lines
2.5 KiB
YAML

---
#id: tracker01
name: TorrentLeech
identifier: torrentleech
description: TorrentLeech (TL) is a private torrent tracker for 0DAY / GENERAL.
language: en-us
urls:
- https://www.torrentleech.org/
- https://www.torrentleech.cc/
- https://www.torrentleech.me/
- https://www.tleechreload.org/
- https://www.tlgetin.cc/
privacy: private
protocol: torrent
supports:
- irc
- rss
# source: custom
settings:
- name: rsskey
type: secret
required: true
label: RSS key
help: "Go to your profile and copy your RSS key"
regex: /([\da-fA-F]{20})
irc:
network: TorrentLeech.org
server: irc.torrentleech.org
port: 7021
tls: true
channels:
- "#tlannounces"
announcers:
- _AnnounceBot_
settings:
- name: nick
type: text
required: true
label: Nick
help: Bot nick. Eg. user_bot
- name: auth.account
type: text
required: false
label: NickServ Account
help: NickServ account. Make sure to group your user and bot.
- name: auth.password
type: secret
required: false
label: NickServ Password
help: NickServ password
parse:
type: single
lines:
- tests:
- line: 'New Torrent Announcement: <PC :: Iso> Name:''debian live 10 6 0 amd64 standard iso'' uploaded by ''Anonymous'' - http://www.tracker01.test/torrent/000000'
expect:
category: 'PC :: Iso'
torrentName: debian live 10 6 0 amd64 standard iso
uploader: Anonymous
freeleech: ""
baseUrl: http://www.tracker01.test/
torrentId: "000000"
- line: 'New Torrent Announcement: <PC :: Iso> Name:''debian live 10 6 0 amd64 standard iso'' uploaded by ''Anonymous'' freeleech - http://www.tracker01.test/torrent/000000'
expect:
category: 'PC :: Iso'
torrentName: debian live 10 6 0 amd64 standard iso
uploader: Anonymous
freeleech: freeleech
baseUrl: http://www.tracker01.test/
torrentId: "000000"
pattern: New Torrent Announcement:\s*<([^>]*)>\s*Name:'(.*)' uploaded by '([^']*)'\s*(freeleech)*\s*-\s*(https?\:\/\/[^\/]+\/)torrent\/(\d+)
vars:
- category
- torrentName
- uploader
- freeleech
- baseUrl
- torrentId
match:
infourl: "/torrent/{{ .torrentId }}"
torrenturl: "/rss/download/{{ .torrentId }}/{{ .rsskey }}/{{ .torrentName }}.torrent"
encode:
- torrentName