Commit Graph

52 Commits

Author SHA1 Message Date
Néfix Estrada
395dba8bb3
feat(webui): add catalan i18n (#404) 2025-05-10 23:52:54 +01:00
rraymondgh
4d4042acdd
fix charts clipped on small devices (#385)
Some checks failed
Deploy Jekyll with GitHub Pages dependencies preinstalled / build (push) Has been cancelled
Deploy Jekyll with GitHub Pages dependencies preinstalled / deploy (push) Has been cancelled
* fix clipping of charts on small devices (eg iPhone)

* Rebuild web UI

---------

Co-authored-by: mgdigital <mgdigital@users.noreply.github.com>
Co-authored-by: Mike Gibson <mike@mgdigital.co.uk>
2025-03-02 15:01:28 +00:00
mgdigital
f4ebdc6b10
Adjust translation for "dismiss" (#394)
* Adjust translation for "dismiss"

* Rebuild webui

---------

Co-authored-by: Glandos <bugs-github@antipoul.fr>
2025-03-01 13:23:03 +00:00
mgdigital
c924ae6ba3
Allow ad hoc reprocessing via API and web UI (#393)
Also upgraded Apollo GraphQL client based on security advisory of unescaped input its compiled code. It didn't resolve the security advisory, but keeping the upgrade anyway. Fairly sure it's a false positive!
2025-03-01 12:46:39 +00:00
mgdigital
d3c5bebab0
Chart improvements (#381)
* Chart improvements

* Rebuild webui

* Format queue latency tooltip
2025-02-09 12:52:02 +00:00
mgdigital
284a10d249
Fix search params (#380)
There were some issues with handling of URL parameters in the search interface, which was causing anomalies with filtering and editing tags.
2025-02-09 11:20:34 +00:00
mgdigital
1d0034cfd3
Housekeeping (#366) 2025-01-08 22:47:01 +00:00
rraymondgh
b98f18368d
dashboard - purge queues labels wrong for statuses (#356)
Some checks failed
Checks / lint (push) Has been cancelled
Checks / test (push) Has been cancelled
Checks / generated (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (ruby) (push) Has been cancelled
* label for each status

* webui rebuild
2024-12-07 17:58:11 +00:00
mgdigital
d0506497f1
Miscellaneous fixes (#357)
Some checks failed
Checks / lint (push) Has been cancelled
Checks / test (push) Has been cancelled
Checks / generated (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (ruby) (push) Has been cancelled
* Simplify purge jobs logic

* Fix GraphQL unmarshal of nullable enum

* Improve queue batch UI

* Miscellaneous UI tweaks

* Round estimates to 2 significant figures

* Use default cursor for file sizes

* Add padding to bottom of layout

* Rebuild webui

* Add missing files
2024-12-01 12:56:57 +00:00
mgdigital
a397c471cc
Add page titles (#355)
Some checks failed
Checks / lint (push) Has been cancelled
Checks / test (push) Has been cancelled
Checks / generated (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (ruby) (push) Has been cancelled
* Add page titles

* Rebuild webui
2024-11-29 18:16:59 +00:00
cyberbabacool
915e8d3797
Update fr.json (#351)
Some checks failed
Checks / lint (push) Has been cancelled
Checks / test (push) Has been cancelled
Checks / generated (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (ruby) (push) Has been cancelled
* Update fr.json

* Rebuild webui

---------

Co-authored-by: Mike Gibson <mike@mgdigital.co.uk>
2024-11-19 10:09:51 +00:00
rraymondgh
5bd06c7017
i18n across labels in torrent bulk actions (#346)
Some checks are pending
Checks / lint (push) Waiting to run
Checks / test (push) Waiting to run
Checks / generated (push) Waiting to run
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
* templated code

translations with npx i18n-auto-translation -k $API_KEY -d webui/src/app/i18n/translations -t

* build web-ui

* Rebuild webui

* Remove erroneous key

* Newlines

---------

Co-authored-by: Mike Gibson <mike@mgdigital.co.uk>
2024-11-18 12:43:15 +00:00
mgdigital
14bccbeb8c
Queue admin improvements (#350)
- Use truncate instead of delete for purging all queue jobs
- Add option to truncate queue_jobs when enqueuing batch reprocess
2024-11-17 15:04:30 +00:00
mgdigital
2b17e54e39
Add not found page (#341)
* Add not found page
2024-10-28 11:38:11 +00:00
mgdigital
7b02ca696c
Fixes v0.10.0 (#340)
* Fix undefined callback

* Add estimate sign to paginator
2024-10-28 10:03:18 +00:00
mgdigital
c2252c6563
Add tooltip for decimal filesize (#325) 2024-10-15 10:47:19 +01:00
mgdigital
065db85537
Upgrade go libs (#318)
* Upgrade go libs

* Fix video3D
2024-10-15 07:08:21 +01:00
mgdigital
309e3b892b
Webui revamp (#280)
Some checks are pending
Checks / lint (push) Waiting to run
Checks / test (push) Waiting to run
Checks / generated (push) Waiting to run
CodeQL / Analyze (go) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
2024-10-14 17:04:28 +01:00
mgdigital
064394e8b0
Add sponsor links to web UI (#270) 2024-06-08 09:38:01 +01:00
mgdigital
d4448e0439
Ordering (#260)
This PR adds ordering capability in the API and web UI. There is also some refactoring of the web UI that has significantly improved performance.

To get proper ordering (particularly by seeders/leechers), the index must be reprocessed.

I'm aware that certain combinations of filters and orders can be slow, but for most performance is acceptable. For example, ordering a large filtered result by size (ascending) seems very slow, though descending seems okay - I've experimented with a few indexing and database tweaks without much luck and so decided to leave as-is, it can possibly be addressed later or it may be an inherent limitation of Postgres.
2024-05-18 10:30:02 +01:00
mgdigital
e99f1a10a6
Use fontsource packages for fonts to ensure deterministic build (#257) 2024-05-14 11:26:18 +01:00
mgdigital
d9ad409ea7
Upgrade dependencies (#250)
* Upgrade go deps

* Update npm deps

* Add webui codegen

* Refactor check action

* Rebuild web UI

* Fix linting error
2024-04-30 18:19:13 +01:00
mgdigital
5c01817f8b
Add Nix shell and refactor actions (#249) 2024-04-30 17:39:46 +01:00
dependabot[bot]
d2e567bc86
Bump follow-redirects from 1.15.5 to 1.15.6 in /webui (#221)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.5 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.5...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mgdigital <mgdigital@users.noreply.github.com>
2024-04-23 21:15:37 +01:00
dependabot[bot]
323f62ef6c
Bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /webui (#231)
Bumps [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) from 5.3.3 to 5.3.4.
- [Release notes](https://github.com/webpack/webpack-dev-middleware/releases)
- [Changelog](https://github.com/webpack/webpack-dev-middleware/blob/v5.3.4/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-middleware/compare/v5.3.3...v5.3.4)

---
updated-dependencies:
- dependency-name: webpack-dev-middleware
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mgdigital <mgdigital@users.noreply.github.com>
2024-04-23 21:11:02 +01:00
dependabot[bot]
772cedfae4
Bump express from 4.18.2 to 4.19.2 in /webui (#236)
Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.19.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.2...4.19.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mgdigital <mgdigital@users.noreply.github.com>
2024-04-23 21:07:46 +01:00
mgdigital
c16f76130c
Classifier rewrite (#213)
The classifier has been re-implemented and now uses a DSL allowing for full customisation. Several bugs have also been fixed.

- Closes https://github.com/bitmagnet-io/bitmagnet/issues/182
- Closes https://github.com/bitmagnet-io/bitmagnet/issues/70
- Closes https://github.com/bitmagnet-io/bitmagnet/issues/68
- Hopefully fixes https://github.com/bitmagnet-io/bitmagnet/issues/126
2024-04-21 16:24:10 +01:00
Jostein Kjønigsen
7902b93bd7
Torrent search: Fix for Safari on iOS. (#235)
* Torrent search: Fix for Safari on iOS.

keyup.enter event does not seem to trigger for Safari on iOS.
Trigger update-code on blur-event too to workaround.

This fixes https://github.com/bitmagnet-io/bitmagnet/issues/117.

* Update embedded npm content
2024-03-30 09:48:39 +00:00
mgdigital
e9e19a5b0a
Fix angular cli version (#220) 2024-03-15 15:28:41 +00:00
poruta99
f6edd021ab
Show version info on webui (#205) 2024-03-09 14:44:35 +00:00
mgdigital
0418b3c093
Rebuild webui (#195)
* Add .nvmrc

* Rebuild webui
2024-03-07 20:42:32 +00:00
mgdigital
783a5415a9
Add missing file (#179) 2024-02-25 11:22:54 +00:00
mgdigital
c90f850f0a
WebUI optimisations and improvements (#177)
- Use onPush change detection strategy
- Make tabs lazy loading
- Use `matTooltip` instead of `title` attribute
- Add image `alt` attribute
2024-02-25 11:01:36 +00:00
mgdigital
391f43b345
dht_crawler.save_files_threshold changes (#176)
* dht_crawler.save_files_threshold changes
2024-02-25 10:34:14 +00:00
mgdigital
41d36dff61
Rebuild webui (#171) 2024-02-23 19:04:49 +00:00
mgdigital
ab0405196e
Classifier enhancements (#158) 2024-02-21 17:02:03 +00:00
mgdigital
e621ccd4ce
Fix Unknown section (#151) 2024-02-20 18:27:27 +00:00
mgdigital
f8d02aac5e
Extension-based content type classification (#146) 2024-02-19 17:27:21 +00:00
mgdigital
efdde16dd1
Frontend optimisations (#143)
- Upgrade all web UI packages
- Use NgOptimizedImage
- Use new Angular control flow
2024-02-18 02:06:41 +00:00
mgdigital
c8e1960363
Remove Redis dependency and move message queue to Postgres (#131) 2024-02-13 11:19:22 +00:00
mgdigital
e471dd2ddf
Use budgeted count for aggregations (#128)
This PR introduces a significant optimisation of aggregations (counts). 

It takes advantage of the fact that a Postgres query plan can tell you the cost of a query up-front, along with a rough estimate of the count based on indexes. All count queries now have a "budget", defaulting to 5,000. If the budget is exceeded according to the query plan, then the estimate will be returned (and the UI will display an estimate symbol `~` next to the associated count), otherwise the query will be executed and an exact count will be returned.

The accuracy of the estimate seems to be within 10-20% of the exact count in most cases - though accuracy depends on selected filter criteria and what is being counted, I've noticed bigger discrepancies but overall it seems like an acceptable trade-off.

The background cache warmer has been removed and aggregations are now real time again (the cache warmer was at best a short term mitigation while I figured out a better solution). The cache TTL has been reduced to 10 minutes. It was previously increased to allow the cache warmer to be run less frequently.

There are also some adjustments to the indexes that improve performance and the accuracy of estimations. For large indexes the migration may take a while to run: in my tests on 12 million torrents it took 15 minutes.
2024-02-06 18:56:15 +00:00
mgdigital
d443c5d8d9
Refactor torrent processing (#106)
A rework of the torrent creation workflow: previously a `Torrent` record was always created with a corresponding `TorrentContent` record, which would usually be empty; following this a `classify_torrent` queue job would attempt classification then update the `TorrentContent` record. 

Following this update, `Torrent` records will always be created in isolation, and a `process_torrent` job will then run in the queue. This will not only classify the torrent, but also perform any other tasks like search reindexing. For torrents that have already been matched to a piece of content, rematching will not occur (unless specified in the CLI command, see below), which saves a significant amount of work.

A new entity type, `TorrentHint` has been created for providing hints to the classifier (currently used only by the import tool). Previously any hints for the classifier were added directly to the `TorrentContent` record, which was a conflation of 2 different things (the classification result, and hints for the classifier), which is problematic when it comes to reclassification.

Additionally, a new CLI command, `reprocess` has been added, which will reprocess all torrents, classify them, and update the search index. For already matched torrents, rematching will only occur when passing the `--rematch` flag.

A few reasons for this change:

- It will prevent unclassified (but classifiable) torrents showing at the top of the list in the WebUI, which is confusing
- The new search index will require reindexing of all torrents, and the CLI command provides a simple way to do this
- In future, we'll want to hang further steps off the `process_torrent` job, such as rules-based deletion, and this provides the groundwork for that
2024-01-22 19:23:00 +00:00
dependabot[bot]
01b1448b2e
Bump follow-redirects from 1.15.2 to 1.15.4 in /webui (#102)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.2 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.2...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-09 12:24:38 +00:00
mgdigital
f2dcbf98fc
Reduce aggregations in web UI (#87)
Fix https://github.com/bitmagnet-io/bitmagnet/issues/85

- Accurate counts in the web UI will only be shown for the top-level filters; when deep-filtering, the counts will show a less than or equal sign: `≤`, indicating the number is a "maximum possible" rather than an accurate count; I'm still not sure about the UX aspect of showing the `≤` which could be confusing if you're not sure what it means, but I figured it's better than showing nothing at all - open to suggestions!
- A background process keeps the in-memory query cache warm for the top-level aggregations (by default every 10 minutes), allowing them to be served instantly
- The query cache TTL has been increased to 20 minutes; improved performance is preferable to seeing the most up-to-date information
- Pagination has been refactored to account for not knowing the total number of pages; internally the search engine will request 1 more item than it needs to know if there's a next page to advance to
- Some general refactoring of the web app
2023-12-21 16:08:38 +00:00
mgdigital
f55d430303
Split webUI query (#82) 2023-11-29 06:42:11 +00:00
mgdigital
57710c4424
Add Discord link to web UI (#78) 2023-11-28 18:29:55 +00:00
mgdigital
85bf13bc6a
Deletion (#75)
- Add a stable bloom filter, stored in the database, for blocked and deleted torrents
- Add GraphQL mutations for blocking and deleting torrents
- Add web UI for bulk actions (tagging and deleting)
- Some minor cosmetic web UI tweaks
- Move database operations to dao package
2023-11-28 17:54:49 +00:00
mgdigital
8224aded79
Add refresh button to web UI (#73) 2023-11-24 11:46:09 +00:00
dependabot[bot]
f5e38856a9
Bump @babel/traverse from 7.22.17 to 7.23.2 in /webui (#41)
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.22.17 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: mgdigital <mgdigital@users.noreply.github.com>
2023-11-24 09:54:34 +00:00
mgdigital
41094ef9da
Add attributes to magnet links (#72)
* Add attributes to magnet link
2023-11-24 07:49:45 +00:00