A nice place to read on the web.

Related tags

ruby rails rss
Overview

Feedbin

Feedbin is a simple, fast and nice looking RSS reader.

Feedbin Screenshot

Support

Support for Feedbin customers is available by emailing [email protected]. No support is provided for installing/running Feedbin.

Introduction

Feedbin is a web based RSS reader. It provides a user interface for reading and managing feeds as well as a REST-like API for clients to connect to.

Feedbin's goal is to be a great web-based RSS service. This goal is at odds with being a great self-hosted RSS reader. There are a lot of moving parts and things to configure, so for that reason I do not recommend that you run Feedbin in production.

If you're looking for a self-hosted RSS reader check out:

And if you really want to run the whole Feedbin stack, take a look at this Docker version. If you would like to try Feedbin out you can sign up for an account.

The main Feedbin project is a Rails 6 application. In addition to the main project there are several other services that provide additional functionality. None of these services are required to get Feedbin running locally, but they all provide important functionality that you would want for a production install.

  • refresher: Refresher is the service that does feed refreshing. Feed refreshes are scheduled as background jobs using Sidekiq. Refresher is kept separate so it can be scaled independently. It's also a benefit to not have to load all of Rails for this service.
  • image: Image is the service that finds images to be associated with articles
  • camo: camo is an https image proxy. In production Feedbin is SSL only. One issue with SSL is all assets must be served over SSL as well or the browser will show insecure content warnings. camo proxies all image requests through an SSL enabled host to prevent this.
  • extract: Extract is a Node.js service that extract content from web pages. It is used to extract full pages when a feed only provide excerpts.

Requirements

Installation

Ultimately, you'll need a Ruby environment and a Rack compatible application server. For development Pow is recommended.

First, install the dependencies listed under requirements.

Next clone the repository and install the application dependencies

git clone https://github.com/feedbin/feedbin.git
cd feedbin
bundle

If you encounter any errors after running bundle there is a problem installing one of the dependencies. You must find out how to get this dependency installed on your platform.

Configure

Feedbin uses environment variables for configuration. Feedbin will run without most of these, but various features and functionality will be turned off.

Rename .env.example to .env and customize it with your settings.

Setup the database

rake db:setup

Start the processes

bundle exec foreman start

Status Badges

Ruby CI

Code Climate

Coverage Status

