* 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>
* feat(feeds): improve caching
* fix(feeds): put cache if not empty
* fix(feeds): reassign loop var
* fix(feeds): enable busy_timeout again
* fix(feeds): enable busy_timeout again
* fix(releases): search with postgres
* fix: validate release push status from filters
* fix: add missing import
* fix: validate push status if not empty
* chore(indexers): replace array position with id
* fix(indexers): enable and disable without editing
* feat(indexer): add toggle endpoint and refactoring
---------
Co-authored-by: ze0s <ze0s@riseup.net>
* fix(filters): store and update
* fix(filters): bad fmt var
* fix(filters): store expect status
* fix(filters): store expect status
* fix(filters): external filter always rejected
* fix(release): DeleteOlder func for zero duration
resolves a bug in the `DeleteOlder` function where recent 24-hour data wasn't deleted when set to `delete everything`. We now correctly set the olderThanTimestamp to a future date when duration is zero, ensuring complete deletion of all records.
* fix(releases): delete older
---------
Co-authored-by: ze0s <ze0s@riseup.net>
* fix(debug/release/rejection): cap line length at 1KB from unlimited
* flip to a call limit
* dont die on bad metainfo parse
* death is here to stay, for now.
* improve content type check
checks if torrent file is a valid torrent file when content-type is text/html
* optimize content type check and file handling
* attempt to write tests
* small changes to error messages
* fix: download file content type checks
---------
Co-authored-by: Kyle Sanderson <kyle.leet@gmail.com>
Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
* feat: delete releases older than x
* check timestamp
* incomplete front end changes
commiting changes from codespace to not lose them
* change to dropdown with options
* using int comparisons to avoid nightmares
* Revert "using int comparisons to avoid nightmares"
This reverts commit dc55966a73e9f6ad79ed28c3a3e0dbe0e35448a6.
* suggestions by stacksmash76
come back to discord @stacksmash76
* Curves - a touch of warmth in our pixel realm
* replace inline css with tailwind
* remove unnecessary comment
* align label with dropdown
changed first paragraph to something more sensible
* change font weight for duration label
* padding changes
* nitpicky
* merged divs where possible
* small adjustments for light theme
* attempt to fix for postgres
* refactor: split into component and add confirmation modal
also restyle component
* fix: go fmt
---------
Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
* feat(notification): send Telegram messages to a specific topic of a group
* Convert settings.Topic to integer once and reuse it as part of the
telegramSender struct.
* feat(notifications): add migrations for topic
* fix(notifications): find null string
* fix(notifications): form initial values
---------
Co-authored-by: ze0s <ze0s@riseup.net>
* feat/check-content-type-torrent-download
* check for text/html instead
* check for status codes above 308
* refactor
* make sure < 499 goes to content-type check
* fix content header check by accounting for charset
* retry on 404
* change to errors.New for 404
* make use of verbs
* handle http errors as cases
* check contentType with strings.Contains instead
* adjust message for unauthorized and forbidden
---------
Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
* speculative fix for tags_match_logic if set to ANY
* add default tag match logic handling
* fixed test cases and rejection messages
* trim tags in match funcs
* add test for empty TagsMatchLogic
* fix(releases): max downloads per hour
* refactor: release processing
* compare apples to apples (#884)
* from rocketships back to apples
* Update internal/database/filter.go
* cast me to the
* keep your eye on the case
---------
Co-authored-by: Kyle Sanderson <kyle.leet@gmail.com>
* feat(notifications): add pushover
* add db migration
* fix lint error
* some small corrections
* fixed README
* added missing columns to postgres_migrate.go
* use token for user_key
* refactor(notifications): change priority to int
* fix: only test selected events
---------
Co-authored-by: soup <soup@r4tio.dev>
Co-authored-by: ze0s <ze0s@riseup.net>
* refactor(indexers): test api clients
* feat(indexers): test api connection
* fix(indexers): api client tests
* refactor: indexer api clients
* feat: add Toasts for indexer api tests
* fix: failing red tests
* feat(filters): add fields for tag and except tag matching logic
* refactor(filters): rearrange and simplify logic for containsAllMatch
---------
Co-authored-by: Gustavo Machado <me@gstv.dev>
* fix(tags): fixed `24bit Lossless` being tagged as `Lossless`
added negation to the Lossless regex to prevent it from matching 24bit Lossless
* fix(tests): modified test to reflect changes in regex
* feat(releases): support magnet links
* feat(feeds): support magnet links
* feat(actions): log messages
* fix: component warning
* fix: check hasprefix instead of hassuffix for magnet
* feat(release): resolve magnet uri from link
* fix(actions): deluge use magnet uri
* fix(macros): add `MagnetURI` var
* fix(actions): run magnet resolving before macros
* feat(feeds): set download type on creation