Skip to content
This repository has been archived by the owner on Sep 28, 2020. It is now read-only.

Tristan971/Lyrebird

Repository files navigation

Archival

Unfortunately, Twitter's stance towards third-party clients rendered building a good one pretty much impossible.

Additionally, I do not really have the time to manage this project myself anymore.

Hence the archival.


Promo logo

Last develop branch's statistics :

Build Status Known Vulnerabilities OpenHub Stats

Reasoning :

There are currently no effective Twitter clients on Windows and Linux. The goal of Lyrebird is to fix this, support macOS, and remain fully open-source.

Hopefully this works out.

How to get it

Recommendations :

  • Windows & macOS : download according precompiled release.

  • Debian/Ubuntu (& derivatives that use dpkg/apt) : Add repository source deb https://deb.lyrebird.moe any main, then download signing key and add it to apt keyring

wget https://deb.lyrebird.moe/lyrebird_repositories.gpg
sudo apt-key add lyrebird_repositories.gpg
rm lyrebird_repositories.gpg

Then install latest version with apt update && apt install lyrebird.

  • RedHat/CentOS/Fedora (& derivatives that use yum/dnf/rpm) : Add repository source (unsure if gpgcheck=0 is needed as I sign rpm packets, but doesn't hurt)
[Lyrebird]
name=Lyrebird releases
baseurl=https://rpm.lyrebird.moe
gpgcheck=0

Then update your repositories and install package lyrebird.

Build it yourself

Requirements:

  • A Java 10+ development kit with JavaFX components included (i.e. an Oracle JDK or an OpenJDK+OpenJFX combo)
  • Apache Maven (works at least with version 3.5.2)
  • For native images you need either InnoSetup tools on Windows or dpkg-deb/rpmutils on Linux depending on what system you want to target. You can only build native images for the current system type.

First (in project folder) : $> mvn clean install -DskipTests

Then any of the following (in Lyrebird/lyrebird folder):

  • Execute only (no packaging) : $> mvn spring-boot:run
  • For a native installer (will be in Lyrebird/lyrebird/target/jfx/native) : $> mvn jfx:native -DskipTests
  • For a portable JAR file (will be in Lyrebird/lyrebird/target) : $> mvn package -DskipTests

What does it look like?

Screenshot of current version

Current state of development:

  • Log in

  • Tweets-based systems

    • Base systems :
      • Timeline
      • Mentions
      • Direct messages
    • Display features :
      • Basic textual display
      • Display username, @screen_name and user profile picture
      • Display for chosen list
      • Text highlighting
        • Mentions
          • Color
          • Clickable
        • Hashtags
          • Color
          • Clickable
          • In-app search
        • URLs
          • Color
          • Clickable
      • Media embedding
        • Officially supported
          • Twitter image embedding
          • Twitter video embedding
          • Twitter gif images embedding
        • Easy embedding
          • Direct image embedding
          • Direct video embedding
        • Why is it not easy to do ?
          • Youtube video embedding
    • Data loading features :
      • Seeking older tweets by-demand (scroll or button)
      • Streaming API NO LONGER ALLOWED BY TWITTER STARTING 16TH AUGUST 2018
      • Seeking updated information as often as possible while respecting rate limits
  • Tweeting

    • Support text
    • Support attachments
    • Support geolocation
  • Interaction with tweet

    • Reply
    • Quote
    • Like (formerly favourite)
    • Retweet
  • Interaction with users

    • Follow/unfollow
    • Block/mute
    • List management
    • Report
  • Searches

  • Miscellaneous

    • System notifications
    • Internal notifications
    • Update system
      • Basic update system
      • Auto-update

Contributors

Can I help?

Please do! There's a large amount of features to support and I can't really work on it regularly by myself unfortunately...

It should be fairly easy to understand the general idea of the back-end model for any seasoned Java developer with some Spring Framework experience.

For the UI/JavaFX model a lot of the work is delegated to a JavaFX framework called EasyFXML which you can read about here.