Adds support for website APIs both complex and simple. This commit
only supports GET requests to APIs. POST request support can be added
on request.
Client IDs and secrets are also supported. They can be added via
source settings or automatically set by a website endpoint.
Also fetch sources for scraping using the backgroundContext and remove
some functions from using the main actor.
Signed-off-by: kingbri <bdashore3@gmail.com>
RSS parsing has been added as a method to parse source since they're
easier on the website's end to parse.
Source settings have been added. The only current setting is the fetch
mode which selects which parser/scraper to use. By default, if an RSS
parser is found, it's selected.
A source now has info shown regarding versioning and authorship. A source
list's repository name and author string are now required.
Signed-off-by: kingbri <bdashore3@gmail.com>
Sources are now completely changed to use a more flexible API. This
uses a fully native source system, so there will be 0 overhead on
resource usage and performance.
JSON objects specify what is fetched and displayed by Ferrite when
searching torrents.
Sources now include sizes, seeders, and leechers for any site that
specifies them.
The versioning and repo naming framework has been added, but will be
displayed in another update.
API support will be included in another update.
Signed-off-by: kingbri <bdashore3@gmail.com>