Commit graph

42 commits

Author SHA1 Message Date
Kyle Sanderson
d86b2333a7
fix(feeds): always upgrade size from RSS description (#1458)
* fix(rss): add additional test for size

* always upgrade from desc
2024-03-19 17:06:49 +01:00
ze0s
5328078b32
fix(filters): RED and OPS lossless parsing and filtering (#1373)
* fix(filters): RED and OPS lossless parsing and filtering

* fix(filters): logscore and EP parsing

* fix(filters): tests

* fix(filters): tests

* feat(definitions): RED parse title variable

* feat(indexers): setup indexer to filter tests

* feat(indexers): tests and improve parsing

* feat(indexers): improve tests
2024-01-28 22:03:25 +01:00
Kyle Sanderson
cdd91d27e5
feat(feeds): improve RSS size parsing (#1367)
* fix(feeds): Parse multiple sizes.

* refactor: Test_pullSizeFromDescription

* refactor: make test human readable

added helper function

* multi

* Agnewwwwww

* .

* humanize

* humanize

---------

Co-authored-by: soup <soup@r4tio.dev>
2024-01-27 12:52:11 -08:00
luckyboy
a86258aaa7
feat(filters): implement min and max seeders/leechers filtering for Torznab feeds (#1342)
* feat(filter):implement min and max seeders/leechers filtering

* chore: go fmt and reorder fields

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2024-01-12 17:08:18 +01:00
ze0s
45b522abf8
chore: update license header year (#1332)
* chore: update license header year

* chore: update license header year tsx files

* chore: update license header
2024-01-01 16:21:02 +01:00
Kyle Sanderson
3234f0d919
refactor(http): implement shared transport and clients (#1288)
* fix(http): flip to a shared transport and clients

* nice threads

* that is terrible

* fake uri for magnet

* lazy locking

* why bother with r's

* flip magic params to struct

* refactor(http-clients): use separate clients with shared transport

* refactor(http-clients): add missing license header

* refactor(http-clients): defer and fix errors

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2023-12-29 23:49:22 +01:00
soup
2bd1a68a94
feat(feeds): add force run (#1243)
* feat(feeds): add force run

* fix: simplify ForceRun

* add confirmation modal

* handle errors by using the test func

* require user input to run

* make sure to reschedule next job after forcerun

* refactor modal centering with grid

* refactor: Simplify startJob and forceRun logic

- Refactor `startJob` to accept a `runImmediately` flag. This flag controls whether the job should be run immediately or scheduled for later. This change simplifies the `ForceRun` function by allowing it to call `startJob` with `runImmediately` set to `true`.

- Remove redundant checks in `ForceRun` related to feed type. These checks are handled in `startJob`.

BREAKING CHANGE: The `startJob` function now requires a second argument, `runImmediately`. This change affects all calls to `startJob`.

* fix(web) Invalidate queries after forceRun

* refactor(feeds): init and test run

---------

Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
2023-11-18 21:54:53 +01:00
ze0s
7c91d34cb4
fix(feeds): feed cache key (#1230)
* fix(feeds): feed cache sometimes missing key

* fix(feeds): feed cache use link as key if no guid
2023-10-30 22:10:03 +01:00
ze0s
9793764905
feat(feeds): improve caching (#1191)
* 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
2023-10-21 17:03:52 +02:00
jolinarofmalkshur
dbb3ff3a3b
feat(feeds): improve file size parsing (#1162)
* In rss feeds, sometimes the only place the size is mentioned is in the
description field. If the size has not already been determined from
another source try to read it from there.

* Accept sizes with no space between value and unit of measure

* feat(feeds): get size from description add test

* fix(feeds): tests

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2023-10-01 22:47:47 +02:00
ze0s
1bfbe38335
feat(macros): add SizeString DownloadURL and InfoURL (#1080)
* feat(macro): add new variables

* SizeString
* DownloadURL
* InfoURL

* feat(macro): add new test cases
2023-09-03 13:27:47 +02:00
ze0s
a6d789ee44
feat(feeds): show next run (#1074) 2023-09-02 23:06:21 +02:00
ze0s
6fd8626507
feat(feeds): add scheduled cleanup (#1073)
* refactor(feeds): make feed scheduling more robust

* feat(feeds): add daily cleanup job

* removes feed cache older than 30 days

* fix(feeds): fmt wrong type
2023-09-02 22:44:28 +02:00
ze0s
b6de7144e0
feat(feeds): clear feed cache (#1071) 2023-09-01 21:39:39 +02:00
ze0s
e5b4ded725
feat(filters): add support for feed description (#922)
* feat(filters): match description

* feat(filters): support description

* chore: remove match logic for description

* fix: update rss tests
2023-05-13 19:33:18 +02:00
ze0s
01a69c7582
fix(feeds): process RSS on initial run (#918) 2023-05-07 15:55:04 +02:00
ze0s
604c7896bd
chore: add LICENSE GPLv2-or-later (#897)
* chore: add LICENSE

* chore: add LICENSE to README
2023-05-01 16:21:59 +02:00
ze0s
81d494ec5c
fix(feeds): torznab newznab category parsing (#775) 2023-03-19 23:35:33 +01:00
Kyle Sanderson
5836fcee63
fix(feeds): implement max_age for torznab/newznab (#763)
* fix(nab): Implement max_age for torznab/newznab

* continue newznab

* continue torznab
2023-03-19 21:26:18 +01:00
Kyle Sanderson
13a74f7cc8
feat: add usenet support (#543)
* feat(autobrr): implement usenet support

* feat(sonarr): implement usenet support

* feat(radarr): implement usenet support

* feat(announce): implement usenet support

* announce: cast a line

* feat(release): prevent unknown protocol transfer

* release: lines for days.

* feat: add newznab and sabnzbd support

* feat: add category to sabnzbd

* feat(newznab): map categories

* feat(newznab): map categories

---------

Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
Co-authored-by: ze0s <ze0s@riseup.net>
2023-03-04 20:27:18 +01:00
ze0s
ca196f0bf1
feat(releases): support magnet links (#730)
* 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
2023-02-28 22:16:10 +01:00
ze0s
5607184522
fix(releases): parse isScene as Origins SCENE (#716)
* fix(releases): parse isScene as Origins SCENE

* fix(releases): remove isScene
2023-02-14 22:48:10 +01:00
Ignacio
9a47dbc588
fix(feeds): RSS improve torrent size parsing (#667)
* Fixes issue 636 - fail to parse torrent size on some RSS feeds when enclosure is a fixed value

* Pick the biggest size

* minor comment

* Updates release size when new parsed string size is bigger

- Sets default size of `Release` to zero (unparsed)
- When there are parsing errors, then it doesn't RESET the size to 0 (assuming a tracker providing some size that can't be parsed)
- Updates the size to the new size only if the parsed size is bigger than the previous.

* fix(feeds): ignore default 39399 enclosure size

---------

Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
2023-02-05 19:18:17 +01:00
Michel Heusschen
9e0edc577f
enhancement(feeds): torznab freeleech percentage (#647) 2023-01-15 18:17:51 +01:00
ze0s
5c402b6d6c
feat(filters): support Language filtering (#632)
* feat(filters): add support for language

* feat(filters): add db migrations and repo

* feat(filters): fix failing tests

* feat(filters): fix failing tests
2023-01-09 00:33:08 +01:00
ze0s
fd67a7b24e
feat(feeds): view latest RSS and Torznab feed (#609)
feat(feeds): view latest run
2023-01-02 23:00:11 +01:00
Kyle Sanderson
6295239985
fix(rss): ignore max_age for old feed items (#527)
Feed dates are not always initialized, which defaults (if present) to epoch on some feed items. When this happens the results can be unpredictable, and not expected for what users are intending for. As such to have sane defaults, we ignore the date if it's before April 1st 1970, because nothing really happened before this date.
2022-11-07 17:32:49 +01:00
ze0s
e2bb14afa4
feat(feeds): improve RSS (#502)
* feat(feeds): improve rss

* save last_run time
* remove interval check
* refactor feed job keys
* add rss test
* add max_age check

* feat(feeds): rss basic freeleech parsing

* feat(feeds): rss cookie support

* feat(feeds): db get max_age

* feat(feeds): update log messages

* feat(feeds): pass cookie to release for download

* feat(feeds): improve size parsing

* feat(feeds): improve datetime check
2022-10-18 18:51:10 +02:00
ze0s
b7d2161fdb
feat(feeds): torznab parse category and freeleech (#492)
* feat(feeds): torznab parse freeleech

* feat(feeds): torznab parse categories
2022-10-14 18:01:04 +02:00
paperclip-go-brr
72be86a34f
feat(feed): Configurable request timeout (#456)
* feat(feed): Add field for setting request timeout

* fix: missing type in interface

* feat: add postgres migration and column to base schema
2022-10-04 17:33:35 +02:00
Kyle Sanderson
47eaeaa635
feat(rss): implement relative URL support (#484)
* feat(rss): implement relative URL support

* bp had some words

* feat(gh): uplift golang to 1.19.1

* feat(docker): uplift golang to 1.19

* feat(docker): uplift to go 1.19

* cleanup

* chore: update go version in go.mod

* feat: refactor and add test feed process item

* unescape query params after join
* break out logic into separate method
* add tests
2022-10-04 12:59:29 +02:00
ze0s
b50688159e
feat(feeds): add generic RSS support (#410)
* feat(feeds): add generic rss support

* feat(feeds/web): add generic rss support

* implement rss downloading

* gosum + mod

* re-add size from Custom field.

* implement uploader + category

* sync

* remove double assignment (+torznab)

* didn't save the rss file >.>

* cleanup

* fixfeeds): create rss indexer

* fix(feeds): stop feed

* feat(feeds): support nexusphp rss enclosure link

* feat(feeds): check size for custom size

* fix(feeds): race condition and only stop enabled feeds

* fix(feeds): unify indexer implementation badge

Co-authored-by: Kyle Sanderson <kyle.leet@gmail.com>
2022-08-20 00:34:46 +02:00
Kyle Sanderson
bbfa5627aa
fix(scheduler): use time as opposed to cron fields (#390)
* fix(torznab): use time for interval.

* flip Schedule to be duration based

* typefix

* Update service.go

* clear err

* pull err package

* casting to the moon

* enforce a minimum of 15m

* lower minimum based on feedback from Unit3d
2022-08-01 23:24:14 +02:00
Ludvig Lundgren
7af6f438b3
fix(feeds): torznab use link to download (#363) 2022-07-20 22:47:08 +02:00
Ludvig Lundgren
ebba72ec1f
feat(feeds): torznab add test button (#347) 2022-07-10 15:54:56 +02:00
Ludvig Lundgren
c1df9c817f
fix(feeds): torznab update and delete (#346)
* fix(feeds): torznab update and delete

* fix(feeds): repo cache exists check err
2022-07-09 16:25:40 +02:00
Ludvig Lundgren
0e88117702
feat(logging); improve messages and errors (#336)
* feat(logger): add module context

* feat(logger): change errors package

* feat(logger): update tests
2022-07-05 13:31:44 +02:00
Ludvig Lundgren
6675a1df3e
fix(releases): releasetags freeleech parsing (#306)
* refactor(releases): remove err from constructor

* fix(releases): freeleech parsing and filtering

* chore: remove unused releaseinfo package
2022-06-14 22:26:45 +02:00
Ludvig Lundgren
91b094f4f4
feat(confg): reload on save and refactor logging (#275)
* feat(confg): reload on save

* refactor(logging): rework
2022-05-20 09:27:01 +02:00
Ludvig Lundgren
b7d1f216c0
fix(feeds): ttl and correct field types (#259) 2022-05-01 16:09:00 +02:00
Ludvig Lundgren
e6c151a029
feat: improve release parsing and filtering (#257)
* feat(releases): improve parsing

* refactor: extend filtering add more tests

* feat: improve macro

* feat: add and remove fields

* feat: add freeleech percent to bonus

* feat: filter by origin
2022-04-30 13:43:51 +02:00
Ludvig Lundgren
bb62e724a1
feat: add torznab feed support (#246)
* feat(torznab): initial impl

* feat: torznab processing

* feat: torznab more scheduling

* feat: feeds web

* feat(feeds): create on indexer create

* feat(feeds): update migration

* feat(feeds): restart on update

* feat(feeds): set cron schedule

* feat(feeds): use basic empty state

* chore: remove duplicate migrations

* feat: parse release size from torznab

* chore: cleanup unused code
2022-04-25 12:58:54 +02:00