delete unused
[rainbowstream.git] / docs / index.rst
1 Rainbow Stream
2 --------------
3
4 .. image:: http://img.shields.io/pypi/dm/rainbowstream.svg?style=flat
5 :target: https://pypi.python.org/pypi/rainbowstream
6
7 .. image:: http://img.shields.io/pypi/v/rainbowstream.svg?style=flat
8 :target: https://pypi.python.org/pypi/rainbowstream
9
10 Terminal-based Twitter Client. Realtime tweetstream, compose, search ,
11 favorite … and much more fun directly from terminal.
12
13 This package is built on the top of `Python Twitter Tool`_ and `Twitter API`_,
14 can run on Python 2.7.x and 3.x .
15
16 Install
17 -------
18
19 Prerequisite
20 ^^^^^^^^^^^^
21
22 If you use Linux, you might need to install the ``python-dev`` and ``libsqlite3-dev`` packages if you haven't already.
23 For debian-based distros, these can be installed with
24
25 .. code:: bash
26
27 sudo apt-get install python-dev libsqlite3-dev
28
29
30 Besides, Mac OSX Maverick with Xcode 5.1 has a well-known `clang unknown argument`_ problem with
31 the ``Pillow`` package installation - a dependency of this app.
32 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.
33
34
35 The quick way
36 ^^^^^^^^^^^^^
37
38 You will need Python and pip (2.7.x or 3.x).
39
40 .. code:: bash
41
42 sudo pip install rainbowstream
43 # Python 3 users: sudo pip3 install rainbowstream
44
45 The recommended way
46 ^^^^^^^^^^^^^^^^^^^
47
48 Use `virtualenv`_
49
50 .. code:: bash
51
52 virtualenv venv
53 # Python 3 users : use -p to specify your Python 3 localtion as below
54 # virtualenv -p /usr/bin/python3 venv
55 source venv/bin/activate
56 pip install rainbowstream
57
58
59 Usage
60 -----
61
62 The stream
63 ^^^^^^^^^^
64
65 Just type
66
67 .. code:: bash
68
69 rainbowstream
70
71 and see your stream.
72
73 I shipped a feature which can display **tweet's images directly on terminal**.
74 You can try it with:
75
76 .. code:: bash
77
78 rainbowstream -iot # Or rainbowstream --image-on-term
79
80 You also can change the config key ``IMAGE_ON_TERM`` to ``True`` inside the app
81 to enable above feature (see `config management`_ section).
82
83 In the first time you will be asked for authorization of Rainbow Stream
84 app at Twitter. Just click the “Authorize access” button and paste PIN
85 number to the terminal, the rainbow will start.
86
87 The interactive mode
88 ^^^^^^^^^^^^^^^^^^^^
89
90 While your personal stream is continued, you are also ready to tweet,
91 search, reply, retweet… directly from console. Simply type “h” and hit
92 the Enter key to see the help.
93
94 Input is in interactive mode. It means that you can use arrow key to
95 move up and down history, tab-autocomplete or 2 tab to view available
96 suggestion. Input history from previous run is available as well.
97
98 Here is full list of supported command:
99
100 **Explore Commands**
101
102 - ``trend`` will show global trending topics. ``trend US`` will show
103 trends in United States while ``trend JP Tokyo`` will show trends in
104 Tokyo/Japan.
105
106 - ``home`` will show your timeline. ``home 10`` will print exactly 10
107 tweets.
108
109 - ``mentions`` will show mentions timeline. ``mentions 7`` will show 7
110 mention tweets.
111
112 - ``whois @dtvd88`` will show profile of @dtvd88.
113
114 - ``view @mdo`` will show @mdo ’s timeline. ``view @dmo 9`` will print
115 exactly 9 tweets.
116
117 - ``s noah`` will search the word *‘noah’*. Result will come back with
118 highlight. Search can be performed with or without hashtag.
119
120 **Tweet Commands**
121
122 - ``t the rainbow is god's promise to noah`` will tweet exactly *‘the
123 rainbow is god’s promise to noah’*.
124
125 - ``rt 12`` will retweet the tweet with *[id=12]*. You can see id of
126 each tweet beside the time.
127
128 - ``quote 12`` will quote the tweet with *[id=12]*. If no extra text is added,
129 the quote will be cancelled.
130
131 - ``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.
132
133 - ``rep 12 Really`` will reply *‘Really’* to the tweet with *[id=12]*.
134
135 - ``fav 12`` will favorite the tweet with *[id=12]*.
136
137 - ``ufav 12`` will unfavorite tweet with *[id=12]*.
138
139 - ``del 12`` will delete tweet with *[id=12]*.
140
141 - ``show image 12`` will show the image in tweet with *[id=12]* in your
142 OS’s image viewer.
143
144 - ``open 12`` will open url in tweet with *[id=12]* in your
145 OS’s default browser.
146
147 **Direct Messages Commands**
148
149 - ``inbox`` will show inbox messages. ``inbox 7`` will show newest 7
150 messages.
151
152 - ``sent`` will show sent messages. ``sent 7`` will show newest 7
153 messages.
154
155 - ``mes @dtvd88 hi`` will send a ``hi`` message to @dtvd88.
156
157 - ``trash 5`` will remove message with *[message\_id=5]*
158
159 **Friends and followers Commands**
160
161 - ``ls fl`` will list all your followers (people who are following
162 you).
163
164 - ``ls fr`` will list all your friends (people who you are following).
165
166 - ``fl @dtvd88`` will follow @dtvd88.
167
168 - ``ufl @dtvd88`` will unfollow @dtvd88.
169
170 - ``mute @dtvd88`` will mute @dtvd88.
171
172 - ``unmute @dtvd88`` will unmute @dtvd88.
173
174 - ``muting`` will list muting users.
175
176 - ``block @dtvd88`` will block @dtvd88.
177
178 - ``unblock @dtvd88`` will unblock @dtvd88.
179
180 - ``report @dtvd88`` will report @dtvd88 as a spam account.
181
182 **Twitter list**
183
184 - ``list`` will show all lists you are belong to.
185
186 - ``list home`` will show timeline of list. You will be asked for list's name.
187
188 - ``list all_mem`` will show list's all members.
189
190 - ``list all_sub`` will show list's all subscribers.
191
192 - ``list add`` will add specific person to a list owned by you.
193
194 - ``list rm`` will remove specific person from a list owned by you.
195
196 - ``list sub`` will subscribe you to a specific list.
197
198 - ``list unsub`` will unsubscribe you from a specific list.
199
200 - ``list own`` will show all list owned by you.
201
202 - ``list new`` will create a new list.
203
204 - ``list update`` will update a list owned by you.
205
206 - ``list del`` will delete a list owned by you.
207
208 **Switching Stream Commands**
209
210 - ``switch public #AKB48`` will switch current stream to public stream
211 and track keyword ``AKB48``
212
213 - ``switch public #AKB48 -f`` will do exactly as above but will ask you
214 to provide 2 list:
215
216 ``Only nicks`` decide what nicks will be include only.
217
218 ``Ignore nicks``\ decide what nicks will be exclude.
219
220 - ``switch public #AKB48 -d`` will apply filter to *ONLY\_LIST* and
221 *IGNORE\_LIST*. You can setup 2 list above at ``config.py``
222
223 - ``switch mine`` will switch current stream to personal stream. ``-f``
224 and ``-d`` will work as well.
225
226 **Smart shell**
227
228 - Put anything to terminal, the app will try to eval and display result as a python interactive shell.
229
230 + ``142857*2`` or ``101**3`` like a calculator.
231 + Even ``cal`` will show the calendar for current month.
232 + Put ``order_rainbow('anything')`` or ``random_rainbow('wahahaha')`` will make more fun :)
233
234 **Config Management**
235
236 - ``theme`` will list available themes.
237
238 + ``theme monokai`` will apply *monokai* theme immediately.
239 + Changed theme will be remember as the next time's default theme.
240
241 - ``config`` will list all config key.
242
243 + ``config ASCII_ART`` will output current value of *ASCII_ART* config key.
244 + ``config TREND_MAX default`` will output default value of *TREND_MAX* config key.
245 + ``config CUSTOM_CONFIG drop`` will drop *CUSTOM_CONFIG* config key.
246 + ``config IMAGE_ON_TERM = true`` will set value of *IMAGE_ON_TERM* config key to *True*.
247
248 **Screening Commands**
249
250 - ``h`` will show the help.
251
252 - ``p`` will pause the stream.
253
254 - ``r`` will unpause the stream.
255
256 - ``c`` will clear the screen.
257
258 - ``q`` will quit.
259
260 Available commands are listed in `Read The Docs`_.
261
262 Theme customization
263 ^^^^^^^^^^^^^^^^^^^
264
265 Rainbow Stream is shipped with some default themes.
266 You can either change theme by ``theme`` command or create your favorite one.
267
268 Theme’s screenshot:
269
270 - Monokai
271
272 .. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/Monokai.png
273 :alt: monokai
274
275 - Solarized
276
277 .. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/Solarized.png
278 :alt: solarized
279
280 - Tomorrow Night
281
282 .. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/TomorrowNight.png
283 :alt: tomorrownight
284
285 - Larapaste
286
287 .. figure:: https://raw.githubusercontent.com/DTVD/rainbowstream/master/screenshot/themes/larapaste.png
288 :alt: larapaste
289
290 For detaile information, see `theme usage and customization`_.
291
292 Config explanation
293 ^^^^^^^^^^^^^^^^^^
294
295 Rainbow Stream has a config file located at ``~/.rainbow_config.json``.
296 You can view or set a new value of every config key by ``config`` command (See **Interactive mode** section above).
297
298 - ``THEME``: current theme.
299
300 - ``ASCII_ART``: diplay your twitter name by ascii art at stream begin or not.
301
302 - ``SEARCH_MAX_RECORD``: max tweets can display on 'search' command.
303
304 - ``HOME_TWEET_NUM``: default tweets to display on 'home' command.
305
306 - ``RETWEETS_SHOW_NUM``: default tweets to display on 'allrt' command.
307
308 - ``MESSAGES_DISPLAY``: default messages to display on 'inbox' or 'sent' command.
309
310 - ``TREND_MAX``: default trends to display on 'trend' command.
311
312 - ``LIST_MAX``: default tweets to display on 'list home' command.
313
314 - ``ONLY_LIST``: filter list on 'switch' command.
315
316 - ``IGNORE_LIST``: ignore list on 'switch' command.
317
318 - ``HISTORY_FILENAME``: name of file which stores input history.
319
320 - ``IMAGE_SHIFT``: left and right margin of image in '-iot'/'--image-on-term' mode.
321
322 - ``IMAGE_MAX_HEIGHT``: max height of image in '-iot'/'--image-on-term' mode.
323
324 - ``USER_DOMAIN``: user URL of Twitter Streaming API.
325
326 - ``PUBLIC_DOMAIN``: public URL of Twitter Streaming API.
327
328 - ``SITE_DOMAIN``: site URL of Twitter Streaming API.
329
330 - ``FORMAT``: display format for tweet and message.
331
332 + ``CLOCK_FORMAT``: time format, see `Python's strftime format`_.
333 + ``DISPLAY``: decide how tweet will be printed.
334
335 + ``#name``: Twitter's name
336 + ``#nick``: Twitter's screen name
337 + ``#clock``: Datetime
338 + ``#id``: ID
339 + ``#fav``: favorited symbol
340 + ``#tweet``: Tweet's content
341 + ``#sender_name``: Message's sender name
342 + ``#sender_nick``: Message's sender screen name
343 + ``#to``: '>>>' symbol
344 + ``#recipient_name``: Message's recipient name
345 + ``#recipient_nick``: Message's recipient screen name
346
347
348 Development
349 -----------
350
351 If you want to build a runnable version yourself, follow these simple
352 steps
353
354 - `Create your own Twitter Application`_
355 - Get your Twitter application’s API key and secret
356 - Fork github's repo and clone in your system.
357 - Create a file ``consumer.py`` in ```rainbowstream```_ folder with
358 following content
359
360 .. code:: python
361
362 # Consumer information
363 CONSUMER_KEY = 'APIKey' # Your Twitter application's API key
364 CONSUMER_SECRET = 'APISecret' # Your Twitter application's API secret
365
366 - Use pip to install in local
367
368 .. code:: bash
369
370 # cd to directory which contains setup.py (cloned directory)
371 virtualenv venv # Python3 users: use -p to specify python3
372 source venv/bin/activate
373 pip install -e .
374 which rainbowstream # /this-directory/venv/bin/rainbowstream
375 pip list | grep rainbowstream # rainbowstream (0.x.x, /this-directory)
376 # Remove ~/.rainbow_oauth if exists
377 rainbowstream # local version of rainbowstream
378
379 .. _Create your own Twitter Application: https://apps.twitter.com/app/new
380 .. _``rainbowstream``: https://github.com/DTVD/rainbowstream/tree/master/rainbowstream
381 .. _Python Twitter Tool: http://mike.verdone.ca/twitter/
382 .. _Twitter API: https://dev.twitter.com/docs/api/1.1
383 .. _theme usage and customization: https://github.com/DTVD/rainbowstream/blob/master/theme.md
384 .. _virtualenv: http://docs.python-guide.org/en/latest/dev/virtualenvs/
385 .. _config management: http://rainbowstream.readthedocs.org/en/latest/#the-interactive-mode
386 .. _Python's strftime format: https://docs.python.org/2/library/time.html#time.strftime
387 .. _clang unknown argument: http://kaspermunck.github.io/2014/03/fixing-clang-error/
388 .. _Issue #10: https://github.com/DTVD/rainbowstream/issues/10
389