autobrr/internal/indexer/definitions/torrentbytes.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

79 lines
2.1 KiB
YAML

---
#id: tby
name: TorrentBytes
identifier: torrentbytes
description: TorrentsBytes (TBy) is a private torrent tracker for GENERAL
language: en-us
urls:
- https://torrentbytes.net/
privacy: private
protocol: torrent
supports:
- irc
- rss
# source: custom
settings:
- name: cookie
type: secret
required: true
label: Cookie
help: "Check how to get cookies in your browser and find the uid and pass cookies. Example: uid=1234; pass=asdf12347asdf13"
irc:
network: TorrentBytes
server: irc.torrentbytes.ninja
port: 7000
tls: true
channels:
- "#torrentbytes-announce"
announcers:
- ByteMe
settings:
- name: nick
type: text
required: true
label: Nick
help: Bot nick. Eg. user-bot
- name: auth.account
type: text
required: true
label: NickServ Account
help: NickServ account. Make sure to group your user and bot.
- name: auth.password
type: secret
required: true
label: NickServ Password
help: NickServ password
- name: invite_command
type: secret
default: "erica letmeinannounce USERNAME IRCKEY"
required: true
label: Invite command
help: Invite auth with Erica, please replace USERNAME and IRCKEY.
parse:
type: single
lines:
- tests:
- line: '[TB-RLS] .:. [ The.New.Game-GROUP ] .:. [ https://www.torrentbytes.net/download.php?id=0000000 ] .:. [ https://www.torrentbytes.net/details.php?id=0000000 ] .:. [ Uploaded 2 minutes, 12 seconds after pre ]'
expect:
torrentName: The.New.Game-GROUP
baseUrl: https://www.torrentbytes.net/
torrentId: "0000000"
preTime: '2 minutes, 12 seconds after pre '
pattern: '^\[TB-RLS\] \.:\. \[ (.*) \] \.:\. \[ (https?\:\/\/.*\/).*id=(\d+).*https?\:\/\/(?:.*\[ Uploaded (.*)\])?'
vars:
- torrentName
- baseUrl
- torrentId
- preTime
match:
infourl: "/details.php?id={{ .torrentId }}"
torrenturl: "/download.php?id={{ .torrentId }}&name={{ .torrentName }}.torrent"
# cookie: true
encode:
- torrentName