-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v0.7.1 #36
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Debrid services can change their APIs at any time which negatively impacts user experiences on Ferrite. Add the following: - Ability for a user to add a manually generated API key only showing the last 4 characters for security purposes. - Make ephemeral auth sessions toggle-able. ASWebAuthenticationView does not automatically clear on toggle change. - Add the savedLinks endpoint for AllDebrid so users can access their downloads and magnets. - Add a links section to AD's cloud view. Signed-off-by: kingbri <[email protected]>
PM has a different method to handle API keys compared to other services which takes the value as an authorization header. Signed-off-by: kingbri <[email protected]>
Some sources can be unique and require some extra parsing. Add the ability to extract a magnet link instead of assuming that every source provides a properly formatted one. Signed-off-by: kingbri <[email protected]>
Signed-off-by: kingbri <[email protected]>
iOS 17 fixes the issues that NavigationStack had with iOS 16. This means that futureproofing is fixed. Signed-off-by: kingbri <[email protected]>
Unifying the debrid services under a protocol will help slim down on excess redundant code and allow for easy addition of new services in the future. Signed-off-by: kingbri <[email protected]>
Unify IA into a passable client side structure and add a common download method to the DebridSource protocol. Signed-off-by: kingbri <[email protected]>
Cloud downloads and torrents are now unified under their own protocol and models. Downloads and torrents are separated. Signed-off-by: kingbri <[email protected]>
Reorder everything and mark off where different functions are located. Signed-off-by: kingbri <[email protected]>
Also add the requirement to the protocol. Signed-off-by: kingbri <[email protected]>
Gives an ID of where the struct came from. Signed-off-by: kingbri <[email protected]>
Signed-off-by: kingbri <[email protected]>
These aren't required since IA is a unified type. Only keep batch IA for RealDebrid since it helps clear up confusion when gathering InstantAvailability results. Signed-off-by: kingbri <[email protected]>
This fixes cloud magnet fetching and also doesn't duplicate magnets inside the cloud service. Unrestricted links don't get duplicated, so no need to check against those. Signed-off-by: kingbri <[email protected]>
The torrent ID is no longer stored in the DebridManager. Signed-off-by: kingbri <[email protected]>
Add convenience vars which makes the API classes the source of truth for any interaction. Signed-off-by: kingbri <[email protected]>
Mark as an ObservableObject so the UI can see parameters that are being updated in the class. Signed-off-by: kingbri <[email protected]>
Protocols can't be used in ObservedObjects. Observable in iOS 17 and up solves this, but Ferrite targets iOS 16 and up, so add a type-erased StateObject which supports protocols. Signed-off-by: kingbri <[email protected]>
Storing an ID reference is redundant. Store a class reference instead. Signed-off-by: kingbri <[email protected]>
Use the common protocol to handle these. Signed-off-by: kingbri <[email protected]>
Removes the redundant error types. Signed-off-by: kingbri <[email protected]>
Change the returned error to one that's unique to caching. Also make deleteTorrents optional to delete the first torrent if necessary since that's always being cached. Signed-off-by: kingbri <[email protected]>
Logout is now handled in the debrid class itself. Signed-off-by: kingbri <[email protected]>
No longer needed due to the common type. Signed-off-by: kingbri <[email protected]>
PreferredService is now the debrid ID. Signed-off-by: kingbri <[email protected]>
the IA vars are no longer needed since that's unified. Signed-off-by: kingbri <[email protected]>
Cloud torrents and downloads are unified with the new protocol. Signed-off-by: kingbri <[email protected]>
Unify authentication to the new protocol. Also remove logout on invalid requests. This became annoying and didn't update the UI properly. Signed-off-by: kingbri <[email protected]>
Signed-off-by: kingbri <[email protected]>
Point the user to settings logs rather than giving no extra information. It would be a good idea to give the type of error in the future. Signed-off-by: kingbri <[email protected]>
This parameter should be optional and errors if it isn't. Signed-off-by: kingbri <[email protected]>
Hook to the published variable to push updates. Signed-off-by: kingbri <[email protected]>
Bump actions and macos build versions. Signed-off-by: kingbri <[email protected]>
Adds HTTP method, headers, and a body string. Also use a common function to substitute params rather to allow for maintanence of a common dictionary. Signed-off-by: kingbri <[email protected]>
Stopgap for index-based sources. For example, the keyword "John" will be converted to "j" for sources that use "/j/John". Signed-off-by: kingbri <[email protected]>
This will be removed in the future anyway. Signed-off-by: kingbri <[email protected]>
Public should not be used in an app since it declares public to additional modules. However, an app is one module. Some structs/ classes need to be left public to conform to CoreData's generation. Signed-off-by: kingbri <[email protected]>
Signed-off-by: kingbri <[email protected]>
This reverts commit cf090cf.
Helps when auto-filling stubs for new classes. Signed-off-by: kingbri <[email protected]>
Indicates to the user that an API must be used to log into the debrid service. Signed-off-by: kingbri <[email protected]>
Some debrid services aren't "rich", which means that they don't broadcast whether an instantly available torrent is a batch or a single file. This results in all torrents either having the green badge or red badge based on what hash is given. However, batches need to intercept the download itself which requires the download function to be split into download and unrestrict. In between, there's room for the batch sheet to act. Signed-off-by: kingbri <[email protected]>
TorBox is a service that handles magnet links under both a free and paid plan. Integrate support into Ferrite. Will add rich services once the instantAvailability endpoint returns a file list. Signed-off-by: kingbri <[email protected]>
Was an experiment for later commits. Signed-off-by: kingbri <[email protected]>
Signed-off-by: kingbri <[email protected]>
The task can be set to nil after completion, and the unrestrict flag should also be set to nil when the batch sheet is dismissed. Signed-off-by: kingbri <[email protected]>
OffCloud is a debrid provider that allows for caching and playing media. Does not have rich debrid support. Also add a handler if functionality isn't implemented in the service. Signed-off-by: kingbri <[email protected]>
- AllDebrid: Don't throw an empty error if cloud downloads/torrents is empty - Fix history not saving with the proper URLs - Fix the HTMLParser looking at the incorrect term for seedLeech Signed-off-by: kingbri <[email protected]>
Signed-off-by: kingbri <[email protected]>
Allow for overriding of the default description in the settings UI. Signed-off-by: kingbri <[email protected]>
Signed-off-by: kingbri <[email protected]>
TorBox can now show if there's a batch before loading a file. Cloud downloads should check the server in case there's a different method to fetch a download link. Signed-off-by: kingbri <[email protected]>
Signed-off-by: kingbri <[email protected]>
If a debrid is authorized, a Published variable needs to be notified since SwiftUI can't read computed properties on the fly (they are getters). Therefore, it's better to maintain a single source of truth of which services are logged in. Signed-off-by: kingbri <[email protected]>
Signed-off-by: kingbri <[email protected]>
Doesn't make sense to use more descriptive IDs when the struct describes what the model is already. Signed-off-by: kingbri <[email protected]>
Populate cloud lists when the app is launched to begin maintainence of a synced list. In addition, fix the errors when OffCloud tried fetching links for a single file. The explore endpoint only works when the file is a batch which is unknown until it's actually called. Signed-off-by: kingbri <[email protected]>
Different services can send different statuses for if a file is cached or not. Therefore, make this scoped to the debrid service rather than expecting everything to state "downloaded". Also it feels pretty blank if the disclosure groups are gone when a cloud array is empty, so remove those checks. Signed-off-by: kingbri <[email protected]>
v0.7.1 Signed-off-by: kingbri <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Freeze v0.7.1 as a stable release