Issues
  • Add Firefox OS manifest

    Add Firefox OS manifest

    This adds a Firefox OS manifest.

    The result looks like this:

    screenshot from 2013-08-28 13 24 03

    There's still some work to make this nice on Firefox OS:

    • We could create an icon that fits the icon guidelines better.

    • The login page can't scale small enough.

      screenshot from 2013-08-28 13 31 28

    • The front page can't scale small enough (I made /login the "main page" to work around this).

      screenshot from 2013-08-28 13 29 59

    I think this is a good first step though, since it sets up a reasonably good icon, and once logged in, everything works as expected.

    opened by brendanlong 36
  • PG relation

    PG relation "users" doesn't exists

    I think you now it but i can't install Feedbin because this error

    PG::UndefinedTable: FEHLER:  Relation 'users' doesn't existis
    LINE 5:                WHERE a.attrelid = '"users"'::regclass
                                              ^
    :               SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                         pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
                    FROM pg_attribute a LEFT JOIN pg_attrdef d
                      ON a.attrelid = d.adrelid AND a.attnum = d.adnum
                   WHERE a.attrelid = '"users"'::regclass
                     AND a.attnum > 0 AND NOT a.attisdropped
                   ORDER BY a.attnum
    
    
    opened by MoritzFago 19
  • Support for Docker

    Support for Docker

    Hi Folks,

    I spent a bit of time over the weekend attempting to setup a Docker image for easier local deployments, I created a repo, I'm having some issues deploying and getting the DB setup for the first time - I've included both Fedora and Ubuntu Dockerfiles and would appreciate your contributions in setting up!

    Precursor: I'm not overly familiar with Ruby, but have a reasonable understanding - and want to learn.

    opened by lwis 18
  • Mobilize settings page

    Mobilize settings page

    This isn't done yet, but I figured I'd start the pull request so you can see why I'm working on.

    Step one is getting the settings page to not have a fixed width. I used percentages, so the page is centered slightly differently:

    screenshot from 2013-09-23 21 32 40

    And it looks much better at small sizes:

    screenshot from 2013-09-23 21 32 49

    opened by brendanlong 15
  • Make main interface work on mobile

    Make main interface work on mobile

    This is for issue #22. It's not done yet, but I figured it would be easier to have a conversation about this if you can see the commits.

    opened by brendanlong 15
  • Make home page scale on mobile devices.

    Make home page scale on mobile devices.

    This needs to be tested in some older browsers (cough cough Internet Explorer), since I had to use more magic than usual to make this work, but it makes everything scale on the front page, down to about 316 pixels wide. It looks perfect in Firefox and GNOME's "Web" (modern, WebKit-based).

    Medium size:

    screenshot from 2013-09-02 18 46 33

    screenshot from 2013-09-02 18 46 27

    screenshot from 2013-09-02 18 46 10

    Small size:

    screenshot from 2013-09-02 18 45 15

    screenshot from 2013-09-02 18 45 23

    screenshot from 2013-09-02 18 45 29

    screenshot from 2013-09-02 18 45 37

    screenshot from 2013-09-02 18 45 57

    At full size, it looks identical, except the apps and features lists have equal sized "tiles" (which was necessary to make them line up correctly when floating). There's a more complicated method I could use if you think this looks bad: I could leave the spacers, but remove them when the window gets too small. I would need two sets of spacers though: One for when there's three "tiles" across and one for when there's two. It's not a huge amount of work, but seemed messy.

    screenshot from 2013-09-02 18 49 04

    screenshot from 2013-09-02 18 49 28

    opened by brendanlong 12
  • Add OAuth2 authentication to API endpoints with Doorkeeper.

    Add OAuth2 authentication to API endpoints with Doorkeeper.

    This adds the popular Doorkeeper gem for OAuth 2 authentication for API endpoints. There's a lot of boilerplate code provided by the doorkeeper generators. There's also a lot of small diffs in the structure.sql file that occurred when I ran the migration.

    Here's what the authorization page looks like: screen shot 2016-01-31 at 7 48 21 pm

    And the Applications page in Settings: screen shot 2016-01-31 at 7 48 36 pm

    I'm totally happy to make changes to these views too.

    opened by maxmeyers 12
  • Empty `<img>` tag generated for certain images in feed content

    Empty `` tag generated for certain images in feed content

    I've been noticing for a while that Feedbin doesn't show any images from within content from wptavern.com/feed. The images display correctly when viewing a blog post at its URL, the HTML markup is valid, and the images render okay in other feed services such as Feedly.

    Feedbin renders an empty <img> tag, followed by the text from the <figcaption> provided in the feed.

    Several examples can be seen in this article. There is a "How the Service Works" heading that's followed by an image. This does not render in Feedbin.

    The source HTML for the image is this:

    <figure class="wp-block-image alignwide size-full">
        <img data-attachment-id="111190" data-permalink="https://wptavern.com/wp-lookout-lets-wordpress-users-track-and-receive-notifications-for-their-preferred-plugins-and-themes/wp-lookout-recent-activity" data-orig-file="https://wptavern.com/wp-content/uploads/2021/01/wp-lookout-recent-activity.jpg" data-orig-size="1792,1124" data-comments-opened="0" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="wp-lookout-recent-activity" data-image-description="" data-medium-file="https://wptavern.com/wp-content/uploads/2021/01/wp-lookout-recent-activity-300x188.jpg" data-large-file="https://wptavern.com/wp-content/uploads/2021/01/wp-lookout-recent-activity-500x314.jpg" loading="lazy" width="1792" height="1124" src="https://wptavern.com/wp-content/uploads/2021/01/wp-lookout-recent-activity.jpg" alt="Single plugin tracking history via the WP Lookout website." class="wp-image-111190" srcset="https://wptavern.com/wp-content/uploads/2021/01/wp-lookout-recent-activity.jpg 1792w, https://wptavern.com/wp-content/uploads/2021/01/wp-lookout-recent-activity-300x188.jpg 300w, https://wptavern.com/wp-content/uploads/2021/01/wp-lookout-recent-activity-500x314.jpg 500w, https://wptavern.com/wp-content/uploads/2021/01/wp-lookout-recent-activity-768x482.jpg 768w, https://wptavern.com/wp-content/uploads/2021/01/wp-lookout-recent-activity-1536x963.jpg 1536w" sizes="(max-width: 1792px) 100vw, 1792px">
        <figcaption>Single plugin tracking history.</figcaption>
    </figure>
    

    Not sure if this relates to the markup (there are a lot of attributes on the img) or the Feedbin image proxy service, or something else.

    opened by johnbillion 11
  • OSX 10.11 font updates

    OSX 10.11 font updates

    I noticed you added San Francisco to the default font stack a little while ago (rad, thanks!!). I noticed some crunchy faux bold stuff in the sidebar and did some digging around to figure out why. The problem is pretty simple, and the solution is too: instead of referencing the PostScript name of San Francisco directly, I created a new @font-face font that points to the correct weights and styles of San Francisco Text.

    Breakdown of changes:

    • Font switcher display text changed from “Helvetica Neue” to “System Font”. It’s still not entirely accurate—system standard fonts (Segoe UI, etc.) for non-OSX platforms aren’t in the stack and probably should be.
    • Fleshed out San Francisco font stack to allow for more than one weight.
    • Switched San Francisco Display (.SFNSDisplay-Regular) to San Francisco Text (.SFNSText-*), as the display weight of San Francisco is only supposed to be used when font-size is 20px or greater.

    Let me know if you need clarification on anything. Thanks!

    opened by meyer 8
  • Add rake task to promote users to admin

    Add rake task to promote users to admin

    Fix #398

    opened by angristan 8
  • rake aborted! ArgumentError: invalid uri scheme ''

    rake aborted! ArgumentError: invalid uri scheme ''

    OS: FreeBSD 12.2-RELEASE-p5 Ruby version: ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-freebsd12.2] Not using Docker (FreeBSD doesn't even support it) All gems installed with bundle properly

    When trying to run either bundle exec rake or rake db:setup I get following error (with trace):

    ArgumentError: invalid uri scheme ''
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/redis-4.2.5/lib/redis/client.rb:441:in `_parse_options'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/redis-4.2.5/lib/redis/client.rb:89:in `initialize'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/redis-4.2.5/lib/redis.rb:62:in `new'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/redis-4.2.5/lib/redis.rb:62:in `initialize'
    /usr/home/myuser/domains/mydomain.tld/public_ruby/config/initializers/rack_attack.rb:3:in `new'
    /usr/home/myuser/domains/mydomain.tld/public_ruby/config/initializers/rack_attack.rb:3:in `<main>'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/bootsnap-1.7.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/bootsnap-1.7.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/activesupport-6.1.3.1/lib/active_support/dependencies.rb:326:in `block in load'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/activesupport-6.1.3.1/lib/active_support/dependencies.rb:299:in `load_dependency'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/activesupport-6.1.3.1/lib/active_support/dependencies.rb:326:in `load'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/engine.rb:681:in `block in load_config_initializer'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/activesupport-6.1.3.1/lib/active_support/notifications.rb:205:in `instrument'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/engine.rb:680:in `load_config_initializer'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/engine.rb:634:in `block (2 levels) in <class:Engine>'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/engine.rb:633:in `each'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/engine.rb:633:in `block in <class:Engine>'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/initializable.rb:32:in `instance_exec'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/initializable.rb:32:in `run'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/initializable.rb:61:in `block in run_initializers'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:228:in `block in tsort_each'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:431:in `each_strongly_connected_component_from'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/initializable.rb:50:in `each'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/initializable.rb:50:in `tsort_each_child'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:415:in `call'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:415:in `each_strongly_connected_component_from'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:349:in `block in each_strongly_connected_component'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:347:in `each'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:347:in `call'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:347:in `each_strongly_connected_component'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:226:in `tsort_each'
    /usr/home/myuser/.rvm/rubies/ruby-2.7.3/lib/ruby/2.7.0/tsort.rb:205:in `tsort_each'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/initializable.rb:60:in `run_initializers'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/application.rb:384:in `initialize!'
    /usr/home/myuser/domains/mydomain.tld/public_ruby/config/environment.rb:5:in `<main>'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/bootsnap-1.7.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/bootsnap-1.7.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/bootsnap-1.7.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/bootsnap-1.7.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/bootsnap-1.7.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/activesupport-6.1.3.1/lib/active_support/dependencies.rb:332:in `block in require'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/activesupport-6.1.3.1/lib/active_support/dependencies.rb:299:in `load_dependency'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/activesupport-6.1.3.1/lib/active_support/dependencies.rb:332:in `require'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/bootsnap-1.7.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:53:in `require_relative'
    /usr/home/myuser/domains/mydomain.tld/public_ruby/lib/tasks/feedbin_generate_coupon.rake:2:in `<main>'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/bootsnap-1.7.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/bootsnap-1.7.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/activesupport-6.1.3.1/lib/active_support/dependencies.rb:326:in `block in load'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/activesupport-6.1.3.1/lib/active_support/dependencies.rb:299:in `load_dependency'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/activesupport-6.1.3.1/lib/active_support/dependencies.rb:326:in `load'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/engine.rb:675:in `block in run_tasks_blocks'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/engine.rb:675:in `each'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/engine.rb:675:in `run_tasks_blocks'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/application.rb:521:in `run_tasks_blocks'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/engine.rb:464:in `load_tasks'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/railtie.rb:207:in `public_send'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/railties-6.1.3.1/lib/rails/railtie.rb:207:in `method_missing'
    /usr/home/myuser/domains/mydomain.tld/public_ruby/Rakefile:6:in `<top (required)>'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/rake-13.0.3/lib/rake/rake_module.rb:29:in `load'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/rake-13.0.3/lib/rake/rake_module.rb:29:in `load_rakefile'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/rake-13.0.3/lib/rake/application.rb:703:in `raw_load_rakefile'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/rake-13.0.3/lib/rake/application.rb:104:in `block in load_rakefile'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/rake-13.0.3/lib/rake/application.rb:103:in `load_rakefile'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/rake-13.0.3/lib/rake/application.rb:82:in `block in run'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/rake-13.0.3/lib/rake/application.rb:80:in `run'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/gems/rake-13.0.3/exe/rake:27:in `<top (required)>'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/bin/rake:23:in `load'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/bin/rake:23:in `<main>'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/bin/ruby_executable_hooks:22:in `eval'
    /usr/home/myuser/.rvm/gems/ruby-2.7.3/bin/ruby_executable_hooks:22:in `<main>'
    

    And that's despite from having environment variables (.env) set properly, including PostgreSQL and Redis.

    I'm not really familiar with Ruby as whole so if anyone could point me in the right direction to solve the issue I would greatly appreciate this. Thanks.

    BTW: I also tried Ruby 2.6 which was suggested in the docs.

    opened by sevospl 0
  • Support rel-payment data within atom feeds

    Support rel-payment data within atom feeds

    https://indieweb.org/payment#rel-payment_examples

    Feedbin would store payment information for the authors of feeds.

    On the user interface, users would then be able to directly tip those authors. Would probably manifest itself as a $ button.

    opened by t-900-a 0
  • Read Later: Don't automatically mark as read

    Read Later: Don't automatically mark as read

    I've been thinking about using the read later feature but i was quickly put off by starting to read an article, then leaving the app. When i come back the article is marked as read. Its unlikely 'long reads' will be read in one sitting.

    opened by pamphleteer-design 1
  • Feed Not Pulling in Most Recent Article

    Feed Not Pulling in Most Recent Article

    Hi,

    The following feed seems to be missing the most recent entry in my feedin.com account: https://blog.eventide-project.org/feed.xml

    I checked on the W3C validator and the only minor issues are with the role attribute in the html content, but is still marked as valid.

    Link to gist: https://gist.github.com/b7298d666b91475db6219ed0ce39ace4

    Thanks!

    opened by destructobeam 4
  • Bump webmock from 3.8.0 to 3.12.2

    Bump webmock from 3.8.0 to 3.12.2

    Bumps webmock from 3.8.0 to 3.12.2.

    Changelog

    Sourced from webmock's changelog.

    3.12.2

    • Fixed em-http-request adapter to avoid calling middleware twice.

      Thanks to Alex Vondrak

    3.12.1

    • Fixed handling of URIs with IPv6 addresses with square brackets when in Net::HTTP adapter.

      Thanks to Johanna Hartmann

    3.12.0

    • Added support for handling custom JSON and XML content types e.g. 'application/vnd.api+json'

    3.11.3

    3.11.2

    3.11.1

    • Compatibility with async-http 0.54+

      Thanks to Jun Jiang

    3.11.0

    • Added support for features in http.rb adapter.

      Thanks to Carl (ce07c3)

    3.10.0

    • Added option to global stubs to have lower priority than local stubs.

      WebMock.globally_stub_request(:after_local_stubs) do
        { body: "global stub body" }
      end
      

      stub_request(:get, "www.example.com").to_return(body: 'non-global stub body')

    ... (truncated)

    Commits
    • 4d37538 Version 3.11.2
    • 6967c20 Merge branch 'ajvondt push origin master
    • 2b87ab3 Merge branch 'master' of github.com:ajvondrak/webmock into ajvondrak-master
    • 7437229 Removed trailing space.
    • d06f87f HTTP/2 doesn’t have dot in version number.
    • 443a4c7 Avoid redundantly calling em-http-request middleware
    • 6ff8c0a Added httpx to the list of supported http libs.
    • 06c3179 Version 3.12.1
    • b4c95c2 Revert "Add specs"
    • 79e60c9 Merge pull request #933 from JohannaHartmann/jh/fix-issue-806
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump stripe from 4.24.0 to 5.30.0

    Bump stripe from 4.24.0 to 5.30.0

    Bumps stripe from 4.24.0 to 5.30.0.

    Release notes

    Sourced from stripe's releases.

    v5.30.0

    • #965 Add support for the Billing Portal Configuration API

    See the changelog for more details.

    v5.29.1

    • #964 Fix return value of Customer#delete_discount

    See the changelog for more details.

    v5.29.0

    • #952 Allow client_id configuration on instance config

    See the changelog for more details.

    v5.28.0

    • #950 Add configuration option for write_timeout for connections on Ruby 2.6+

    See the changelog for more details.

    v5.27.0

    • #951 Add support for the Payout Reverse API

    See the changelog for more details.

    v5.26.0

    • #949 Add support for the SetupAttempt resource and List API

    See the changelog for more details.

    v5.25.0

    • #944 Add support for the Issuing Dispute Submit API

    See the changelog for more details.

    v5.24.0

    • #939 Extract configurations into separate object
    • #940 Fix typo in documentation of stripe_object.rb

    See the changelog for more details.

    v5.23.1

    • #936 Rename API resource's request method

    See the changelog for more details.

    v5.23.0

    • #937 Add support for the PromotionCode resource and APIs

    See the changelog for more details.

    ... (truncated)

    Changelog

    Sourced from stripe's changelog.

    5.30.0 - 2021-02-22

    • #965 Add support for the Billing Portal Configuration API

    5.29.1 - 2021-02-09

    • #964 Fix return value of Customer#delete_discount

    5.29.0 - 2021-01-05

    • #952 Allow client_id configuration on instance config

    5.28.0 - 2020-10-14

    • #950 Add configuration option for write_timeout for connections on Ruby 2.6+

    5.27.0 - 2020-10-14

    • #951 Add support for the Payout Reverse API

    5.26.0 - 2020-09-29

    • #949 Add support for the SetupAttempt resource and List API

    5.25.0 - 2020-09-02

    • #944 Add support for the Issuing Dispute Submit API

    5.24.0 - 2020-08-26

    • #939 Extract configurations into separate object
    • #940 Fix typo in documentation of stripe_object.rb

    5.23.1 - 2020-08-05

    • #936 Rename API resource's request method

    5.23.0 - 2020-08-05

    • #937 Add support for the PromotionCode resource and APIs

    5.22.0 - 2020-05-11

    • #918 Add support for the LineItem resource and APIs

    5.21.0 - 2020-04-29

    • #917 Add support for the Price resource and APIs

    5.20.0 - 2020-04-27

    • #916 Add new .generate_header method for webhooks

    5.19.0 - 2020-04-24

    • #915 Expose Stripe::Webhook.compute_signature publicly

    5.18.0 - 2020-04-22

    • #911 Add support for BillingPortal namespace and Session resource and APIs

    5.17.0 - 2020-02-26

    • #907 Add StripeError#idempotent_replayed?

    5.16.0 - 2020-02-26

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump rails from 6.0.3.4 to 6.1.2.1

    Bump rails from 6.0.3.4 to 6.1.2.1

    Bumps rails from 6.0.3.4 to 6.1.2.1.

    Release notes

    Sourced from rails's releases.

    6.1.2.1

    Active Support

    • No changes.

    Active Model

    • No changes.

    Active Record

    • Fix possible DoS vector in PostgreSQL money type

      Carefully crafted input can cause a DoS via the regular expressions used for validating the money format in the PostgreSQL adapter. This patch fixes the regexp.

      Thanks to @dee-see from Hackerone for this patch!

      [CVE-2021-22880]

      Aaron Patterson

    Action View

    • No changes.

    Action Pack

    • Prevent open redirect when allowed host starts with a dot

      [CVE-2021-22881]

      Thanks to @tktech (https://hackerone.com/tktech) for reporting this issue and the patch!

      Aaron Patterson

    Active Job

    ... (truncated)

    Commits
    • 130c128 Preparing for 6.1.2.1 release
    • b5de7b3 Prevent open redirect when allowed host starts with a dot
    • 536503d Fix possible DoS vector in PostgreSQL money type
    • bf8c59c Preparing for 6.1.2 release
    • ca798c0 Merge pull request #41381 from movermeyer/allow_for_nil_addresses_from_dalli_...
    • c72e5cc Also don't run guides tests in the benchmark file
    • 024522a Fix syntax errors
    • b49d55b Don't test the bug report template for main in old Rubies
    • 97a0a94 Fix warning with Ruby 2.7 on Time.at with keyword arguments
    • 5400804 Merge pull request #41376 from fatkodima/memcached-normalize_key-nil
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    opened by dependabot-preview[bot] 0
  • Sync podcast played status and played positions

    Sync podcast played status and played positions

    It would be great to integrate in the API the ability of syncing audio played positions and timing, while also implementing it in the app.

    It would be great if I could start listening to a podcast from the web interface and seamlessly continue listening where I left off from mobile (both the responsive web app or a mobile app which supports Feedbin)

    opened by xplosionmind 0
  • recenter current line per shortcut

    recenter current line per shortcut

    Hi I love the keyboard navigation in feedbin.

    One thing that I really miss is to move the current cursor position to center/top/bottom by repeatedly pressing a shortcut.

    • I think the corresponding vim shortcut is zz.

    • Here is the function definition out of emacs, where this function is also implemented:

    C-l runs the command recenter-top-bottom (found in global-map), which is an interactive compiled Lisp function in ‘window.el’.

    It is bound to C-l.

    (recenter-top-bottom &optional ARG)

    Move current buffer line to the specified window line. With no prefix argument, successive calls place point according to the cycling order defined by ‘recenter-positions’.

    A prefix argument is handled like ‘recenter’: With numeric prefix ARG, move current line to window-line ARG. With plain ‘C-u’, move current line to window center.

    opened by kahironimashte 0
  • Typeface selector

    Typeface selector

    I saw that Feedbin use these font-family to set the typeface of the text: https://github.com/feedbin/feedbin/blob/cdb36bdad4ae8be59a822f4c2bab40b24112926d/app/assets/stylesheets/theme.scss#L130-L157

    But when I set Mercury for example the text is set to font-family: "Mercury SSm A", "Mercury SSm B", -apple-system, system-ui, "Helvetica Neue", Helvetica, Arial, sans-serif; instead of font-family: "Serif 2";

    The same happens to all other typefaces.

    opened by karlprieb 0
Owner
Feedbin, Inc.
A nice place to read on the web.
Feedbin, Inc.
open-source tool for Windows, Mac OS and UNIX for getting news from RSS feeds in email

Getting Started With rss2email We highly recommend that you subscribe to the rss2email project feed so you can keep up to date with the latest version

W. Trevor King 262 May 24, 2021
FeedHQ is a web-based feed reader

FeedHQ FeedHQ is a simple, lightweight web-based feed reader. Main features: User-facing features RSS and ATOM support Grouping by categories Awesome

FeedHQ 531 Jun 3, 2021
Leed (contraction de Light Feed) est un agrégateur RSS libre et minimaliste qui permet la consultation de flux RSS de manière rapide et non intrusive.

Leed Français - English - Español Leed (contraction de Light Feed) est un agrégateur RSS/ATOM minimaliste qui permet la consultation de flux RSS de ma

Leed RSS 164 May 22, 2021
An alternative to RSS2Email written in golang with many filters

goeland A RSS to email, ala rss2email written in Go. About Goeland excels at creating beautiful emails from RSS, tailored for daily or weekly digest.

slurdge 27 Jun 4, 2021
Minimalistic podcast feed generator script for audiobooks, for use with Pocket Casts, Overcast and similar apps.

Screaming Liquid Tiger Women Empowerment in Zanzibar Send a little karma down the way and support women empowerment in Zanzibar by helping to fund the

Marcel Bischoff 157 Mar 26, 2021
A simple, fast and secure PHP/AngularJS based feed and mail reader, password and bookmark manager.

CacoCloud A simple, fast and secure PHP/AngularJS based single user feed and mail reader, password and bookmark manager. CacoCloud is divided into a R

Guido Krömer 105 Sep 21, 2020
A self-hosted, anti-social RSS reader.

Stringer A self-hosted, anti-social RSS reader. Stringer has no external dependencies, no social recommendations/sharing, and no fancy machine learnin

matt swanson 3.3k Jun 6, 2021
🕸 Builds and serves RSS feeds via HTTP. Generate your own feeds or start instantly with the included configs.

html2rss-web This is a small web application to deliver RSS feeds built by html2rss via HTTP. Features: serves your own feeds: set up your feed config

Gil Desmarais 25 Jun 1, 2021
The Temboz RSS/Atom feed reader

The Temboz feed reader Introduction Temboz is a web-based RSS/Atom aggregator and feed reader that focuses on saving you time by letting you filter ou

Fazal Majid 53 May 22, 2021
NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.

NewsBlur NewsBlur is a personal news reader bringing people together to talk about the world. A new sound of an old instrument. www.newsblur.com. Crea

Samuel Clay 5.7k Jun 9, 2021
Google Reader inspired self-hosted RSS reader written in VueJS with an Express NodeJS backend. RSSMonster is compatible with the Fever API.

RSSMonster Copyright (c) 2021 Piethein Strengholt, [email protected] RSSMonster is an easy to use web-based RSS aggregator, created as an

Piethein Strengholt 330 May 27, 2021
multipurpose rss reader, live stream, mashup, aggregation web application

selfoss 2.19-SNAPSHOT selfoss is a multipurpose RSS reader and feed aggregation web application. It allows you to easily follow updates from different

null 2k Jun 5, 2021
The super-fast-minimalist-nosql-opensource Google Reader revival.

NUNUX Reader The super-fast-minimalist-nosql-opensource Google Reader revival. ⚠️ ⚠️ ⚠️ This project is no longer maintained ⚠️ ⚠️ ⚠️ Please consider

Nicolas Carlier 65 Jan 5, 2021
A Python feed reader library.

reader is a Python feed reader library. It aims to allow writing feed reader applications without any business code, and without enforcing a dependenc

null 95 Jun 6, 2021