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:

harbour-piepmatz's People

Contributors

atlochowski avatar dashinfantry avatar derdakon avatar eson57 avatar karry avatar kstenschke avatar quent-in avatar thaodan avatar wunderfitz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

harbour-piepmatz's Issues

[Feature request] adjust font size

Great software! And nice to see such attention to coding style.

Maybe I'm just getting old but on my Xperia X the fonts are a little hard to read. What about having a font scale setting?

Happy to work on this myself, just putting the question out there first in case it's already in the pipeline, or there are difficulties I'm not in a position to foresee.

[Feature] (hashtag) search without retweets

Often the search is much more useful when retweets are not included in there. This is especially true for event hashtags where you want to know what's happening now and not what happened 2 hours ago, but is still propagating through someones followers.

So I'd suggest at least an option to not display retweets in the search. Corebird even made that a default behaviour.

[Feature Request] Autoupdate timeline

As the excellent Twitter client Piepmatz is, it deserves best features. I think that autoupdate timeline while you are inside application, is a must to an it adds easy to use to Piepmatz

Anyway, thanks for all your efforts Sebastian!

TODO list

Just wonder if it would be possible to make the TODO list public? Or rewrite TODO list to Issues with priority labels? Think that some kind of such info could be helpful for users as for developers.

[Feature] Possibility to mute a thread

Related to #52, the default reply behaviour is to reply to everyone involved in a thread so far, including retweeters.
Although it's possible to edit the receivers of a reply at the sender's side, many people are either not aware of that option or simply don't care. Muting a thread is then a good option to get rid of all these unwanted replies.

This is possible in the twitter web client, but as thread's aren't really exposed in the 3rd party client API I can't say whether implementing this is possible.

Feature: Timeline from where I left

One comment in the Jolla Store mentioned to start from where you read the last messages. I'm also one of these guys, I need to read in the natural flow of time. Thanks in advance and keep up the good work!

Improve Build Instructions

I am trying to build piepmatz using QtCreator on Mac OS.

  1. After checking out the project and opening it in QtCreator, building fails with several "Failure to find" messages, these failures are regarding missing files of QGumboParser (adding those files manually into src/QGumboParser/gumbo-parser/src, makes those failure messages disappear).
    -Is some preliminary step (running cmake/qmake or installing QGumboParser locally) needed in order to have those sources in place?

  2. Please see PR #49 - this should fasten the setup for new contributors.

  3. Trying to build now fails because /src/wagnis/wagnis.cpp requires openssl/conf.h (No such file or directory
    #include <openssl/conf.h>). I installed openssl (1.1.0h) globally, but this did not fix the issue.
    -This issue is probably Mac OS specific. I tried adding openssl path configurations to the harbour-piepmatz.pro file using INCLUDEPATH and LIBS statements, which did not work though.

Set TwitterAPI infos after build

It would make development easier if there was the abiltiy to set the twitter API key after build to allow automatic builds on buildservice or similar without storing the api key publicly.

Not all mentions are listed under notifications

Sometimes I open Piepmatz and I get a notification balloon that I have been mentioned somewhere.
When I press on the notification tab on the bottom of Piepmatz it does not show me a new notification.

In SailfishOS on the event screen there is also the notification message from Piepmatz.
This happens a couple times a week fo me.

Today I decided to search if there really is a mention and I logged in at twitter.com to find out(I normally only use Piepmatz or Tweetian).

There where indeed several mentions which do not show up in Piepmatz under notifications.
It looks like it are retweets and likes which are not shown in Piepmatz.

Is this as designed or a bug?

Do not freeze user details in user info

There is a time someone may want to browse some user's posts. However while browsing, user's details covers about half of display, so browsing user's tweets is not so comfort.

Group tweets by sender

Feature request via e-mail:

It would be great to have possibility to group tweets by sender and somehow collapse/expand when needed.

Why? In this way you'd see all the tweeters not depending amount of tweets. I have missed many interesting tweets from the people who tweets rarely.

Inconsistency with cover page reload

If the initial startup wasn't completed successfully, e.g. because of a network issue and the user refreshes Piepmatz by using the cover action, the application state becomes inconsistent. -> Disable cover action until initialization is complete.

Detect "In Reply To" correctly...

In case the tweet starts with 'at'username and the tweet wasn't in reply to another tweet, but directly to another user, Piepmatz should show the status correctly (e.g. "Tweet to .." instead of "In reply to...").

Possibility to edit reply receivers

Since a while, replies get sent to everyone in the reply thread or anybody mentioned in the tweet replied to. This can become very messy or annoying for longer threads.

Some clients (e.g. the twitter web client) allow de-selecting recipients when replying to a tweet. This is badly needed in Piepmatz, too, for being able to reply selectively and not spam everyone.

Auth PIN

Hello,

I am assuming, piepmatz is supposed to open a website that generates a PIN from the Twitter API, but no browser window is opened, and I don't know where I would get the PIN otherwise.

Thanks
C

Option to disable geolocation completely

As a person never using the geolocation feature, I'd really like to have an option, e.g. in the settings page (there used to be one, right?) to switch it off completely.
Although probably not having a huge effect, GPS, especcially in device-only mode, tends to drain the battery.

Need contribution guide

Hi, thank you for nice product:)
I wonder if you are now open for contribution(patch,suggestion,etc...)
When you become ready please write it to README.md :)

