spl0k / supysonic

Supysonic is a Python implementation of the Subsonic server API.
https://supysonic.readthedocs.io
GNU Affero General Public License v3.0
260 stars 57 forks source link

Implement podcast: create+delete+get channel(s); delete episode #190

Closed thecarlhall closed 3 years ago

thecarlhall commented 4 years ago

This handles the CRUD access for podcasts. Fetching and refreshing the episode lists will be handled in the daemon, or by cli.

codecov-commenter commented 4 years ago

Codecov Report

Merging #190 into master will decrease coverage by 0.26%. The diff coverage is 91.44%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #190      +/-   ##
==========================================
- Coverage   86.83%   86.57%   -0.27%     
==========================================
  Files          39       40       +1     
  Lines        3540     3567      +27     
==========================================
+ Hits         3074     3088      +14     
- Misses        466      479      +13     
Impacted Files Coverage Δ
supysonic/api/podcast.py 90.76% <90.76%> (ø)
supysonic/db.py 92.73% <90.78%> (-0.49%) :arrow_down:
supysonic/api/__init__.py 98.86% <100.00%> (+0.09%) :arrow_up:
supysonic/api/jukebox.py 16.36% <0.00%> (-1.50%) :arrow_down:
supysonic/api/browse.py 91.89% <0.00%> (-0.80%) :arrow_down:
supysonic/jukebox.py 24.57% <0.00%> (-0.64%) :arrow_down:
supysonic/cli.py 85.14% <0.00%> (-0.47%) :arrow_down:
supysonic/api/albums_songs.py 93.47% <0.00%> (-0.47%) :arrow_down:
supysonic/frontend/__init__.py 95.34% <0.00%> (-0.40%) :arrow_down:
supysonic/api/playlists.py 97.05% <0.00%> (-0.21%) :arrow_down:
... and 21 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update b438bb0...51b3001. Read the comment docs.

thecarlhall commented 3 years ago

Thanks for the review! I'll be sure to get these changes incorporated very soon. You're spot on about the missing child fields. I've been testing with Jamstash, and it doesn't fuss about everything. I'll get those incorporated.

Apologies for not making my design intentions very clear. I'll update the corresponding issue with more details. In short, the changes in this PR are the transactional calls that should return quickly. For getting the episodes for a channel, I'm planning for that to be handled by the CLI or the daemon much like how adding a folder works.

spl0k commented 3 years ago

Ok, I've retrieved your work on this main repo, to which I added the missing db version change. It's on a dedicated branch (podcasts) and not merged into master as it's still a work in progress and wouldn't be usable in its current state. But I consider the work as done for the scope of this PR.

Feel free to either create another PR for the remaining work or continue on this one.

thecarlhall commented 3 years ago

Thanks, @spl0k! I'll close out this PR, and submit future work against your podcasts branch. Thanks for catching that missing db version change. My misses on things like this and the other db related bits have me frustrated. I'm investigating a better test setup to catch these things before you're assaulted by them. :)