Giter Site home page Giter Site logo

feed-reader's Introduction

README

This README would normally document whatever steps are necessary to get the application up and running.

Things you may want to cover:

  • Ruby version

  • System dependencies

  • Configuration

  • Database creation

  • Database initialization

  • How to run the test suite

  • Services (job queues, cache servers, search engines, etc.)

  • Deployment instructions

  • ...

feed-reader's People

Contributors

dependabot[bot] avatar robbevp avatar

Stargazers

arpu avatar

Watchers

Lucian avatar  avatar  avatar

feed-reader's Issues

`mail.received` can be a direct field or an array

In NewsletterMailbox we assume that mail.received returns an array.

In some cases, this can return a single field, resulting in the following error:

undefined method `first' for #<Mail::ReceivedField:0x00007f0a775b0e18 ...> (NoMethodError)

Only fetch image once accross all entries

We currently fetch each image url once per entry.
Since some images are used accross multiple entries, we might want to limit data usage (and the amount of work we have to do, by only fetching each image once).

Some good example of images that are reused are:

  • logos/icons in mailchimp newsletter: these are often the same accross all emails
  • the bandcamp logo: this is the same image in all emails that bandcamp sends

Automatically mark entry as read when user reaches bottom of entry show

When a user has seen the whole entry (because it is very short, or they scrolled to the end), the entry should automatically be marked as read.
This should be indicated to the user with a quick notification
If a user puts the entry back to unread, this action shpuld not fire again

Remove tracking pixels from entries

Some entries will contain tracking pixels, like:

<img src="some_url" width="1" height="1" style="display: none;" />

We should try to detect these tracking pixels, and remove them from the entry's body.

Proxy images inside inline styles

Some entries will have images in inline styles (using background:, background-image: or content:). We should also proxy these images
Some entries might also have these properties using inline styles, we should also proxy these.

Proxy images found in scrset

Some entries will contain links to images using srcset. This can be done in two ways:

  • <img srcset="..." />
  • <picture><source srcset="..." /></picture>
    (or a combination of the two).

We should also proxy these images.

Allow user to delete individual entries

While it does not make sense for most entries, in some specific cases a user might want/need to delete a specific entry. We should enable this.

This case comes up when a user subscribes to a newsletter and receives a confirm subscription email

Proxy images inside entries

For reliability / reduced tracking, we should:

  • Detect all images inside entries
  • Download them and store them on the sever
  • Modify the entry to use our proxied images

Store search params accross nagivation

If a user searches on the homepage, then navigates to an entry, and the goes back to the homepage, the search params are lost.

We should store the search params somewhere (a cookie? in the url?), so that a user always returns to the homepage with their current search

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.