You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the current state of the application, when the RSS Filter is either enabled or disabled, a message prompting the user to use the ruTorrent web interface to make the changes pops up as shown below.
Furthermore, the option of adding, deleting or editing (existing) RSS Filters is not present.
Proposed Changes
I would like to implement the feature of enabling and disabling the RSS Filters from the application itself.
I would also like to implement an RSS Filter Edit Screen whose purpose will be to take user-input related to the RSS Filter (name, pattern, labels etc. )
Implementation
Enabling and Disabling RSS Filters
I will be using the RSS Plugin of the ruTorrent Web Interface to implement this feature. Implementing this feature would require changing the enabled integer in the RSS Filter object and making a POST request to the RSS plugin with the JSON form of the RSS Filter object (more on this below).
Add, Edit, Delete RSS Filters
Again the RSS Plugin will be used. A small catch here is, anytime any change is made to any of the filters, ALL (existing) filters have to be sent via the POST network call to the Plugin. If we attempt to send only the filter that has been changed, all other filters are deleted.
Now the issue with this approach is, a JSON object cannot contain two same keys for obvious reasons and the plugin was not accepting different JSON objects for different filters.
So we will use Content-Type: application/x-www-form-urlencoded to send the data after encoding all the existing RSS Filters in the application.
The one function that will implement both network implementations is given below.
/// Sets details of RSS Filters
static setRSSFilter(Api api, List<RSSFilter> filters) async {
// Set Headers
Map<String, String> headers = {
"Content-Type": "application/x-www-form-urlencoded"
};
headers.addAll(api.getAuthHeader());
// Set mode of Query
String queryString = "mode=setfilters&";
// Encode and add all Filters to the query
for (RSSFilter filter in filters ?? []) {
queryString += Uri(queryParameters: filter.toJson()).query + "&";
}
// Execute the Network Call
await api.ioClient
.post(Uri.parse(api.rssPluginUrl), headers: headers, body: queryString);
}
The video of the complete working of the proposed feature will be added in the feature PR.
The text was updated successfully, but these errors were encountered:
buildwithmalik
changed the title
Adding feature to Enable/Disable, Add, Edit and Delete RSS Filters
Feature to Enable/Disable, Add, Edit and Delete RSS Filters
Apr 20, 2021
Current State
In the current state of the application, when the RSS Filter is either enabled or disabled, a message prompting the user to use the ruTorrent web interface to make the changes pops up as shown below.
Furthermore, the option of adding, deleting or editing (existing) RSS Filters is not present.
Proposed Changes
Implementation
Enabling and Disabling RSS Filters
I will be using the RSS Plugin of the ruTorrent Web Interface to implement this feature. Implementing this feature would require changing the enabled integer in the RSS Filter object and making a POST request to the RSS plugin with the JSON form of the RSS Filter object (more on this below).
Add, Edit, Delete RSS Filters
Again the RSS Plugin will be used. A small catch here is, anytime any change is made to any of the filters, ALL (existing) filters have to be sent via the POST network call to the Plugin. If we attempt to send only the filter that has been changed, all other filters are deleted.
Now the issue with this approach is, a JSON object cannot contain two same keys for obvious reasons and the plugin was not accepting different JSON objects for different filters.
So we will use
Content-Type: application/x-www-form-urlencoded
to send the data after encoding all the existing RSS Filters in the application.The one function that will implement both network implementations is given below.
The video of the complete working of the proposed feature will be added in the feature PR.
PR #134
The text was updated successfully, but these errors were encountered: