Skip to content

Wunderfitz/harbour-piepmatz

Repository files navigation

Piepmatz

Piepmatz is a Twitter client for Sailfish OS

Author

Sebastian J. Wolf sebastian@ygriega.de

License

Licensed under GNU GPLv3

Keyboard Shortcuts

Some Sailfish OS devices feature a physical keyboard. Piepmatz is even easier to use with them using shortcuts:

  • Generic
    • Up/down: scroll
    • Page up/down: scroll faster
    • t/b: Scroll to top / bottom
    • Left/Esc: Back
  • Only on main screen:
    • 1-6: Switch tabs (timeline, notifications, search etc.)
    • n: New tweet
    • r: Refresh
    • s: Settings
    • a: About
  • On tweet details view:
    • Return/Enter: Display thread

Developer Mode

Though Piepmatz is made to be as feature-rich as possible, some features such as the support for Twitter threads may only be available in the developer mode or be incomplete/failing from time to time. Reasons for that can be that the respective features are not available via official API, certain API features are not yet productively available (developer preview), they are rate limited or require a paid contract with Twitter. You can enable the developer mode on the settings page of Piepmatz. In addition, you need to set a valid Twitter API Bearer token there as well. Such a valid Twitter API Bearer token can be obtained by creating an account in the Twitter Developer Portal, registering a project and an application and by creating credentials for this application. Please see the Getting Started documentation for details.

Build

Simply clone this repository, but be sure to clone it with --recursive as Piepmatz uses Git Submodules.

Just use the project file harbour-piepmatz.pro to import the sources in your SailfishOS IDE. To build and run Piepmatz or an application which is based on Piepmatz, you need to create the file harbour-piepmatz/src/o2/o1twitterglobals.h (you can copy the sample from harbour-piepmatz/src/o2/o1twitterglobals.h.sample) and enter the required constants in the following format:

#ifndef O1TWITTERGLOBALS_H
#define O1TWITTERGLOBALS_H
const char TWITTER_CLIENT_ID[]                    = "abcdef";
const char TWITTER_CLIENT_SECRET[]                = "ghijkl";
const char TWITTER_STORE_DEFAULT_ENCRYPTION_KEY[] = "mnopqr";
#endif // O1TWITTERGLOBALS_H

You get the Twitter client ID and client secret as soon as you've registered your own application on dev.twitter.com. The default encryption key is only used in case Piepmatz is unable to determine a unique encryption key from the user's device. Under normal circumstances, Piepmatz uses an encryption key which was generated automatically. This key is used to encrypt the user's generated Twitter oAuth token (not the username/password!) on the user's device. Please use a password generator to generate the default key for your application.

Piepmatz also needs the package openssl-devel to compile properly. You can install it on your build target using the Control Centre in your SailfishOS IDE.

Credits

This project uses

  • OAuth for Qt, by Akos Polster. Available on GitHub.com - Thanks for making it available under the conditions of the BSD-2-Clause license! Details about the license of OAuth for Qt in its license file.
  • twitter-text, copyright 2017 Twitter, Inc and other contributors. Available on GitHub.com - Thanks for making it available under the conditions of the Apache License, Version 2.0! Details about the license of twitter-text in its license file.
  • Emoji parsing and artwork by Twitter Emoji (Twemoji), copyright 2018 Twitter, Inc and other contributors, Code licensed under the MIT License, Graphics licensed under CC-BY 4.0
  • HTML parsing by QGumboParser, copyright 2017 Sergey Lagner, Code licensed under the MIT License, uses Gumbo, copyright 2017 Google, licensed under the Apache License 2.0
  • ipinfo.io to determine your location.

Piepmatz was translated to several languages. Thanks to all contributors!

Code improvements by: