mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 08:49:13 +00:00
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>
This commit is contained in:
parent
e842a7bd42
commit
fef0da5711
83 changed files with 1887 additions and 565 deletions
|
@ -207,11 +207,16 @@ type IndexerIRCParse struct {
|
|||
Match IndexerIRCParseMatch `json:"match"`
|
||||
}
|
||||
|
||||
type LineTest struct {
|
||||
Line string `json:"line"`
|
||||
Expect map[string]string `json:"expect"`
|
||||
}
|
||||
|
||||
type IndexerIRCParseLine struct {
|
||||
Test []string `json:"test"`
|
||||
Pattern string `json:"pattern"`
|
||||
Vars []string `json:"vars"`
|
||||
Ignore bool `json:"ignore"`
|
||||
Tests []LineTest `json:"tests"`
|
||||
Pattern string `json:"pattern"`
|
||||
Vars []string `json:"vars"`
|
||||
Ignore bool `json:"ignore"`
|
||||
}
|
||||
|
||||
type IndexerIRCParseMatch struct {
|
||||
|
|
|
@ -34,7 +34,6 @@ func TestIndexerIRCParse_ParseMatch(t *testing.T) {
|
|||
ForceSizeUnit: "",
|
||||
Lines: []IndexerIRCParseLine{
|
||||
{
|
||||
Test: nil,
|
||||
Pattern: "New Torrent Announcement:\\s*<([^>]*)>\\s*Name:'(.*)' uploaded by '([^']*)'\\s*(freeleech)*\\s*-\\s*(https?\\:\\/\\/[^\\/]+\\/)torrent\\/(\\d+)",
|
||||
Vars: []string{
|
||||
"category",
|
||||
|
@ -75,7 +74,6 @@ func TestIndexerIRCParse_ParseMatch(t *testing.T) {
|
|||
ForceSizeUnit: "",
|
||||
Lines: []IndexerIRCParseLine{
|
||||
{
|
||||
Test: nil,
|
||||
Pattern: `(.*?)(?: - )?(Visual Novel|Light Novel|TV.*|Movie|Manga|OVA|ONA|DVD Special|BD Special|Oneshot|Anthology|Manhwa|Manhua|Artbook|Game|Live Action.*|)[\s\p{Zs}]{2,}\[(\d+)\] :: (.*?)(?: \/ (?:RAW|Softsubs|Hardsubs|Translated)\s\((.+)\)(?:.*Episode\s(\d+))?(?:.*(Freeleech))?.*)? \|\| (https.*)\/torrents.*\?id=\d+&torrentid=(\d+) \|\| (.+?(?:(?:\|\| Uploaded by|$))?) (?:\|\| Uploaded by: (.*))?$`,
|
||||
Vars: []string{
|
||||
"torrentName",
|
||||
|
@ -128,7 +126,6 @@ func TestIndexerIRCParse_ParseMatch(t *testing.T) {
|
|||
ForceSizeUnit: "",
|
||||
Lines: []IndexerIRCParseLine{
|
||||
{
|
||||
Test: nil,
|
||||
Pattern: "New Torrent Announcement:\\s*<([^>]*)>\\s*Name:'(.*)' uploaded by '([^']*)'\\s*(freeleech)*\\s*-\\s*(https?\\:\\/\\/[^\\/]+\\/)torrent\\/(\\d+)",
|
||||
Vars: []string{
|
||||
"category",
|
||||
|
@ -169,7 +166,6 @@ func TestIndexerIRCParse_ParseMatch(t *testing.T) {
|
|||
ForceSizeUnit: "",
|
||||
Lines: []IndexerIRCParseLine{
|
||||
{
|
||||
Test: nil,
|
||||
Pattern: "New Torrent Announcement:\\s*<([^>]*)>\\s*Name:'(.*)' uploaded by '([^']*)'\\s*(freeleech)*\\s*-\\s*(https?\\:\\/\\/[^\\/]+\\/)torrent\\/(\\d+)",
|
||||
Vars: []string{
|
||||
"category",
|
||||
|
@ -210,7 +206,6 @@ func TestIndexerIRCParse_ParseMatch(t *testing.T) {
|
|||
ForceSizeUnit: "",
|
||||
Lines: []IndexerIRCParseLine{
|
||||
{
|
||||
Test: nil,
|
||||
Pattern: "New Torrent in category \\[([^\\]]*)\\] (.*) \\(([^\\)]*)\\) uploaded! Download\\: (https?\\:\\/\\/[^\\/]+\\/).+id=(.+)",
|
||||
Vars: []string{
|
||||
"category",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue