Git Product home page Git Product logo

rss-button-for-safari's People

Contributors

einkoro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rss-button-for-safari's Issues

RiverNews doesn't handle feed URL scheme

RiverNews doesn't register with Launch Services as a viewer for the feed URL scheme.

I reached out to the author a few times via email and the emails always bounce back. Product dead despite site and still on MAS?

Add a share sheet

For those that want a more minimal option than yet another toolbar button we could do a share sheet.

Reorganize reader application/service selection

The list of applications and services is getting a bit long plus telling the difference between an app and a web service with the same name is confusing.

Ideally this could be changed into a two step selection. First the user is presented with a drop down choice between: desktop applications, web services, custom/self hosted or copy to clipboard. Secondly for applications or web services present a list of the available ones to choose from much like we already do. For custom / self hosted present the current text input for the URL. We should probably validate it for the placeholder string and present some guidance here as well.

Alternatively instead of the drop down menus we could do something iOS settings menus with the list of options split into groups with the checkmark. Sorta like the VPN list from iOS under general but with a selection rather than toggle above it for app/web/etc?

iPhone & iPad support with new Safari web extensions

With a share sheet like #21 it should be possible to support iOS as well.

This would likely require putting a list of known rss readers together and checking if the uri schemes exist since there isn’t a public API equivalent of launch services to fetch apps by uri scheme.

Add support for websites with known feed links lacking auto-discovery

Platforms such as WordPress, Medium, Tumblr, YouTube, Blogger etc have predictable feed urls even if they aren’t publishing the auto discovery links in the head section.

See:
https://perishablepress.com/what-is-my-wordpress-feed-url/
https://zapier.com/blog/how-to-find-rss-feed-url/

For other websites that publish pages with links of feeds without auto-discovery it’s a little more of a pain. Perhaps we can crawl these and generate a database?

Apple mail error as default reader

It’s possible for apple mail to be the default reader in launch services (presumably old installs where preferences have persisted since before apple mail’s rss support was dropped) which will then throw an error when using the extension if the user has not selected a reader from the app.

Easiest fix is blacklisting the apple mail identifier for v1.x and v2 onward won’t be affected by this due to using whitelisted readers.

NSWorkspace's open(_:withAppBundleIdentifier:..) deprecated in macOS 11.0

https://developer.apple.com/documentation/appkit/nsworkspace/1535886-open

open(_:withAppBundleIdentifier:options:additionalEventParamDescriptor:launchIdentifiers:) needs to be replaced with open(_:withApplicationAt:configuration:completionHandler:) which will require changes to FeedHandlerModel, SettingsManager, and ViewController.updateFeedHandlers() to replace bundle IDs with URLs. Existing preferences will need to be updated as well.

Alternatively we can leave everything else as is and use urlForApplication(withBundleIdentifier:) to fetch this as needed. Probably an even better idea strictly in the event the application is either renamed or moved for some reason.

https://developer.apple.com/documentation/appkit/nsworkspace/1534053-urlforapplication

Feedback for pages without any feeds

Perhaps we should display the popover with information no feeds are available rather than disabling the popover on pages without feeds.

This would likely result in less negative reviews and support requests.

Additionally it would be a good place to add a report an issue link. Users could then easily submit the website via email to support to verify if the website has proper auto-discovery tags.

Localization

Currently Safari extensions do not support localization.

Add logos to represent feed types

This would be ideal for determining feed type at a glance provided atom had a logo. It would also reduce the space taken up currently for types giving URLs a little more space.

Change to storage API to cache feeds

Extensions have a 6Mb memory limit and background pages are not persistent. I doubt the app extension process is persistent either as the existing app extensions are not.

Hide incompatible / unsupported readers

Probably best to hide incompatible readers from the list of available readers installed that are known to be dead or otherwise not interested in supporting the feed URI scheme.

Copy to clipboard option

Requested numerous times and easier than maintaining the list of blacklisted clients to display the warning dialog to copy URLs from.

Probably should be an option in the client list as the URL displayed in the popover is truncated when too long.

Keyboard navigation support

Add ability to tab through feeds auto focusing the subscribe button similar to the Safari downloads popover.

Reeder 3 doesn't handle feed URL scheme properly

Takes focus but doesn't pre-populate the subscription dialog. Fairly sure this used to work in v1 and v2 so I think its a regression. v4 is coming "soon".

Contacted the developer via email about a month ago with no response.

App hangs attaching debugger with macOS 12 beta

Appears to be limited to running debug builds presumably during attaching the debugger to the process. The debug and release builds in both xcode 12 and 13 run fine without the debugger attached.

Creating a new xcode project for comparison does not seem to hang though.

Temporary work around is to uncheck debug executable in schemes.

Pulp doesn't handle feed URL scheme

Pulp doesn't register as a viewer for the feed URL scheme and isn't detected as an available reader.

Author responded via email that this will not be fixed as development has ceased despite it being for sale on MAS still.

Mystery crash

So far consistently on macOS 11.1 (20C69) and across both X86-64 (Native) / ARM-64 on the main thread 0 with nothing in the traces from the extension itself.

Several nearly identical stack traces on the developer forms for safari extensions seem to indicate this may be a known issue upstream from the extension?

Detect feeds and redirect to preview page with subscription button

Readable feeds would be nice if we can target injecting styles by mime type or parse for something to consistently identify feeds. A bar along the top with a button to subscribe or copy the url to clipboard would be handy.

This could be included as an optional additional extension or be part of the existing extension.

Move parsing from client to server on cfw

If parsing pages for feeds was moved from the injected client side script to a server side API we wouldn’t need the entitlement for full access which is apparently scary judging by AppStore reviews complaining about security risks.

This could likely be done on AWS Lambda free tier. Additionally CloudFlare workers could be used to cache at the edge and reduce costs or the entire thing could be handled at the edge by CloudFlare workers. Much better latency (no cold starts) and much more predictable costs with only CloudFlare workers.

Pros:

  • No more scary permissions warning
  • Possibility of integrating a service to generate feeds for pages without any
  • Less memory / cpu overhead or battery usage as we no longer have to poll for changes on the client

Cons:

  • Additional request per page load
  • Additional point of failure
  • Cost of API service
  • Privacy concern as browsing history essentially sent to third party server
  • Any feeds for logged in only content wouldn’t be detectable (probably rare)

Machine learning might be viable to sniff out feeds linked on the page that don’t have alternates or for providing feeds from page content when no feeds are available.

Add warning for unknown extension status

Likely the extension failed to load after installation from MAS. This can be verified with:

pluginkit -mAvvv -p com.apple.Safari.extension

Sometimes rebooting or quitting both the app and Safari then relaunching is sufficient to trigger loading the extension. Otherwise quit Safari, trash the application and reinstall from MAS.

Test popular news readers for support

Client Tested Result
Cappuccino ✔️
Cream ✔️
Feed Notifier ✔️
Feedy ✔️
Leaf ✔️
MobileRSS
NetNewsWire (old) ✔️
NetNewsWire (new, v5?) ✔️
NewsBar
News Explorer ✔️
Pulp ✔️
ReadKit ✔️
Reeder 3 ✔️
Reeder 4 ✔️
RSS Bot
RSS Follower
RSS Menu
RiverNews ✔️
Stripes ✔️
Winds ✔️

Otter RSS incompatible

We should add this client to unsupported list for now.

Reached out to the developer earlier this year on behalf of a user but no response or update to fix support for parsing feed:https:// vs feed://

Investigate alternatives to polling for changes

For SPAs we currently poll as a ugly work around to the lack of any event for history changes not intimidated by the browser/user and lack of the webNavigation API.

Not polling would be preferred. On iOS it might even be required due to the lack of persistence to save battery life. I’m not sure offhand if content scripts are persistent at all.

If I remember correctly the current polling method would only catch the change if the URL changes but not the history or page content itself. If we must poll this should at least be cases we can cover.

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webNavigation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.