Commit graph

467 commits

Author SHA1 Message Date
martylukyy
6045ef7c10
feat(filters): add sources and codecs (#1470)
* feat(filters): add AHDTV to sources and sort alphabetically
feat(filters): add MPEG-2 to codecs and sort alphabetically

* feat(filters): add release parsing test for MPEG-2
2024-03-24 10:41:24 +01:00
dependabot[bot]
232b454aba
build(deps): bump the npm group in /web with 16 updates (#1446) 2024-03-19 23:47:07 +00:00
ze0s
be05ffba73
feat(irc): manually re-process announces (#1419)
* fix(releases): add manual processing

* feat(irc): add re-process button to channel msg

* feat(irc): add missing client method

* feat(web): change reprocess icon placement

---------

Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
2024-03-19 18:23:43 +01:00
martylukyy
35566039d5
fix(web): make tooltips clickable if touchscreen is present (#1427)
* fix(web): make tooltips clickable if touchscreen is present

* fix(web): handle visibility for click and touch

* fix(chore): add removed license header again
2024-02-27 12:24:17 +01:00
martylukyy
eb43dadd2f
fix(web): remove rounded corners of middle usernav item (#1430) 2024-02-26 13:43:08 +01:00
Goran Džaferi
2e70ecbd9f
fix(filters): point to the correct docs page anchor for skipping seasons packs (#1424) 2024-02-24 14:06:03 +01:00
martylukyy
6bf8cdf5ea
fix(filters): open used collapsible sections by default (#1425)
fix(web): open collapsible sections by default when values are present
2024-02-24 14:04:01 +01:00
martylukyy
e1a8f327df fix(web): unify border colors in indexer form 2024-02-15 19:48:18 +01:00
martylukyy
6e62c30d68
enhancement(web): pending component placement (#1402) 2024-02-13 11:53:14 +01:00
martylukyy
0174d743b1
enhancement(web): filters list query loading animation (#1401)
* feat(web): filters list query loading animation

* refactor(filters): move loading spinner inside list

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2024-02-13 11:44:45 +01:00
martylukyy
fdf450897b
enhancement(web): debloat release loading animation (#1400) 2024-02-13 11:42:30 +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
soup
7535ac98d8
fix(filters): drop actions_enabled_count from filter export (#1384)
fix(filters): drop actions_enabled_count from export
2024-02-01 21:41:52 +01:00
dependabot[bot]
abb7829abe
build(deps): bump the npm group in /web with 16 updates (#1376) 2024-01-27 20:37:15 +00:00
ze0s
dea0b32b89
fix(web): releases page search and filtering (#1364)
* fix(web): releases page search and filtering

* fix(web): releases page reset on filter change

* feat(releases): useQuery instead of useSuspenseQuery

useSuspenseQuery triggers a full loader that resets filters. useQuery does not.
2024-01-24 14:49:31 +01:00
ze0s
f488c88f1b
fix(auth): force invalidate invalid session cookies in middleware (#1358)
* fix(auth): invalidate session cookies in middleware

* fix(auth): set path for invalid cookie
2024-01-20 20:10:26 +01:00
Fabricio Silva
eb626de683
build(web): override rollup with wasm-node version (#1354) 2024-01-20 17:09:06 +01:00
dependabot[bot]
4d419b4550
build(deps): bump follow-redirects from 1.15.3 to 1.15.5 in /web (#1355) 2024-01-20 08:34:40 +00:00
martylukyy
35d1a6985f
fix(web): irc settings light theme colors (#1357) 2024-01-20 09:31:22 +01:00
ze0s
606edd47e0
fix(releases): search query (#1353) 2024-01-19 15:52:05 +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
dependabot[bot]
17795a004b
build(deps): bump the npm group in /web with 18 updates (#1336) 2024-01-02 20:55:29 +00: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
martylukyy
89c146b762
enhancement(web): force run feed with enter key (#1329) 2023-12-30 18:07:40 +01:00
ze0s
57a91bb99a
feat(notifications): add Shoutrrr support (#1326) 2023-12-30 16:34:25 +01:00
ze0s
3dd1629a3f
feat(notifications): add ntfy support (#1323)
* feat(notifications): add ntfy support

* fix(test): update

* fix: added missing semicolon
2023-12-30 13:49:06 +01:00
soup
2a4fb7750b
feat(actions): deluge v2 add skip recheck (#1321)
* feat(actions): add skip recheck for deluge v2

* chore(deps): update go-deluge to v1.2.0
2023-12-28 16:59:17 +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
soup
0ab404f81a
fix(filters): hide tooltip when actions are active (#1318) 2023-12-25 19:50:58 +01:00
KaiserBh
db7ab7c99a
feat(web): migrate Tanstack Query to v5 (#1277)
* feat: migrate to v5

* refactor: Revise error handling in QueryClient for compatibility with React Query v5

The `useErrorBoundary` option has been renamed to `throwOnError` and suspense have been removed: more on suspense more on suspense.
https://tanstack.com/query/v5/docs/react/guides/migrating-to-v5#new-hooks-for-suspense

* refactor: Callbacks on useQuery (and QueryObserver) have been removed

onSuccess, onError and onSettled have been removed from Queries. They haven't been touched for Mutations. Please see this https://github.com/TanStack/query/discussions/5279 for motivations behind this change and what to do instead.

* refactor: change to isPending, isLoading have been renamed for mutations.

Also, they are using object now:
- useQuery(key, fn, options)
+ useQuery({ queryKey, queryFn, ...options })

* refactor: change to placeHolderData.

Removed keepPreviousData in favor of placeholderData identity function
https://tanstack.com/query/v5/docs/react/guides/migrating-to-v5#removed-keeppreviousdata-in-favor-of-placeholderdata-identity-function

* fix: useSuspenseQuery instead of useQuery.

* fix(web): more useSuspenseQuery substitutions

* whoops - nobody saw that okay?

* fix pnpm lockfile

* fix pnpm lockfile again

---------

Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
Co-authored-by: soup <soup@r4tio.dev>
2023-12-25 15:37:29 +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
soup
3fd939b531
fix(web): improve tooltip responsiveness and click-through (#1314)
* fix(web): prevent tooltip click-through on mobile

* fix: adjust tooltip placement based on screen size
2023-12-25 13:38:29 +01:00
soup
6815c67e0c
build(ci): integrate ESLint with CodeQL (#1273)
* ci: integrate ESLint with CodeQL

* specualtive fix

* always upload sarif

* make lint.ci exit with 0 so sarif is generated

* fix: exit with 0

* exit 0 on error

* correction

* revert to default with sarif

* see what pnpm run lint --fix does

* reset codeql

* egg

* actually setup pnpm

* checking out the mall

* reimplement lint

* run lint:ci

* anyone home?

* category

* fix?

* try cats

* damage

* TRY IT ONE MORE TIME

* on an atm

* no way?

* test

* test2

* test3

* test4

* revert change in context.ts

* attempt to update lockfile

* reset and update pnpm-lock

* speculative fix

* allow it to fail

* update eslint.yml

* correct path helps

* bring lint:ci back into the fold

* revert eslint.yml

* embed sarif

* is it really this

* k. great.

---------

Co-authored-by: Kyle Sanderson <kyle.leet@gmail.com>
2023-12-25 13:37:46 +01:00
martylukyy
8ef8bc6003
enchancement(web): IRC settings layout (#1312)
* enchancement(web): IRC settings layout

* consolidate some css
2023-12-25 13:16:17 +01:00
soup
6e12654f6a
feat(filters): show enabled and disabled actions in list view (#1304)
* feat(filters): reflect enabled actions

* dont store release unless enabled action found

* store the release after the delay

* add new parameter to FindByFilterID method
2023-12-17 21:18:26 +01:00
KaiserBh
92646dacc8
build(web): bump vite and cjs node api refactor (#1276)
* refactor: use ES module.

To maintain compatibility with vite 6 and since that's where the web are heading too.
Also moved some deps to devDeps, better optimized production builds. Changed some of the script command to match how others run or preview it, I think it was still using CRA.

* chore: update-lock.yaml

* refactor: since we are using ESM now, .cjs .ts required.

Changed the file extensions and refactored the .eslintrc.cjs I think there was a lot of bloat from the previous version and removed most of them and keep it simple for now, we can always expand from here a clean slate.

* refactor: added .node.json and refactored.

* fix(build): APIClient.ts had few error.

ESLint: Unexpected lexical declaration in case block.(no-case-declarations)

and TS2554: Expected  0-1  arguments, but got  2
we passed the cause to the constructor which it only takes 1 argument so removed it instead, since it's already in the string "Offline".

* fix(build): import never used.

* fix(build): add the types for react-dom/client.

* fix(build): use ESNext instead.

* fix(build): hmm why are we missing the types for the import?

Added @types/react-table.

* chore(lint): fix lint warnings

Don't use * for export.

* chore(lint): missing deps.

React Hook useEffect has a missing dependency: 'validateForm'. Either include it or remove the dependency array

* chore(lint): fix import.

* chore(lint): fix import.

* chore(lint): fix react hook.

error  React Hook "useMutation" is called conditionally. React Hooks must be called in the exact same order in every component render  react-hooks/rules-of-hooks

* chore(lint): value never used.

  52:10  error    '_regexPattern' is assigned a value but never used

* chore(lint): add missing dependency to useEffect

* chore(lint): fix imports.

* chore(lint): add deps to array.

* chore(lint): error  Unexpected lexical declaration in case block  no-case-declarations

* chore(lint): remove any and add types.

I am not sure about type CompleteFilterType I know it's being used for JSON so might need to use any?? dunno just test it and see if works.

* chore(lint): react-hooks/exhaustive-deps

* chore(lint): react-hooks/exhaustive-deps

* chore(lint): use type guard instead of any.

* chore(lint): react-hooks/exhaustive-deps

* Revert "chore(lint): remove any and add types."

This reverts commit 7b9168fe7826d63cb00e44df8e15fbde49b59174.

* chore(web): ignore sourcemap warnings

* chore(web): update vite to 5.0.4

* chore: add the new script `pnpm dev` to start the dev env.

* chore: add the curly braces.

more info: https://eslint.org/docs/latest/rules/no-case-declarations

* chore: remove the extra spaces

* chore: remove the extra spaces

* chore: add the curly braces.

* chore: add curly braces

* remove text-shadow property and comment

* revert switch case braces for Actions.tsx

---------

Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
2023-12-15 23:36:16 +01:00
soup
a89a1a55d9
feat(notifications): add LunaSea support (#1284)
* feat(notifications): add lunasea

* fix(web): truncate overflow in PasswordFieldWide

* refactor(notifications): centralize msg building

Left the building logic in discord.go and notifiarr.go as is because of their unique structure.

* refactor: moved components and swapped to outline

- Refactored the iconComponentMap to use a single iconStyle variable.

* upped size from 4 to 5

* rename NotificationBuilder function
2023-12-15 23:13:44 +01:00
soup
da365da17c
feat(releases): incognito mode (#1282)
* feat(web): incognito mode

* removed unused variable

* move RandomLinuxIsos into utils/index
2023-12-14 22:20:36 +01:00
Shivaram Lingamneni
b2c32a421e
fix(irc): improve IRC handler management (#1269)
* fix some races in IRC handler management

* remove go 1.21 and slices package

* chore: update deps

* fix: use exp/slices pkg and client callbacks

* fix(irc): remove deadlock mutex from authenticate

* restore locking in authenticate()

* fix(irc): data races

* fix(irc): do not allow restart of disabled network

* fix(irc): disable restart btn if net disabled

---------

Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
2023-12-12 20:29:43 +01:00
soup
4d13d08c87
feat(filters): auto-expand used sections (#1278)
feat(web): auto-expand sections with data
2023-11-26 12:58:46 +01:00
soup
e6b3d6117e
fix(web): improve responsiveness on settings pages (#1270)
* fix(web): truncate feed name and adjust margins

This is to avoid clipping on narrow screens.
Bug: https://i.imgur.com/Aw3FzRK.png

* fix(web): fix boundaries and layout on feed page
fix(web): align switches on download client, feed and notification page

* fix(web): add truncate and margin to feed names

* correct truncate
change margin to padding

* inherit text styles

---------

Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
Co-authored-by: Fabricio Silva <hi@fabricio.dev>
2023-11-22 20:12:18 +01:00
Kuredant
f89a25d645
feat(irc): support optional bot mode (#1246)
* feat(irc): set bot mode when the server supports it

See https://ircv3.net/specs/extensions/bot-mode.

* feat(irc): add a config option per network for bot mode
2023-11-22 19:57:16 +01:00
martylukyy
c6c74c7f3b
fix(web): revert package versions causing errors (#1274) 2023-11-20 21:20:26 +01:00
Fabricio Silva
b7a8f6e6ed
build(deps): bump pnpm to 8.10.5 (#1271) 2023-11-20 18:36:15 +01:00
Fabricio Silva
8a8069408a
fix(indexers): toggle state (#1214)
* fix(indexers): toggle state

* fix(indexers): toggle state

---------

Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
2023-11-19 23:11:12 +01:00
martylukyy
cb036ac538
enhancement(web): releases description for narrow screens (#1234)
fix(web): description alignment for narrower screens
2023-11-19 22:21:41 +01:00