Giter Club home page Giter Club logo

extensions's Introduction

FreshRSS extensions

This repository contains all the official FreshRSS extensions.

To install an extension, download the extension archive first and extract it on your PC. Then, upload the specific extension(s) you want on your server. Extensions must be in the ./extensions directory of your FreshRSS installation.

Commands for developers

# Test this repository and its extensions
make test-all

# Test compatibility between `../FreshRSS/` core and all known extensions from `./repositories.json`
./generate.php
composer run-script phpstan-third-party

Third-party extensions

There are some FreshRSS extensions out there, developed by community members:

  • Youtube shows YouTube videos inline in the feed
  • Keep Folder State: Stores the state of the folders locally and expand them automatically if necessary.
  • Fixed Nav Menu: (desktop) Sets the position of the navigation menu to fixed when scrolling down.
  • Mobile Scroll Menu: (mobile) Automatically hides the header menu when scrolling down and shows it when scrolling up.
  • Touch Control: (mobile) Add touch gestures to FreshRSS.
  • Date Format: Change how dates are displayed in the interface
  • Latex Support: Add support for LaTeX notation rendering
  • Reddit Image: Replace link to Reddit topic with resource link
  • Reading Time: Add a reading time estimation next to each article.
  • Invidious: Displays videos from YouTube feeds inline and replaces every source by the Invidious instance of your choice for an enhanced privacy (no tracking or limitation)
  • Black List: Blacklist to block feeds for users
  • Copy 2 Clipboard: Add a button in the navigation bar to copy the destination links of all visible entries into clipboard
  • Feed Title Builder: Build your own feed title based on url, the original feed title and the date the feed was added
  • FilterTitle: Filter out feed entries by keywords parsed by the feed entry title
  • RemoveEmojis: Remove emojis in the title of newly added feed entries
  • SendToMyJD2: Send links to a jDownloader2 instance with the myJDownloader2 API
  • YouTube Channel 2 RSSFeed: You can add a YouTube Channel URL and will get it as RSSFeed. Additional you can detect YouTube shorts.
  • Clickable Links: Replaces non-clickable plain text URLs found in articles with clickable HTML links
  • Explosm: Directly displays the Explosm comic in FreshRSS
  • Pocket Button: Add articles to Pocket with one simple button click or a keyboard shortcut.
  • Image Cache: Cache feed images on your own facility or Cloudflare cache.
  • RedditSub: A FreshRSS Extension to Show a Reddit Subreddit as Part of the Article Title.
  • AutoTTL: A FreshRSS extension for automatic feed refresh TTL based on the average frequency of entries.
  • Comics In Feed: Display comicss directly in FreshRSS (currently for The awkward yeti and Butter Safe).
  • Colorful List: Generate light different background color for article list rows (relying on the feed name)
  • TranslateTitlesCN: Translate article titles of the specified feed into Chinese, using DeepLX or Google Translate.
  • Mark Previous as Read: Adds a button in the footer of each entry. Clicking this button will mark all previous entries belonging to the current feed, as read.

extensions's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

extensions's Issues

xExtension-ReadingTime displays reading time multiple times

I installed this extension by downloading the extension archive, extracting it, and moving the xExtension-ReadingTime folder to ./extensions as instructed, and then I enabled it via the extensions configuration menu. I tried disabling and then re-enabling it, disabling the only other extension that I installed alongside it (xExtension-TitleWrap), and I tried using different themes but the problem persists no matter what.

Additional reading times will continue getting tacked on pretty much every time I expand and them collapse stories as I read my feeds get appended as I scroll down to load more articles.

screenshot

Edited for initially incorrectly reporting observed behavior

Adding extensions to FreshRSS in a Docker container?

This is probably a stupid question, but this is my first time playing with Docker and I can't get this to work. I installed FreshRSS into a Docker container on a Raspberry Pi, and it all works fine. Then I follow the Docker guide to access the container:

$ docker run -it freshrss/freshrss sh

Which gives me a shell in /var/www/FreshRSS/ in the container.

I add the extension to the /extensions directory:

