Commit graph

32 commits

Author SHA1 Message Date
kenstir
4009554d10
feat(filters): skip duplicates (#1711)
* feat(filters): skip duplicates

* fix: add interface instead of any

* fix(filters): tonullint

* feat(filters): skip dupes check month day

* chore: cleanup

* feat(db): set autoincrement id

* feat(filters): add repack and proper to dupe profile

* feat(filters): add default dupe profiles

* feat(duplicates): check audio and website

* feat(duplicates): update tests

* feat(duplicates): add toggles on addform

* feat(duplicates): fix sqlite upgrade path and initialize duplicate profiles

* feat(duplicates): simplify sqlite upgrade

avoiding temp table and unwieldy select.  Besides, FK constraints
are turned off anyway in #229.

* feat(duplicates): change CheckIsDuplicateRelease treatment of PROPER and REPACK

"Proper" and "Repack" are not parallel to the other conditions like "Title",
so they do not belong as dedup conditions.  "PROPER" means there was an issue in
the previous release, and so a PROPER is never a duplicate, even if it replaces
another PROPER.  Similarly, "REPACK" means there was an issue in the previous
release by that group, and so it is a duplicate only if we previously took a
release from a DIFFERENT group.

I have not removed Proper and Repack from the UI or the schema yet.

* feat(duplicates): update postgres schema to match sqlite

* feat(duplicates): fix web build errors

* feat(duplicates): fix postgres errors

* feat(filters): do leftjoin for duplicate profile

* fix(filters): partial update dupe profile

* go fmt `internal/domain/filter.go`

* feat(duplicates): restore straightforward logic for proper/repack

* feat(duplicates): remove mostly duplicate TV duplicate profiles

Having one profile seems the cleanest.  If somebody wants multiple
resolutions then they can add Resolution to the duplicate profile.
Tested this profile with both weekly episodic releases and daily
show releases.

* feat(release): add db indexes and sub_title

* feat(release): add IsDuplicate tests

* feat(release): update action handler

* feat(release): add more tests for skip duplicates

* feat(duplicates): check audio

* feat(duplicates): add more tests

* feat(duplicates): match edition cut and more

* fix(duplicates): tests

* fix(duplicates): missing imports

* fix(duplicates): tests

* feat(duplicates): handle sub_title edition and language in ui

* fix(duplicates): tests

* feat(duplicates): check name against normalized hash

* fix(duplicates): tests

* chore: update .gitignore to ignore .pnpm-store

* fix: tests

* fix(filters): tests

* fix: bad conflict merge

* fix: update release type in test

* fix: use vendored hot-toast

* fix: release_test.go

* fix: rss_test.go

* feat(duplicates): improve title hashing for unique check

* feat(duplicates): further improve title hashing for unique check with lang

* feat(duplicates): fix tests

* feat(duplicates): add macros IsDuplicate and DuplicateProfile ID and name

* feat(duplicates): add normalized hash match option

* fix: headlessui-state prop warning

* fix(duplicates): add missing year in daily ep normalize

* fix(duplicates): check rejections len

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2024-12-25 22:33:46 +01:00
ze0s
c0882aff84
fix(releases): parse missing source and misinterpreted group name (#1820)
fix(releases): parse missing source and groups
2024-11-23 15:08:58 +01:00
Kyle Sanderson
c3824f3519
chore(tests): correct typos (#1715) 2024-09-12 08:19:27 +02:00
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
ze0s
5328078b32
fix(filters): RED and OPS lossless parsing and filtering (#1373)
* fix(filters): RED and OPS lossless parsing and filtering

* fix(filters): logscore and EP parsing

* fix(filters): tests

* fix(filters): tests

* feat(definitions): RED parse title variable

* feat(indexers): setup indexer to filter tests

* feat(indexers): tests and improve parsing

* feat(indexers): improve tests
2024-01-28 22:03:25 +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
1bfbe38335
feat(macros): add SizeString DownloadURL and InfoURL (#1080)
* feat(macro): add new variables

* SizeString
* DownloadURL
* InfoURL

* feat(macro): add new test cases
2023-09-03 13:27:47 +02:00
soup
28f0b878e1
feat(releases): torrent file downloads improve error handling (#950)
* improve content type check
checks if torrent file is a valid torrent file when content-type is text/html

* optimize content type check and file handling

* attempt to write tests

* small changes to error messages

* fix: download file content type checks

---------

Co-authored-by: Kyle Sanderson <kyle.leet@gmail.com>
Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
2023-06-14 19:55:34 +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
956bccd69f
feat(releases): set freeleech percent 100 with freeleech bool (#872)
* feat(releases): set freeleech to freeleech percent 100

* fix(releases): check if freeleechpercent is gt 0
2023-04-23 20:54:39 +02:00
nuxen
371943d144
fix(tags): 24bit Lossless being tagged as Lossless (#743)
* fix(tags): fixed `24bit Lossless` being tagged as `Lossless`

added negation to the Lossless regex to prevent it from matching 24bit Lossless

* fix(tests): modified test to reflect changes in regex
2023-03-07 19:50:38 +01:00
ze0s
5607184522
fix(releases): parse isScene as Origins SCENE (#716)
* fix(releases): parse isScene as Origins SCENE

* fix(releases): remove isScene
2023-02-14 22:48:10 +01:00
Kyle Sanderson
af43c98632
fix(filters): add support for year-less titles (#685)
* fix(filters): add support for year-less titles

* chore: update pkg

* fix: broken tests

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2023-02-02 23:45:19 +01:00
ze0s
5c402b6d6c
feat(filters): support Language filtering (#632)
* feat(filters): add support for language

* feat(filters): add db migrations and repo

* feat(filters): fix failing tests

* feat(filters): fix failing tests
2023-01-09 00:33:08 +01:00
ze0s
25a165b764
feat(indexers): add support for optional baseurl override (#551)
* feat(indexers): optional baseurl override

* feat(indexers): update baseUrl parsing

* refactor(indexers): BREAKING move parse to IRC struct

* Move Parse as part of IRC struct from Indexer
* Updated definitions
* Build torrentUrl in stages
* Use new url.JoinPath to build torrentUrl
* Update tests

* refactor(indexers): select option obj

* refactor(indexers): make backwards compatible
2022-12-03 15:40:45 +01:00
ze0s
14ecaa530e
feat(indexers): add HUNO (#533) 2022-11-11 14:01:35 +01:00
Kyle Sanderson
2d8f7aeb4e
feat(releases): retry failed downloads (#491)
* feat(download): implement parsing and retry

* feat: retry torrent file downloads

* refactor: error handling downloadtorrentfile

* feat: add tests for download torrent file

* build: add runs-on self-hosted

* build: add runs-on self-hosted
2022-10-19 21:52:31 +02:00
ze0s
dc309a57e4
fix(releases): improve tags parsing (#459) 2022-09-10 21:26:26 +02:00
ze0s
9c036033e9
feat(indexers): mam parse vip as freeleech (#407) 2022-08-12 16:13:45 +02:00
varoOP
95ff83cd3a
feat(indexers): animebytes parse group and category (#327)
* refactor(AB): get releaseGroup

* feat(AB): match category
2022-07-06 15:01:52 +02:00
Ludvig Lundgren
6675a1df3e
fix(releases): releasetags freeleech parsing (#306)
* refactor(releases): remove err from constructor

* fix(releases): freeleech parsing and filtering

* chore: remove unused releaseinfo package
2022-06-14 22:26:45 +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
e6c151a029
feat: improve release parsing and filtering (#257)
* feat(releases): improve parsing

* refactor: extend filtering add more tests

* feat: improve macro

* feat: add and remove fields

* feat: add freeleech percent to bonus

* feat: filter by origin
2022-04-30 13:43:51 +02:00
Ludvig Lundgren
8592787b8b
fix(release): edge case resolution parsing (#243) 2022-04-12 20:58:36 +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
e0e4bf6202
feat(indexers): definitions set forcesizeunit (#156)
* feat(indexers): support custom size handling

* fix: change case for yaml key
2022-02-28 19:25:39 +01:00
Ludvig Lundgren
9b85f512e5
refactor(filters): music sources to media (#104) 2022-01-31 19:16:47 +01:00
Ludvig Lundgren
00bc8298ac
feat(filters): add music filters (#91)
* feat(filters): add music filters

* feat: improve parsing and filtering

* feat: add red api support
2022-01-19 18:50:04 +01:00
Ludvig Lundgren
284a2f9590
feat: add hdr filtering (#86)
* feat: filter hdr content

* feat: check filter hdr

* feat: improve hdr parse and filter and tests
2022-01-16 13:50:21 +01:00
Ludvig Lundgren
c65c7477fd
fix(filters): check except_releases properly (#62) 2022-01-02 00:17:22 +01:00
Ludvig Lundgren
ae1f14d0a4
Feature: Improve filtering and release parsing (#56)
* feat: match against orig and cleaned rel

* feat: add more release parse tests

* feat: filter check tags

* feat: improve filter tag parsing

* refactor: simplify tag split and trim

* fix(indexers): use releasetags for milkie

* fix: properly replace spaces in string

* feat: better source check

* feat: extract releasetags
2022-01-01 21:50:38 +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