Code Monkey home page Code Monkey logo

fraidycat's People

Contributors

7415963987456321 avatar andrew-wja avatar egrajeda avatar hughwilliams94 avatar kickscondor avatar medicinecal avatar omentic avatar quad avatar rosano avatar swalkyn avatar tcgumus 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fraidycat's Issues

Web extension sync race condition with deletes and edits

Right now if you go through and delete all of your follows manually, it's likely that many (or all) of these will reappear. This doesn't manifest itself in the Electron app - therefore it's a bug in the storage.sync code. (I confess that the behavior of storage.sync is opaque to me - I'm not sure when it syncs and how it does so.)

Peer-to-peer feed sharing.

Allow Fraidycatters to broadcast any feeds not marked 'hidden'. You could then see a list of others online and view their pages. When viewing their pages, in place of the 'edit' button, there would be an arrow for copying the follow.

On Dat, I would use the experimental peers API. On web extensions, I could presumably use WebRTC.

Richer post view

It would be nice to start enhancing the post view. Like, for example, show thumbnails of images for inline Twitter images? I may also start just embedding the original page in this area. Not sure yet.

Make tagging ๐Ÿ  easier

I like Fraidycat's philosophy that everything must have at least one tag, and making "๐Ÿ " the default if the user doesn't specify anything.

However, I find that when I'm adding categorized feeds, I quite often want them to be ๐Ÿ  plus something else: let that feed show up in my main view, and also in this tag-filtered view. I don't mind reaching into the emoji drawer to find the right something-else, but having to hunt for that house icon every time seems suboptimal.

Consider, perhaps, an "Also add to ๐Ÿ " checkbox, or having a little palette of click-to-add emoji tags with ๐Ÿ  always present, or something...

Firefox extension doesn't retain feeds

OS: Fedora 31 64bit
Kernel: 5.3.15-300.fc31.x86_64
Firefox: 71.0 (64-bit)
Firefox account: logged in

I open the Fraidycat tab/window, add a few RSS feeds, which show up perfectly, then get on with my stuff. When I want to open the tab again, it's empty: no RSS feeds saved.

Provide a back button for Electron.

Say you're scrolled down and deep into a specific tag of yours, and for whatever reason you want to change a setting (there's not much to change yet but in the future maybe). Right now when you click on the fraidycat logo to go back to the feeds, it takes you to the index/home tag. I think it would be nice if instead of going to the index, it would take you back to where you were in the tag.

Auto-heal broken feeds.

If a feed goes missing, I should try to rediscover it from the main URL for the follow. It seems likely that, when switching blog software, a blog could keep its primary URL but change its feed URL. (I don't trust that appropriate 304s or rel="self"s will be in place - see: Postel's Law.)

Webextension building woes

To get the webextension to build, I had to do the following:

  1. Replace the local filepath for your router fork with a Github URL, as per the comment in #10
  2. Replace all instances of ./js with ./src/js in src/index.html (I have a feeling this would break dat building).
  3. Add the following files to src/fonts/:
overpass-400.woff2
overpass-400x.woff2
overpass-700.woff2
overpass-700x.woff2

With that done, the extension gives an Uncaught (in promise) error when it's loaded (in Chrome 78.0.3904.87) but appears to sort of work, bar a few broken images and an intolerance for multiple time categories (e.g. if I add a monthly, add a weekly and then switch back to the monthly, most of the interface disappears). I'm not sure if that's related to the version of router still being wrong or if it's a separate bug.

Otherwise this is really cool and I'm glad it's finally (almost) out!

Add OPML Subscriptions

I wonder about the possibility of adding feeds via an OPML file, rather than links one at a time. This is what I like about Inoreader.

Support Atom feed tokens?

Would it be possible to support an atom feed with a token at the end of it? For example, https://webmention.io/api/mentions.atom?token=...

I'm not really familiar with how atom feeds work and I haven't looked at Fraidycat's code, so I don't know how realistic this request is! ๐Ÿ˜ฎ No worries if it's out of scope at the moment, of course.

YouTube channels show inaccurate update history.

