Commit Graph

458 Commits

Author SHA1 Message Date
Sam Chau
51eaa2cdca style(arrInstance): transition to card styling 2025-10-26 10:30:48 +10:30
Sam Chau
77cff2de8f style(scrollbar): add custom safari/chromium scrollbars 2025-10-26 10:00:33 +10:30
Sam Chau
c83217a72a feat(notifications): add notification module with Discord webhook support
- Database schema for notification services and history tracking
  - Notifier interface with Discord webhook implementation
  - UI for creating/editing/managing notification services
  - Integration with job completion events
  - Service-level enable/disable and notification type filtering
  - Test notifications and notification history view
2025-10-22 04:07:03 +10:30
Sam Chau
5cd1bf82ff refactor(createBackup): extract logic and add comprehensive tests
- Extract pure backup logic to /src/jobs/logic/createBackup.ts
  - Update job definition to use extracted logic
  - Fix absolute path parsing for tar command
  - Add 7 tests: success cases, filename format, file extraction,
    error handling (non-existent dir, file instead of dir), empty dir
  - Uses BaseTest framework with temp directories and tar extraction
2025-10-21 09:02:58 +10:30
Sam Chau
b8949b5148 test(cleanupLogs): add comprehensive test suite
- 8 tests covering deletion, retention, parsing, and edge cases
  - Tests empty/non-existent directories and boundary conditions
  - Uses BaseTest framework for isolated temp directories
2025-10-21 08:25:22 +10:30
Sam Chau
97ad75f238 chore(paths): move jobs into src 2025-10-21 08:24:50 +10:30
Sam Chau
7e8068f1fb test: add BaseTest framework with utilities
- Create abstract BaseTest class with lifecycle hooks
  - Add beforeAll/afterAll and beforeEach/afterEach hooks
  - Implement temp directory management (auto cleanup)
  - Add file assertion helpers (exists, contains, matches)
  - Add async utilities (waitFor, waitForFile, sleep)
  - Include example test demonstrating usage
  - Add test tasks to deno.json (test, test:watch)
  - Add @std/assert dependency
2025-10-21 08:04:46 +10:30
Sam Chau
1884e9308f refactor(logger): make Logger independently testable
- Add LoggerConfig interface for dependency injection
  - Logger class now accepts optional config in constructor
  - Default singleton still uses system config/database (no breaking changes)
  - Enables standalone usage for testing without full system init
  - Add auto-creation of logs directory if missing
2025-10-21 07:57:13 +10:30
Sam Chau
0a9b287825 refactor(logging): simplify to daily-only rotation
- Remove rotation_strategy and max_file_size settings
  - Always use YYYY-MM-DD.log format for log files
  - Update cleanup job to parse dates from filenames
  - Simplify settings UI to retention days only
