fix build for clean build environments
[rainbowstream.git] / README.rst
index a6343400d603223d0774d5f4be62543179fa6485..95ab842dbdc2f4eb25613749134c23fb681d88ad 100644 (file)
-Rainbow Stream\r
---------------\r
-\r
-.. image:: http://img.shields.io/pypi/dm/rainbowstream.svg?style=flat\r
-   :target: https://pypi.python.org/pypi/rainbowstream\r
-\r
-.. image:: http://img.shields.io/pypi/v/rainbowstream.svg?style=flat\r
-   :target: https://pypi.python.org/pypi/rainbowstream\r
-\r
-Terminal-based Twitter Client. Realtime tweetstream, compose, search ,\r
-favorite … and much more fun directly from terminal.\r
-\r
-This package build on the top of `Python Twitter Tool`_ and `Twitter\r
-Streaming API`_ and inspired by `EarthQuake`_\r
-\r
-Screenshot\r
-----------\r
-\r
-.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/RainbowStream.png\r
-   :alt: v0.0.1\r
-\r
-.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/RainbowStreamIOT.png\r
-   :alt: v0.0.3\r
-\r
-Install\r
--------\r
-\r
-You will need Python 2.7+ and pip.\r
-\r
-.. code:: bash\r
-\r
-    pip install rainbowstream\r
-\r
-Usage\r
------\r
-\r
-The stream\r
-^^^^^^^^^^\r
-\r
-Just type\r
-\r
-.. code:: bash\r
-\r
-    rainbow\r
-\r
-and see your stream.\r
-\r
-I shipped a feature which can display **tweet's images directly on terminal**.\r
-You can try it with:\r
-\r
-.. code:: bash\r
-\r
-    rainbow -iot # Or rainbow --image-on-term\r
-\r
-In the first time you will be asked for authorization of Rainbow Stream\r
-app at Twitter. Just click the “Authorize access” button and paste PIN\r
-number to the terminal, the rainbow will start.\r
-\r
-The interactive mode\r
-^^^^^^^^^^^^^^^^^^^^\r
-\r
-While your personal stream is continued, you are also ready to tweet,\r
-search, reply, retweet… directly from console. Simply type “h” and hit\r
-the Enter key to see the help.\r
-\r
-Input is in interactive mode. It means that you can use arrow key to\r
-move up and down history, tab-autocomplete or 2 tab to view available\r
-suggestion. Input history from previous run is available as well.\r
-\r
-Here is full list of supported command\r
-\r
-**Stream Command**\r
-\r
--  ``switch public #AKB48`` will switch current stream to public stream and track keyword ``AKB48``\r
-\r
--  ``switch public #AKB48 -f`` will do exactly as above but will ask you\r
-   to provide 2 list:\r
-\r
-   ``Only nicks`` decide what nicks will be include only.\r
-\r
-   ``Ignore nicks`` decide what nicks will be exclude.\r
-\r
--  ``switch public #AKB48 -d`` will apply filter to *ONLY\_LIST* and\r
-   *IGNORE\_LIST*. You can setup 2 list above at ``config.py``\r
-\r
--  ``switch mine`` will switch current stream to personal stream. ``-f``\r
-   and ``-d`` will work as well.\r
-\r
-**Action Command**\r
-\r
--  ``home`` will show your timeline. ``home 10`` will print exactly 10\r
-   tweets.\r
-\r
--  ``view @mdo`` will show @mdo ’s timeline. ``view @dmo 9`` will print\r
-   exactly 9 tweets.\r
-\r
--  ``mentions`` will show mentions timeline. ``mentions 7`` will show\r
-   7 mention tweets.\r
-\r
--  ``t the rainbow is god's promise to noah`` will tweet exactly *‘the\r
-   rainbow is god’s promise to noah’*\r
-\r
--  ``rt 12`` will retweet the tweet with *[id=12]*. You can see id of\r
-   each tweet beside the time.\r
-\r
--  ``fav 12`` will favorite the tweet with *[id=12]*.\r
-\r
--  ``rep 12 Really`` will reply *‘Really’* to the tweet with *[id=12]*.\r
-\r
--  ``del 12`` will delete tweet with *[id=12]*.\r
-\r
--  ``ufav 12`` will unfavorite tweet with *[id=12]*.\r
-\r
--  ``s #noah`` will search the word *‘noah’*. Result will come back\r
-   with highlight.\r
-\r
--  ``show image 12`` will show the image in tweet with *[id=12]* in your OS's image viewer.\r
-\r
--  ``ls fl`` will list all your followers (people who are following you).\r
-\r
--  ``ls fr`` will list all your friends (people who you are following).\r
-\r
--  ``inbox`` will show inbox messages. ``inbox 7`` will show newest\r
-   7 message.\r
-\r
--  ``sent`` will show sent messages. ``sent 7`` will show newest\r
-   7 message.\r
-\r
--  ``trash 5`` will remove message with *[message_id=5]*.\r
-\r
--  ``whois @dtvd88`` will show profile of @dtvd88.\r
-\r
--  ``fl @dtvd88`` will follow @dtvd88.\r
-\r
--  ``ufl @dtvd88`` will unfollow @dtvd88.\r
-\r
--  ``h`` will show the help.\r
-\r
--  ``c`` will clear the screen.\r
-\r
--  ``q`` will quit.\r
-\r
-For example see the screenshot above.\r
-\r
-Bug Report\r
-----------\r
-\r
-Please `create an issue`_ or contact me at `@dtvd88`_\r
-\r
-License\r
--------\r
-\r
-Rainbow Stream are released under an MIT License. See LICENSE.txt for\r
-details\r
-\r
-\r
-.. _Python Twitter Tool: http://mike.verdone.ca/twitter/\r
-.. _Twitter Streaming API: https://dev.twitter.com/docs/api/streaming\r
-.. _EarthQuake: https://github.com/jugyo/earthquake\r
-.. _create an issue: https://github.com/DTVD/rainbowstream/issues/new\r
-.. _@dtvd88: https://twitter.com/dtvd88\r
+Rainbow Stream
+--------------
+
+.. 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-square
+   :target: https://pypi.python.org/pypi/rainbowstream
+
+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`_,
+can run on Python 2.7.x and 3.x .
+
+Home page : http://www.rainbowstream.org/
+
+Source code : https://github.com/DTVD/rainbowstream
+
+Showcase
+--------
+
+.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/rs.gif
+   :alt: gif
+
+Install
+-------
+
+The quick way
+^^^^^^^^^^^^^
+
+You will need Python and pip (2.7.x or 3.x).
+
+.. code:: bash
+
+    sudo pip install rainbowstream
+    # Python 3 users: sudo pip3 install rainbowstream
+
+
+The recommended way
+^^^^^^^^^^^^^^^^^^^
+
+Use `virtualenv`_
+
+.. code:: bash
+
+    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
+
+Troubleshooting
+^^^^^^^^^^^^^^^
+
+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
+
+    sudo apt-get install python-dev libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev
+
+For CentOS:
+
+.. code:: bash
+
+    sudo yum install python-devel libjpeg-devel
+
+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.
+
+.. code:: bash
+
+    export ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future
+
+If installation in *the quick way* doesn't work:
+
+-  ``sudo pip uninstall rainbowstream``
+-  use the *virtualenv way* above
+-  `create an issue`_ and provide:
+
+  + Your OS
+  + Your Python version
+
+Usage
+-----
+
+The stream
+^^^^^^^^^^
+
+Just type
+
+.. code:: bash
+
+    rainbowstream
+
+and see your stream.
+
+I shipped a feature which can display **tweet's images directly on terminal**.
+You can try it with:
+
+.. code:: bash
+
+    rainbowstream -iot # Or rainbowstream --image-on-term
+
+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).
+
+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.
+
+You might want to use rainbowstream via an **HTTP/SOCKS proxy**. Proxy settings are
+provided as follows:
+
+.. code:: bash
+
+    rainbowstream --proxy-host localhost --proxy-port 1337 --proxy-type HTTP
+    # or using the short form:
+    rainbowstream -ph localhost -pp 1337 -pt HTTP
+
+Both ``--proxy-port`` and ``--proxy-type`` can be omitted. In this case default
+proxy port ``8080`` and default proxy type ``SOCKS5`` are used.
+
+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.
+
+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.
+
+Available commands are listed in `Read The Docs`_.
+
+Theme customization
+^^^^^^^^^^^^^^^^^^^
+
+Rainbow Stream is shipped with some default themes.
+You can either change theme by ``theme`` command or create your favorite one.
+
+Theme’s screenshot:
+
+- Monokai
+
+.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/Monokai.png
+   :alt: monokai
+
+- Solarized
+
+.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/Solarized.png
+   :alt: solarized
+
+- Tomorrow Night
+
+.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/TomorrowNight.png
+   :alt: tomorrownight
+
+- Larapaste
+
+.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/larapaste.png
+   :alt: larapaste
+
+For detail information, see `theme usage and customization`_.
+
+
+Bug and feature requests
+------------------------
+
+Found a bug or a feature request ?
+Please `create an issue`_ or contact me at `@dtvd88`_
+
+Development
+-----------
+
+If you want to build a runnable version yourself, follow these simple
+steps
+
+- `Create your own 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 clone in your system.
+-  Create a file ``consumer.py`` in `rainbowstream`_ folder with
+   following content
+
+   .. code:: python
+
+       # 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 in local
+
+   .. code:: bash
+
+       # 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
+
+
+Contributing
+------------
+I appreciate any help and support. Feel free to `fork`_ and `create a pull request`_.
+You will be listed as contributor.
+
+License
+-------
+
+Rainbow Stream are released under an MIT License. See LICENSE.txt for
+details
+
+
+.. _python twitter tool: http://mike.verdone.ca/twitter/
+.. _Twitter API: https://dev.twitter.com/docs/api/1.1
+.. _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
+.. _Create your own Pocket Application: https://getpocket.com/developer/apps/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