Summary
Seems more people are using this package and wanted to revisit to give it an uplift. It's been years since I've properly written code for this repository and a lot was missing which I expect in an Open Source repo and a package of this size.
The main goal was to create a foundation for other programmers to contribute to if curious, and properly segment commonly used code into their respective modules, functions, and classes.
Release notes & Key points
- Main objective of this PR is to rewrite the code written years ago into a more modular, and decoupled state.
- Dependent objects needs for any underlying operations are now passed in during instantiation.
- Added an Abstract Class called Downloadable, which checks to make sure that the inherited classes contain required functions.
- Each Imgur Object Type is now it's own class.
- Created an API connector class for Imgur API calls.
- Refactored the Configuration class to not be as heavy with setters / getters.
- Downloader class is now a module removing the overhead of creating an instance of a class.
- The intention was to go with a more 'dependency injection' mindset when interacting with 'Downloadble' inherited objects.
- Using AsyncIO where applicable to use concurrency in mind when fetching and downloading image metadata.
- Added minor tests.