Commit graph

197 commits

Author SHA1 Message Date
Kyle Sanderson
81ce8acb2b
fix(releases): search by group (#1876)
fix(search): regression on group
2024-12-12 13:56:04 +01:00
ze0s
f644b3a4d6
feat(filters): implement AnnounceType (#1837)
* feat(filters): implement AnnounceType

* fix: rss tests
2024-12-08 21:08:24 +01:00
Kyle Sanderson
f292d2709b
fix(database): backup on windows bad filename (#1841)
* fix(migrations): use safe characters during backup

* remove _ because of splits

* Update sqlite.go

* flip
2024-11-25 10:59:40 +01:00
ze0s
2dcd876068
fix(database): SeedPool migrations (#1838) 2024-11-24 21:51:47 +01:00
ze0s
be9a956598
feat(indexers): update SeedPool IRC announce parsing (#1835)
* feat(indexers): update SeedPool IRC port

* feat(indexers): SeedPool add db migration

* fix(indexers): adapt regex, tests and vars

* fix(indexers): set internal var to origin to fix parsing

---------

Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
2024-11-24 18:34:40 +01:00
ze0s
b0a30dd136
feat(indexers): REDACTED update urls (#1830)
* feat(indexers): REDACTED update urls

* feat(databse): REDACTED update urls in db with migrations
2024-11-24 14:07:45 +01:00
martylukyy
74eea79215
feat(database): SQLite database backups (#1756)
* feat(database): SQLite database backups

* feat(database): do not produce SQL injections

* feat(database): retain all backups if 0 or less
refactor(database): specify database driver in func names

* refactor(database): return early on cleanup

* refactor(database): do not call cleanup func if max backups set to 0

* refactor(database): backup retention behavior

* feat(database): improve logging

---------

Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
2024-11-12 19:14:45 +01:00
ze0s
1227657ae8
feat(indexers): FearNoPeer update IRC server (#1816)
* feat(indexers): update FearNoPeer IRC server

* Update FNP irc server and add migrations for SceneHD and BitHUmen changes all in one.

The update for FNP from LibraIRC to P2P-Network will set the nick to nick_0 to not cause any UNIQUE constraint issues. Users will have to update or merge with existing P2P-Network config.
2024-11-09 16:06:35 +01:00
soup
b4f0d60b9b
chore: add missing license headers (#1811)
* chore: add missing license headers

* missing license in test files
2024-11-06 21:37:42 +01:00
ze0s
40fe3e9f54
fix(indexers): delete feed with indexer (#1810)
* fix(indexers): delete feed in one go

* fix(indexers): sort imports

* refactor(feeds): db methods for find
2024-11-06 20:48:46 +01:00
ze0s
59c5858bf0
fix(releases): update size after actions run (#1809) 2024-11-06 18:55:00 +01:00
martylukyy
509e4ddaed
fix(indexers): update Fuzer IRC addr (#1764) 2024-10-09 15:44:46 +02:00
Carmelo Scandaliato
d15b61870e
fix(filters): release download counts (#1739)
* fix(database): count multiple actions per filter as one download

* fix(database): change queries and add tests

* fix(releases): add additional testdata

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2024-10-06 14:52:20 +02:00
ze0s
ca2d956e02
fix(notifications): disable notification and events have no effect (#1754)
fix(notifications): disable notificatio nand events
2024-10-06 14:12:01 +02:00
martylukyy
ec79eafe43
feat(notifications): optional Telegram sender (#1726)
refactor(notifications): optional Telegram sender
2024-09-17 17:07:58 +02:00
Kyle Sanderson
ea25b6bb7f
feat(database): add missing filter indexes (#1712)
* feat(sqlite): add missing filter indexes

* _index

* feat(database): add missing filter indexes postgres

---------

Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
2024-09-17 15:52:41 +02:00
martylukyy
490308c9c6
fix(indexers): new baseURL for Fuzer (#1724)
* fix(indexers): new URL for Fuzer

* fix(indexers): add database migrations
2024-09-17 15:09:23 +02:00
ze0s
fd90020400
feat(releases): show indexer name instead of identifier (#1706)
* feat(releases): show indexer name instead of identifier

* feat(releases): remove log in Cell

* feat(releases): update Dashboard recent releases

* fix(releases): db tests

* fix(releases): remove unused code

* fix(releases): remove more unused code

* fix(releases): remove even more unused code

---------

Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
2024-09-03 14:57:48 +02:00
Kyle Sanderson
982f7ddf68
refactor(wildcard): optimize and add caching (#1634)
* fix(wildcard): avoid excessive allocations every loop

* are you going to Scarborough Fair?

* ruby ruby ruby ruby

* ride on, little murphy

* shirley?

* to the moon

* reggie are you there?

* code 99

* my doctorate is in Art History

* helps to be consistent

* tidy

* slow and steady gets the clam

* oysters were better anyway

* DIAL TONE
2024-09-02 11:18:14 +02:00
ze0s
bc0f4cc055
feat: add support for proxies to use with IRC and Indexers (#1421)
* feat: add support for proxies

* fix(http): release handler

* fix(migrations): define proxy early

* fix(migrations): pg proxy

* fix(proxy): list update delete

* fix(proxy): remove log and imports

* feat(irc): use proxy

* feat(irc): tests

* fix(web): update imports for ProxyForms.tsx

* fix(database): migration

* feat(proxy): test

* feat(proxy): validate proxy type

* feat(proxy): validate and test

* feat(proxy): improve validate and test

* feat(proxy): fix db schema

* feat(proxy): add db tests

* feat(proxy): handle http errors

* fix(http): imports

* feat(proxy): use proxy for indexer downloads

* feat(proxy): indexerforms select proxy

* feat(proxy): handle torrent download

* feat(proxy): skip if disabled

* feat(proxy): imports

* feat(proxy): implement in Feeds

* feat(proxy): update helper text indexer proxy

* feat(proxy): add internal cache
2024-09-02 11:10:45 +02:00
ze0s
acb91e8709
feat(http): implement missing findByID methods (#1635)
* feat(http): implement missing methods

* general cleanup
* unify param handling
* handle not found errors
* unify err handlers

* fix(http): fmt type
2024-08-29 12:22:03 +02:00
ze0s
accc875960
feat(database): improve error handling (#1633) 2024-08-29 09:00:53 +02:00
ze0s
d13b421c42
refactor(http): api key cache handling (#1632) 2024-08-28 16:51:03 +02:00
ze0s
0d53f7e5fc
feat(download-clients): rtorrent support Digest Auth (#1596)
* feat(download-clients): rtorrent support basic auth

* feat(download-client): implement new auth logic

* fix(download-client): tests store

* chore(deps): update go-rtorrent to v1.11.0
2024-08-28 12:21:56 +02:00
ze0s
861f30c144
fix(actions): reject if client is disabled (#1626)
* fix(actions): error on disabled client

* fix(actions): sql scan args

* refactor: download client cache for actions

* fix: tests client store

* fix: tests client store and int conversion

* fix: tests revert findbyid ctx timeout

* fix: tests row.err

* feat: add logging to download client cache
2024-08-27 19:45:06 +02:00
ze0s
abfac05b66
fix(releases): retry action missing external indexer identifier (#1612)
* fix(releases): retry action missing external identifier

* fix(actions): arrs set fallback indexer identifier
2024-08-11 20:39:11 +02:00
kenstir
4fceccd611
feat(filters): support daily shows (#1462)
* feat(database): Add month, day columns to release table

* feat(database): Add month, day columns to postgres release table

* feat(filters): support daily show format

* feat(filters): check smart episode daily

* fix(tests): rss

* feat(filters): add daily shows elements to form

* enhancement(web): minimize html in MoviesAndTV tab

* feat(filters): smart episode check proper and repack

* feat(filters): smart episode do not allow multiple latest

* feat(filters): smart episode check group with repack

* feat(filters): smart episode allow multiple current releases

---------

Co-authored-by: s0up4200 <soup@r4tio.dev>
Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
2024-05-15 16:38:10 +02:00
ze0s
0016228d89
feat(indexers): add External Identifier to map with ARR indexers (#1534)
* feat(indexers): add External Identifier to map with ARR indexers

* fix: web build

* fix: tests

* feat: set identifier for manual processing
2024-05-04 12:37:01 +02:00
ze0s
3202c6043d
feat(indexers): update release baseurl on update (#1532) 2024-05-03 11:32:56 +02:00
soup
19e129e55f
feat(releases): delete based on age/indexer/status (#1522)
* feat(releases): delete based on age/indexer/status

* fix: sanitize releaseStatuses

* swap to RMSC

* add AgeSelect component

* improve texts

* refactor: streamline form layout

* improve text

* remove a paragraph

* improved UX

explaining the options, better error handling

* reinstate red border

* fix: labels to match other similar labels for selects

- improved contrast for the word "required" in desc
- added red asterisk to required select

* minor text improvement to warning

* fix: delete-button vertical alignment

* feat: cleanup queries

* feat: cleanup delete

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2024-05-03 11:32:20 +02:00
kenstir
575944de1e
chore(database): remove unused test func (#1465)
chore(database): Remove unused func
2024-04-19 14:08:58 +02:00
s0up4200
56ef3a5402
feat(actions): qBittorrent add first-last piece priority (#1517)
* feat(actions): qBittorrent add first/last piece priority

* removed accidental change

* fix: scanrow order

* fix: spaces vs tabs

* bump(deps): upgrade go-qbittorrent to v1.9.0

* fix(test): add missing colon

* fix(database): sqlite remove duplicate
2024-04-18 14:47:36 +02:00
ze0s
3c3b47fa10
feat(macros): add IndexerName (#1511)
* feat(macros): add IndexerName

* fix: tests

* fix: tests
2024-04-16 17:35:17 +02:00
martylukyy
2cdd3264b8
fix(database): migrations log correct upgrade var version (#1441)
* fix(database): correct upgrade var

* fix(database): substitute len(var) with i+1
2024-02-28 18:04:45 +01:00
martylukyy
6fcbcfb3c3
fix(indexers): AB new irc address (#1434) 2024-02-27 12:03:59 +01:00
KaiserBh
47a1af8600
fix(database): postgresql release timestamps timezone handling (#1343)
fix(database): Correct timezone handling for release timestamps

Changed the column type for release timestamps from 'timestamp' to 'timestamptz' in the PostgreSQL database. This update ensures that the release ages are accurately reflected in the web UI by storing the correct timezone information. Previously, the data was stored in UTC but interpreted as local user time, causing a 3-hour offset in the web UI or in my case 11-hour offset. The conversion now correctly interprets and displays the release times based on UTC.

Fixes #1138
2024-02-27 11:49:13 +01:00
ze0s
c97becb4e3
fix(irc): force update ANT and NBL irc server addr (#1412) 2024-02-16 14:49:05 +01:00
martylukyy
1a23b69bcf
feat(web): move from react-router to @tanstack/router (#1338)
* fix(auth): invalid cookie handling and wrongful basic auth invalidation

* fix(auth): fix test to reflect new HTTP status code

* fix(auth/web): do not throw on error

* fix(http): replace http codes in middleware to prevent basic auth invalidation
fix typo in comment

* fix test

* fix(web): api client handle 403

* refactor(http): auth_test use testify.assert

* refactor(http): set session opts after valid login

* refactor(http): send more client headers

* fix(http): test

* refactor(web): move router to tanstack/router

* refactor(web): use route loaders and suspense

* refactor(web): useSuspense for settings

* refactor(web): invalidate cookie in middleware

* fix: loclfile

* fix: load filter/id

* fix(web): login, onboard, types, imports

* fix(web): filter load

* fix(web): build errors

* fix(web): ts-expect-error

* fix(tests): filter_test.go

* fix(filters): tests

* refactor: remove duplicate spinner components
refactor: ReleaseTable.tsx loading animation
refactor: remove dedicated `pendingComponent` for `settingsRoute`

* fix: refactor missed SectionLoader to RingResizeSpinner

* fix: substitute divides with borders to account for unloaded elements

* fix(api): action status URL param

* revert: action status URL param
add comment

* fix(routing): notfound handling and split files

* fix(filters): notfound get params

* fix(queries): colon

* fix(queries): comments ts-ignore

* fix(queries): extract queryKeys

* fix(queries): remove err

* fix(routes): move zob schema inline

* fix(auth): middleware and redirect to login

* fix(auth): failing test

* fix(logs): invalidate correct key

* fix(logs): invalidate correct key

* fix(logs): invalidate correct key

* fix: JSX element stealing focus from searchbar

* reimplement empty release table state text

* fix(context): use deep-copy

* fix(releases): empty state and filter input warnings

* fix(releases): empty states

* fix(auth): onboarding

* fix(cache): invalidate queries

---------

Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
2024-02-12 13:07:00 +01: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
Frederick Robinson
256fbb49ba
docs(filters): explain GetDownloadsByFilterId (#1345)
add comment about GetDownloadsByFilterId
2024-01-10 17:37:18 +01:00
ze0s
9992675971
feat(releases): show details in list view (#1337)
* feat(releases): show details in list view

* fix(releases): activitytable columns type

* fix(releases): incognito mode

* feat(releases): move details button

* do we wanna truncate?

* fix(web): release column width at full size

---------

Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
2024-01-02 21:53:38 +01:00
ze0s
fbabdfb217
feat(clients): override arr download client by name (#1328)
* feat(clients): override arr client by name

* feat(clients): add missing file

* feat(clients): add section download client arr
2024-01-01 17:57:19 +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
ze0s
a0a81ed34c
fix(filters): ensure sort by priority (#1325)
* fix(filters): sort filters from filtersMap

* fix(filters): use slices.SortStableFunc and fix tests

* fix(filters): add local cmp pkg before go 1.21
2023-12-31 14:59:12 +01:00
soup
ebbd851a2e
feat(autobrrctl): add db migrate/seed/reset functionality (#934)
* add db seed/reset functionality

* speculative db migration support

* update postgresSchema

* refactor: only migrate data, no schema

* implement transaction in db migration function

* refactor db:seed and db:reset

added transaction to both and updated help message

* change table order

* skip on foreign key constraint violations

* skip feed_cache

* set constraints to null

* fix seed and reset

* simplify migrate func

This version of the function should behave similarly to the previous version, but with less repetition and by relying on PostgreSQL's automatic transaction handling, which starts a new transaction for each separate statement when not in a transaction block. Also, it prepares the insert statement only once for each table, which can significantly improve performance when there are many rows to insert.

* fixed release_action_status

* refactor db:seed and db:reset

* minor adjustment to const usage

* fixed usage examples

* refactor seed/migrate

* refactor(database): seed and convert

* refactor(database): make tables list sorted a-z

* chore(deps): go mod tidy

* refactor(database): convert improve log output

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2023-12-28 14:05:51 +01:00
Kyle Sanderson
6a94ecacca
refactor(http): auth handlers (#1311)
* fix(auth): implement invalid cookie handling

* that escalated quickly

* refactor(http): auth handlers

* add tests for auth handler
* refactor methods

* chore(tests): add header and build tag

* add build tag integration

* chore(tests): run in ci

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2023-12-28 02:04:25 +01:00
KaiserBh
df2612602b
feat(auth): change password and username (#1295)
* feat(backend): added change password api endpoint.

* feat(web): added profile UI to change password.

I think we can change the username too, but I don't know if we should for now disabled the username field.

* refactor: don't leak username or password.

* refactor: protect the route.

* generic

* feat: add ChangeUsername

* fix(tests): speculative fix for TestUserRepo_Update

* Revert "feat: add ChangeUsername"

This reverts commit d4c1645002883a278aa45dec3c8c19fa1cc75d9b.

* refactor into 1 endpoint that handles both

* feat: added option to change username as well. :pain:

* refactor: frontend

* refactor: function names in backend

I think this makes it more clear what their function is

* fix: change to 2 cols with separator

* refactor: update user

* fix: test db create user

---------

Co-authored-by: Kyle Sanderson <kyle.leet@gmail.com>
Co-authored-by: soup <soup@r4tio.dev>
Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
Co-authored-by: ze0s <ze0s@riseup.net>
2023-12-26 15:50:57 +01:00
soup
c6122dbc41
feat(actions): qBittorrent add priority handling (#1315)
* feat(qbittorrent): add priority handling

* fix: check if torrent queueing is enabled

* fix: only check for torrent queueing if priority is set

* fix: improve tooltip message

* feat: enable torrent queueing if disabled

* change to SetPreferencesQueueingEnabled

* feat(actions): rename field

* chore: bump pkg go-qbittorrent to v1.8.0

* chore(deps): update go-qbittorrent to v1.8.1

* chore(deps): go mod tidy

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2023-12-25 22:39:31 +01:00
KaiserBh
e63aec1ab2
enhancement(feeds): change max age default value to 0 (#1313)
* refactor: update help text for RSS, TORZNAB, and NEWZNAB

* refactor: change default to 0.

* fix: update sqlite_migrate.go

---------

Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
2023-12-25 15:11:26 +01:00
soup
3b60365483
feat(web): link Dashboard stats to Releases page (#1281)
* feat(web): link stats to release table

- added Errored Pushes
- Made Recent Activity same color as Stats

* feat(releasetable): made links a separate row

https://i.imgur.com/ZoAOrXP.png

remove comment

* added LinkIcon to StatsItem

- Changed grid-cols to 2, as we now have 4 for narrow widths

* fix linting

* move some text modifier to parent element

* feat: add scale on hover with transition

deduplicated some classes

* adapt gap between StatsItems for mobile
remove border and title on stats divs

---------

Co-authored-by: Fabricio Silva <hi@fabricio.dev>
Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
2023-12-25 14:03:29 +01:00