Coder Social home page Coder Social logo

jadedctrl / pogger Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 2.0 402 KB

RSS/Atom feed aggregator for Haiku. (Mirror 🪞)

Home Page: https://hak.xwx.moe/jadedctrl/Pogger

Makefile 4.97% C++ 95.03%
haiku rss atom feed-reader feed-aggregator rss-client atom-client

pogger's Introduction

Pogger

A simple RSS/Atom feed aggregator for Haiku.

The Main Window

Feed entries in Tracker

Pogger works vaguely similarly to the mail service― you configure it, add your subscriptions, and forget about it. New entries for your feeds will be dumped into your feeds folder.

It works best for news or blog feeds, podcasts and the sort work better on BePodder.

Usage

Whenever a subscribed feed is updated, "feed entry" files are dumped into your feeds folder, /boot/home/feeds/ by default. They have the attributes you might expect― URL of the entry, the title, source, time posted, etc. The file contains the contents of that entry, if any were provided.

It's recommended to use Pogger to open these files, instead of directly using a web-browser. This'll smooth out any incompatibilities and make sure entries are opened just how you like them― as the downloaded HTML, or as a URL.

By default, it will open entries as URLs with WebPositive.

Feeds

In the "Feeds" tab you can manage your subscribed feeds, and see the progress of the current update. Feeds that failed to update are marked with an "X" in their row.

Entries

In "Entries" you can change your feed folder and how Pogger will handle the opening of feed entries.

Updates

In "Updates" you can toggle notifications and set the frequency of updates.

Building

$ make; make -f Makefile-Daemon

$ make bindcatalogs; make -f Makefile-Daemon bindcatalogs

Uses netservices, and has TinyXML2 as a dependency.

License

This project is under the MIT license.

pogger's People

Contributors

begasus avatar jadedctrl avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pogger's Issues

Move "Feed entry" file type to "application"

I'm not 100% sure on that one, but since the "Feed entry" files are just empty files with all data in their attributes, I think text/x-feed-entry should actually be application/x-feed-entry.

Also, sentence cased, the type name would be "Feed entry", the description "Atom/RSS feed entry".

feeds folder not created / empty

I tried downloading and compiling your source (today, march 23). The compilation went without issues (in Haiku 32 bit, but using the secondary architecture). However, I found this problem:

  • The application don't create the /boot/home/feeds folder. I understand that there is a recent commit that fixed this problem, but for some reason, apparently don't work.

  • I also tried creating the folder manually, but after that, still don't see any new feed downloaded.

I opened the Subscriptions configuration folder (/boot/home/config/settings/Pogger/Subscriptions), and opened the files using DiskProbe, and I see information about recent updates for the feed. But for some reason, the file in the home/feeds folder is not created.

Add confirmation alert when deleting a feed

Since deleting a feed is normally done not very often, a confirmation alert wouldn't be to much of a bother and gives some savety against accidental removal.

Do you really want to remove the feed 'Feedname'?
                     [Remove]         [Cancel]

Use a proper daemon

Pogger should follow the daemon/deskbar replicant/settings model, instead of having the MainWindow be open all the time. A few changes'll have to be made.

  • Window
    When settings are changed, a message will have to be sent to the daemon saying as much.
    A "Run Pogger on system startup" option should be added.

  • Deskbar Replicant
    The mail service has its deskbar replicant manage notifications etc (it consistently runs a query for new mail), and Pogger's deskbar replicant should follow suit. Right now Notifier requires messages from the update loop to send notifications― so if Notifier becomes a child of the DeskbarView, then it'll have to move to using queries, like mail's.

  • Daemon
    Basically just has a FeedController do all the work.

Support TinyTinyRSS/OldReader-like services

Doesn't seem like this'll require too much restructuring― the FeedsList should become a BOutlineListView (which has, e.g., "TinyTinyRSS" and "Local" as the top of the hierarchy, with their feeds under them), and new Feed classes should be made. Other than that, a class above Feeds ("MetaFeed", "SuperFeed"? Haha) could be used to fetch subscribed feeds. It might represent the service/way feeds are aqquired (i.e., LocalMetaFeed, TTRMetaFeed, etc).

Right now, subscribed feeds are just fetched from the FeedController― so instead of using FeedController::SubscribedFeeds, you'd use MetaFeed::SubscribedFeeds, and FeedController might have to manage multiple MetaFeeds.

Using the addon system for MetaFeeds and Feeds might be a good idea, to help generalize.

Sentence casing

To fit 100% into the Haiku environment, all strings should be sentence case., i.e. "Update now", "Edit feed", "New feed".

Crashes on 32bit

After the latest comments at haikuports moving issues over here :)

With the latest commit I'm getting a crash on (first) startup again and adding a new feed still crashes

Feeds tab: add "New entries" button for a query

The "Edit..." button could move to the left to the +/- buttons and space for a "New entries" button that opens a Tracker query for the currently selected feed's unread entries.
Since that may be used more often that "Edit", that may as well be the double-click action on a feed.

[Suggestion] Download Queue System

Hello! This is less of an issue and more a suggestion for a queue system that you mentioned in your TODO file to simplify download handling. For a simple queue implementation, I would take a peak at Haiku's BJob class found in the Support Kit. For convenience, here's a link to the header: https://github.com/haiku/haiku/blob/master/headers/os/support/Job.h

There's also a private JobQueue class, but I'd copy its implementation into your own files as it's still a private class that originated from Haiku's Package Kit: https://github.com/haiku/haiku/blob/master/src/kits/support/JobQueue.cpp

Hope this helps you get started!

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.