baedert / corebird

Native Gtk+ Twitter Client
https://corebird.baedert.org
GNU General Public License v3.0
792 stars 78 forks source link

Could not load tweets Too Many Requests #845

Closed mulle-nat closed 5 years ago

mulle-nat commented 5 years ago

Even after the great Twitter fallout, the base functionality of Corebird (at least which I am using), which is read tweets and write tweets seems to continue to work fine.

Often I get this message though

Could not load tweets
Too Many Requests

and then the tweets are hidden. It would be nice if Corebird would either

lucaswerkmeister commented 5 years ago

Seconded. I often get this error while I’m still catching up with old tweets (presumably, Corebird keeps polling for new tweets even when I’m currently scrolling through sections of my timeline several hours old), so any change that would just let me keep reading the already loaded timeline (make the error less prominent, ignore it, whatever) would be very highly appreciated.

That said, I can totally understand if there’s not much motivation to continue working on Corebird right now, and want to take this opportunity to thank @baedert for writing an excellent Twitter client, whose user experience I will probably continue to reminisce about for years – it’s not your fault Twitter is shit :(

Vistaus commented 5 years ago

@mulle-nat You can request whatever you want, but Timm has already made it clear that he's not going to continue working on Corebird, so I suggest you search for an alternative if any of the things mentioned are starting to bother you.

baedert commented 5 years ago

have an option to increase the poll period, so that this error doesn't occur

Corebird doesn't do any polling.

just ignore this particular error message, since on a future retry it will work anyway

So things just magically stop working and you don't know why and that's ok?

And thanks but here still won't be another release so whatever.

lucaswerkmeister commented 5 years ago

The following patch (against the 1.7.4 tag) seems to help a lot:

diff --git a/src/CbUserStream.c b/src/CbUserStream.c
index 275ed3cb..2425c146 100644
--- a/src/CbUserStream.c
+++ b/src/CbUserStream.c
@@ -145,7 +145,7 @@ start_heartbeat_timeout (CbUserStream *self)
   if (self->heartbeat_timeout_id != 0)
     return;

-  self->heartbeat_timeout_id = g_timeout_add (45 * 1000, heartbeat_cb, self);
+  self->heartbeat_timeout_id = g_timeout_add (120 * 1000, heartbeat_cb, self);
 }

 static void

Since applying it and rebuilding Corebird, I’m seeing a lot less of these errors. Hope this helps someone else as well.

mulle-nat commented 5 years ago

So things just magically stop working and you don't know why and that's ok?

You could syslog it... :)

Corebird doesn't do any polling.

But tweaking a heartbeat period apparently does have an effect.

So I will try this patch by @lucaswerkmeister , it sounds good to me.

Alexmitter commented 5 years ago

@lucaswerkmeister would it be possible to you to make a fork and make a release with the patch?

freecicero commented 5 years ago

I second the request from Alexmitter! @lucaswerkmeister , I find corebird still very useful without the push updates, but I can't read backwards like I want with the refresh broken. And it's far beyond my capabaility to patch anything. Please consider a fork with the patch. THANK YOU!!

freecicero commented 5 years ago

Just to prove to myself how incompetent I am, I tried to follow some patch instructions, but I fail with this result:

git apply --check heartbeat.patch error: corrupt patch at line 13

Vistaus commented 5 years ago

@nathan2423 I don't know if this patch is correctly formatted (haven't tested it), but normally you'd use patch to apply patches:

patch < heartbeat.patch

freecicero commented 5 years ago

Thank you Vistaus!

Alexmitter commented 5 years ago

@nathan2423 its not really about the patch, its more about the struggle with all the dependencies to build it yourself. One fork that has clear code with the patch and other changes that may help. Maybe removed reference to the stuff not working since doom day of 3. party twitter clients. and make a binary release. Done. But i have to say for some reason, i myself struggle to build it, no issue applying the patch in the other hand.

freecicero commented 5 years ago