When I add a YouTube channel (e.g. https://www.youtube.com/channel/UCZYTClx2T1of7BRZ86-8fow), the recent updates are different than the actual updates.

For comparison, I have also added the invidio.us version of the same channel (https://invidio.us/channel/UCZYTClx2T1of7BRZ86-8fow) which shows the correct update history.

history-comparison

I've copied the urls exactly as shown in their respective fraidycat entries, but if there's any more information I can add to aid in reproducing this, let me know!

(Also, as a side note, I feel like you might be the kind of person who appreciates invidio.us/nitter as youtube/twitter alternatives. This extension might also be up your alley: https://addons.mozilla.org/en-CA/firefox/addon/invidition/)

Fetching large 20MB 'feeds' (philosopher.life) stalls the browser.

The complete file is loaded in the background script - so I'm not sure why it's stalling the main page - particularly since only a limited bit of data is passed back to that page. I need to spend some time making a simple extension that can isolate the problem.

In Beaker's case, there are some fundamental problems with its underlying RPC communication between the browser and the experimental APIs. I took a first stab at solving that here: pfrazee/pauls-electron-rpc#6. However, I would need to spend serious time on Beaker to solve this, taking time away from this project - which is more pressing for me at the moment.

Centralized feed syncing.

I think it's going to become helpful to offer a centralized sync option. This would make a mobile version possible. (Ideally you could keep mobile, Chrome and Beaker all synced.)

This could be:

  • Dat. If I can figure out a way to connect to the Dat from a web extension.
  • Micropub. This way you can publish sync data as a blogroll on your site.
  • Firefox Sync API. If it's possible to access extension sync data from the API, then I'm happy with offering this to people who trust Mozilla.
  • Dropbox / Google Drive. Last resort.

Combine follows from a source? (Group follows by person.)

It's possible that you may be monitoring someone from various places - Twitter, their blog, maybe they release music somewhere. (Neil C situation.) I could see wanting to combine these into a single entry.

I'm not sure how this would be displayed - so this is just a question for now.

Add UI indicator to show (roughly) when "Tag" or "Importance" categories have been last updated.

RSS readers work as a "single page hub" because they allow you to get an overview of all new updates (across various categories) through the use of unread counts. Fraidycat removes unread counts but doesn't seem to replace them with any other UI indicator.

If you have dozens of tags and importance categories, you must manually click through and check each one. That defeats the purpose of RSS! :P

EDIT: But to be clear, I absolutely love what you're doing and the goals you have! And I think your creations are neat! It just doesn't fit my usage if I have to fall into the same repeated checking habits.

Safari support, as a web extension?

I've looked through the documentation and this seems possible, though I don't have a use for it. So I think I will wait until there is adequate interest.

"Update Frequency" tab indicator ignores "top" subreddit feeds. (Potentially intended?)

Preface: I actually like this "buggy" functionality. I find it helpful that subreddits aren't included! Just making this issue to check if it was intended or not.


Link to feed: https://www.reddit.com/r/magicTCG/top/?sort=top

This subreddit feed (I think) always has a "green" indicator because it generally will get new "top" posts daily. But, the tab it's in won't be coloured green. See screenshots below:

tab-ui-bug1
tab-ui-bug2


I like this functionality of ignoring sources that update daily when determining tab colour. If you know the the source is always going to have green colouring, then there's no way to get useful information from the tab, because the tab will always be green too. But, if daily-update sources are ignored, then you can still get information on whether the less frequent sources have updated. (Like I'm getting with this "mtg" tag here.)


Interestingly, I tried moving some other "daily" updating sources into Daily frequency and it also allowed them to be excluded from the tab coloring. I like this too!


How much of this was intended, or is any of it unintended?

Group tweets in threads into one entry

I follow several twitter users who post long threads on various topics. It would be a nice improvement if all the tweets in a thread were combined into a single entry under the user, instead of each tweet being it's own entry so a single thread fills the entire list of links.

Mobile support (iOS/Android)

First off this looks amazing and so much better than how every other rss reader displays. Unfortunately, I do most of my rss reading on mobile (inoreader). I saw in your website you're considering mobile support. Semi-ironically, I want a way to be notified if that ever happens. I couldn't find an rss feed feel the project, and listening to all Github activity would be very noisy.

So I'm opening a Github issue asking for Android support knowing that I'm asking you to do a heck of a lot of work for free. I know that if this happens it'll be a long way in the future. I'm hoping you'll leave this issue open until that day, should it come, so people can watch it.

Thank you,
Daniel

Increase polling to - at least - daily.

Right now, the 'monthly' and 'yearly' categories may not be checked for several days. In a way, this makes sense because you're not visiting them that often.

However, when it's time to check them, they should attempt to be current. (And it's possible that if #13 WebSub gets supported down the road, everything really should be current.) There should be no problem polling daily - that's not onerous.

Tag defaults to "Real-time" view even if there are no sources in Real-time

If I have a tag where every source is Daily/Weekly/Monthly/Year (in other words, no source in the tag has Real-time importance), then Real-time still shows as a tab, and remains the default view.

test1

As soon as the "Weekly" tab is clicked, the "Real-time" tab becomes unclickable.

test2

My guess is that it could be better to default to whatever is next in the hierarchy of Daily > Weekly > Monthly > Year and hide Real-time entirely?

(Thanks again for maintaining this lovely project, kicks!)

Add "Mark/Unmark as Read" option

For feeds that have too much information, like a twitter feed for example, adding a tool to mark something as read would be helpfull. I think a good way to implementing it would be doing something like the "tasks" apps do with their task lists, like google keep. I've made a quick mockup to explain it better, the image can be found here: https://imgur.com/ZyvoGk8

h-feed support

IndieWeb has a bunch of proponents of h-feed now, and some folks seem to be starting to not even bother with RSS/Atom. If it isnโ€™t already supported, adding h-feed might be useful.

The main things are discovery (if a page has an element with class h-feed or provides a link with a rel of feed In the content or the response headers) and subscriptions (find elements with class h-entry and extract the various other information via microformats). The parsing aspect definitely has libraries available.

Feature Request: Support Email Lists

The most interesting people I follow share their content solely on personal email lists. In addition, many blogs these days also have unfortunately dropped support for RSS and can only be followed by subscribing to an email list. I'd love to be able to import these into fraidycat to have all of it in one place to be read later, instead of having them mixed with normal emails that require action. This could potentially be accomplished by letting the user generate their own unique email with a delimiter such as . in something like [email protected] for ingestion.

A workaround I am currently using is Kill The Newsletter, but it isn't 100% reliable and the parser frequently mangles HTML emails so as to make them unreadable. This suggests that the most difficult part of implementing this feature will be creating a reasonable email parser that doesn't destroy emails that are structured unintuitively (e.g. using <table>s).

Anyway, just an idea for something I thought would be useful, maybe you would find it useful too. Thanks for building a tool to empower the social internet!

OPML import/export

Because I encounter a lot of odd syncing issues from browser to browser, I want to ensure that feeds can be imported and exported in OPML.

This has the added benefits of:

  • Anyone can manually transfer follows between browsers, give to friends, etc.
  • If Fraidycat fails to take off, the data is still portable.
  • What is a feed reader without OPML support? Seems standard.

I'm already quite close on this, as I consider it a high priority to prevent people from completely losing their follows while things are somewhat in flux (only because I'm new to web extensions.)

Hosted Fraidycat, Docker, etc.

The is to faidycat available as a docker container, built inside a simple LAMP. Delivering fraidycat this way would benefit the selfhosting community, as it would free the cat to be able to play in any browser, anywhere without having to deal with browser extensions. Also having fraidycat in a home server is way more secure :)