2025-10-21 07:44:37 +10:30
Sam Chau
303e81507f stack(logs, jobs, backups): implemented 2025-10-21 06:10:00 +10:30
Sam Chau
357c5023e2 fix(arr): parameterise api version to let clients override 2025-10-20 04:31:31 +10:30
Sam Chau
c7f0698f2d refactor(arr): create shared instance component for new / edit instance
- add ability to edit existing instances
- add ability to delete existing instances
2025-10-20 04:02:56 +10:30
Sam Chau
ea9a01c0d6 frontend(about): add dev team / dedication 2025-10-20 02:29:55 +10:30
Sam Chau
e24410f6f3 stack(arrConfig): implemented arr config handling
- database module + migrations handler
- http client class + arr client child (with connection pooling, retries, backoff)
- toast alerts
- add new arr configs
2025-10-20 02:13:09 +10:30
Sam Chau
24e5571a66 chore(style): frontend formatting 2025-10-19 22:56:05 +10:30
Sam Chau
8386d8bacb chore(codebase): add ignore stuff for ai related files, add more build commands 2025-10-19 22:27:23 +10:30
Sam Chau
77e8f011b2 frontend(version): add version info to pageNav 2025-10-18 06:26:53 +10:30
Sam Chau
7e25d844e9 style(pageNav): thicker, rounded vertical lines 2025-10-18 05:53:38 +10:30
Sam Chau
d6a9be58bc frontend(error): add error page 2025-10-18 05:50:42 +10:30
Sam Chau
86e9590337 frontend(nav): pageNav 2025-10-18 05:28:47 +10:30
Sam Chau
309297d263 style(nav): fix the nav to top of page 2025-10-18 04:48:12 +10:30
Sam Chau
24a20fcf76 frontend(nav): add navbar, themeToggle, theme store 2025-10-18 04:37:47 +10:30
Sam Chau
f3379b9ea4 server(utils): config, logger, startup 2025-10-18 03:55:11 +10:30
Sam Chau
72415af8a5 chore(setup): sveltekit + deno 2025-10-18 00:39:02 +10:30
Sam Chau
462f0ced94 chore(setup): remove remaining files 2025-10-18 00:09:59 +10:30
Sam Chau
0622046e53 chore(setup): remove existing codebase 2025-10-18 00:09:35 +10:30
Samuel Chau
3a0deb16fa docs(README): update setup link, clean old sections 2025-08-28 10:29:37 +09:30
Samuel Chau
bb514b20cc Merge pull request #224 from Dictionarry-Hub/dev
fix(backend): perms env, mm import refactor, deserialize error
v1.1.3
2025-08-26 22:11:39 +09:30
Sam Chau
99925be174 Merge branch 'main' of https://github.com/Dictionarry-Hub/profilarr into dev 2025-08-26 22:08:05 +09:30
Sam Chau
21e44d592f fix(entrypoint): simplify umask handling 2025-08-24 17:12:45 +09:30
Sam Chau
212dd695b6 fix(entrypoint): start shell with overriden umask 2025-08-24 16:20:17 +09:30
Sam Chau
6c40d352c9 fix(migration): update default language score 2025-08-24 16:07:38 +09:30
Sam Chau
7270bbfedb chore(docker): add entrypoint script and user permissions 2025-08-24 15:35:42 +09:30
Sam Chau
2e2abb93be feat(task): add update logic for task intervals for backup/sync 2025-08-23 10:12:12 +09:30
Sam Chau
7f5f44cd77 refactor(media-management): replace requests with ArrHandler for API interactions 2025-08-23 09:04:59 +09:30
Sam Chau
c30dc33828 fix(importer): pass arr type to format extractor to only compile/import arr specific formats 2025-08-23 08:23:29 +09:30
Samuel Chau
29a64511b8 fix(conflict): deserialize arr specific score objects when checking for conflicts (#220) v1.1.2 2025-08-21 10:25:26 +09:30
Sam Chau
eb9733807e fix(conflict): deserialize arr specific score objects when checking for conflicts 2025-08-21 10:23:27 +09:30
Sam Chau
6bb045d761 fix(yaml): add normalization of boolean keys to strings for JSON compatibility v1.1.1 2025-08-21 09:58:51 +09:30
Samuel Chau
6a77ae373f Merge dev: 1.1 Media Management -> stable v1.1 2025-08-19 15:48:57 +09:30
Sam Chau
1155a5133a fix(formats): more liberal group filters, stop click logic on group button 2025-08-15 03:37:21 +09:30
Sam Chau
9b3e261ec2 feat(scoring): implement sorting and filtering for format groups 2025-08-14 04:21:42 +09:30
Sam Chau
75eef53b40 fix(scoring): refine tag grouping 2025-08-14 03:57:34 +09:30
Sam Chau
4b03d706a5 fix(profile): optimize format processing to avoid unnecessary updates 2025-08-14 03:42:28 +09:30
Sam Chau
737a262568 refactor(scoring): completely overhauled format settings
- selection simplified to radarr/sonarr enabled
- removed basic / advanced views, replaced with grouping
- added ability to copy sonarr / radarr score into each other
2025-08-14 03:11:36 +09:30
Sam Chau
17756013b2 fix(compiler): advanced langauge processing
- use database langauge import score, not default
- fix except language field
2025-08-13 23:22:01 +09:30
Samuel Chau
d7d6b13e46 feat(profiles): radarr/sonarr split functionality (#215)
- added option to set radarr/sonarr specific scores that profilarr's compiler will handle on import
- revise design for arr settings container - now styled as a table
- completely rewrote import module. Now uses connection pooling to reuse connections.
- fixed import progress bug where 1 failed format causes all other formats to be labelled as failed (even if they succeeded)
- fixed bug where on pull sync wasn't working
- improve styling for link / unlink database modals
- fixed issue where 0 score formats were removed in selective mode
2025-08-11 01:51:51 +09:30
Samuel Chau
affb9cbf1f sytle: number input / tab viewer (#208)
* style(scoring-tab): revert width back to 6 digit length

* style(tabs): left allign desktop view
2025-06-18 07:06:50 +09:30
Samuel Chau
5281752269 feat: dynamic language score (#207)
- add database setting for language score on imports
- add settings container on general tab to let user update the value
- improved styling of general settings page to be more like media management page
2025-06-16 11:46:12 +09:30
Samuel Chau
876df945e4 style: consistent import modal (#206)
* style(import-modal): design similar to new media management sync modal

* chore(docker): change dev build to beta
2025-06-14 04:03:50 +09:30