/var/www/FreshRSS # cd extensions/
/var/www/FreshRSS/extensions # wget https://github.com/kevinpapst/freshrss-youtube/archive/master.zip
Connecting to github.com (192.30.255.113:443)
Connecting to codeload.github.com (192.30.255.120:443)
master.zip           100% |*****************************************************************************************| 18800   0:00:00 ETA
/var/www/FreshRSS/extensions # unzip master.zip
Archive:  master.zip
   creating: freshrss-youtube-master/
  inflating: freshrss-youtube-master/.gitignore
  inflating: freshrss-youtube-master/README.md
   creating: freshrss-youtube-master/xExtension-YouTube/
  inflating: freshrss-youtube-master/xExtension-YouTube/LICENSE
  inflating: freshrss-youtube-master/xExtension-YouTube/configure.phtml
  inflating: freshrss-youtube-master/xExtension-YouTube/extension.php
   creating: freshrss-youtube-master/xExtension-YouTube/i18n/
   creating: freshrss-youtube-master/xExtension-YouTube/i18n/de/
  inflating: freshrss-youtube-master/xExtension-YouTube/i18n/de/ext.php
   creating: freshrss-youtube-master/xExtension-YouTube/i18n/en/
  inflating: freshrss-youtube-master/xExtension-YouTube/i18n/en/ext.php
   creating: freshrss-youtube-master/xExtension-YouTube/i18n/fr/
  inflating: freshrss-youtube-master/xExtension-YouTube/i18n/fr/ext.php
  inflating: freshrss-youtube-master/xExtension-YouTube/metadata.json
/var/www/FreshRSS/extensions # mv freshrss-youtube-master/xExtension-YouTube .
/var/www/FreshRSS/extensions # rm -rf freshrss-youtube-master/
/var/www/FreshRSS/extensions # ls
README.md           Tumblr-GDPR         master.zip          xExtension-YouTube

Then visit http://192.168.x.x:8080/i/?c=extension and the new extension doesn't show up?

I tried docker restart freshrss (aka turning it off and on again ;)) but still no luck.

Thanks in advance.

Image proxy guide

Hello
I would like to setup an image proxy cache that could be user by freshrss image proxy extension, but I don't know how to do it. Is it possible to have a guide that explain what to do ?
thanks in advance.

ImageProxy cannot handle html encode correctly.

When adding origin url with special characters like "&", ImageProxy will parse it into & , which is not as expected.

It's can be reproduced setting proxy url to https://example.com/proxy?token=abcdef&url=

CustomCSS - need to add "!important" to CSS elements

Hi,

I'm using the CustomCSS extension and I need to add "!important" at the end of each elements in order to work. Otherwise, they are overridden.

Is that the expected behavior? If yes, I suggest we add this important precision to the README.

Thanks!

Add Search Bar

I realize this may be outside the scope of FreshRSS, but this app is essentially what I want for my homepage with the exception of a dedicated search bar. Would it be difficult to have an option to add/remove a search bar the top of the page? While several options could be offered I would like a custom link to be available too, since I use Whoople on my own server.

TTRSS extension

I just moved from TTRSS to FreshRSS. I'd love to continue using the android app, as it has more functionality than some others, yet I can't get the api to be visible. This is my api screen:

image

and the extension is enabled...

image

but acsessing it, even directly, fails.

TTRSS API: getUnread() not implemented

Hello,

TTRSS-API seems not to be working. In the app "NewsJet" I get:

Expected a boolean but was STRING at line 1 column 82 path $.content[0].marked

