Merge pull request #273 from yhdesai/patch-1
[rainbowstream.git] / README.rst
index 0aca91f57ddbb73bc8079c1179cdea01d3d766e0..41d418b3e0a1b6d13cb5346ff79cd7c305281d75 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 is built on the top of `Python Twitter Tool`_ and `Twitter API`_, \r
-can run on Python 2.7.x and 3.4.x .\r
-\r
-\r
-Showcase\r
-----------\r
-Screencast: https://www.youtube.com/watch?v=tykCvPMJq8s\r
-\r
-Screenshot: (click to see)\r
-\r
-.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/RainbowStreamAll.png\r
-   :alt: all\r
-   \r
-Install\r
--------\r
-\r
-The quick way\r
-^^^^^^^^^^^^^\r
-\r
-You will need Python and pip (2.7.x or 3.x).\r
-\r
-.. code:: bash\r
-\r
-    sudo pip install rainbowstream\r
-    # Python 3 users: sudo pip3 install rainbowstream\r
-\r
-\r
-The recommended way\r
-^^^^^^^^^^^^^^^^^^^\r
-\r
-Use `virtualenv`_\r
-\r
-.. code:: bash\r
-\r
-    virtualenv venv\r
-    # Python 3 users : use -p to specify your Python 3 localtion as below\r
-    # virtualenv -p /usr/bin/python3 venv\r
-    source venv/bin/activate\r
-    pip install rainbowstream\r
-\r
-\r
-Usage\r
------\r
-\r
-The stream\r
-^^^^^^^^^^\r
-\r
-Just type\r
-\r
-.. code:: bash\r
-\r
-    rainbowstream\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
-    rainbowstream -iot # Or rainbowstream --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
-Available commands are listed in `Read The Docs`_.\r
-\r
-Theme customization\r
-------------------------\r
-\r
-Rainbow Stream is shipped with some default themes.\r
-You can either change theme by ``theme`` command or create your favorite one.\r
-\r
-Theme’s screenshot:\r
-\r
-- Monokai\r
-\r
-.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/Monokai.png\r
-   :alt: monokai\r
-\r
-- Solarized\r
-\r
-.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/Solarized.png\r
-   :alt: solarized\r
-\r
-- Tomorrow Night\r
-\r
-.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/TomorrowNight.png\r
-   :alt: tomorrownight\r
-\r
-- Larapaste\r
-\r
-.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/larapaste.png\r
-   :alt: larapaste\r
-\r
-\r
-For detaile information, see `theme usage and customization`_.\r
-\r
-Bug and feature requests\r
-------------------------\r
-\r
-Found a bug or a feature request ?\r
-Please `create an issue`_ or contact me at `@dtvd88`_\r
-\r
-Development\r
------------\r
-\r
-If you want to build a runnable version yourself, follow these simple\r
-steps\r
-\r
--  `Create your own Twitter Application`_\r
--  Get your Twitter application’s API key and secret\r
--  Fork github's repo\r
--  Create a file ``consumer.py`` in `rainbowstream`_ folder with\r
-   following content\r
-\r
-   .. code:: python\r
-\r
-       # Consumer information\r
-       CONSUMER_KEY = 'APIKey' # Your Twitter application's API key\r
-       CONSUMER_SECRET = 'APISecret' # Your Twitter application's API secret\r
-\r
--  Use pip to install in local\r
-\r
-   .. code:: bash\r
-\r
-       # cd to directory which contains setup.py\r
-       virtualenv venv # Python3 users: use -p to specify python3\r
-       source venv/bin/activate\r
-       pip install -e .\r
-       pip list | grep rainbowstream # confirm installed version\r
-       rainbowstream # local version of rainbowstream\r
-\r
-\r
-Contributing\r
-------------\r
-I appreciate any help and support. Feel free to `fork`_ and `create a pull request`_.\r
-You will be listed as contributor.\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 API: https://dev.twitter.com/docs/api/1.1\r
-.. _create an issue: https://github.com/DTVD/rainbowstream/issues/new\r
-.. _@dtvd88: https://twitter.com/dtvd88\r
-.. _fork: https://github.com/DTVD/rainbowstream/fork\r
-.. _create a pull request: https://github.com/DTVD/rainbowstream/compare/\r
-.. _Read The Docs: http://rainbowstream.readthedocs.org/en/latest/\r
-.. _config guide: https://github.com/DTVD/rainbowstream/blob/master/theme.md\r
-.. _theme usage and customization: https://github.com/DTVD/rainbowstream/blob/master/theme.md\r
-.. _Create your own Twitter Application: https://apps.twitter.com/app/new\r
-.. _rainbowstream: https://github.com/DTVD/rainbowstream/tree/master/rainbowstream\r
-.. _virtualenv: http://docs.python-guide.org/en/latest/dev/virtualenvs/\r
+A Note about Twitter API Change
+-------------------------------
+
+Heads-up! As Twitter **discontinues supporting** Stream API, RainbowStream's stream function has been stopped working for a long time. But here is a good new, from version 1.5.0 we **switched to a Polling Strategy** that using the `home` command to check for every 90 seconds. Notes that rate limit for `home` command itself is 15 times per 15 minutes, so don't abuse it too much to leave space for the polling stream :)
+
+If you are interested in detail: https://github.com/orakaro/rainbowstream/issues/271
+
+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.  Real-time tweetstream, compose, search, favorite,
+and much more fun directly from terminal.
+
+This package is built on the `Python Twitter Tools`_ and the `Twitter API`_, and runs
+on Python (2.7.x and 3.x).
+
+Home page: https://github.com/orakaro/rainbowstream
+
+Source code: https://github.com/orakaro/rainbowstream
+
+Showcase
+--------
+
+.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/rs.gif
+   :alt: gif
+
+Installation
+------------
+
+The Quick Way
+^^^^^^^^^^^^^
+
+System Python (2.7.x or 3.x)
+
+.. code:: bash
+
+    sudo pip install rainbowstream
+    # Python 3 users: sudo pip3 install rainbowstream
+
+The Recommended Way
+^^^^^^^^^^^^^^^^^^^
+
+`virtualenv`_
+
+.. code:: bash
+
+    virtualenv venv
+    # Python 3 users : use -p to specify your Python 3 location:
+    # virtualenv -p /usr/bin/python3 venv
+    source venv/bin/activate
+    pip install rainbowstream
+
+Troubleshooting
+^^^^^^^^^^^^^^^
+
+Some additional libraries may need to be installed on linux.
+
+For Debian-based distros:
+
+.. 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
+
+Mac OSX Maverick with Xcode 5.1 has a well-known `clang unknown argument`_
+problem with the installation of the ``Pillow`` package—a dependency of this
+app.  Take a look at `Issue #10`_ and let me know if the workaround doesn't work
+for you.
+
+.. code:: bash
+
+    export ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future
+
+If *The Quick Way* doesn't work, then:
+
+-  ``sudo pip uninstall rainbowstream``
+-  Use the *The Recommended Way*
+-  `Create an issue`_ and provide:
+    - Your OS
+    - Your Python version
+
+Usage
+-----
+
+The Stream
+^^^^^^^^^^
+
+Just type ``rainbowstream`` to see your stream.
+
+You can now **display tweeted images directly on the terminal**!  Try it with:
+
+.. code:: bash
+
+    rainbowstream -iot # Or rainbowstream --image-on-term
+
+Set ``IMAGE_ON_TERM`` to ``True`` in your config to to enable above feature,
+change ``IMAGE_SHIFT`` to set image's margin (relative to your terminal's
+width), and ``IMAGE_MAX_HEIGHT`` to control max height of every image (see
+`Config Management`_).
+
+You will be asked for authorization on Twitter the first time you run Rainbow
+Stream.  Just click the "Authorize access" button, paste PIN number to the
+terminal, and the rainbow will start.
+
+You might want to use Rainbow Stream with an **HTTP/SOCKS proxy**.  Proxy
+settings are specified as follows:
+
+.. code:: bash
+
+    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 personal 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 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
+
+.. 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
+
+See `Theme Usage and Customization`_ for detailed information.
+
+
+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 ``git clone`` it
+-  Create a ``consumer.py`` file in the `rainbowstream`_ directory containing:
+
+   .. 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 it locally
+
+   .. 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 it 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 a contributor.
+
+License
+-------
+
+Rainbow Stream is released under an MIT License.  See LICENSE.txt for details.
+
+
+.. _Python Twitter Tools: 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