11 Commits

Author SHA1 Message Date
mgdigital b560874463 Cache tweaks (#99)
* Increase TTL and cache warmer intervals

* Don't delete cache entries prior to no-cache/warm queries
2024-01-07 12:03:44 +00:00
mgdigital 6358b27bc6 Search query string rework (#96)
- `search_string` field is removed
- text search vector for `content` and `torrent_contents` is generated in code with improvements in normalisation and tokenisation
- the slow `LIKE` query is removed from text search
- a query DSL is implemented which translates the input search string to a Postgres tsquery
- a CLI command (`reindex`) is provided for updating the tsv for pre-existing records
- the unused `tsv` and `search_string` fields are removed from the `torrents` table

See https://github.com/bitmagnet-io/bitmagnet/issues/89
2024-01-07 11:51:40 +00:00
mgdigital 5d74cf6c81 Lazy instantiation for services with side effects (#98) 2024-01-06 12:40:11 +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 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 03f55da811 Torrent tagging (#60)
- Implement torrent tagging in API and UI (https://github.com/bitmagnet-io/bitmagnet/issues/50)
- Lay UX groundwork for actions on individual torrents (actions tab bar)
- Refactor GraphQL schema
2023-11-24 07:28:50 +00:00
mgdigital ec95f7cc3a Observability enhancements (#67) 2023-11-18 18:58:02 +00:00
mgdigital 070f38120b DHT responder: Implement BEP5 & BEP51 (#21)
- Address https://github.com/bitmagnet-io/bitmagnet/issues/11 with BEP5 & BEP51 implementations
- Reimplement DHT crawler around new routing table
- Fix https://github.com/bitmagnet-io/bitmagnet/issues/45
- Fix https://github.com/bitmagnet-io/bitmagnet/issues/42
- Fix https://github.com/bitmagnet-io/bitmagnet/issues/39
- Fix https://github.com/bitmagnet-io/bitmagnet/issues/37
- Make bootstrap nodes configurable: https://github.com/bitmagnet-io/bitmagnet/issues/27
- Add profiling tools to Docker image
2023-11-06 16:41:08 +00:00
Mike Gibson 3bad4fd3e4 Add files_status field and dht_crawler.files_threshold configuration parameter (#9) 2023-10-05 15:17:16 +01:00
Mike Gibson 8275fcb9a2 Add bounds check to year conversion (#4)
* Add bounds check to year conversion
2023-10-04 22:27:03 +01:00
Mike Gibson e7327343f0 Initial commit (#1) 2023-10-04 21:04:26 +01:00