-
Notifications
You must be signed in to change notification settings - Fork 139
Description
Is your feature request related to a problem? Please describe.
No response
Describe the solution you'd like.
This is not so much a feature request as it is an idea for internally restructuring Drifty so that it no longer relies on text files for things like URL lists, download queues, or even settings (where leveraging the Java Preferences class has limitations).
Instead, I am proposing that Drifty might be a good candidate to leverage a SQLite database for the storage and retrieval of dynamic data. The database / SQL method of storing and retrieving information is well understood and is relatively easy to implement.
A core class called something like DB could be created which contains all of the methods required to interact with external data. The database could have various tables, for example, a Jobs table which contains all of the relevant data for a download job in each record, or even a Log table which can store the various logs that Drifty generates. A Settings table could be used to store things like download folders, video quality preferences, or settings for GUI themes in the future. We could even keep a table for download statistics that keeps track of download metrics such as transfer speeds for past downloads etc. which then provides metrics that might be interesting in different contexts.
This change to Drifty could be developed non-invasively at first where it would just be a class that maintains the database file where the methods are defined then once they are in place and tested and working, it would then be a matter of converting those places throughout the program where it keeps information in flat files, and convert those methods to use the DB methods.
The database methods could even be presented to other developers as sort of an interface to external data where future development might be streamlined by the presence of the DB class, but this will be highly dependent on the nature of any future development.
Screenshots
No response
Additional information
This would also remove the GSON dependency because the use of Json files would be removed from the program all together.
Metadata
Metadata
Assignees
Labels
Projects
Status