Git Product home page Git Product logo

harbour-piepmatz's Introduction

Piepmatz

Piepmatz is a Twitter client for Sailfish OS

Author

Sebastian J. Wolf [email protected]

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:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.