All Projects → IBBoard → Cawbird

IBBoard / Cawbird

Licence: gpl-3.0
A fork of the Corebird GTK Twitter client that continues to work with Twitter

Programming Languages

vala
323 projects

Projects that are alternatives of or similar to Cawbird

Twitter Macos Swiftui Sample
Twitter macOS Big Sur SwiftUI example app
Stars: ✭ 176 (-12%)
Mutual labels:  twitter
Connectednes
📡 A WiFi "modem" that connects your NES to the internet. Includes sample Twitter client.
Stars: ✭ 184 (-8%)
Mutual labels:  twitter
Social Media Data Scripts
Stars: ✭ 188 (-6%)
Mutual labels:  twitter
Tweet.sh
Twitter client written in simple Bash script
Stars: ✭ 178 (-11%)
Mutual labels:  twitter
Download Tweets Ai Text Gen
Python script to download public Tweets from a given Twitter account into a format suitable for AI text generation.
Stars: ✭ 182 (-9%)
Mutual labels:  twitter
Twterm
A full-featured TUI Twitter client
Stars: ✭ 186 (-7%)
Mutual labels:  twitter
Tock
Tock - the open source conversational AI toolkit
Stars: ✭ 175 (-12.5%)
Mutual labels:  twitter
Goodtwitter2
Userscript to modify the looks of twitter.com
Stars: ✭ 192 (-4%)
Mutual labels:  twitter
Twitter Bot
Node js twitter bot to send auto welcome message for your new followers
Stars: ✭ 184 (-8%)
Mutual labels:  twitter
Files
File browser designed for elementary OS
Stars: ✭ 187 (-6.5%)
Mutual labels:  gtk3
Sharemeow
😻 text shots service
Stars: ✭ 180 (-10%)
Mutual labels:  twitter
Swiftgtk
A Swift wrapper around gtk-3.x and gtk-4.x that is largely auto-generated from gobject-introspection
Stars: ✭ 180 (-10%)
Mutual labels:  gtk3
Seotools
SEO Tools for Laravel
Stars: ✭ 2,406 (+1103%)
Mutual labels:  twitter
Pqiv
Powerful image viewer with minimal UI
Stars: ✭ 177 (-11.5%)
Mutual labels:  gtk3
Laitos
Top geek's chindogu - personal assistant over satellite/telephone/SMS/chatbot, plus web infrastructure servers (web & mail, ad-free DNS, web proxy, SNMP, etc)
Stars: ✭ 191 (-4.5%)
Mutual labels:  twitter
Authenticator
2FA code generator for GNOME
Stars: ✭ 175 (-12.5%)
Mutual labels:  gtk3
Datastories Semeval2017 Task4
Deep-learning model presented in "DataStories at SemEval-2017 Task 4: Deep LSTM with Attention for Message-level and Topic-based Sentiment Analysis".
Stars: ✭ 184 (-8%)
Mutual labels:  twitter
Loupe
Twitter-like Android image viewer library
Stars: ✭ 197 (-1.5%)
Mutual labels:  twitter
Instant Lyrics
Shows lyrics of the currently playing Spotify song, or any song, instantly.
Stars: ✭ 191 (-4.5%)
Mutual labels:  gtk3
Twitterx
Keeping Twitter for macOS alive with code injection
Stars: ✭ 187 (-6.5%)
Mutual labels:  twitter

Cawbird 1.3.2

Cawbird is a fork of the Corebird Twitter client from Baedert, which became unsupported after Twitter disabled the streaming API.

Cawbird works with the new APIs and includes a few fixes and modifications that have historically been patched in to IBBoard's custom Corebird build on his personal Open Build Service account1.

Packaging and installation

Cawbird packages are built in the Cawbird Open Build Service project. They can be installed from the Cawbird download page.

Install Cawbird

These packages are currently available for:

  • openSUSE
    • openSUSE Tumbleweed
    • openSUSE Leap 15.1
    • openSUSE Leap 15.2
  • Fedora
    • Fedora 32
    • Fedora 33
    • Fedora Rawhide
  • CentOS
    • CentOS 7
    • CentOS 8 (including Streams)
  • Ubuntu
    • Ubuntu 18.04 (Bionic Beaver)
    • Ubuntu 20.04 (Focal Fossa)
    • Ubuntu 20.10 (Groovy Gorilla)
  • Debian
    • 10 (Buster)
    • Testing
    • Unstable
    • Raspbian 10

i586, x86_64 (amd64), aarch64 (arm64) and armv7l are available on most platforms (where supported by the distro).

Official distro repositories

The following distros currently have their own official packages:

Community builds

Dependencies

Twitter uses specific codecs for videos. These are provided by libav and are not included in the core repositories of many distros. The following additional repositories are known to include the required libraries:

Shortcuts

Key Description
Ctrl + t Compose Tweet
Back Go one page back (this can be triggered via the back button on the keyboard, the back thumb button on the mouse or Alt + Left)
Forward Go one page forward (this can be triggered via the forward button on the keyboard, the forward thumb button on the mouse or Alt + Right)
Alt + num Go to page num (between 1 and 7 at the moment)
Ctrl + Shift + s Show/Hide topbar
Ctrl + p Show account settings
Ctrl + k Show account list
Ctrl + Shift + p Show application settings

When a tweet is focused (via keynav):

  • r - reply
  • tt - retweet
  • f - favorite
  • q - quote
  • dd - delete
  • Return - Show tweet details
  • k - Print tweet details to stdout (debug builds)

Limitations

Due to changes in the Twitter API, Cawbird has the following limitations:

  • Cawbird will update every two minutes
  • Cawbird does not get notified of the following actions when performed outside Cawbird, which will be refreshed on restart:
    • Unfavourite
    • Follow/Unfollow
    • Block/Unblock
    • Mute/Unmute
    • DM deletion
    • Some list changes

All limitations are limitations imposed by Twitter and are not the fault of the Cawbird client. They have affected all third-party client applications.

Cawbird has also been unable to implement the following features because Twitter did not provide a way for third-party applications to get the data:

  • Notification of Likes, RTs, quote tweets and any other interaction that appears in the "All" tab of twitter.com's Notifications but not in "Mentions"
    • No API is available for other notifications, only a mentions API
  • DMs to Groups
  • Polls
    • The free API does not include polls as tweet "entities"
    • Twitter doesn't even mark posts so that we can direct people to the web
  • Twitter's "Bookmarks" system
    • No API is available
  • Full threads in a single request
    • No API is available
  • Replies older than seven days
    • The free search is limited to returning results from the last seven days
  • All replies to a tweet
    • No API is available and the search results are not guaranteed to find all replies
  • Twitter Cards
    • No API is available
    • Twitter doesn't even mark posts so that we can direct people to the web
    • This results in @TwitterDev posting a message that many devs can't see!

As of July 2020, Twitter has announced v2 of the API and may support some of these features. We are looking in to this as that parts of the API are made available.

Known issues

There are no current known issues with running Cawbird.

Previously, the following issues have occurred that were outside of our control:

  • Due to a bug in GnuTLS, Cawbird has suffered from occasional TLS errors. This has been handled under Cawbird bug 9 and GnuTLS have released a fix for the underlying problem
  • Due to a bug in GStreamer 1.16.1, Cawbird suffered from glitchy audio and video when playing media. This has now been fixed in GStreamer
  • Some combination of GStreamer, GTK and the Video Acceleration API (VAAPI) on some Intel chips can cause corruption of videos. This is an old and on-going problem. Removing gstreamer-vaapi or equivalent resolves the problem.

Translations

Since February 2020, there has been a Cawbird project on Transifex. Users can sign up on Transifex for free to help translate Cawbird.

Testing

Since August 2020, there has been a Cawbird "unstable" package built on the Open Build Service. These packages are intended for users who can't build Cawbird from source but want to test new features.