Twitter/Reddit URLs don't work with Firefox 'Strict' Tracking Protection

From ValdikSS:

Hi, letting you know that Fraidycat for Firefox doesn't work if strict tracking protection is enabled in Firefox settings. The extension console writes the following:

The resource at โ€œhttps://www.reddit.com/r/linux/โ€ was blocked because content blocking is enabled.
_generated_background_page.html
Error: NetworkError when attempting to fetch resource. webext.js:177:22

The extension does not show any error, just hangs indefinitely when "save" button is pressed.

After getting some blog URLs to work and replying to ValdikSS - another reply came in:

I've tested only twitter and reddit urls, both are blocked. I assume that Firefox considers requests from websites or extensions to only some third-party huge and well-known websites as trackers, that's why standalone blogs on custom domains work fine.

Work to do.

Feature Request: Better Importance ordering

Currently, when opening up a tag, there are several tabs that sort feeds based on importance. But this is a little strange, since I just want Importance to tell me how often a feed updates, and having to remember whether I've already checked my "Weekly" Importance this week is a pain.

My suggestion: Put the feeds under Importance headers, which are stacked up on top of each other under the tags. Like this:

TAG
Real-Time:
Feed1
Content/Content/Content
Feed2
Content/Content/Content
...
Weekly:
Feed3
Content/Content/Content
Feed4
Content/Content/Content

Only Importance levels which I've actually assigned should be shown.

When I am done reading the content under some level of Importance, let me mark that Importance level as "Done", which will hide it (maybe at the bottom?) for some amount of time.

For example, let's say I finish reading everything under "Weekly". I mark this as done, and the Weekly header is collapsed and pushed all the way to the bottom of the screen (out of sight, out of mind). If I check on the tag again in a day, I see no Weekly, because I've already marked it as Done. But come next week, Weekly is back on my feed. Marking Weekly as Done forced all the media within Weekly to wait until next week to show themselves again.

This gives users control over which media is thrown into their face by using a time limit to constrict the flow of media.

Move expand/collapse button to the left side

Before you start.

  • I have checked the Rejected Features page.
  • I have searched the issue tracker for a feature request that matches the one I want to file, without success.