Thanks you again for your passion for SFOS:)

Tweet list in profile page is too small

The list of tweets on a profile page is pretty small because the top part, with all the info on that user, doesn't move. It probably makes more sense to move the entire page instead of only the bottom part, because you don't need to see a user's banner or their amount of followers at all times.

Feature Request: View One Account

This may be related to #23

Some sport accounts provide live updates of matches while they're on. It's great to be able to concentrate on those only. So it would be great to select an account and just get the messages from them - if possible to apply the filter at the twitter server, so less data is used downloading filtered tweets, that would be perfect.

Many thanks.

[crash of piepmatz]

@Wunderfitz it happened this morning again the random crash.

My observing are.

  • refresh of the timeline (via Cover)
  • scrolling down the new tweets

--> crash

Feature Request: List Support

Hello, love the application. I mentioned these in the comments, and you asked me to put these on here, so here's the first one. I'll add the other in another request.

List Support: I arrange all the accounts I follow into private lists, so that I can concentrate on specific groups at different times, or if things are busy to keep it managebale.

It would be great to be able to filter the feed in Piepmatz by List (private or public).

Thanks.

Possibility to delete tweets

In Piepmatz 0.5 I can't find a possibility to delete my own tweets. Such an option would be quite useful, especially for the countless times I have typos in my tweet.

Option to "just retweet"

a single tweet pully menu gives you the option to "retweet with comment", together with some other options. the most common action, which is just to retweet, without comment, is not exist and can not be achieved by retweet with empty comment.
Unless I'm missing something this seems to be a basic feature that is not exist.

Request auto search user name when tweet

When I want tweet to someone who I am following, @xxxx,can it be auto search by just put one char at start? because everytime I need check his profile name, remember it, can tweet to him

Twitter new Account API

Not sure if this is necessary to ask, but having seen a number of linux based twitter clients closing shop after Twitter moved to the Account Activity API. Is that something of a concern for piepmatz, though it is still working for me, but just want to know. Thanks!

My offer to use "Twitter4QML"

@Wunderfitz
Would you please try using Twitter4QML?
I think that you are trying to implement the code to access to TwitterAPI by yourself.
But the Twitter4QML already have implemented the almost of all function to access to the TwitterAPI.
Unfortunately there is not enough document to use it but there are some samples which uses this library.

http://git.qt-users.jp/git/?p=codereview/qneptunea.git;a=tree
http://git.qt-users.jp/git/?p=codereview/sailfishos/qippis.git;a=tree

Of course, there is no problem at all without using it, but I thought that if you use this you thought that you could concentrate on UI implementation, so I suggested it.

Twitter4QML
http://git.qt-users.jp/git/?p=codereview/twitter4qml.git;a=tree

Tnx!!!

Feature Request: View Threads

Is it possible to view a thread? Eg select a tweet and see its replies and any it replies to?
It may be possible already, but I've not found out how.

Many thanks.

Make active account visible while (re-)tweeting or replying

I'm using Piepmatz with two accounts: a private one and one for an open source project. As both follow a group of same people the visible timelines look very similar. For that reason it happens quite often to me that I'm retweeting or replying from the wrong account.

For that reason it would be very helpful if while performing such actions the currently active account could be visible (e.g. the avatar) or even selectable.

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.