fix bug when #client not exist
[rainbowstream.git] / README.rst
index 9603f56..7727f72 100644 (file)
@@ -1,27 +1,79 @@
 Rainbow Stream\r
 --------------\r
 \r
-|Download| |Version|\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 top of `Python Twitter Tool`_ and `Twitter API`_.\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.x .\r
 \r
-Screenshot\r
-----------\r
 \r
-|rainbowstream| |rainbowstreamIOT|\r
+Showcase\r
+--------\r
+\r
+.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/rs.gif\r
+   :alt: gif\r
 \r
 Install\r
 -------\r
 \r
-You will need Python 2.7+ and pip.\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
+Troubleshooting\r
+^^^^^^^^^^^^^^^\r
+\r
+If you use Linux, you might need to install some packages if you haven't already.\r
+For debian-based distros, these can be installed with\r
+\r
+.. code:: bash\r
+\r
+    sudo apt-get install python-dev libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev\r
+\r
+Besides, Mac OSX Maverick with Xcode 5.1 has a well-known `clang unknown argument`_ problem with\r
+the ``Pillow`` package installation - a dependency of this app.\r
+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.\r
+\r
+.. code:: bash\r
+\r
+    export ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future\r
+\r
+If installation in *the quick way* doesn't work:\r
+\r
+-  ``sudo pip uninstall rainbowstream``\r
+-  use the *virtualenv way* above\r
+-  `create an issue`_ and provide:\r
+\r
+  + Your OS\r
+  + Your Python version\r
+\r
 Usage\r
 -----\r
 \r
@@ -32,21 +84,26 @@ Just type
 \r
 .. code:: bash\r
 \r
-    rainbow\r
+    rainbowstream\r
 \r
 and see your stream.\r
 \r
-I shipped a feature which can display **tweet’s images directly on\r
-terminal**. You can try it with:\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
+    rainbowstream -iot # Or rainbowstream --image-on-term\r
+\r
+You also can change the config key ``IMAGE_ON_TERM`` to ``True`` inside the app\r
+to enable above feature,\r
+change ``IMAGE_SHIFT`` to set image's margin (relative to your terminal's width)\r
+or ``IMAGE_MAX_HEIGHT`` to control max height of every image.\r
+(see `config management`_ section).\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
+number to the terminal, the rainbow will start.\r
 \r
 The interactive mode\r
 ^^^^^^^^^^^^^^^^^^^^\r
@@ -59,95 +116,80 @@ 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\r
 suggestion. Input history from previous run is available as well.\r
 \r
-Here is full list of supported command\r
-\r
-**Action Commands**\r
-\r
--  ``trend`` will show global trending topics. ``trend US`` will show\r
-   trends in United States while ``trend JP Tokyo`` will show trends in\r
-   Tokyo/Japan.\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
+Available commands are listed in `Read The Docs`_.\r
 \r
--  ``mentions`` will show mentions timeline. ``mentions 7`` will show 7\r
-   mention tweets.\r
+Theme customization\r
+^^^^^^^^^^^^^^^^^^^\r
 \r
--  ``t the rainbow is god's promise to noah`` will tweet exactly *‘the\r
-   rainbow is god’s promise to noah’*.\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
--  ``rt 12`` will retweet the tweet with *[id=12]*. You can see id of\r
-   each tweet beside the time.\r
+Theme’s screenshot:\r
 \r
--  ``fav 12`` will favorite the tweet with *[id=12]*.\r
+- Monokai\r
 \r
--  ``rep 12 Really`` will reply *‘Really’* to the tweet with *[id=12]*.\r
+.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/Monokai.png\r
+   :alt: monokai\r
 \r
--  ``del 12`` will delete tweet with *[id=12]*.\r
+- Solarized\r
 \r
--  ``ufav 12`` will unfavorite tweet with *[id=12]*.\r
+.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/Solarized.png\r
+   :alt: solarized\r
 \r
--  ``s #noah`` will search the word *‘noah’*. Result will come back with\r
-   highlight.\r
+- Tomorrow Night\r
 \r
--  ``mes @dtvd88 hi`` will send a ``hi`` message to @dtvd88.\r
+.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/TomorrowNight.png\r
+   :alt: tomorrownight\r
 \r
--  ``show image 12`` will show the image in tweet with *[id=12]* in your\r
-   OS’s image viewer.\r
+- Larapaste\r
 \r
--  ``ls fl`` will list all your followers (people who are following\r
-   you).\r
+.. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/larapaste.png\r
+   :alt: larapaste\r
 \r
--  ``ls fr`` will list all your friends (people who you are following).\r
+For detaile information, see `theme usage and customization`_.\r
 \r
--  ``inbox`` will show inbox messages. ``inbox 7`` will show newest 7\r
-   messages.\r
 \r
--  ``sent`` will show sent messages. ``sent 7`` will show newest 7\r
-   messages.\r
+Bug and feature requests\r
+------------------------\r
 \r
--  ``trash 5`` will remove message with *[message\_id=5]*\r
+Found a bug or a feature request ?\r
+Please `create an issue`_ or contact me at `@dtvd88`_\r
 \r
--  ``whois @dtvd88`` will show profile of @dtvd88.\r
+Development\r
+-----------\r
 \r
--  ``fl @dtvd88`` will follow @dtvd88.\r
+If you want to build a runnable version yourself, follow these simple\r
+steps\r
 \r
--  ``ufl @dtvd88`` will unfollow @dtvd88.\r
+-  `Create your own Twitter Application`_\r
+-  Get your Twitter application’s API key and secret\r
+-  Fork this repo and clone in your system.\r
+-  Create a file ``consumer.py`` in `rainbowstream`_ folder with\r
+   following content\r
 \r
--  ``h`` will show the help.\r
+   .. code:: python\r
 \r
--  ``c`` will clear the screen.\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
--  ``q`` will quit.\r
+-  Use pip to install in local\r
 \r
-**Stream Commands**\r
+   .. code:: bash\r
 \r
--  ``switch public #AKB48`` will switch current stream to public stream\r
-   and track keyword ``AKB48``\r
+       # cd to directory which contains setup.py (cloned directory)\r
+       virtualenv venv # Python3 users: use -p to specify python3\r
+       source venv/bin/activate\r
+       pip install -e .\r
+       which rainbowstream # /this-directory/venv/bin/rainbowstream\r
+       # Remove ~/.rainbow_oauth if exists\r
+       rainbowstream # local version of rainbowstream\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
-For example see the screenshot above.\r
-\r
-Bug Report\r
-----------\r
-\r
-Please `create an issue`_ or contact me at\r
-[@dtvd88](https://twitter.com/dtvd88)\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
@@ -159,10 +201,15 @@ details
 .. _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
-\r
-.. |Download| image:: http://img.shields.io/pypi/dm/rainbowstream.svg?style=flat\r
-   :target: https://pypi.python.org/pypi/rainbowstream\r
-.. |Version| image:: http://img.shields.io/pypi/v/rainbowstream.svg?style=flat\r
-   :target: https://pypi.python.org/pypi/rainbowstream\r
-.. |rainbowstream| image:: ./screenshot/RainbowStream.png\r
-.. |rainbowstreamIOT| image:: ./screenshot/RainbowStreamIOT.png\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
+.. _config management: http://rainbowstream.readthedocs.org/en/latest/#config-explanation\r
+.. _clang unknown argument: http://kaspermunck.github.io/2014/03/fixing-clang-error/\r
+.. _Issue #10: https://github.com/DTVD/rainbowstream/issues/10\r