Commit graph

47 commits

Author SHA1 Message Date
kingbri
2cee7bc848 About: Add donation and discord links
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-09 15:01:07 -04:00
kingbri
56bb3a9c61 Ferrite: Bump version
Minor improvement.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-09 13:09:40 -04:00
kingbri
a9a64a86e1 ChoiceSheet: Add alert when user copies a link
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-09 12:29:47 -04:00
kingbri
7c86204a32 Ferrite: Format
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-09 12:29:26 -04:00
kingbri
d3fc9cff8c Update README
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-09 12:29:26 -04:00
kingbri
44e4f74258 Searching: Cleanup existing searches
If a user searched after cancelling the search the first time,
the first search would still continue.

Assign the search task to navigation view and automatically cancel
it and dismiss the searchbar when the user switches to a different
tab.

Also add a ProgressView to show which source is being parsed.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-09 12:29:18 -04:00
kingbri
159f648762 DataManagement: Load background context after persistent store
Removes the CoreData warning on startup.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-09 12:29:18 -04:00
kingbri
5007abb49d Ferrite: Bump version
Requires a reinstall.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-06 16:00:50 -04:00
kingbri
a7f4616d9b Ferrite: Add README
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-06 16:00:12 -04:00
kingbri
70638c2335 Ferrite: Add app icon and launch screen
The app icon is not allowed to be reproduced and edited at this time.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-06 15:46:58 -04:00
kingbri
ef690b2da2 Ferrite: Format
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-05 22:32:18 -04:00
kingbri
0c0b0a252a Sources: Add source updating and source list edits
Sources can now be updated based on the repo ID. To preserve repo IDs
across single URL links, the source lists can be edited and the ID
is transferred over.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-05 22:31:15 -04:00
kingbri
def3ca69a1 Views: Cleanup
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-05 12:19:20 -04:00
kingbri
b451cf64b1 Sources: Add list IDs and source IDs
List IDs are used to link a source list with an actual source. Each
list entry has a unique ID that a user can compare with a source
to see if it's legitimate.

Source IDs are just identifiers for sources. Not sure what to do with
these yet but they may be useful for the future.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-05 12:15:56 -04:00
kingbri
04b2185956 Sources: Change version to Int16
A version string will not allow for comparisions when checking
to update a source. Make the type an integer instead on both the
model and coredata store.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-05 11:17:55 -04:00
kingbri
6f2d9a9b10 Database: Remove broken model version
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-05 11:17:55 -04:00
kingbri
efecfa3236 Sources: Add RSS, descriptions, and settings
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>
2022-08-05 11:17:51 -04:00
kingbri
9ea7ab7b11 Ferrite: Bump version
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
Brian Dashore
f39b660fe7 Add LICENSE
Use the GPL-v3 license for now.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
fbc9188535 Ferrite: Add sources guide
May become a wiki in the future.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
b7c9c75e3b Ferrite: Overhaul sources
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>
2022-08-04 21:33:59 -04:00
kingbri
d3ee5c5bc9 Scraping: Remove workaround for last-child
Last-child is not supported on SwiftSoup, but nth-last-child is.
Therefore, sources must use nth-child or nth-last-child instead of
the first-child and last-child aliases.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
6cc9221fe4 Settings: Add AboutView and style buttons
Add a ListRowButtonView which runs a function and include a label.
Use this to style magnet choice buttons.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
05d61e440a Ferrite: Remove commented code
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
467eb1eb09 MagnetChoice: Add open in webtor button
WebTor is a website to view magnet links on the web for free. It
has an API to include magnets, so why not?

Suggested by BlackSwordsman in Discord.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
b88a6cf96f Search: Fix sheet and results bug for iOS 15
In iOS 15, a searchbar will become inherited if a sheet call is
within the searchable view and its children.

Migrate the sheet call outside the search results view.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
74a610c2c0 Ferrite: Bump version
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
88162814d5 Sources: Migrate source list addition to ViewModel
I was accidentally calling dismiss on failure which dismisses the
alert and breaks how presentation is handled on sheets.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
9d5a0d0120 Ferrite: Format
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
119a3a18b1 SearchResults: Add source filtering
Presenting all source results can be annoying to a user. Add filtering
to filter by a specific source.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
1eef8202ca Ferrite: Decouple torrent sources
These sources will be converted to be more flexible with JavaScript
in the future.

The source catalog is populated by adding a source list in settings
then installing a source from the catalog.

Sources can be enabled or disabled when using Ferrite.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
ac42936afb BatchChoiceView: Fix app crash on dismiss
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
4e169b47b3 Ferrite: Remove keychain shared class
Re-enable this when it's actually needed.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
45526057ac Ferrite: Bump version
Not ready for 0.1, but 0.0.2 sounds good.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
e634906ab4 Ferrite: Add SwiftFormat
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
e9670ea118 RealDebrid: Add batch torrent support
Batch torrents are torrents that have multiple files bundled within
one torrent file.

RealDebrid does support these, but it is difficult to get them to work.

The main flow requires setting a specific combination in RealDebrid
to allow for link generation. However, this is not intuitive to users
and is bad API design on RealDebrid's part.

Ferrite's implementation presents users with all the possible files
from batches (duplicates deleted) and selects the user-chosen file
to download. That way, only the user chosen file is presented to
play on an external video player.

This still needs work for optimization purposes, but this commit
does produce a working build.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
47f713744b RealDebrid: Demystify instantAvailability endpoint
The instantAvailability endpoint is now decoded using Codable
and does not have any ambiguity.

Batches are now checked, but still not accounted for due to how
RD handles batches from this endpoint. All batch links are not
supported for instant streaming from Ferrite until support is added.

Thanks to Skitty for helping out with decoding the endpoint.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
1ddf50cd15 ScrapingModel: Add errors to scraping
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
2df0ce7604 Ferrite: Fix toast UI
Refactor the GroupBox style and make error fonts smaller to not
impede the user's experience.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
e0daa453c3 SearchResults: Add more information to results
Reformat how RealDebrid availability is shown and add a size value
to the search result card.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
Brian Dashore
02b22c7c88 Add CircleCI configuration
Temporarily used instead of Github actions since actions
has no Xcode 14 access.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
ffa5e0d4d9 Add Github actions
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
6cfd32ce5a Ferrite: Change version settings
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
4a53eb052c RealDebrid: Add universal request wrapper
Every request has to add an authentication header. If the response
is 401 (Unauthorized), log the user out of RealDebrid.

Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
c2f267dbc3 Ferrite: Add README and group classes
Signed-off-by: kingbri <bdashore3@gmail.com>
2022-08-04 21:33:59 -04:00
kingbri
e2792a0f00 Ferrite: Add code up to alpha 1
Working alpha version of Ferrite

Signed-off-by: kingbri <bdashore3@gmail.com>

part2
2022-07-21 00:01:41 -04:00
kingbri
0ce54327fb Initial Commit 2022-07-01 12:45:04 -04:00