Suzie97 / Communique

Featureful RSS Reader for elementary OS
GNU General Public License v3.0
80 stars 0 forks source link

[SOLVED] TT-RSS doesn't connect. #11

Closed PolGZ closed 2 years ago

PolGZ commented 2 years ago

Describe the bug

Login to Tiny Tiny RSS doesn't seem to work, and doesn't give any error message back.

To Reproduce

  1. Use my (already tested) address to my tt-rss server, user and stored password
  2. Hit login
  3. Nothing happens

Expected behavior

Log in successfully (or at least give an error message explaining why it doesn't work)

Platform Information

Flatpak version 1.1.0


Should any API plugin be enabled at server side to run with communique?

Suzie97 commented 2 years ago

Hey @PolGZ, sorry for the inconvenience. You can follow the instructions here to make it work: https://github.com/Suzie97/Communique/blob/master/data/tt-rss-feedreader-plugin/README.md

I'll try to build this in the app itself and make it work out of the box.

PolGZ commented 2 years ago

Hey @PolGZ, sorry for the inconvenience. You can follow the instructions here to make it work: https://github.com/Suzie97/Communique/blob/master/data/tt-rss-feedreader-plugin/README.md

Hi, thanks for the reply.

I don't know why it didn't say anything when I tried on my laptop, and I actually wondered if it would be something like that, as FeedReader was my go to reader. I then got the error message on my other computer and now I see it here as well.

The thing is, I installed tt-rss now with the "official" docker way (since my raspberry SSD died and I decided it was a good time to migrate to 64bit OS). I actually enabled the api_feedreader on TT-RSS, and it shows as activated on preferences>plugins,

Screenshot

but both feedreader and communique keep saying _"install the apifeedreader plugin on your tt-rss instance". In fact, the reason I found communique was searching for another tt-rss desktop reader that supported tt-rss (and looked nice), since feedreader gave me that error.

Are you actually able to run it with a docker install of tt-rss?

Suzie97 commented 2 years ago

@PolGZ can you mention the feedreader version after which ttrss stopped working for you?

PolGZ commented 2 years ago

@PolGZ can you mention the feedreader version after which ttrss stopped working for you?

I misread your question, @Suzie97. I thought about the tt-rss version. But the FeedReader version I installed back in the day was already the last one (v2.11.0). I started using it a few months after that last release.

I asked in the tt-rss forum (section about plugins) if anybody used the feedreader plugin, but it doesn't seem so. They told me, though, about recent changes that required some plugins to be updated. I don't really understand the scope of those changes, but maybe you can understand it.

Thanks for the attention, man.

Suzie97 commented 2 years ago

@PolGZ can you mention the feedreader version after which ttrss stopped working for you?

I misread your question, @Suzie97. I thought about the tt-rss version. But the FeedReader version I installed back in the day was already the last one (v2.11.0). I started using it a few months after that last release.

I asked in the tt-rss forum (section about plugins) if anybody used the feedreader plugin, but it doesn't seem so. They told me, though, about recent changes that required some plugins to be updated. I don't really understand the scope of those changes, but maybe you can understand it.

Thanks for the attention, man.

Thanks a lot for the info. This might be related as other plugins seem to have broken too. I'll look into this

lihz1990 commented 2 years ago

@PolGZ I just spend some time on the source code of ttrss and Communique. If you change code of api_feedreader plugin in ttrss like below, your feedreader/Communique will work fine, wiith removeLabel function broken.

……
function removeLabel()
{
    $label_id = (int)$_REQUEST["label_id"];
    if($label_id != "")
    {
        return array(API::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));   # <= just add this line
        Labels::remove(Labels::feed_to_label_id($label_id), $_SESSION["uid"]);
        return array(API::STATUS_OK);
    }
    else
    {
        return array(API::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
    }
}

The problem ralated to functions below file Communique/plugins/backend/ttrss/ttrssAPI.vala, function haveAPIplugin file Communique/data/tt-rss-feedreader-plugin/api_feedreader/init.php, function removeLabel

As I don't know how much about php and Vala, I'm not able to completely fix this bug, But glade to provide more details if needed.

Suzie97 commented 2 years ago

@PolGZ I just spend some time on the source code of ttrss and Communique. If you change code of api_feedreader plugin in ttrss like below, your feedreader/Communique will work fine, wiith removeLabel function broken.

……
function removeLabel()
{
  $label_id = (int)$_REQUEST["label_id"];
  if($label_id != "")
  {
      return array(API::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));   # <= just add this line
      Labels::remove(Labels::feed_to_label_id($label_id), $_SESSION["uid"]);
      return array(API::STATUS_OK);
  }
  else
  {
      return array(API::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
  }
}

The problem ralated to functions below file Communique/plugins/backend/ttrss/ttrssAPI.vala, function haveAPIplugin file Communique/data/tt-rss-feedreader-plugin/api_feedreader/init.php, function removeLabel

As I don't know how much about php and Vala, I'm not able to completely fix this bug, But glade to provide more details if needed.

@lihz1990 Thank you so much for looking into the issue. Are there any other issues you have observed after implementing this fix? If things work fine using your fix, we could merge that, as something is better than nothing.

CC @PolGZ , if you manage to test this fix, let me know of the results.

PolGZ commented 2 years ago

@PolGZ I just spend some time on the source code of ttrss and Communique. If you change code of api_feedreader plugin in ttrss like below, your feedreader/Communique will work fine, wiith removeLabel function broken.

……
function removeLabel()
{
  $label_id = (int)$_REQUEST["label_id"];
  if($label_id != "")
  {
      return array(API::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));   # <= just add this line
      Labels::remove(Labels::feed_to_label_id($label_id), $_SESSION["uid"]);
      return array(API::STATUS_OK);
  }
  else
  {
      return array(API::STATUS_ERR, array("error" => 'INCORRECT_USAGE'));
  }
}

