baedert / corebird

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

Changes to streaming? #825

Open IBBoard opened 6 years ago

IBBoard commented 6 years ago

I just saw this via Tim Bray and wondered whether it would affect Corebird:

http://apps-of-a-feather.com/

After June 19th, 2018, “streaming services” at Twitter will be removed. This means two things for third-party apps:

Push notifications will no longer arrive
Timelines won’t refresh automatically

If you use an app like Talon, Tweetbot, Tweetings, or Twitterrific, there is no way for its developer to fix these issues.

I think that Corebird just polls the API, so it shouldn't break anything, but I wanted to check/report it if it did.

baedert commented 6 years ago

It doesn't poll at all and uses the userstream API, so is affected.

IBBoard commented 6 years ago

Okay. I couldn't remember how it worked. I thought I remembered code that asked for X posts since ID YYY, but maybe that was just scrollback.

Hopefully someone works out a solution before everything breaks, because the Twitter web interface is AWFUL.

IBBoard commented 6 years ago

I'm getting desperate and working on this myself. It's not going to be pretty, and it'll never have all of the functionality (like updating "Liked" counts or muting of existing messages) but I've got the core of it working locally!

Vistaus commented 6 years ago

@IBBoard But Corebird will stop working within a few weeks, so why bother? https://www.patreon.com/posts/corebirds-future-18921328

And it's not like you could just turn this into a fork, unless you're a millionaire who can pay Twitter's absurd prices ($2,899 per month for 250 users).

IBBoard commented 6 years ago

The streaming API will stop in under a week so I'm "fixing" this the ugly way - I'm turning it into a polling client rather than migrating to the expensive new API.

As far as I can tell, I'll still have working timeline and notifications. What I'll lose is the minor stuff - like "live" updates (rather than every X minutes), updates for deletions/likes of existing tweets, updates for blocking users of existing tweets etc.

I'm not promising it'll be good or pretty, but if my alternative is to use the Twitter web UI then I'll give it a go hacking something together! (At least for my personal use)

baedert commented 6 years ago

As far as I can tell, I'll still have working timeline and notifications. What I'll lose is the minor stuff - like "live" updates (rather than every X minutes), updates for deletions/likes of existing tweets, updates for blocking users of existing tweets etc.

and all the lists, dms, favorite and retweet updates, tweet deletes, the friends list is implemented that way, etc.

Regardless, I'm not going to merge or support anything at this point. If you want to make this public, you'll have to fork.

IBBoard commented 6 years ago

Like I said, it won't be pretty. It's basically a personal thing to avoid using Twitter for now.

I don't use lists in Corebird, so that's no loss to me. I think I can reimplement DMs as polling. Favourite and retweet updates are nice but not vital Tweet deletions is a minor loss but it just means you'll continue to see tweets after people delete and repost a fix (then get a "not found" when you view it).

Basically, if I can get a stream of tweets and just have some lists that don't update until the next restart then that's fine by me for now.

I'd like to stay with Corebird, but this will at least keep me going until I can see how everything settles and what the Linux client looks like in a few month's time.

IBBoard commented 6 years ago

I've just checked my mobile client, and streaming is optional (and I've currently got it disabled). Doing the most important features by polling the old, non-streaming API still seems to be possible.

So far I'm doing it as "fake streaming" (i.e. poll and then push the tweets through the existing Corebird streaming functions one-by-one), which reduces the re-architecting. I've just got to work out how to do some of this in Vala and then some bits in C.

IBBoard commented 6 years ago

Apparently I can't reimplement DMs as polling. It's possible with the old APIs, but it appears that they've removed streaming and DMs with the new change. I'd only read about streaming and hadn't noticed the DMs.

Still, it's not like I DM much, and I've got other ways of contact almost everyone I've ever DMed! Having a tweet stream will be enough for me for now.

IBBoard commented 6 years ago

Sorry for the noise. It is possible to maintain DMs. They changed the API, rather than replacing it entirely with the new "account activity" API. I should read more!

kmac commented 6 years ago

@IBBoard are you planning on pushing to your fork? I've temporarily switched to choqok but the corebird interface is much nicer. I'm like you I think - I'm fine with polling and I basically just want to avoid reading the timeline in the web client.

IBBoard commented 6 years ago

Sorry - it's been up a couple of days now: https://github.com/IBBoard/corebird/tree/non-streaming

It's all still experimental for now, though - half of the features don't work and the other half probably have some bugs! Plus there are obviously limitations now that we don't get the full stream of events.

dilinger commented 5 years ago

@IBBoard - thanks for the repo link. I just built it for debian stable, and it seems to be functional for basic tweeting. Are you still working on it, and are you planning to do any releases?

IBBoard commented 5 years ago

As I said earlier, it's just a personal fix that I make the source code available for (and publish openSUSE builds for on a "use at your own risk" basis). It has been working for me since August with no obvious issues, but I can't support Corebird on my own.

What's there now is as good as it gets for a "release" from me but people are welcome to take the patch (it's open source, after all) and make a fork. I'd use it and contribute fixes where I could, but primary maintenance is a whole other commitment!