X-Git-Url: https://vcs.fsf.org/?p=rainbowstream.git;a=blobdiff_plain;f=README.rst;h=ddcdf3051799e7d847eb49c0d007d267b1a447b9;hp=6537e3b04a1cd559301b0d671cdb88888b2d2e49;hb=27c289e939388189d9c2ce2f2c9c229eb5634392;hpb=76cfdd25baaedb24b5663203409fcfa402b97a54 diff --git a/README.rst b/README.rst index 6537e3b..ddcdf30 100644 --- a/README.rst +++ b/README.rst @@ -1,195 +1,214 @@ Rainbow Stream -------------- -.. image:: http://img.shields.io/pypi/dm/rainbowstream.svg?style=flat - :target: https://pypi.python.org/pypi/rainbowstream +.. image:: http://img.shields.io/pypi/l/rainbowstream.svg?style=flat-square + :target: https://github.com/DTVD/rainbowstream/blob/master/LICENSE.txt -.. image:: http://img.shields.io/pypi/v/rainbowstream.svg?style=flat +.. image:: http://img.shields.io/pypi/v/rainbowstream.svg?style=flat-square :target: https://pypi.python.org/pypi/rainbowstream -Terminal-based Twitter Client. Realtime tweetstream, compose, search , +Terminal-based Twitter Client. Realtime tweetstream, compose, search, favorite … and much more fun directly from terminal. -This package is built on the top of `Python Twitter Tool`_ and `Twitter API`_. +This package is built on the top of `Python Twitter Tool`_ and `Twitter API`_, +can run on Python 2.7.x and 3.x . -Showcase ----------- -Screencast: https://www.youtube.com/watch?v=tykCvPMJq8s +Home page : http://www.rainbowstream.org/ -Screenshot: +Source code : https://github.com/DTVD/rainbowstream -.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/RainbowStream.png - :alt: rainbowstream +Showcase +-------- -.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/RainbowStreamIOT.png - :alt: rainbowstreamIOT +.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/rs.gif + :alt: gif Install ------- -You will need Python 2.7+ and pip. +The quick way +^^^^^^^^^^^^^ + +You will need Python and pip (2.7.x or 3.x). .. code:: bash - pip install rainbowstream + sudo pip install rainbowstream + # Python 3 users: sudo pip3 install rainbowstream -Usage ------ -The stream -^^^^^^^^^^ +The recommended way +^^^^^^^^^^^^^^^^^^^ -Just type +Use `virtualenv`_ .. code:: bash - rainbow + virtualenv venv + # Python 3 users : use -p to specify your Python 3 location as below + # virtualenv -p /usr/bin/python3 venv + source venv/bin/activate + pip install rainbowstream -and see your stream. +Troubleshooting +^^^^^^^^^^^^^^^ -I shipped a feature which can display **tweet's images directly on terminal**. -You can try it with: +If you use Linux, you might need to install some packages if you haven't already. +For debian-based distros, these can be installed with .. code:: bash - rainbow -iot # Or rainbow --image-on-term + sudo apt-get install python-dev libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev -In the first time you will be asked for authorization of Rainbow Stream -app at Twitter. Just click the “Authorize access” button and paste PIN -number to the terminal, the rainbow will start. - -The interactive mode -^^^^^^^^^^^^^^^^^^^^ - -While your personal stream is continued, you are also ready to tweet, -search, reply, retweet… directly from console. Simply type “h” and hit -the Enter key to see the help. +For CentOS: -Input is in interactive mode. It means that you can use arrow key to -move up and down history, tab-autocomplete or 2 tab to view available -suggestion. Input history from previous run is available as well. +.. code:: bash -Here is full list of supported command: + sudo yum install python-devel libjpeg-devel -**Explore Commands** +Besides, Mac OSX Maverick with Xcode 5.1 has a well-known `clang unknown argument`_ problem with +the ``Pillow`` package installation - a dependency of this app. +If you are in this case, I recommend taking a look at `Issue #10`_ and let me know if this workaround doesn't work for you. -- ``trend`` will show global trending topics. ``trend US`` will show - trends in United States while ``trend JP Tokyo`` will show trends in - Tokyo/Japan. +.. code:: bash -- ``home`` will show your timeline. ``home 10`` will print exactly 10 - tweets. + export ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future -- ``mentions`` will show mentions timeline. ``mentions 7`` will show 7 - mention tweets. +If installation in *the quick way* doesn't work: -- ``whois @dtvd88`` will show profile of @dtvd88. +- ``sudo pip uninstall rainbowstream`` +- use the *virtualenv way* above +- `create an issue`_ and provide: -- ``view @mdo`` will show @mdo ’s timeline. ``view @dmo 9`` will print - exactly 9 tweets. + + Your OS + + Your Python version -- ``s #noah`` will search the word *‘noah’*. Result will come back with - highlight. +Usage +----- -**Tweet Commands** +The stream +^^^^^^^^^^ -- ``t the rainbow is god's promise to noah`` will tweet exactly *‘the - rainbow is god’s promise to noah’*. +Just type -- ``rt 12`` will retweet the tweet with *[id=12]*. You can see id of - each tweet beside the time. +.. code:: bash -- ``rep 12 Really`` will reply *‘Really’* to the tweet with *[id=12]*. + rainbowstream -- ``fav 12`` will favorite the tweet with *[id=12]*. +and see your stream. -- ``ufav 12`` will unfavorite tweet with *[id=12]*. +I shipped a feature which can display **tweet's images directly on terminal**. +You can try it with: -- ``del 12`` will delete tweet with *[id=12]*. +.. code:: bash -- ``show image 12`` will show the image in tweet with *[id=12]* in your - OS’s image viewer. + rainbowstream -iot # Or rainbowstream --image-on-term -**Direct Messages Commands** +You also can change the config key ``IMAGE_ON_TERM`` to ``True`` inside the app +to enable above feature, +change ``IMAGE_SHIFT`` to set image's margin (relative to your terminal's width) +or ``IMAGE_MAX_HEIGHT`` to control max height of every image. +(see `config management`_ section). -- ``inbox`` will show inbox messages. ``inbox 7`` will show newest 7 - messages. +In the first time you will be asked for authorization of Rainbow Stream +app at Twitter. Just click the “Authorize access” button and paste PIN +number to the terminal, the rainbow will start. -- ``sent`` will show sent messages. ``sent 7`` will show newest 7 - messages. +You might want to use rainbowstream via an **HTTP/SOCKS proxy**. Proxy settings are +provided as follows: -- ``mes @dtvd88 hi`` will send a ``hi`` message to @dtvd88. +.. code:: bash -- ``trash 5`` will remove message with *[message\_id=5]* + rainbowstream --proxy-host localhost --proxy-port 1337 --proxy-type HTTP + # or using the short form: + rainbowstream -ph localhost -pp 1337 -pt HTTP -**Friends and followers Commands** +Both ``--proxy-port`` and ``--proxy-type`` can be omitted. In this case default +proxy port ``8080`` and default proxy type ``SOCKS5`` are used. -- ``ls fl`` will list all your followers (people who are following - you). +The interactive mode +^^^^^^^^^^^^^^^^^^^^ -- ``ls fr`` will list all your friends (people who you are following). +While your personal stream is continued, you are also ready to tweet, +search, reply, retweet… directly from console. Simply type “h” and hit +the Enter key to see the help. -- ``fl @dtvd88`` will follow @dtvd88. +Input is in interactive mode. It means that you can use arrow key to +move up and down history, tab-autocomplete or 2 tab to view available +suggestion. Input history from previous run is available as well. -- ``ufl @dtvd88`` will unfollow @dtvd88. +Available commands are listed in `Read The Docs`_. -- ``mute @dtvd88`` will mute @dtvd88. +Theme customization +^^^^^^^^^^^^^^^^^^^ -- ``unmute @dtvd88`` will unmute @dtvd88. +Rainbow Stream is shipped with some default themes. +You can either change theme by ``theme`` command or create your favorite one. -- ``muting`` will list muting users. +Theme’s screenshot: -- ``block @dtvd88`` will block @dtvd88. +- Monokai -- ``unblock @dtvd88`` will unblock @dtvd88. +.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/Monokai.png + :alt: monokai -- ``report @dtvd88`` will report @dtvd88 as a spam account. +- Solarized -**Screening Commands** +.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/Solarized.png + :alt: solarized -- ``h`` will show the help. +- Tomorrow Night -- ``c`` will clear the screen. +.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/TomorrowNight.png + :alt: tomorrownight -- ``q`` will quit. +- Larapaste -**Switching Stream Commands** +.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/larapaste.png + :alt: larapaste -- ``switch public #AKB48`` will switch current stream to public stream - and track keyword ``AKB48`` +For detail information, see `theme usage and customization`_. -- ``switch public #AKB48 -f`` will do exactly as above but will ask you - to provide 2 list: - ``Only nicks`` decide what nicks will be include only. +Bug and feature requests +------------------------ - ``Ignore nicks``\ decide what nicks will be exclude. +Found a bug or a feature request ? +Please `create an issue`_ or contact me at `@dtvd88`_ -- ``switch public #AKB48 -d`` will apply filter to *ONLY\_LIST* and - *IGNORE\_LIST*. You can setup 2 list above at ``config.py`` +Development +----------- -- ``switch mine`` will switch current stream to personal stream. ``-f`` - and ``-d`` will work as well. +If you want to build a runnable version yourself, follow these simple +steps -**Smart shell** +- `Create your own Twitter Application`_ +- Get your Twitter application’s API key and secret +- Fork this repo and clone in your system. +- Create a file ``consumer.py`` in `rainbowstream`_ folder with + following content -- Put anything to terminal, the app will try to eval and display result as a python interactive shell. + .. code:: python - + ``142857*2`` or ``101**3`` like a calculator. - + Even ``cal`` will show the calendar for current month. - + Put ``order_rainbow('anything')`` or ``random_rainow('wahahaha')`` will make more fun :) + # Consumer information + CONSUMER_KEY = 'APIKey' # Your Twitter application's API key + CONSUMER_SECRET = 'APISecret' # Your Twitter application's API secret +- Use pip to install in local -For example see the screenshot above. + .. code:: bash -Bug and feature requests ----------- + # 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 exists + rainbowstream # local version of rainbowstream -Found a bug or a feature request ? -Please `create an issue`_ or contact me at `@dtvd88`_ Contributing ----------- +------------ I appreciate any help and support. Feel free to `fork`_ and `create a pull request`_. You will be listed as contributor. @@ -202,8 +221,16 @@ details .. _Python Twitter Tool: http://mike.verdone.ca/twitter/ .. _Twitter API: https://dev.twitter.com/docs/api/1.1 -.. _EarthQuake: https://github.com/jugyo/earthquake .. _create an issue: https://github.com/DTVD/rainbowstream/issues/new .. _@dtvd88: https://twitter.com/dtvd88 .. _fork: https://github.com/DTVD/rainbowstream/fork .. _create a pull request: https://github.com/DTVD/rainbowstream/compare/ +.. _Read The Docs: http://rainbowstream.readthedocs.org/en/latest/ +.. _config guide: https://github.com/DTVD/rainbowstream/blob/master/theme.md +.. _theme usage and customization: https://github.com/DTVD/rainbowstream/blob/master/theme.md +.. _Create your own Twitter Application: https://apps.twitter.com/app/new +.. _rainbowstream: https://github.com/DTVD/rainbowstream/tree/master/rainbowstream +.. _virtualenv: http://docs.python-guide.org/en/latest/dev/virtualenvs/ +.. _config management: http://rainbowstream.readthedocs.org/en/latest/#config-explanation +.. _clang unknown argument: http://kaspermunck.github.io/2014/03/fixing-clang-error/ +.. _Issue #10: https://github.com/DTVD/rainbowstream/issues/10