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
+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
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
+The recommended way\r
+^^^^^^^^^^^^^^^^^^^\r
\r
-or try with a virtualenv\r
+Use `virtualenv`_\r
\r
.. code:: bash\r
\r
- sudo pip install virtualenv # skip if you already have virtualenv\r
virtualenv venv\r
- source venv/bin/activate # use the brand new virtualenv.\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 the python-dev package 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\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 take a look at `Issue #10`_ and let me know if the workaround doesn't work for you.\r
+\r
Usage\r
-----\r
\r
\r
.. code:: bash\r
\r
- rainbow\r
+ rainbowstream\r
\r
and see your stream.\r
\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
- ``view @mdo`` will show @mdo ’s timeline. ``view @dmo 9`` will print\r
exactly 9 tweets.\r
\r
-- ``s #noah`` will search the word *‘noah’*. Result will come back with\r
- highlight.\r
+- ``s noah`` will search the word *‘noah’*. Result will come back with\r
+ highlight. Search can be performed with or without hashtag.\r
\r
**Tweet Commands**\r
\r
- ``rt 12`` will retweet the tweet with *[id=12]*. You can see id of\r
each tweet beside the time.\r
\r
+- ``quote 12`` will quote the tweet with *[id=12]*. If no extra text is added,\r
+ the quote will be cancelled.\r
+\r
- ``allrt 12 20`` will list 20 newest retweets of the tweet with *[id=12]*. If the number of retweets is not specified, 5 newest retweets will be listed instead.\r
\r
- ``rep 12 Really`` will reply *‘Really’* to the tweet with *[id=12]*.\r
- ``show image 12`` will show the image in tweet with *[id=12]* in your\r
OS’s image viewer.\r
\r
+- ``open 12`` will open url in tweet with *[id=12]* in your\r
+ OS’s default browser.\r
+\r
**Direct Messages Commands**\r
\r
- ``inbox`` will show inbox messages. ``inbox 7`` will show newest 7\r
\r
- ``report @dtvd88`` will report @dtvd88 as a spam account.\r
\r
+**Twitter list**\r
+\r
+- ``list`` will show all lists you are belong to.\r
+\r
+- ``list home`` will show timeline of list. You will be asked for list's name.\r
+\r
+- ``list all_mem`` will show list's all members.\r
+\r
+- ``list all_sub`` will show list's all subscribers.\r
+\r
+- ``list add`` will add specific person to a list owned by you.\r
+\r
+- ``list rm`` will remove specific person from a list owned by you.\r
+\r
+- ``list sub`` will subscribe you to a specific list.\r
+\r
+- ``list unsub`` will unsubscribe you from a specific list.\r
+\r
+- ``list own`` will show all list owned by you.\r
+\r
+- ``list new`` will create a new list.\r
+\r
+- ``list update`` will update a list owned by you.\r
+\r
+- ``list del`` will delete a list owned by you.\r
+\r
**Switching Stream Commands**\r
\r
- ``switch public #AKB48`` will switch current stream to public stream\r
+ Even ``cal`` will show the calendar for current month.\r
+ Put ``order_rainbow('anything')`` or ``random_rainbow('wahahaha')`` will make more fun :)\r
\r
+**Config Management**\r
+\r
+- ``theme`` will list available themes.\r
+\r
+ + ``theme monokai`` will apply *monokai* theme immediately.\r
+ + Changed theme will be remember as the next time's default theme.\r
+\r
+- ``config`` will list all config key.\r
+\r
+ + ``config ASCII_ART`` will output current value of *ASCII_ART* config key.\r
+ + ``config TREND_MAX default`` will output default value of *TREND_MAX* config key.\r
+ + ``config CUSTOM_CONFIG drop`` will drop *CUSTOM_CONFIG* config key.\r
+ + ``config IMAGE_ON_TERM = true`` will set value of *IMAGE_ON_TERM* config key to *True*.\r
+\r
**Screening Commands**\r
\r
-- ``theme`` will list available themes. \r
- \r
- + ``theme monokai`` will apply *monokai* theme immedaitely.\r
- + ``theme current_as_default`` will remember current theme as next time default.\r
- \r
- ``h`` will show the help.\r
\r
+- ``p`` will pause the stream.\r
+\r
+- ``r`` will unpause the stream.\r
+\r
- ``c`` will clear the screen.\r
\r
- ``q`` will quit.\r
\r
-Available commands are listed in `Read The Docs`_.\r
-\r
Theme customization\r
^^^^^^^^^^^^^^^^^^^\r
\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
For detaile information, see `theme usage and customization`_.\r
\r
+Config explanation\r
+^^^^^^^^^^^^^^^^^^\r
+\r
+Rainbow Stream has a config file located at ``~/.rainbow_config.json``.\r
+You can view or set a new value of every config key by ``config`` command (See **Interactive mode** section above).\r
+\r
+- ``HEARTBEAT_TIMEOUT``: after this timeout (count by minutes), the stream will automatically hangup.\r
+\r
+- ``IMAGE_ON_TERM``: display tweet's image directly on terminal.\r
+\r
+- ``THEME``: current theme.\r
+\r
+- ``ASCII_ART``: diplay your twitter name by ascii art at stream begin or not.\r
+\r
+- ``HIDE_PROMPT``: hide prompt after receiving a tweet or not.\r
+\r
+- ``PREFIX``: display string of prompt.\r
+\r
+- ``SEARCH_MAX_RECORD``: max tweets can display on 'search' command.\r
+\r
+- ``HOME_TWEET_NUM``: default tweets to display on 'home' command.\r
+\r
+- ``RETWEETS_SHOW_NUM``: default tweets to display on 'allrt' command.\r
+\r
+- ``MESSAGES_DISPLAY``: default messages to display on 'inbox' or 'sent' command.\r
+\r
+- ``TREND_MAX``: default trends to display on 'trend' command.\r
+\r
+- ``LIST_MAX``: default tweets to display on 'list home' command.\r
+\r
+- ``ONLY_LIST``: filter list on 'switch' command.\r
+\r
+- ``IGNORE_LIST``: ignore list on 'switch' command.\r
+\r
+- ``HISTORY_FILENAME``: name of file which stores input history.\r
\r
+- ``IMAGE_SHIFT``: left and right margin of image in '-iot'/'--image-on-term' mode.\r
+\r
+- ``IMAGE_MAX_HEIGHT``: max height of image in '-iot'/'--image-on-term' mode.\r
+\r
+- ``USER_DOMAIN``: user URL of Twitter Streaming API.\r
+\r
+- ``PUBLIC_DOMAIN``: public URL of Twitter Streaming API.\r
+\r
+- ``SITE_DOMAIN``: site URL of Twitter Streaming API.\r
+\r
+- ``FORMAT``: display format for tweet and message.\r
+\r
+ + ``CLOCK_FORMAT``: time format, see `Python's strftime format`_.\r
+ + ``DISPLAY``: decide how tweet will be printed.\r
+\r
+ + ``#name``: Twitter's name\r
+ + ``#nick``: Twitter's screen name\r
+ + ``#clock``: Datetime\r
+ + ``#rt_count``: retweets count\r
+ + ``#fa_count``: favorites count\r
+ + ``#id``: ID\r
+ + ``#fav``: favorited symbol\r
+ + ``#fav``: favorited symbol\r
+ + ``#tweet``: Tweet's content\r
+ + ``#sender_name``: Message's sender name\r
+ + ``#sender_nick``: Message's sender screen name\r
+ + ``#to``: '>>>' symbol\r
+ + ``#recipient_name``: Message's recipient name\r
+ + ``#recipient_nick``: Message's recipient screen name\r
+\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 and clone in your system.\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 (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
+ pip list | grep rainbowstream # rainbowstream (0.x.x, /this-directory)\r
+ # Remove ~/.rainbow_oauth if exists\r
+ rainbowstream # local version of rainbowstream\r
+\r
+.. _Create your own Twitter Application: https://apps.twitter.com/app/new\r
+.. _``rainbowstream``: https://github.com/DTVD/rainbowstream/tree/master/rainbowstream\r
.. _Python Twitter Tool: http://mike.verdone.ca/twitter/\r
.. _Twitter API: https://dev.twitter.com/docs/api/1.1\r
.. _theme usage and customization: https://github.com/DTVD/rainbowstream/blob/master/theme.md\r
+.. _virtualenv: http://docs.python-guide.org/en/latest/dev/virtualenvs/\r
+.. _config management: http://rainbowstream.readthedocs.org/en/latest/#config-explanation\r
+.. _Python's strftime format: https://docs.python.org/2/library/time.html#time.strftime\r
+.. _clang unknown argument: http://kaspermunck.github.io/2014/03/fixing-clang-error/\r
+.. _Issue #10: https://github.com/DTVD/rainbowstream/issues/10\r
+\r