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.
Last develop
branch's statistics :
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.
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
.
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
-
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
- Mentions
- 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
- Officially supported
- 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
- Base systems :
-
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
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.