Commit graph

56 commits

Author SHA1 Message Date
1242c19883
Add support for using freeleech tokens if available 2025-07-11 10:12:43 +12:00
Lucian Maly
92ddb919a5
feat(autobrrctl): add filters export functionality (#2065)
* Added export functionality

* Update: export to export-filters

* Update: Using struct

* Updated FilterExport struct
2025-06-02 18:03:49 +02:00
Antoine
3f8bc0140c
feat(metrics): add metrics server (#1930)
* feat(metrics): add metrics server

* chore: update license headers

* feat(metrics): add optional basic auth

* feat(metrics): add go and process collectors

---------

Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
Co-authored-by: ze0s <ze0s@riseup.net>
2025-01-25 17:58:18 +01:00
soup
0391629862
chore(license): update copyright year in headers (#1929)
* chore: update copyright year in license headers

* Revert "chore: update copyright year in license headers"

This reverts commit 3e58129c431b9a491089ce36b908f9bb6ba38ed3.

* chore: update copyright year in license headers

* fix: sort go imports

* fix: add missing license headers
2025-01-06 22:23:19 +01:00
ze0s
221bc35371
feat(lists): integrate Omegabrr (#1885)
* feat(lists): integrate Omegabrr

* feat(lists): add missing lists index

* feat(lists): add db repo

* feat(lists): add db migrations

* feat(lists): labels

* feat(lists): url lists and more arrs

* fix(lists): db migrations client_id wrong type

* fix(lists): db fields

* feat(lists): create list form wip

* feat(lists): show in list and create

* feat(lists): update and delete

* feat(lists): trigger via webhook

* feat(lists): add webhook handler

* fix(arr): encode json to pointer

* feat(lists): rename endpoint to lists

* feat(lists): fetch tags from arr

* feat(lists): process plaintext lists

* feat(lists): add background refresh job

* run every 6th hour with a random start delay between 1-35 seconds

* feat(lists): refresh on save and improve logging

* feat(lists): cast arr client to pointer

* feat(lists): improve error handling

* feat(lists): reset shows field with match release

* feat(lists): filter opts all lists

* feat(lists): trigger on update if enabled

* feat(lists): update option for lists

* feat(lists): show connected filters in list

* feat(lists): missing listSvc dep

* feat(lists): cleanup

* feat(lists): typo arr list

* feat(lists): radarr include original

* feat(lists): rename ExcludeAlternateTitle to IncludeAlternateTitle

* fix(lists): arr client type conversion to pointer

* fix(actions): only log panic recover if err not nil

* feat(lists): show spinner on save

* feat(lists): show icon in filters list

* feat(lists): change icon color in filters list

* feat(lists): delete relations on filter delete
2024-12-25 13:23:37 +01:00
Kyle Sanderson
b17e586d63
feat(runtime): Set GOMEMLIMIT from environment (#1821)
* feat(runtime): Set GOMEMLIMIT from environment

* feat: log memlimit err

* feat: go mod tidy

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2024-11-23 16:30:26 +01:00
Kyle Sanderson
50f1e4e7d5
build(ci): implement PGO (#1812)
* build(ci): implement pgo

Implement PGO (performance guided optimizations) for Go builds.
2024-11-16 23:57:41 +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
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
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
Kyle Sanderson
65d25c56c9
feat(diagnostics): add pprof profiling (#1627)
* feat(tracing): enable tracing

* of course the squash didn't work.

* gah. always nice when there's 40 csets.

* might as well.

* refactor: tracing to diagnostics

* feat: add note about the magic methods from pprof

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2024-08-27 11:00:30 +02:00
ze0s
3202c6043d
feat(indexers): update release baseurl on update (#1532) 2024-05-03 11:32:56 +02:00
martylukyy
2337ee4d75
fix(autobrrctl): prevent empty password (#1468)
* fix(autobrrctl): prevent empty password

* fix(autobrrctl): prevent empty password for create-user aswell
fix(autobrrctl): stringify password in checks

* feat(autobrrctl): validate password length

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2024-03-24 10:39:51 +01:00
ze0s
65b42f517d
fix(backend): do not exit on GOMAXPROCS error (#1469)
fix: do not exit on gomaxprocs error
2024-03-20 19:30:37 +01: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
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
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
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
558bc045ab
refactor: streamline shutdown signal handling (#1248) 2023-11-14 20:39:29 +01:00
Kyle Sanderson
fc63d46e71
feat(go): implement cpu quota detection (#1251)
* feat(go): implement quota detection

* go get go mod tidy

---------

Co-authored-by: soup <soup@r4tio.dev>
2023-11-14 20:35:09 +01:00
ze0s
cbf668e87c
feat(logs): show full log event (#1096)
* feat(logs): show all extra fields in UI

* feat(logs): init log level as debug then trace
2023-09-10 12:28:10 +02:00
ze0s
ccabe96bdf
feat(irc): view announces per channel (#948)
* feat(irc): add sse to handler

* feat(irc): view and send irc messages per network

* refactor(irc): use id as handlerkey

* refactor(irc): use id as handlerkey

* feat(web): add irc context

* refactor: create sse stream per network channel

* fix(irc): remove non-working wildcard callback handler

* feat: use fork of sse

* chore(deps): update ergo/irc-go to v0.3.0

* fix: clean irc msg before sse publish

* feat: add view channel button

* feat: styling improvements

* feat: show time
2023-05-21 15:51:40 +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
7f05dd1efd
fix(onboarding): could not create user (#848)
fix: onboarding not working
2023-04-17 20:56:17 +02:00
soup
9c5c2f1a81
fix(autobrrctl): use brr-api for version check (#752)
* use brr-api instead of github directly

* fixed comment

* better error handling

* removed bloat from printing

* added timeout and os.Exit upon errors
2023-03-19 21:04:52 +01:00
soup
a6496fc946
feat(autobrrctl): Show latest version in version output (#723)
* initial commit

* initial commit

* fix

* removed unused code

* go mod tidy
2023-02-23 23:08:59 +01:00
ze0s
2917a7d42d
feat: show new updates in dashboard (#690)
* feat: show new update banner

* feat(http): add request logger

* refactor: updates checker

* feat: make update check optional

* fix: empty releases

* add toggle switch for update checks

* feat: toggle updates check from settings

* feat: toggle updates check from settings

* feat: check on toggle enabled

---------

Co-authored-by: soup <soup@r4tio.dev>
2023-02-05 18:44:11 +01:00
ze0s
e6c48a5228
feat(http): log invalid login attempts (#587) 2022-12-28 17:58:26 +01:00
ze0s
38795be9ea
feat(filters): smart episode (#563)
* feat(filters): initial smart episode

* feat(smart-episode): pseudo-logic

* feat(filters): check releases

* feat(filters): update logic

* feat(web): smart episode (#562)

* add frontend part for smart episode feature

* change description for smart episode help text

* fix wording

* feat(filters): smart-episode logic

Co-authored-by: Kyle Sanderson <kyle.leet@gmail.com>
Co-authored-by: xoaaC <35452459+xoaaC@users.noreply.github.com>
2022-12-14 19:07:04 +01:00
Kyle Sanderson
490d85d220
fix(cmd): add fallback tz information (#526)
* fix(cmd): add fallback tz information

* build(docker): add tzdata pkg
2022-11-10 10:20:54 +01:00
ze0s
fa20978d58
feat(api): add apikey support (#408)
* feat(api): add apikey support

* feat(web): api settings crud
2022-08-15 11:58:13 +02:00
Ludvig Lundgren
8a4826d781
fix(autobrrctl): missing logger (#355) 2022-07-16 17:59:24 +02:00
Ludvig Lundgren
2a3a839081
feat(notifications): on update available (#352) 2022-07-12 14:47:08 +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
f63ace662a
feat(irc): improve reconnect and add notifications (#315)
* refactor(irc): nickserv and methods

* feat(notifications): add new events and refactor send

* feat(irc): handle disconnect reconnect and connect

* feat(irc): update config for ergo local irc server

* feat(irc): retry initial connect

* feat(irc): show nickserv errors
2022-06-29 16:50:38 +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
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
Ludvig Lundgren
2a3b5ce448
feat(http): add healthcheck endpoints liveness and readiness (#240)
* feat(http): add liveness and readiness endpoints

* feat(http): improve unhealthy msg
2022-04-12 18:19:07 +02:00
Ludvig Lundgren
a3854ecd59
refactor: filter and action flow (#225)
* refactor: fitler and action flow

* fix: save release before filters

* feat: add action client to notifications

* feat: improve filter check logging
2022-04-09 21:20:26 +02:00
Ludvig Lundgren
431742fd94
feat: add notifications (#216)
* feat: initial notifications support

* chore: update deps
2022-04-04 19:13:09 +02:00
Ludvig Lundgren
3185832708
feat: add postgres support (#215)
* feat: add postgres support and refactor

* feat: improve releases find

* fix: autobrrctl create user
2022-04-02 19:24:23 +02:00
Ludvig Lundgren
cc0c071cce feat: wip postgres support 2022-03-27 03:12:00 +02:00
Ludvig Lundgren
fdf69e6403
feat(indexers): load custom definitions (#186) 2022-03-20 14:35:33 +01:00
Ludvig Lundgren
3c323004c0
refactor: change back to modernc sqlite db driver (#120)
* refactor: change to modernc sqlite db driver

* chore: update deps
2022-03-19 17:41:42 +01:00
Ludvig Lundgren
f466657ed4
Fix: Performance issues and sqlite locking (#74)
* fix: performance issues and sqlite locking

* fix: dashboard release stats was reversed

* refactor: open and migrate db

* chore: cleanup
2022-01-11 19:35:27 +01:00
Ludvig Lundgren
efa84fee8b
Feature: Improve config for http server (#67)
* feat: improve config for http server

* Feature: Support multiple action status per release (#69)

* feat: move release actions to separate table

* chore: update sqlite driver

* fix(indexers): btn api client (#71)

What:

*  Api key and torrentId in wrong order
*  Set hardcoded ID in jsonrpc request object
*  ParsetorrentId from url

Fixes #68

* feat: show irc network status in settings list

* feat: show irc channel status

* chore: go mod tidy

* feat: improve config for http server

* feat: add context to user repo

* feat: only set secure cookie if https
2022-01-09 14:41:48 +01:00
Ludvig Lundgren
2ea2293745
Feature: Get size by api for ptp btn and ggn (#66)
* chore: add package

* feat: get size by api for ptp and btn

* feat: download and parse torrent if not api

* feat: bypass tls check and load meta from file

* fix: no invite command needed for btn

* feat: add ggn api

* feat: imrpove logging

* feat: build request url

* feat: improve err logging
2022-01-05 23:52:29 +01:00
Ludvig Lundgren
b09796bf7e
Feature: Set and display version info (#63)
* chore: update packages

* feat: show version info

* build: remove ldflags override
2022-01-02 15:18:28 +01:00
Ludvig Lundgren
c4d580eb03
Feature: Support multiline irc parsing (#39)
* feat: initial multiline support

* refactor: handle multiple indexers per network

* wip: setup indexer

* build: add docker compose for testing

* chore: remove temp mock indexers

* chore: update deps

* refactor: update and store network handler

* build: update test compose

* chore: minor cleanup
2021-12-21 21:15:42 +01:00
Ludvig Lundgren
7177e48c02
Feature: Save releases (#36)
* chore: tidy deps

* refactor: database migration

* refactor: store release

* refactor: save release

* chore: add packages

* feat(web): show stats and recent releases

* refactor: simply filter struct

* feat: add eventbus

* chore: cleanup logging

* chore: update packages
2021-11-24 23:18:12 +01:00