@Alexmitter I now know exactly what you mean on difficulty building. I spent a couple of hours playing and got nowhere. Fortunately, however, one of the leaders over at MX-17 Linux (which I use) was willing to put together a deb file, as discussed in this thread - http://forum.mxlinux.org/viewtopic.php?f=134&t=43195&p=462214&sid=7a15a0ee3d20f5e247c99b8dfa36a47a#p462214 His patched version seems to be working pretty well. It refreshes at the 2 minute mark, which really isn't ideal, but is a lot better than pre-patch. It would be nice if someone who knows what they are doing could pick up the ball and make that adjustable, but it's far beyond my capacity. If the original author is not going to update further, I would REALLY appreciate @lucaswerkmeister or anyone else considering a fork, because Corebird is still the best format for reading tweets (especially on a big-screen TV where I often use it). The pushed auto-updates may be gone, but the auto-refresh seems to sort of do the same thing, so it would be great if people could choose how frequently the auto-refresh occurs, or turn it off entirely while they are reading old tweets. I have to think that most users are using it that way anyway. How many of them are really just waiting for Twitter to push new posts? Most normal people, I would think, only pick it up no more than every 15 minutes or longer (in most cases a lot longer) and then pick it up with the idea of scrolling back to see what they missed. A fork that allowed these features would be ideal.

lucaswerkmeister commented 5 years ago

Okay, a fork is now live at https://github.com/lucaswerkmeister/corebird. I’ve pushed a commit that fixes this bug and also opened a few more bugs for possible improvements (though, to be clear: I have no immediate plans to work on them).

For now I’ve kept the Corebird name, but if @baedert would prefer a different name I’m sure we can find something. (Personally, I’ve always liked the “Iceweasel” joke. What would be the opposite of Corebird – Crustpenguin?)

Should I try to build packages for some package managers and publish them as a GitHub release? (I suppose that would require a new version, though, and I’m not sure how the fork should be versioned. 1.7.4-1?)

mulle-nat commented 5 years ago

I would appreciate a .deb package or something like this. I tried compiling Corebird on bionic but I couldn't get all the build requirements right, without possibly conflicts with my regular development setup. And then gave up.

Alexmitter commented 5 years ago

@lucaswerkmeister Crustpenguin sounds like a Twitter client i want to use. I like the name.

"Should I try to build packages for some package managers and publish them as a GitHub release?" I would recommend to make a tarball with binary and maybe a deb file.

"and I’m not sure how the fork should be versioned. 1.7.4-1?" If you want to make a hard break from the old development with the new name, i would also begin with a new version number to clearly show the break, go for 1.0 again or 2.0 for the initial version.

Edit: I guess best would be to make a "Support" thread under your forks issues to continue about this topic.

Alexmitter commented 5 years ago

@mulle-nat

In the last reply from @nathan2423 is a link with deb packages, just make sure you block apt from updating corebird after that by "sudo apt-mark hold corebird"

henriknj commented 5 years ago

@lucaswerkmeister Wouldn't it be easier to just use something like flatpak, and release to flathub?

Alexmitter commented 5 years ago

@henriknj actually no. Flatpak and Snap are both bad concepts because both work with a Diskimage that you have to mount. At the end you have like 20 mounts for all kinds of little apps. Applications have problems use system resources like themes. Deb is totally enough as every distro worth supporting is Debian Based. Gentoo and Arch traditionally support them self.

henriknj commented 5 years ago

@Alexmitter It seems like you experience stems from snap, and not flatpak, which uses ostree and not squashfs based diskimages, and work has already been done in the master repo for supporting flatpak. However, this was only a suggestion in order limit the work required by @lucaswerkmeister.

lucaswerkmeister commented 5 years ago

Flatpak seems like the easiest route for now, so I’ve published a 1.7.4.1 release of the fork and opened flathub/flathub#716 to request the inclusion of a de.lucaswerkmeister.corebird package.

Alexmitter commented 5 years ago

@lucaswerkmeister I would appreciate if you could add a compiled package of your release version to your GitHub release because as you only want to support flatpak, it would be impossible for me and other people who refuse to install the framework for flatpak. I would try to maintain my platform native package manager but I did not find the right system version to build it Corebird. What system do you use to compile?

baedert commented 5 years ago

Discuss this somewhere else.

lucaswerkmeister commented 5 years ago

I opened lucaswerkmeister/corebird#9 to discuss distribution mechanisms, for everything else please open new issues. @baedert feel free to lock the discussion here.