The problem ralated to functions below file Communique/plugins/backend/ttrss/ttrssAPI.vala, function haveAPIplugin file Communique/data/tt-rss-feedreader-plugin/api_feedreader/init.php, function removeLabel

As I don't know how much about php and Vala, I'm not able to completely fix this bug, But glade to provide more details if needed.

Thank you so much for your contribution.

CC @PolGZ , if you manage to test this fix, let me know of the results.

I don't have any programming knowledge so I don't really understand how this works, but I'll try in a couple of hours when I get home. I'll update the post.

Thanks, guys!

lihz1990 commented 2 years ago

@Suzie97 I have submit a completely fix PR for this issue. Please review it.

PolGZ commented 2 years ago

@Suzie97 I have submit a completely fix PR for this issue. Please review it.

Using the fix submitted by @lihz1990 pull request, I have managed to successfully log into my TT-RSS server.

Just to make it easier for other users:

Once you download the api_feedreader from the original FeedReader project, as explained by @Suzie97 here, you will have to edit the only file within that folder (init.php).

Where it said:

function removeLabel()
    {
        $label_id = (int)$_REQUEST["label_id"];
        if($label_id != "")

That last line should be: (just changing quotation marks for a 0)

function removeLabel()
    {
        $label_id = (int)$_REQUEST["label_id"];
        if($label_id != 0)

And where does one copy that api_feedreader folder this days? now that the "official" installation for tt-rss is a docker container?

  1. Check where the code of the tt-rss container is mounted:
    docker volume inspect ttrss-docker_app | grep Mountpoint

    In my case, it was: /var/lib/docker/volumes/ttrss-docker_app/_data

  2. Within that folder, one should have a folder named tt-rss/ and, within that one, a plugins.local/ folder (So, the path should be something like: /var/lib/docker/volumes/ttrss-docker_app/_data/tt-rss/plugins.local/
  3. Copy the api_feedreader folder with the modified init.php file there (you'll need sudo privilegies). Supposing you've downloaded the and extracted the api folder in your /home/Downloads folder, it should be something like:
    sudo cp -r ~/Downloads/api_feedreader/ /var/lib/docker/volumes/ttrss-docker_app/_data/tt-rss/plugins.local/
  4. As this is a system-enabled plugin for the server, not an "user" plugin (that one would activate from withing the web interface), you will need to add it to a global configuration directive instead. How can you do it? The recommended way on tt-rss wiki is to "adjust tt-rss global configuration through the environment (...) when using docker-compose setup":
    1. Edit the the environment file of the docker (the file named .env within the folder you had git cloned when you installed TT-RSS server).
    2. Search for the line that starts with TTRSS_PLUGINS=
    3. Uncomment that line
    4. Add api_feedreader to it (in my case, the line looks like this):
      TTRSS_PLUGINS=auth_internal,note,nginx_xaccel,api_feedreader
  5. Start the docker again
    docker-compose up --build -d

    Thanks again to @lihz1990 for taking the time to look into this issue and being able to recognize the problem. (Do you have a donation address? I really was desperate to use my tt-rss server with a good desktop reader!)

Thanks to @Suzie97 for being so attentive maintainer. I'll "buy you a coffe" right now!

Suzie97 commented 2 years ago

@PolGZ thank you so much for testing this feature and providing useful and detailed results.

You have a great explanation of the steps there, I think we should merge @lihz1990's PR and update the instructions for the trss plugin. Also, since getting the tress-plugin to work required some amount of manual work, we would also need to update the marketing material for Communique, i.e. let users know that its not a straight forward process.

Let me know what you guys think about this.

Also, a ton of thanks to @lihz1990 for digging deep into the issue and finding a fix for it ☺️.

Thanks to @Suzie97 for being so attentive maintainer. I'll "buy you a coffe" right now!

That really means a lot to me!! Thank you so much!! ❤️

PolGZ commented 2 years ago

I agree on changing instructions on the tt-rss section. Once you merge the changes, it shouldn't point to the original API on FeedReader's git, since it is no longer maintained and closed to changes. But, since it still works for the original FeedReader app and the rest of the api is still the same... I think it should continue to be named api_feedreader, right?

In regards to the process of adding plug-ins to tt-rss in docker, you should point to their wiki, once the new API is merged. And maybe point to my previous comment if you think that would help. (If you finally merge the request and change the tt-rss instructions pointing to your own file, let me now, so I edit the comment and don't confuse users with the URL to the old one)

By the way, @Suzie97, I get this error (Stripe Card Updater - Payment section) in buymeacoffee.com, as this impacts internationally issued cards. Do you want to send me another paying method? (XMR address for example?)

Suzie97 commented 2 years ago

I agree on changing instructions on the tt-rss section. Once you merge the changes, it shouldn't point to the original API on FeedReader's git, since it is no longer maintained and closed to changes. But, since it still works for the original FeedReader app and the rest of the api is still the same... I think it should continue to be named api_feedreader, right?

In regards to the process of adding plug-ins to tt-rss in docker, you should point to their wiki, once the new API is merged. And maybe point to my previous comment if you think that would help. (If you finally merge the request and change the tt-rss instructions pointing to your own file, let me now, so I edit the comment and don't confuse users with the URL to the old one)

Cool, I'll merge the PR and close this issue. Updating the documentation should be handled on another issue.

By the way, @Suzie97, I get this error (Stripe Card Updater - Payment section) in buymeacoffee.com, as this impacts internationally issued cards. Do you want to send me another paying method? (XMR address for example?)

Oh, thanks for the info. I didn't know that. Unfortunately I can't send you an XMR address. You can try buying the app from the elementary OS AppCenter if that is convenient for you and see if that works. Also, my request for being approved on GitHub sponsors has been pending, so once that is verified, you can support through GitHub sponsors as well. Sorry for the inconvenience. Thanks a lot!

PolGZ commented 2 years ago

Oh, thanks for the info. I didn't know that. Unfortunately I can't send you an XMR address. You can try buying the app from the elementary OS AppCenter if that is convenient for you and see if that works. Also, my request for being approved on GitHub sponsors has been pending, so once that is verified, you can support through GitHub sponsors as well. Sorry for the inconvenience. Thanks a lot!

Unfortunately I don't run Elementary OS. It doesn't seem to be possible from the web. Let me know once you get verified (for real. Send me a DM over Mastodon: you can find me in fostodon.org)