100 Commits
Author SHA1 Message Date
Uyanide 87b7d5c38d feat: update some constants 2026-07-25 16:35:59 +02:00
Uyanide 3aee0aba4d feat: prioritize Netease and QQ 2026-07-12 20:38:23 +02:00
Uyanide bfe5717c3a chore: clarify QQ Music API credentials requirement 2026-07-12 20:23:45 +02:00
Uyanide 118869466f chore: 2 small benchmark scripts 2026-07-12 20:16:16 +02:00
Uyanide b5b4d0eb83 chore: 0.7.10 2026-07-12 20:16:16 +02:00
Uyanide 7fd98ffcb9 feat: revert c8ccf31 2026-04-10 18:51:42 +02:00
Uyanide cfac95ca03 refactor: add __all__ and more decouple 2026-04-10 17:32:49 +02:00
Uyanide 10bfb6090c chore: preferred_player default to none 2026-04-10 15:49:22 +02:00
Uyanide c8ccf31583 feat: log blacklisted player 2026-04-10 15:45:07 +02:00
Uyanide 6e971941f8 chore: 0.7.7 2026-04-10 15:45:07 +02:00
Uyanide 794f42b42b feat: --player bypasses players_blacklist 2026-04-10 15:37:06 +02:00
Uyanide b18d860aca chore: update requirements.txt 2026-04-10 15:37:06 +02:00
Uyanide 1771b43bba chore: 0.7.6 2026-04-10 14:05:52 +02:00
Uyanide 0485410285 fix: watch pos not updated after starting as paused 2026-04-10 14:05:19 +02:00
Uyanide aba77a23cb chore: add poe 2026-04-10 13:28:31 +02:00
Uyanide c505e117d1 style: add future annotations 2026-04-10 12:13:41 +02:00
Uyanide 1b48386132 chore: add script to capture api response references 2026-04-10 11:36:40 +02:00
Uyanide 0f1f5b418a test: add api fixtures 2026-04-10 10:31:04 +02:00
Uyanide 60732f2986 feat: add watch print mode
test: refactor test_watch
style: add inline comments for watch
2026-04-10 08:23:54 +02:00
Uyanide 633983ed98 feat: watch mode fetch immediatly on track changes regardless of player status 2026-04-10 08:23:54 +02:00
Uyanide 1c160d5ccb fix: watch pipe skips refetch after resume from pause 2026-04-10 00:03:33 +02:00
Uyanide b7e539de3b feat: add --no-newline option for watch pipe 2026-04-10 00:03:33 +02:00
Uyanide e6997a76c4 fix: watch pipe mode repeatedly refetch when no lyrics available 2026-04-09 23:28:33 +02:00
Uyanide 6d9cfaf8be refactor: modules only need to know the config values they need to know 2026-04-09 23:14:51 +02:00
Uyanide 66a32c751a style: relative import 2026-04-09 23:14:50 +02:00
Uyanide d2a3e64b89 feat: config file
refactor: as the config module changed
test: add test for config
test: add test for local fetcher and local enrichers
test: add test for manual insertion
fix: some random bugs left by the last commit
2026-04-09 22:42:41 +02:00
Uyanide e6b8583868 feat: add watch command and pipe view 2026-04-09 22:42:41 +02:00
Uyanide 03970bf17f chore: update README and LICENSE 2026-04-08 17:00:16 +02:00
Uyanide 9b42cab76b fix: preserve input order for equal-timestamp lyrics in normalize and to_plain 2026-04-08 12:32:56 +02:00
Uyanide f8db549d8e fix: change TTL of unsynced lyrics to infinite 2026-04-08 09:03:43 +02:00
Uyanide d5188107ff test: clarify semantics & remove duplicates 2026-04-08 09:03:43 +02:00
Uyanide 587d5dbe46 feat: normalize option 2026-04-08 08:01:41 +02:00
Uyanide 1e0f8e2868 fix: remove unused to_unsynced 2026-04-08 08:01:41 +02:00
Uyanide 573f8b5b8b test: update tests for lrc 2026-04-08 08:01:40 +02:00
Uyanide b922a0df28 refactor: better (really?🤨) lrc parsing and handling 2026-04-07 19:33:17 +02:00
Uyanide 1414066eed chore: de-markdown-lize comments 2026-04-07 19:33:17 +02:00
Uyanide 5666dd13c0 test: -1 2026-04-07 15:01:02 +02:00
Uyanide f175eda57e refactor: change cache schema to slots based 2026-04-07 14:54:36 +02:00
Uyanide 92860f0d30 test: clarify known limitations in the only xfail case 2026-04-07 14:54:36 +02:00
Uyanide 0c85af534e refactor: large scale refactor regarding selection & fetchers 2026-04-06 22:30:55 +02:00
Uyanide 69b7f5c60c chore: switch to src layout 2026-04-06 10:29:03 +02:00
Uyanide c5abbff14c chore: enhance comments 2026-04-06 08:40:59 +02:00
Uyanide 2d70231502 refactor: move some impl-specific constants out from config.py 2026-04-06 08:13:00 +02:00
Uyanide 9b04160783 refactor: lazy load credentials for testing 2026-04-06 08:13:00 +02:00
Uyanide a8335d9920 test: remove tests that require credentials 2026-04-06 08:13:00 +02:00
Uyanide 8fabb0de86 fix: handle inconsistent response format of mxm 2026-04-05 19:59:46 +02:00
Uyanide 262d385b00 chore: 0.5.3 2026-04-05 11:53:55 +02:00
Uyanide 65327eb431 fix: remove inflated confidence for unsynced results (impacts: sp, mxm-sp, local, lrclib, manual) 2026-04-05 11:52:53 +02:00
Uyanide 0d56cde927 test: add basic tests for cache-search & network fetchers
test: enable debug
test: add pytest.ini to mark tests that require network
fix: cache-search should not aquire full match of artists due to different translations
fix: replace dynamic f-string SQL in track WHERE clauses with parameterized nullable conditions
refactor: lrc.py should never directly call print, return a str instead
chore: add requirements.txt (via 'uv export')
chore: update README.md with dev instructions
2026-04-05 11:35:04 +02:00
Uyanide 84a3e1076e fix: missing await 2026-04-05 06:28:51 +02:00
Uyanide 449952c6c1 feat: auth: add auth module 2026-04-05 04:12:49 +02:00
Uyanide 1ed51fdbdb feat: enricher: +1 2026-04-05 02:25:33 +02:00
Uyanide d8c3813e39 refactor: move out some constants from config.py 2026-04-05 02:25:33 +02:00
Uyanide 9d6c2e2113 feat: add musixmatch as fetcher 2026-04-04 16:02:19 +02:00
Uyanide 38dc845abe feat: cache stats now prints total row 2026-04-04 09:52:02 +02:00
Uyanide 1c7456c588 perf: parallelize lrclib search queries 2026-04-04 09:05:51 +02:00
Uyanide 303eeaa661 chore: add disclaimer 2026-04-04 08:40:09 +02:00
Uyanide e3f12c1756 feat: fetcher: try multiple candidates rather just the best one 2026-04-04 08:29:20 +02:00
Uyanide aa13940aa7 fix: adjust fetcher groups, sequentially fetch from sp and lrclib 2026-04-03 22:15:16 +02:00
Uyanide 4c5aba04b0 refactor: async parallel fetching 2026-04-03 22:09:59 +02:00
Uyanide c91d5220bd refactor: skip a enricher if fields it can provide are already filled 2026-04-03 22:09:59 +02:00
Uyanide 3917d68880 fix: no one uses artist/album/track.ext layout 2026-04-03 22:09:58 +02:00
Uyanide 9a200aa58d feat: add hard duration filter to avoid fake positive matches 2026-04-03 16:38:46 +02:00
Uyanide 871ae2d589 fix: confidence should not be 100 for irrelevant cases 2026-04-03 15:46:13 +02:00
Uyanide c44797fbf9 feat: able to set confidence for certain source via cli 2026-04-02 20:29:17 +02:00
Uyanide 6baa487565 test: remove 1 test for _raw_tag_to_ms since its already covered by
tests for to_plain
2026-04-02 11:57:23 +02:00
Uyanide e382783f52 feat: export to a .txt file instead of .lrc when --plain 2026-04-02 11:15:29 +02:00
Uyanide 6791e9e965 feat: better cache stats 2026-04-02 10:52:48 +02:00
Uyanide d18d8afb37 refactor: confidence should always have a value 2026-04-02 10:47:17 +02:00
Uyanide 66682e8b45 fix: only record spotify's trackid, ignore local ones 2026-04-02 10:47:17 +02:00
Uyanide 4d31a971a1 fix: --plain now sorts lyrics to handle multi-tag lrc correctly 2026-04-02 10:07:36 +02:00
Uyanide 2df167e31d feat: evaluate fetch results with "confidence" 2026-04-02 09:44:20 +02:00
Uyanide 9aaf4d8aed feat: lrclib-search fetcher now do multiple request to cover more cases
refactor: abstract selection logic & test dafür
2026-04-02 09:44:20 +02:00
Uyanide 5a44f2ba34 fix: --no-cache now also skips cache writing 2026-04-02 03:56:04 +02:00
Uyanide 8001c3f7e8 refactor: add LRCData class 2026-04-02 03:56:04 +02:00
Uyanide 83c9553309 fix: --plain should trim leading and trailing blank lines & v0.2.0 2026-04-01 21:05:55 +02:00
Uyanide 8af43ed112 test: add test for cache db 2026-04-01 21:05:54 +02:00
Uyanide 0b830e176d feat: better lrc handling 2026-04-01 20:33:23 +02:00
Uyanide cd60d3042c feat: print plain lyrics without tags 2026-04-01 20:33:23 +02:00
Uyanide 5930f70bf2 chore: edit gitignore 2026-04-01 20:33:23 +02:00
Uyanide 13eb317e5b refactor: only import DB_PATH once 2026-04-01 20:33:23 +02:00
Uyanide 7959a2efb9 feat: able to specify db path 2026-04-01 10:21:14 +02:00
Uyanide 88cf0115af finish renaming 2026-03-31 22:46:55 +02:00
Uyanide 4d48e21533 delete old files 2026-03-31 22:46:55 +02:00
Uyanide ae1dd7481d rename to lrx
resolve conflicts
2026-03-31 22:46:55 +02:00
Uyanide 4c18efa10c refactor: remove dep pydantic 2026-03-31 18:36:44 +02:00
Uyanide 8f44a0da35 feat: add insert subcommand to cache command 2026-03-31 18:08:40 +02:00
Uyanide a1681c2551 chore: 0.1.7 2026-03-31 18:08:40 +02:00
Uyanide d3090ceb1c refactor: add is_available method to fetchers 2026-03-31 18:08:40 +02:00
Uyanide 03acda4478 feat: better LRC format handling 2026-03-31 16:47:26 +02:00
Uyanide 29273ad9fe feat: include appversion in UA 2026-03-31 15:13:58 +02:00
Uyanide 3af6cee7e3 fix: sp 2026-03-31 15:13:58 +02:00
Uyanide cc706c3117 refactor: remove unnecessary list of fetcher methods 2026-03-31 06:45:57 +02:00
Uyanide 4e83e6be15 feat: add metadata enrichers & refactor 2026-03-31 06:42:30 +02:00
Uyanide d76b25e250 feat: 'search' command no longer requires 'title' param 2026-03-31 06:42:29 +02:00
Uyanide cf7651ae84 fix: request param and header of sp fetcher 2026-03-31 04:17:24 +02:00
Uyanide 2337ff3472 feat: add player preference configuration and improve MPRIS player selection logic 2026-03-31 03:14:01 +02:00
Uyanide e482fb1a82 feat: export lyrics default to sidecar path 2026-03-31 03:14:01 +02:00
Uyanide 4f6244bc9e chore: bump version to 0.1.3 2026-03-31 02:15:39 +02:00
Uyanide a0f988d0d8 feat: add qqmusic fetcher 2026-03-31 02:05:06 +02:00