Git Product home page Git Product logo

feedjack's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

giorgil vinodyk

feedjack's Issues

Check Timezones

It seems timezone dependend dates get stored in the database. Every datetime object should be timezone aware so the dates in the db are independend of the planet's configuration.

Use a base.html

Use a base.html, so other django-apps, which expect it can find it.

Simplify Theming

Create a good HTML template and delegate all theming to CSS files.

Clean the HTML content of feeds

Currently there is an optional feature to use lxml2 to sanatize html (close tags, where the closing tag is missing, etc.) to make sure the post page stays intact if some post contains broken html.

Add some filters to strip unsafe tags (<script>, <style>, ...) or use a whitelist of allowed tags and remove eventhandlers (onload, etc.), which could be an malicious html injection from the feed.

Set CSP headers

Set CSP headers (possibly configurable):

  • Disallow scripts from posts
  • Allow images (external, data:)
  • Disallow/Allow Frames (often tracking pixels, etc.)

Remove all Inline Scripts to be able to completly forbid unsafe-inline (and prevent event-handlers like "onload" to inject scripts).

Find a New name

For the "1.0" release of the new code there should be a new name, as there is no trivial upgrade path from feedjack or any of its forks. So the package should have some distinct new name.

Plans for this fork and relation to mk-fg

Hi, playing around with mk-fg/feedjack I found your repo - from what I understand your changes are based on the current master of his feedjack branch, however I see no pull request on his repo from your changes here. I do not understand the current situation regarding this code, would you like to explain?
Is this the new 'main' repo for feedjack?
Thanks for your attention!

Rework URLs for filtering

Filters like since, unread, groups, etc. should be get-parameters, so they can be combined without complex patterns in urls.py

Ajax "Load More"

Use jQuery's ajax function to load the next page with a selector for the post-list and append it to the current post list.

pip install fails

error in Feedjack setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid requirement, parse error at "'< 1.10'"

Nice default theme

Provide a nice default theme

  • Probably using some framework or even template: bootstrap / foundation / material-design / ...
  • Should work without javascript, may provide more features with JS enabled
  • reactive / mobile friendly

Features:

  • A sidebar with feeds and feedgroups, displaying their unread-counter, textbox to filter this list (with JS)
  • A top bar with ordering / filtering options (unread, read later, all, maybe "contains string")
  • A nice message list, possible with features like "jump to the next article", etc.
  • Possibly endless-scroll ready (inserting / removing articles without problems, clear scroll positions)

Add date to the title of filtered views

When the post list is filtered for a date range, add the range to the title. Maybe only start/end date and truncated to a coarser range depending on how many minutes/hours/days are between the posts.

Use Django sites framework

Couple feedjack.models.Site with django.contrib.sites.models.Site as 1:1 relation and try to simplify site selection algorithm (get_current_site should be enough).

Reader mode layout

Sidebar: with feeds list, feed/group/multiple feeds selectable.

Top: Article list with headlines
Bottom: Article view for a single article (maybe an iframe), with option to view the original in the iframe. (like classic feedreader applications or popular mail programs).

Update the README

Update the readme with a description of the new project and a clean and easy way for installation and configuration, including settings like ´´TEMPLATES´´ with template context processors and everything what's needed to run a new instance.

Move any stuff only relevant to the old releases into another file or remove them (as they can be found in git or old feedjack releases).

Feed filter improvements

[ ] mark the currently selected feed in the sidebar (i.e. bold font)
[ ] add a subscribers_excluded=1,2,3 URL-Parameter
[ ] When only filters like unread are applied, allow in the sidebar to deselect single feeds, adding them to subscribers_excluded
[ ] When a subscribers=1,2,3 parameter is given, allow to select/deselect feeds via the sidebar, which add/remove them in this parameter.

Add "since yesterday" style links again

d9b278a removed parsing date formats like "yesterday".
We can add the links again with precomputed dates as now() - timedelta(1), which are relative to the page (and thus permalinks) with the link instead of being always relative to now().

Add Tests

Meta-Bug for adding tests.

Currently there will be bigger changes, so no unit tests, yet.
Testing intended behaviour would be nice as well.

Stuff to be done:

  • make sure all code can be tested (all new design changes should try to do one thing in one function)
  • Add some test data (well formed feed data)
  • decide on a unit test framework (nose?)
  • maybe integrate some coverage framework
  • write unit tests
  • add a script, which tests bootstrapping a full installation

Rework Pagination

Use Dates for pagination.

  • Forward: All posts after this one (ascending dates)
  • Backwards: All posts after the date of 20 posts before (ascending dates)?

Add title-field to Subscriber model

Add a title field to the Subscriber model and a function lambda: self.title or self.feed.title to get either a custom title for the site or the title from the feed.

Clean "1.0" release of the project

  • Finish all cleanup, simplification, changes to models, etc. to have a stable supportable state.
  • Find a new name #21
  • possibly release a "0.999" under the new or old name, with all messy migrations for migrating on your own risk.
  • remove south and django migrations for a fresh start, add a hint to 0.999 for people who want to try migrating from an older version.
  • Have a clean installation documentation, which covers the current state #22.

Rework Caching

Try to use more ready made cache decorators and so on for the caching.

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.