Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Could not load tweets Too Many Requests #845

Closed
mulle-nat opened this issue Aug 28, 2018 · 23 comments

Comments

Projects
None yet
7 participants
@mulle-nat
Copy link

commented Aug 28, 2018

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

  • just show this a status somewhere and make this not a modal error
  • have an option to increase the poll period, so that this error doesn't occur
  • just ignore this particular error message, since on a future retry it will work anyway
@lucaswerkmeister

This comment has been minimized.

Copy link

commented Aug 28, 2018

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

This comment has been minimized.

Copy link

commented Aug 28, 2018

@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

This comment has been minimized.

Copy link
Owner

commented Aug 28, 2018

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

This comment has been minimized.

Copy link

commented Aug 28, 2018

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

This comment has been minimized.

Copy link
Author

commented Aug 28, 2018

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

This comment has been minimized.

Copy link

commented Sep 27, 2018

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

@nathan2423

This comment has been minimized.

Copy link

commented Sep 29, 2018

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!!

@nathan2423

This comment has been minimized.

Copy link

commented Sep 29, 2018

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

This comment has been minimized.

Copy link

commented Sep 29, 2018

@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

@nathan2423

This comment has been minimized.

Copy link

commented Sep 29, 2018

Thank you Vistaus!

@Alexmitter

This comment has been minimized.

Copy link

commented Sep 29, 2018

@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.

@nathan2423

This comment has been minimized.

Copy link

commented Sep 30, 2018

@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 added a commit to Nextbird/nextbird that referenced this issue Sep 30, 2018

CbUserStream: bump heartbeat interval from 45s to 2min
This fixes #1 / baedert#845, though it’s not an especially
elegant solution.
@lucaswerkmeister

This comment has been minimized.

Copy link

commented Sep 30, 2018

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

This comment has been minimized.

Copy link
Author

commented Sep 30, 2018

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

This comment has been minimized.

Copy link

commented Sep 30, 2018

@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

This comment has been minimized.

Copy link

commented Sep 30, 2018

@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

This comment has been minimized.

Copy link

commented Oct 7, 2018

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

@Alexmitter

This comment has been minimized.

Copy link

commented Oct 7, 2018

@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

This comment has been minimized.

Copy link

commented Oct 7, 2018

@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

This comment has been minimized.

Copy link

commented Nov 11, 2018

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

This comment has been minimized.

Copy link

commented Nov 11, 2018

@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

This comment has been minimized.

Copy link
Owner

commented Nov 11, 2018

Discuss this somewhere else.

@baedert baedert closed this Nov 11, 2018

@lucaswerkmeister

This comment has been minimized.

Copy link

commented Nov 11, 2018

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.