GithubHelp home page GithubHelp logo

slarrain / rainbowstream Goto Github PK

View Code? Open in Web Editor NEW

This project forked from orakaro/rainbowstream

0.0 1.0 0.0 47.21 MB

A smart and nice Twitter client on terminal written in Python.

Home Page: https://github.com/orakaro/rainbowstream

License: MIT License

Python 98.85% C 0.99% Dockerfile 0.04% Shell 0.12%

rainbowstream's Introduction

Rainbow Stream

http://img.shields.io/pypi/l/rainbowstream.svg?style=flat-square http://img.shields.io/pypi/v/rainbowstream.svg?style=flat-square

Terminal-based full-fledged Twitter client, built upon Python Twitter Tools.

Showcase

gif

Installation

Direct installation

sudo pip3 install rainbowstream

Virtualenv (Recommended)

virtualenv -p /usr/bin/python3 venv
source venv/bin/activate
pip install rainbowstream

Installation Troubleshooting

If you run into dependency issues, you may want to install additional libraries

Debian-based distros:

sudo apt-get install python-dev libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

CentOS:

sudo yum install python-devel libjpeg-devel

Mac OSX Mac has a clang unknown argument problem with the Pillow package—a dependency of this app. Please see the workaround in Issue #10

export ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future

If you still experience issues:

  • sudo pip uninstall rainbowstream
  • Use the virtualenv installation
  • Create an issue and provide:
    • Your OS
    • Your Python version

Usage

The Stream

Simply run rainbowstream to start the application, or enjoy its ASCII images with rainbowstream -iot or set IMAGE_ON_TERM to True in your config.

If your terminal supports 24-bit colors, run rainbowstream -p24 instead to utilize 24 bit ASCII images.

If your terminal supports sixel, ie. wezterm or MLTerm, change the IMAGE_ON_TERM config to sixel and enjoy high-quality images.

You might want to change IMAGE_SHIFT to set the image's margin (relative to your terminal's width), and IMAGE_MAX_HEIGHT to control the max height of every image (see Config Management).

You will be asked for Twitter authorization the first time you run Rainbow Stream. Just click the "Authorize access" button, paste the PIN to the terminal, and the application will start.

You might want to use Rainbow Stream with an HTTP/SOCKS proxy. Proxy settings are specified as follows:

rainbowstream --proxy-host localhost --proxy-port 1337 --proxy-type HTTP
# or the short form:
rainbowstream -ph localhost -pp 1337 -pt HTTP

Both --proxy-port and --proxy-type are optional. The default proxy port is 8080 and the default proxy type is SOCKS5.

Interactive Mode

While your stream is continued, you are also ready to tweet, search, reply, retweet, etc. directly from your console. Simply type h and hit the Enter key to see the help.

Input is in interactive mode. It means that you can use the arrow keys to move up and down through the history, tab-autocomplete, or double-tab to view available suggestions. Input history from the previous run is also available.

Read the docs for available commands.

Theme Customization

Rainbow Stream is shipped with some default themes. You can switch themes with the theme command. You can also customize themes as you please.

Theme screenshots:

  • Monokai
monokai
  • Solarized
solarized
  • Tomorrow Night
tomorrownight
  • Larapaste
larapaste

See Theme Usage and Customization for detailed information.

A Note about Twitter API Change

Since Twitter discontinued supporting Stream API, RainbowStream is now using a [Polling Strategy](orakaro#271) that utilizes the home command to poll for your tweets every 90 seconds. This home command is rate limited by 15 times per 15 minutes, so don't run it too frequently to leave space for the polling stream.

Bug and Feature Requests

Found a bug or a feature request? Please create an issue or contact me at @orakaro.

Development

If you want to build a runnable version yourself, follow these simple steps:

  • Create your Twitter Application

  • Get your Twitter application’s API key and secret

  • Create your own Pocket Application (platform: Web)

  • Get your Pocket application’s key

  • Fork this repo and git clone it

  • Create a consumer.py file in the rainbowstream directory containing:

    # Consumer information
    CONSUMER_KEY = 'APIKey' # Your Twitter application's API key
    CONSUMER_SECRET = 'APISecret' # Your Twitter application's API secret
    PCKT_CONSUMER_KEY = 'PocketAPIKey' # Your Pocket application's API key
  • Use pip to install it locally

    # cd to directory which contains setup.py (cloned directory)
    virtualenv venv # Python3 users: use -p to specify python3
    source venv/bin/activate
    pip install -e .
    which rainbowstream # /this-directory/venv/bin/rainbowstream
    # Remove ~/.rainbow_oauth if it exists
    rainbowstream # local version of rainbowstream

Contributing

I appreciate any help and support. Feel free to fork and create a pull request.

License

Rainbow Stream is released under an MIT License. See LICENSE.txt for details.

rainbowstream's People

Contributors

b3yond avatar bartj3 avatar bnrubin avatar bogwonch avatar come-maiz avatar dtvd avatar ellisonleao avatar ericsagnes avatar execjosh avatar frasertweedale avatar greenzapdos avatar jorick avatar koobs avatar lertsenem avatar maxymoos avatar melroy89 avatar motatoes avatar orakaro avatar peterjschroeder avatar polarkac avatar poyynt avatar rc0r avatar richluna avatar slarrain avatar tak-mk avatar tenzer avatar thameera avatar timgates42 avatar ybenjo avatar yhdesai avatar

Watchers

 avatar

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.