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