My great idea for Fraidycat is:
If you're running the app full screen, it's a long drag to the right to reach the expand button, and then to close, it moves all the way back to the left. Would be nice if it was always on the left, perhaps just under the feed title, inside of the indent.

Request: Force "open in new tab"

Very nice bit of work! FWIW I have used both "Feedly" and "The Old Reader", as well as feed readers now long forgotten. I like the minimalism of your approach a lot. Also great that it can make sense of TiddlyWiki! Very useful for TiddlyWiki enthusiasts to be able to track when stuff in releases change.

My request is simple: when you click on an item that it opens in a new tab rather than replacing the Fraidycat tab. (FYI, I on Chrome latest on Win)

Best wishes, TT

Auto-updates for scraping strategies.

Much like ad blocker whitelists, it would be cool to keep a master list of supported sites and metadata describing how to scrape them, so I can easily adapt to website changes and quickly accept new sites to support.

Twitch support.

I'd like to have a brief 'status' item in the title for a follow where I can put stuff like '๐Ÿ”ด LIVE' if a streamer is live. I tried playing with the API, but this is going to need to be scraped as well. (Frown.)

Simple subscribe

Rather than tracking down the URL to watch, it would be great to offer a 'simple subscribe' form on the 'add' page.

Basically, this would add buttons for all kinds of supported sites. Which would then change the form from a URL box to a custom field like this:

  • Twitter: an @username field can be filled in.
  • Reddit: a subreddit name.
  • Reddit user: a username field.
  • Kickstarter: a creator's name.
  • Kickstarter projects: project name.

And, what would be sweet, is to interface with search on those sites to allow autocomplete.

This is very low priority at the moment and is just frivolous future talk.

Follow private Twitter, Instagram and Facebook accounts.

Because of the security issues behind this, I am considering doing this as a separate Fraidycat Invasive/Aggressive Edition - because it would have access to your credentials and I don't think I can ask the user which mode to use upon installation. I also am not sure if it is possible for me to call the fetch API with {credentials: "include"} from a background script. If I have to scrape the page using a content script, this could become rather gnarly...

Reduce Fraidycat's web extension permissions.

Ideally, Fraidycat should aim for the minimum permissions needed. (In fact, in my Beaker Browser prototype, it asks for permission on every new domain that I hit.)

Right now the permissions requested look like this in Chrome:

2019-12-18 15 10 36 extensions ed4de8b51259

And like this in Firefox:

fraidycat-perms

So, let's go through the actual list in the manifest, because I want to see what I can eliminate.

"http://*/" and "https://*/"

This allows me to make requests to the sites that we're grabbing feeds from. However, this also grants me access to browser history and data for all websites!

This is one I'd really like to fix!! I don't need browser history or personal credentials - I just need fetch to work for any URL. (The credentials options set to omit would be fine!)

So - this is the biggest question. Can I just get vanilla HTTP(S) access?

"storage" and "unlimitedStorage"

The first is definitely needed. I'm storing a lot of data locally. This is what allows me to run this without a server.

I also add unlimitedStorage because I actually ran out of space in Vivaldi! It caps out at 5 MB. (If you have 1,000 follows, that's 5k per follow - which is tight.)

I think I can do better here by supplying usage information and getting better about cleaning out history.

"tabs"

This is one I think I can somehow get rid of. Right now I only use this to launch Fraidycat using this line:

browser.browserAction.onClicked.addListener(tab => {
  browser.tabs.create({url: "index.html"})
})

That's it! So perhaps I can accomplish this some other way.

Scrollbar is too long in the Electron app

There is some CSS padding or something that is giving a scroll bar when there should be none. (Related: I might want to jump to the page top when a link is clicked.)

Show progress on import or mass update

A progress bar could appear in front of the 'Add' button which shows updates in progress. This would be useful if you reload the browser in the morning and a hundred feeds are updating.

(The opposite of a 'notification' - this indicates that you can go away for awhile. A time estimation might be nice - but it will be inaccurate.)

JSON parse error when trying to import any OPML

Hey, just installed Fraidycat and when I tried to import my OPML I got this error:

Error: JSON.parse: unexpected character at line 1 column 1 of the JSON data

At first I thought it was the OPML I was trying to import, however it also occurs when I export from Fraidycat and try to import that OPML file.

Network error when trying to fetch resource.

Hello, I just installed Fraidycat on Firefox 71.0,
but I get 'Network error when trying to fetch resource.' every time I try to add something to the feed.

Any idea what could be going wrong?

WebSub support?

This seems to be unlikely to be feasible since it requires having a public notification endpoint, but maybe Fraidycat could be configured to optionally talk to a self-hostable notification proxy.

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.