Do not use the unstable release unless you are testing new features and understand the risks. They are not intended for everyday use. They will be updated intermittently with new features from git master. They may have bugs. They may not get patched. They may be behind the main release. They may break things and eat your homework.

It is recommended that you backup ~/.config/cawbird before running Cawbird-Unstable.

Contributing

All contributions are welcome (artwork, design, code, just ideas, etc.) but if you're planning to actively change something bigger, talk to me first.

Compiling Cawbird

Preparation

Twitter clients need keys and secrets so that Twitter can go through the OAuth process. Cawbird used to ship with a standard set of values because that worked. As of June 2019, Twitter has been limiting applications (not just users - all users of the app in aggregate) to 100,000 calls to some endpoints (docs). As we poll every two minutes then this isn't many concurrent users.

Cawbird has always supported custom keys through schema settings, but that wasn't convenient for software builds. Cawbird now supports: a) per-user tokens and secrets (so each user uses a different "app") b) configuration of the default token and secret at build time

What this means for developers is that you need to supply two build options with the key and the secret before the software will build. To stop them being trivially identifiable, we base64 encode them.

To build your own application, register at https://developer.twitter.com/ and create an application. To base64 encode the keys you can run echo -n "<value>" | base64.

Alternatively, to continue using the default keys, use the values VmY5dG9yRFcyWk93MzJEZmhVdEk5Y3NMOA== and MThCRXIxbWRESDQ2Y0podzVtVU13SGUyVGlCRXhPb3BFRHhGYlB6ZkpybG5GdXZaSjI= respectively

Compiling

Cawbird uses the Meson build system rather than the more archaic autoconf/make combination. Building is as simple as:

meson build -Dconsumer_key_base64=<your-base64-key> -Dconsumer_secret_base64=<your-base64-secret>
ninja -C build

If you want to test translations locally then you will also need to pass -Dlocaltextdomain=true to meson.

Note that executing build/cawbird may result in one of the following errors:

Settings schema 'uk.co.ibboard.cawbird' is not installed

Settings schema 'uk.co.ibboard.cawbird' does not contain a key named 'foo'

To fix this, use the schemas from the build directory:

GSETTINGS_SCHEMA_DIR=build/data/ GSETTINGS_BACKEND='memory' build/cawbird

Cawbird installs its application icon into /usr/share/icons/hicolor/, so an appropriate call to gtk-update-icon-cache might be needed.

Build Dependencies

  • gtk+-3.0 >= 3.22
  • glib-2.0 >= 2.44
  • json-glib-1.0
  • sqlite3
  • libsoup-2.4
  • librest-0.7
  • liboauth
  • gettext >= 0.19.7
  • vala >= 0.28 (makedep)
  • meson (makedep)
  • gst-plugins-base-1.0 (for playbin, disable by passing -Dvideo=false to Meson)
  • gst-plugins-bad-1.0 >= 1.6 or gst-plugins-good-1.0 (disable by passing -Dvideo=false to Meson, default enabled)
    • Requires the element-gtksink feature, provided by gstreamer1.0-gtk on Ubuntu-based systems, gstreamer1-plugins-bad-free-gtk on older RPM-based systems and gstreamer1-plugins-good-gtk on newer RPM-based systems
  • gst-libav-1.0 (disable by passing -Dvideo=false to Meson, default enabled)
  • gspell-1 >= 1.2 (for spellchecking, disable by passing -Dspellcheck=false to Meson, default enabled)

Note that the above packages are just rough estimations, the actual package names on your distribution may vary and may require additional repositories (e.g. RPMFusion in Fedora, or Packman in openSUSE)

If you pass -Dvideo=false to the Meson script, you don't need any gstreamer dependency but won't be able to view any videos.

Copyright

Cawbird is released under the GPL v3 - see COPYING for more details.

The video fallback image is a Creative Commons "CC BY" licensed work by Iris Li.

Footnotes

1: home:IBBoard:desktop

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].