Giter Site home page Giter Site logo

feeds's People

Contributors

consindo avatar justinas avatar mablae avatar nagisa avatar stayradiated avatar vrutkovs avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

feeds's Issues

Install a script to /usr/bin

Apparently it is important to have a simple way to launch trifle from terminal to some people. $ trifle is a goal.

The future

Google Reader is getting killed therefore being a Google Reader Client is not
feasible anymore. I've tried alternatives and found their web interfaces to
be not to my liking.

News that ownCloud has a news reader app reached my ears and as ownCloud is
getting integrated into GNOME 3.8, this is a great chance to take advantage
and move from Google as the backend. (Actually I plan to remove reader
backend fully in the next release)

TODO

  • Investigate if it is possible to use ownCloud News App as aggregation service.
  • Split synchronization and reader parts into two independent parts. Synchronization part should be able to run as a regular job. Also direct synchronization should be made possible.

TinyTinyRSS support

We should support more than one backend for feeds reading. I guess that TinyTinyRSS is most popular one after Google Reader.

Unsubscribe from a feed

We should be able to unsubscribe from a feed. Action will be accessible by a context menu.

Redesign main window

Current window looks really ugly without Adwaita.

We need a better design and structure for the main window.

Ideas

  • All items, Unread and Starred categories are probably application wide. They are also static. Can we make them buttons? Maybe in tool bar?
  • Maybe we should try using only one sidebar?
  • FeedView should really adapt to theme colours. Quite a bit of magic needed here.
  • Seek for help from gnome designers?

Gnome Online Accounts integration

We should ask for password only as last resort. Before that we should check if user has GOA account set up and if we can get credentials from there.

As OAuth1 method is deprecated, currently waiting for OAuth2 in GOA, which will be available with 3.8.

Add keybindings

Navigation

  • j – next item
  • k – previous item
  • space – next page or item
  • n – item scan up
  • p – Item scan down
  • o – Open an item

Application

  • r – Refresh
  • / – Focus a search box
  • a – Add a subscription
  • C^= – Increase magnification
  • C^- – Decrease magnification

Filters

  • 1 – All items
  • 2 – Unread items
  • 3 – Starred items

Acting on items

  • s – Star item
  • v – Open original
  • m – Toggle unread status
  • ??? – Mark all as read Should be something more complex than a simple letter, because it is quite a destructive action

NOTE: This list doesn't include GTK+ keybindings like , , , , et cetera.
??? is a placeholder for undecided keybindings.

Share models between windows

Keeping only one instance of model (for example ItemsView) for multiple windows will help us to reduce memory usage and lead to various performance gains.

Display href of a link

Feeds needs to display where focused/hovered link will get us. Using a widget similar to one Firefox, Chrome and other browsers have is one of probable solutions.

Sometimes some items are not saved into database correctly.

In some occasions I can observe a chunk of items being totally empty.

Pressing Synchronize in application menu doesn't fix it as we don't resynchronize items which doesn't seem to be out of date, but deleting the database and synchronizing works OK.

Empty items doesn't crash the application but spews out a lot of exceptions and user cannot preview those items. And I still cannot reproduce it reliably.

Implement either handling of such items (resynchronize?) or find the cause.

Block less during synchronization

Currently UI is frozen during items parsing because it takes a lot of time. Moving it to thread will alleviate that.

Currently I'm thinking about using a thread and maybe reusing them for each chunk. Surely GThreadPool is the way to go here. GThreadPool introspection is broken.

Currently UI gets frozen during several synchronization phases. We should ensure we block on main loop as less as possible by making all I/O asynchronous and outsourcing all the parsing into another process.

Support GTK flags

We cannot access gtk_get_option_group do dynamically find out which flags are used by GTK.

Ideas:

  1. Keep a static list of GTK+ flags and use our current arguments infrastructure to parse them.
  2. Just pass unknown flags to app.run which will then get everything it needs.
  3. Try using GLib arguments parsing infrastructure and gtk_init_with_args.

Evaluation:

  1. Will certainly work, but list may get (out of control/old) very quickly and won't account for differences in library versions.
  2. We won't be able to tell user he's using some flags we don't know.
  3. It is not as flexible as argparse, but is much more compatible with our library ecosystem. Also moving to another library has its costs.

Leaking memory

Why the hell would memory leak in language with diaper on?

  • When changing between categories (All items, Read, starred)
  • Scrolling through items in ItemsView
  • And probably everything else gi.repo related

And I naively hoped to have nothing to do with manual memory management diaper changing 😱

Refresh happens too often without network connection

This bug actually describes three very related problems.

  1. When machine is off line, we do not reset a timer and trifle tries refreshing every check (that is every minute now).
  2. After each unsuccessful refresh trifle displays an intrusive, modal error window.
  3. We refresh when there's no connection.

Fixing 1️⃣ will also fix 2️⃣ and in some way 3️⃣ as well.

Preparse items’ content during synchronization

Instead of changing elements while loading an item (that is in on_item_change/on_content_loaded), do that during synchronization in process_item.

What can should we do there?

  • Replace iframes with regular link. We do not run JavaScript engine or plugins therefore rendering any content in iframes is mostly useless.
  • Remove height/width from images
  • Remove any inline styles. There's only one special case – code highlighting. Maybe we shouldn't strip styles from elements in <code>?

And probably much more in the future, which is why it isn't fitting to do during loading.

Remove all python 2 support code

Maintaining python 2 compatibility requires quite a bit of effort. In my opinion I should just remove all python 2 support code and further promote use of python 3.
Further in the future maintaining compatibility will be even harder and we are not a library to need to do that.

Doesn't sync just after entering credentials

When synchronizing, if there's no password saved in keyring, trifle will ask for it and save it into keyring. After that it is supposed to continue synchronizing, but it doesn't. Restarting application after entering credentials will help.

not really an issue

Hi i have a few question about this app :

Are you searching alpha/beta testers for it ?

Does the app work without needing a google reader account ?

I've tried to install this app on ubuntu 12.04 and installed all the required packages :

python3 python3-gi python3-lxml sqlite3 python3-all python-sqlite python3-sqlalchemy

The overs required packages are installed, and i get this error when i try to install the app :

Traceback (most recent call last):
  File "setup.py", line 5, in <module>
    from trifle.utils.const import VERSION
  File "/home/bb/Bureau/Feeds/trifle/utils/__init__.py", line 6, in <module>
    from trifle.utils.sqlite import sqlite
  File "/home/bb/Bureau/Feeds/trifle/utils/sqlite.py", line 70, in <module>
    sqlite = SQLite(_sqlite_path)
  File "/home/bb/Bureau/Feeds/trifle/utils/sqlite.py", line 15, in __init__
    super(SQLite, self).__init__(daemon=True)
TypeError: __init__() got an unexpected keyword argument 'daemon'

I've read here https://aur.archlinux.org/packages/trifle/?setlang=fr that intltool package seems to be required so i installed this one too, but this doesn't solve the error.

Have you any clue about this type of error ?

Thanks ++

Implement Context menus where needed

Context menus are needed in following places:

  • Links and images in FeedView (Copy link, Copy address, View image…)
  • Items in ItemsView (Actions like Star, Toggle unread…)

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.