and in official TTRSS app I can see it synces the list of feeds but not the contents of them (it says "error, check journal" but don't know where it is located).

In FreshRSS log I have:

[Mon, 08 May 2017 10:29:13 +0000] [warning] --- TTRSS API: getUnread() not implemented
[Mon, 08 May 2017 10:29:38 +0000] [warning] --- TTRSS API: getUnread() not implemented```

Greader clone API is working OK.

Reading time extension error

Reading time extension is not working for me.
In firefox console I get the error message Uncaught TypeError: document.querySelector(...).childNodes[0].childNodes[2] is undefined.
Maybe something in FreshRSS layout changed?
Anyone else have this problem?
When I switch to mobile view it's fine.

[Question]: Do we need to install an extension by copy/paste a file ?

Hello,

Do I need to do this in order to use my extension ?

    public function install() {
        $filename = 'restApi.php';
        $file_source = join_path($this->getPath(), $filename);
        $path_destination = join_path(PUBLIC_PATH, 'api');
        $file_destination = join_path($path_destination, $filename);

        if (!is_writable($path_destination)) {
            return 'server cannot write in ' . $path_destination;
        }

        if (file_exists($file_destination)) {
            if (!unlink($file_destination)) {
                return 'API file seems already existing but cannot be removed';
            }
        }

        if (!file_exists($file_source)) {
            return 'API file seems not existing in this extension. Try to download it again.';
        }

        if (!copy($file_source, $file_destination)) {
            return 'the API file has failed during installation.';
        }

        return true;
    }

Custom CSS in Docker

How do I customize the style of a feed category so that the feeds don't show cover art and have a larger youtube player?
freshrss runs in docker

Email Feed

i am just wondering if it is possible to get an email feed like when you sign up for a mailing list you get it in your dashboard,
Like what feedbin is doing they provide you with an email address when you sign up to mailing list you but the feedbin email and you get the mail in your feed.

Searches extension?

Hi everybody, sorry my english: It would be good to have on the left sidebar the list of personal search keys and, after the feed update, Freshrss do a check of all the search keys. Every search key, listed in the sidebar and easly viewable, has the number of new feed that contains the relative key. Don't know if my propose is comprehensible, hope so!

Manage applied custom styles in CustomCSS

When i apply a custom CSS using CustomCSS, they disappear and if I want to change or remove the custom CSS, I don't know how to. It will be great if one can see the CSS they have applied and change it.

AutoRefresh will not show up in Extensions

Sorry to post like a noob but I have tried everything to get the AutoRefresh extension to show up. I downloaded the zip. Unarachived. Put the folder in /usr/share/FreshRSS/extensions folder. Chown'd it to www-data recursively to get the permissions right.

It still does not show up in the list of extensions I can manage. What am I doing wrong.

ubuntu 18.04 server

image

Keep Foldder State

Hello,
The extension seems doesn't work anymore. After a refresh arrow is displayed but not feed inside :

image

[Image Proxy] "https://" should be replaced by "ssl:"

The proxy configured by default (images.weserv) cannot handle https:// scheme (according to weserv/images#33).

You need to replace https:// by ssl: like this:

Maybe it could be implemented in the fonction line 24 in xExtension-ImageProxy/extension.php?

Share By Email Extension > root@localhost

Hello
it would be interesting to be able to replace the email sent "root@localhost" with an email of our choice.
Kind regards

Bonjour
il serait intéressant de pouvoir remplacer le mail s’envoie "root@localhost" par un mail de notre choix.
Cordialement

[CustomCSS] Error 403

Tout d'abord, merci pour cette extension.

Lorsque le bouton "Valider" est cliqué, la page « /i/?c=error » s'affiche, l'erreur ci-dessous apparaît et la session est déconnectée. Une fois reconnecté, les modifications apportées au CSS n'ont pas été sauvegardées.

Error 403 - Forbidden
You don’t have permission to access this page [HTTP_REFERER=]

La configuration NGINX recommandée dans votre documentation d'installation est en place.

Le fichier access.log nginx indique:

[12/Oct/2017:19:16:38 -0400] "POST /i/?c=extension&a=configure&e=Custom%2BCSS HTTP/1.1" 302 5 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0"
[12/Oct/2017:19:16:38 -0400] "GET /i/?c=error HTTP/1.1" 403 4000 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0"

Prevent proxying of icons [xExtension-ImageProxy]

Hi, as far as I understand proxying of favicons is unnecessary (even when using ssl) - they are "proxied" by f.php. It might be good idea to hardcode this exception as the load times (without local cache) can take a long time reverse proxy (ie. 30s until fail for a png icon file on each load).

Add ability to add notes and keyword tags

First, I would like to say thank you for this script!
I needed a feed aggregator to combine my news sources and store the articles so I could later find them via a quick search. This is much easier than trying to write my own. However the other feature I need is the ability to add notes to an article as well as assign keywords for topical reference. Some of the feeds I want to use will contain media enclosures (podcasts) and very little detail in the descriptions, so being able to add this data manually will make it easier to find a particular episode later on.

A couple of other requests would be the ability to selectively delete episodes from a feed that I do not want and the option to disable deleting old feed items. A couple of ways to help avoid overpopulating the database might be:

  • An option to set a feed limit and then produce some sort of warning when that limit is close to being reached. If the limit is reached, no further feed items will be downloaded until that number is set higher or the number of stored feed items for that feed is reduced.
  • Ability to archive old posts, but keep the notes/keywords and a reference to the archive file so it can be restored if needed. Archiving could even me an automated function based on reaching the max items number or using an "older than" option.

Anyways, thanks again.

(Windows)(Docker) Please. Explain me from A to Z as if I were a retard.

Explain me from A to Z as if I were a retard.
After installing FreshRSS with docker pull freshrss/freshrss and running it . I have been trying for days to get the extensions to show up. For me the Blacklist is too important a feature not to use .

I don't see how to put the extensions folder in the vhdx virtual machine and I don't understand the examples given on the sites I visited.

Question on Extensions

Sorry about submitting a new issue for this question but I could not find any information in the user docs. I have installed the YouTube extension per instructions here, but the Extensions page in the settings still show There are not installed extensions. See below for the permissions set for the YouTube extension folder that resides in /var/www/freshrss/extensions/`

image

image

Make a reference to greader "redate" extension ?

Hi,

Following this ticket FreshRSS/FreshRSS#2759 and this PR FreshRSS/FreshRSS#2773, I created this extension: https://github.com/javerous/freshrss-greader-redate

At first, I wanted to keep it private, but I thought it can perhaps be used by someone else. Do you see any interest to make a reference to it on the community page (via extensions.json file) ?

I'm not sure it has the quality grade expected to be on this page, and I'm not sure it worth putting it there at all… Then feel free to reject ;)

