facundoolano / feedi Goto Github PK
View Code? Open in Web Editor NEWA personal news aggregator and Mastodon client
License: GNU Affero General Public License v3.0
A personal news aggregator and Mastodon client
License: GNU Affero General Public License v3.0
Sometimes when I fetch a new page from the feed, I get one or two duplicated entries. This could be some bug in the assumptions of the pagination algorithm (perhaps if new entries are added between the previous and next page fetch). I haven't identified a pattern to reproduce the bug.
Hi, I just read your blog post.
Would the project https://github.com/buriy/python-readability help you integrate the reader-parsing on server side?
(I saw it being used by offpunk)
There's a service called Five Filters which is somewhat related in mission to feedi. This service has open source parts, including a set of filters they use to extract text from RSS feeds.
Maybe you could use those config files to gain support for many sites out of the box.
Currently the csv and opml import/export features are only accessible from the command line. It would be convenient to expose them in the web UI, likely in the sidebar of the feed list.
Title.
some clipping/word wrap is necessary
Hi,
Absolutely love the project! I'm sure this is just a routes issue, but I don't know enough about nodejs to fix it.
When browsing, if I click on an RSS entry's title, it takes me to a page that displays Error fetching article: PermissionError(13, 'Permission denied')
. The daemon doesn't throw any logs from this, which I found very strange. I had a permissions issue with the filesystem around the database previously and there were very good Python error traces in journalctl from the service.
Each entry seems to have a number that's unique per-Feed assigned to it. if I'm on feed ABC, the link is https://my-domain.com/feeds/ABC/entries. When I click on an entry, the link becomes https://my-domain.com/entries/12 or similar. I've tried adding back in the feeds/ABC part to make https://my-domain.com/feeds/ABC/entries/12, but that gives a 404.
Similarly, if I'm on the homepage and click on a post from any feed, it'll give me the link https://my-domain.com/entries/12 or some other number per entry. Same PermissionError results.
If the article includes a webp image, it should be converted to another format or removed from the output HTML. The conversion probably requiers PIL or similar and some OS level libraries, which we don't want to impose to all users (not everyone needs kindle support). So it should fail gracefully if the libraries are missing.
I see a lot of annoying eye floaters, dark theme would help a lot.
Is there any chance of supporting Docker as a deployment option?
I think it would be interesting to optionally expose the list of favorited urls as a feed (rss and/or json) that could be consumed by external applications. E.g. maybe someone else wants to to follow your favorites as an rss feed, or you want to build a link blog in a personal website using the json endpoint as a data input. A somewhat related feature would be to publish your list of followed sites as an OPML + json endpoint.
I haven't figured out the right approach to this (thoughts appreciated!), but some ideas I had:
The current CSS takes vanilla bulma and customizes it by overridding styles, in some cases by hardcoding and duplicating variables that could be reconfigured if we were building bulma from its Sass source.
Just wanted to note that migrations cannot be performed with sqlite3 < 3.35. The DROP COLUMN
syntax used by the sqlalchemy
migrations was not present in sqlite3 before that version, and Ubuntu 20's final sqlite3 release was 3.31.
I solved this by installing a binary of sqlite3 manually and using it with make dbshell
to manually perform the drops and alembic stamp
ing the version with venv/bin/alembic stamp 0efddf242a41 && venv/bin/alembic upgrade head
, repeat until it starts completing successfully.
Perhaps if I'd forced sqlalchemy to recompile by deleting its pyc files it would have used the new sqlite binary, for some reason it was still giving syntax errors after I'd used update-alternatives
to make the new version the default.
Might want to make this clear in README and/or add a check in the Debian setup script.
Side note: thanks for the recent updates, the new parsers are great!
Hello, nice project!
I'm trying it out for myself and it seems that using a '/' character in a feed name prevent access to any url using the feed name. I know bugs should be expected, I'm sharing it just in case.
STRs:
https://www.reddit.com/r/selfhosted/top.rss
with name /r/selfhosted
/feeds//r/selfhosted/entries
pageI had to manually edit the sqlite database to fix this.
I guess you could disallow forward slashes or maybe url-encode them?
I currently rely on stkclient to send articles to kindle devices. This is sketchy because it mimics a desktop app to get a private key and brittle because the key seems to expire within a couple of days, requiring another manual login. I'm thinking at this point it's probably better to just send the parsed webpages through email.
This would require:
First thank you for this nice idea and implementation !
Sometimes, when reading the posts, UI starts scrolling and jumping back and scrolling again. I guess it may be linked to RSS updates in background, but I don't know where to start to investigate about it.
I'll post some comment if I find something better to characterize the problem.
Version 906d8e0 hosted on fly.io.
The feed submit form in particular has non-exhaustive, ad hoc validation code, and its template some conditional logic that could perhaps be simplified or at least make more readable by introducing WTForms, wtforms-sqlalchemy, wtforms-alchemy or some other similar library.
I currently have a couple of template filters to truncate the entry content (full/text view and compact/pinned view) in Python. This is because I couldn't get the HTML and CSS to show ellipsis on overflow. Ideally containers should be fixed in size (e.g. the height of the image preview) and the CSS would adjust the text to take advantage of the available space, instead of the current solution which isn't consistent and leaves some blanks.
It would be interesting to have test infrastructure to serve arbitrary (per test) rss xml files. With that available, a good start would be to test RSS feed CRUD operations, entry parsing on sync and the frequency feed ordering.
Hey!
Thank you for this project. I plan to test the app in the following days. I love the idea, and hope to use it as my daily driver :)
I imported my old OPML feed (36 entries), but not all of them are listed at /feeds
page. I don't know Python very well, but based on the query executed in the feed_list()
, it appears that the feeds without entries won't be listed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.