8000 Local Storage Refactoring by dellagustin · Pull Request #300 · podStation/podStation · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Local Storage Refactoring #300

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 72 commits into
base: master
Choose a base branch
from

Conversation

dellagustin
Copy link
Contributor
@dellagustin 8000 dellagustin commented Jan 10, 2022

History

  • 0155dfa
    • Initial commit, created a Dexie DB and a routine to add podcasts, used right now when adding a podcast form search results
  • cf8e315
    • Update the feed immediately after adding it, based on the existing feed parser
    • Uses a PodcastUpdater - I don't like that it does have direct access to the storage engine, current design smells, but I can't picture a better way at the moment
  • eb2e373
    • Last episodes view now based on new local storage
  • 669290d
    • Delegated paged episodes logic to its own class

TODO

  • Podcast list
    • List comes from local storage
    • Podcast status
    • React to changes
  • Episode lists
    • List comes from local storage
      • Last episodes
      • Podcast episodes
      • Episodes in progress
    • Integration with player
    • Integration with playlist
  • Sync storage
    • We now have more redundancy between local storage and sync storage
    • We try to optimize the data model for read and presentation,
    • keeping local and sync storage them in sync is something that still have to be done
  • Update player
  • Playlist
    • React to changes
    • Reorder
    • Toggle visibility
  • React to changes (e.g. update podcasts lists in view in case other tab ads a podcast)
  • Update podcasts on the background
  • Refactor automated tests

Testing

  • Sync storage use cases
    • Add podcast
    • Remove podcast
    • Playlist
    • Episodes in progress
  • Feeds without episode guid
  • Feeds without pubDate
  • Podcasting 2.0
    • funding tag support
    • value streaming and boosting

for sync storage testing: --user-data-dir (try to open two different instances logged in with the same user)

Lost functionality

Related issues

References

With this commit:
- Added Dexie as a dependency
- Added support for typescript
- Created a Dexie DB
- Created the initial version of a podcast engine and DB access routines
@dellagustin dellagustin changed the title Local Storage Refactoring - add podcast Local Storage Refactoring Jan 10, 2022
@dellagustin
Copy link
Contributor Author
dellagustin commented Mar 5, 2022

Attempting to refactor an angular controller from function to class results in the following error: "angular.js:12477 TypeError: Class constructor PodcastsController cannot be invoked without 'new'"

Related links:

I have worked it around by creating a function that calls the constructor.

With this commit, last episodes view is now based on
the new local storage - paging is working fine and fast.

Some features are not working:
- Link to all eps from podcast
- Play
- Add to / integration with playlist

This is because the player and playlist still
need to be refactored acording to the
new local storage.
The episodes of a podcast are now loading episodes from the new
local storage.

Note the refactoring on the database indexes.
Refactored paged epsisodes logic, delating it to its own class.
@dellagustin dellagustin force-pushed the enhancement#20__new-local-storage branch from 00c156c to 9fd5cc9 Compare March 13, 2024 23:07
Cleaned up unused code for the playlist.
@dellagustin dellagustin force-pushed the enhancement#20__new-local-storage branch from 9fd5cc9 to af335f1 Compare March 18, 2024 20:57
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.

2 participants
0