As a very short remember, the idea is to change fetching date by publishing date in greader API for clients like Reeder or EasyRSS which use only crawling date. It requires master / 1.16 version of FreshRSS to work.

[EDIT] The point is it's mainly a workaround extension. It's possible that those clients fix how they are using dates from greader at some point, making this extension de-facto obsolete.

Create a boilerplate - documentation

Hello,

We need a boilerplate in order to create a new extension, or at least some documentation:

  • List of hooks/actions
  • How to interact with the core
  • How to create a simple ext
  • etc.

Thanks :)

Extensions from Portainer not Appearing

I installed extensions into /portainer/Files/AppData/Config/FreshRSS/www/freshrss/extensions

Inside of the folder is the "README.md" file, stating the extension should be placed into this file.

However, the extensions are not appearing under the extensions tab on my FreshRSS page.

Why can I do about this?

[ReadingTime] YouTube Support

ReadingTime should either report the video length for YouTube video, or if that's too complicated, just ignore them altogether. "<1m" is not very helpful.

Place for listing FreshRSS extensions

Hi there,
while searching for FreshRSS extensions I stumbled upon this repository, but couldn't find any other resource.
I would suggest to have a place where users can link their own extensions.
This is not only a shameless try to drop a link to my freshrss youtube extension ;-) but I believe that the FreshRSS community would benefit from it.

The easiest way for the start could be to include a new section in this repositories README with links to "third party extensions". I could sent in a PR if you like the idea.

Any other suggestions?

If there is an error in the extension.php for one ext there are no extensions available

Hello,

I'm trying to write a REST API for Fresh RSS.
There is a bug when you try to install a new extension, There was an I before Extension in the ClassName PHP, then there were no extensions available in Fresh.

class FreshRSS_REST_IExtension extends Minz_Extension {

Log:

2015-01-25 19:46:46
`FreshRSS_RESTExtension` cannot be found in `/home/dhoko/dev/rss/FreshRSS-beta/extensions/xExtension-FreshRSS_REST/extension.php`

Share By Email Extension: Prefill recipient's address

It'd be nice to be able to provide an optional default recipient address for the Share By Email extension.

Currently the URLs are formed like this:

mailto:?subject=foobar&body=https://blog.example.org/post-1

With a default recipient address (that has to be entered as option for Share By Email), the URL would look like:

mailto:[email protected]?subject=foobar&body=https://blog.example.org/post-1

CustomCSS not working with FreshRSS 1.4.0

Hi,
I installed the custom CSS extension on FreshRSS 1.4.0 and I try to apply the rule below. When I press the Validate button, the field become blank and the rule doesn't work.

.aside_feed {
width: 200px;
}

Thank you.

Multiline titles - working CSS code included

Hi, i only want to share working CSS code from @Frenzie (issue #2344 in main FreshRSS ), thanks to i can read whole (long) titles in multiple lines right from RSS feeds on desktop and mobile. So here is the CSS code:

.horizontal-list{display:flex;flex-wrap:wrap}
.flux .item > a {white-space:normal}
.flux:not(.current):hover .item.title {position:relative;max-width:inherit}
.item:last-child{margin-left:auto}

How to add timestamp in mobile view?

I'im currently using TitleWrap and I wouldn't mind if news titles have to take more lines to fit the date and time the article was published in mobile view. I haven't coded a lot in html/css so I don't know where to look exactly to add such feature to mobile view. If someone can pinpoint me in the right direction, which file should I modify, I'll google my way from there, so I'd be more than grateful :)

How to run the js code in the phtml

Goal

Configuration UI

image

Issue

I would like to add input event to the input element, but it didn't work and didn't log any thing. The code in the file configure.phtml:

<script defer="defer" async="async">
	'use strict'
	console.log('load the openai extension configure page');

	(function() {
		console.log('add output event');
		function _addOutputEvent(element) {
			console.log('element:', element);
			if (element === null) return;

			element.addEventListener('input', function() {
				this.nextElementSibling.value = this.value;
				console.log(this.id, this.value);
			});
		}
		_addOutputEvent(document.getElementById('max_tokens'));
		_addOutputEvent(document.getElementById('temperature'));
	})();
</script>

The output of console:
image

Appreciate for any help.

style is not active

I have installed CustomCSS extension and added

.tree-folder-items {background: #F7F7F7;}
.aside {background: #F7F7F7;}

But the style seems not to overwrite the background color of the active theme (Swage). The style information is saved as style.username.css in static on filesystem.

Group by feed when viewing a category

new to freshrss and looks very promising. I have categories and many feed within a category. When I view at the category level the are displayes by date but if the feed is within the category is a discussion the different items can be widely scattered and hard to follow. Is it possible to group by feed and within the feed sort by date (oldest or newest)? If not can this be added?

Thanks

Extension StickyFeed

Hello !

I've found a little bug in the Sticky Feeds extension. When using a web browser to access my FreshRSS installation, I can use Safari or Firefox :

Safari / extension off

In this configuration, the left bar (feeds tree) scrolls out of sight with the content.

Safari.-.extension.OFF.mov

Safari / extension on

Here, the menu stay in place. I can scroll inside, or in the content on the right, independently.

Safari.-.extension.ON.mov

Firefox / extension off

The menu stay in place, I can scroll both part independently.

Firefox.-.extension.OFF.mov

Firefox / extension on

This is quite funny actually : when I scroll down on the content side, the feeds menu goes down out of screen entirely. 😂

Firefox.-.extension.ON.mov

So the 1) the behavior is not consistant between browser and extension status and 2) Firefox is going nuts when it's active.
Any idea ?

🖖

Wallabag button extension

Just something I half-randomly came across that could be added to the JSON.

https://git.n7r.de/nrb/freshrss-wallabag

This FreshRSS adds a button to each article
which adds the respective article to your
Wallabag installation.
FreshRSS already comes with a pretty good integration with Wallabag
through its share feature. The author of this plugin was annoyed by the
fact that the share feature is just a simple link, which means that a
new tab opens when a article is added to Wallabag. This extension uses
the Wallabag API and sends the request from the server side. This means
that your workflow of skipping through articles is not interrupted when
you add an article to Wallabag.
This extension is only compatible with Wallabag v2.

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.