Giter Club home page Giter Club logo

podcache's People

Contributors

diredev avatar

Stargazers

 avatar

podcache's Issues

Update to Spring 5

Spring 5 and SpringBoot 2 have been out for a while already. Try updating the project to use the new framework.

This includes:

  • Update dependencies, clean up
  • Replacing the Checker Framework with Spring's own annotation(?)
  • Replace Jetty with an even smaller container(?)
  • Try the new Reactive APIs

Use reactive REST services

Spring 5 (#5) allows us to create reactive REST services. This could save on resources a bit (idle threads).

Might need to use a non-blocking (document) database (#6) or use workers.

Use a document database

The current implementation uses a very simple relational file database (containing just one small table and no relationships at all) and holds stream and content files in the file system.

Consider using a NoSQL database to hold metadata and the feed. Will probably still hold feed content in a directory though.


See also #2 for a directly related enhancement that will need to be solved as well due to different locking behaviors.

Feed table is too large for small mobile devices

Commit 218fc6e made the web UI work (mostly) on mobile devices. This should work reasonably well for tablets and other "landscape" devices. The table looks very ugly on small-width devices however.

Change the style even more to make things look correctly. Or force "landscape"-mode for phones if that's possible (manifest-file, etc.?).

Sanitize file and directory names

Podcache will create a directory for every feed and will download files to this directory.

There are currently no limitations on the possible feed names and no logic that will make sure the path used is sane.

Need to either limit the possible values for feed name or sanitize the directory names beforehand. Files should be sane since they are based on the feed URLs, but sanitize them anyway.


Also: Is there no proper Java API to do this?

May try download from localhost

Whenever a new entry is added to a feed, then FeedUpdater.updateContentFiles() will try to download those files in addition to any files already downloaded.

Note that the files aren't actually downloaded from localhost when the file exists. When a file is lost however, we cannot download the file anymore because the original URL isn't available anymore. It will try to download from localhost though...

Scheduled update blocks transactions

Podcache will perform a full update of all feeds once a day (and possibly on startup). During the update (which could take a while on slower connections), HSQLDB will lock the table (for update).

The change from c5ae073 means that existing feeds can be read during this time at least, but adding or modifying a feed still has to wait for the entire update operation to complete.

It also seems like HSQLDB does not support lock timeouts (AFAIK), so the transactions literally wait forever.


Consider improving this situation. Maybe there is a better way (Java-side locks?) to enforce consistency?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.