Fever Plugin Broken on 14 Dec 2017?

Thanks fox. Found it.

For others, add this new function, properly indented, to your tt-rss clone in ./plugins/fever/fever_api.php. I added it at around line 22 before the comment for ‘function wrap’

function __construct() {
    $this->dbh = Db::get();
}

someone should probably push this to upstream

I’m working on some patches now… But upstream hasn’t been touched since Nov. 2015.

Updated 2017-12-16

Download Fever API Plugin

This contains as many patches as I could remember. Pull request was made upstream but don’t hold your breath as there’s been no activity in years there.

Report errors in this thread and I’ll see what I can do.

e: Original author has posted an updated link to the maintained repository.

Also created a quick fix.

Now every database connect creates this annoying notices in ngxin error log:

2017/12/16 22:56:26 [error] 8648#8648: *74597 FastCGI sent in stderr: “PHP message: PHP Notice: Legacy connect requested to mysql in /var/www/xxx.xxx.xxx/htdocs/classes/db.php on line 22” while reading response header from upstream, client: 77.188.117.74, server: xxx.xxx.xxx, request: “POST /plugins/fever/?api&links&page=1 HTTP/1.1”, upstream: “fastcgi://unix:/run/php/php7.0-fpm_xxx.xxx.xxx.sock:”, host: “xxx.xxx.xxx”

You might want to read the PDO thread.

I’m not going to rewrite the queries at this point; I’m only interested in getting it working for others.

This kind person has actually changed the code to use PDO which is a better solution. GitHub - phiali/tinytinyrss-fever-plugin: TinyTiny RSS Fever API Plugin , also if you add self:: to line 572 that solves the PHP7.2 warning.

if (self::ADD_ATTACHED_FILES){

My fork is also refactored to use PDO and prepared SQL statements which improves security :slight_smile:
https://github.com/wodev/tinytinyrss-fever-plugin

Great work - just checked it, but i have tons of the same log messages:

[17/Dec/2017:18:55:38 +0100] “POST /plugins/fever/?api&items&since_id=483011 HTTP/1.1” 200 719739 “-” “Reeder/3.1.21 CFNetwork/893.14.2 Darwin/17.3.0”

Reeder remains in “Syncing…” status

Thanks for the feedback.
I committed a FIX for the IOS Reeder app.

Anyone else still seeing issues with Reeder? Thanks @wodev this looks great, but I’m seeing Reeder taking ages to sync and looking at my webserver logs it’s doing a huge amount of requests. It POSTs to the API around 55 times with items&since_id= ranging from 142248 all the way down to 82727 knocking off a few hundred at a time. The original fever plugin didn’t do this. It synced straight away with a single request.

EDIT: Actually ignore this. I deleted the account in Reeder and recreated it and that seems to have solved the problem. I guess Reeder had got itself into a tiz because the fix wasn’t there to begin with and now I’ve cleared the cache.

@wodev If you also add self:: in front of the constant on line 600 it will solve an error that you get in PHP 7.2 as well. And then you can become the “one true version” :slight_smile:

The issue with the huge ammounts of request was an an error for the since_id request, which is fixed now.
Also fixed is the php 7.2 error for missing self

Changes are committed to github.

Thank you! Just did a git pull. Hopefully that sorts it out. I was wrong about recreating the account fixing it. Noticed it went wrong again shortly afterwards. But hopefully it’s fixed now. I see you’ve edited a where clause.

Should the Fever Plugin be listed here: https://git.tt-rss.org/git/tt-rss/wiki/Plugins Its suprisingly missing.

If so, what link should be listed? Looks like wodev’s is the latest?

All,

As the original author of this plugin, the Github project is now located here: GitHub - DigitalDJ/tinytinyrss-fever-plugin: Tiny Tiny RSS Fever API Plugin.

I posted it on the original forums some time ago and didn’t realise people actually picked it up and made changes. I’ve gone over forks on Github and pulled changes back into my own version. I recently fixed up the PDO issue by rewriting the queries.

Please submit any issues and pull requests there and use my repository as the official upstream repo. Cheers.

thanks for updating, I just updated my install and everything seems to be working fine with Reeder on iO and OSX.

added the link to your repo to Plugins wiki page

Thanks @Grant_Pannell we had sent various pull requests to your original repo ages ago which all went unanswered so we came to the conclusion that it had been abandoned. Good to see you’ve given it an update! There’s still many users of it. Though I am wondering about its future now that Fever itself has been discontinued. We may find fever support being removed from various apps now.

EDIT: Although saying this, I get a 500 server error from your new version so I’ve reverted to the one from @wodev again which works a treat. Strangely there’s no logs showing why I’m getting 500 from php-fpm. I’ll have to do some investigation another day.

@xtaz There was no original Github repo, so I’m not sure what repository you’re referring to. I originally posted this as a zip file several years ago on the tt-rss forums, and there have been various forks since. The original forums stopped emailing me after a couple of replies, so I never saw the thread reach several pages of replies.

Currently using what ever I have commited into Git with Reeder for iOS. So if you can narrow down and report which client is working, I’m sure there’s a simple fix. Seems to work OK with php 7.1.

OK. This is odd. There is a setting in php.ini called display_errors. If it’s set to Off then I get a 500 server error from php-fpm with no log entries at all to say that something has gone wrong. Usually errors still log to the error log with this set to Off. If I change that to On then the fever plugin works fine and returns 200 OK. What’s going on there then? If I use the version from @wodev it works with display_errors set to Off.

As for the “original repo”. Sorry I now realise you’re not the original repo. I was referring to GitHub - dasmurphy/tinytinyrss-fever-plugin: TinyTiny RSS Fever API Plugin

EDIT OK. Noticed that actually even though it’s returning 200 OK now it’s still not syncing. Thought I would try and delete the account and create it again (in the Reeder app). It now refuses to login saying login failed, check password etc. Again if I put the other version back then it logs in straight away. Something really screwed up going on with this version.

EDIT2 Have tried to do some more debugging. Have tcpdump’d the traffic between nginx and php-fpm. Can see Reeder posting to the API, it has the correct password hash in it which matches the one in the database. But it just gets back a single HTTP header which is Content-type: text/html. There is no other content at all returned from the API. If I switch back to @wodev then I see application/json returned.