Skip to content

Type checking, formatting and some more improvements - #4

Open
firetech wants to merge 20 commits into
ragadeeshu:masterfrom
firetech:master
Open

Type checking, formatting and some more improvements#4
firetech wants to merge 20 commits into
ragadeeshu:masterfrom
firetech:master

Conversation

@firetech

@firetech firetech commented Jul 23, 2026

Copy link
Copy Markdown
Contributor
  • Add strict pyright type checking to all files and refactor to make typing as usable as possible (i.e. all data shuffled around is strictly typed, nothing is Any).
  • Format code with black and isort.
  • Add pyproject.toml and uv.lock files for keeping track of requirements.
  • Minor styling fixes for the web frontend.
  • Fetch and show artist and title for queued files instead of filename (if available).
  • Attempt to convert Spotify links to YouTube links using spotify_scraper and youtube_search (if those libs are installed).
  • Show an indicator that an upload is ongoing.
  • Optionally persistent state, so the server can be restarted without losing the queue or current track position.
  • Grab and show duration of queued tracks.
  • Add PopLove as a third type of fallback.
  • Assorted minor fixes.

firetech added 10 commits July 22, 2026 09:47
Generate using
`yt-dlp --cookies-from-browser [browser] --cookies cookies.txt`
RemoveOnStop removes the pipe on clean stop, but the unit would fail to
start after an unclean shutdown.
* Make page title slightly less namedroppy.
* Slim down page title and input widgets (above table).
Some refactoring to make type checking as useful as possible.
Including VS Code settings for automatic formatting of python files.
...by trying to convert them to YouTube links.
firetech added 3 commits July 24, 2026 12:07
Useful for slow servers.
Now uses POST for uploading links instead of sending them through WS,
otherwise keeping track of status for such uploads would be hard.
firetech added 5 commits July 30, 2026 17:04
This improves runtime validation and enables deserialization.
(Also changed "skip" request from client to "cancel".)
With this enabled, restarting the server will not clear the queue, and
it will even resume playing from the same position.

(This is the main reason for switching to Pydantic.)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant