theme chosen
[rainbowstream.git] / README.md
1 ## Rainbow Stream
2
3 [![Download](http://img.shields.io/pypi/dm/rainbowstream.svg?style=flat)](https://pypi.python.org/pypi/rainbowstream)
4 [![Version](http://img.shields.io/pypi/v/rainbowstream.svg?style=flat)](https://pypi.python.org/pypi/rainbowstream)
5
6 Terminal-based Twitter Client.
7 Realtime tweetstream, compose, search , favorite ... and much more fun directly from terminal.
8
9 This package is built on top of [Python Twitter Tool](http://mike.verdone.ca/twitter/) and [Twitter API](https://dev.twitter.com/docs/api/1.1).
10
11 ## Showcase
12 Screencast: 
13 https://www.youtube.com/watch?v=tykCvPMJq8s
14 <br>
15
16 Screenshot:
17 ![rainbowstream](./screenshot/RainbowStream.png)
18 ![rainbowstreamIOT](./screenshot/RainbowStreamIOT.png)
19
20
21 ## Install
22 You will need Python 2.7+ and pip.
23
24 ```bash
25 sudo pip install rainbowstream
26 ```
27
28 or try with a virtualenv
29 ```bash
30 sudo pip install virtualenv # skip if you already have virtualenv
31 virtualenv venv 
32 source venv/bin/activate # use the brand new virtualenv.
33 pip install rainbowstream
34 ```
35
36
37 ## Usage
38 #### The stream
39 Just type
40 ```bash
41 rainbow
42 ```
43 and see your stream.
44
45 I shipped a feature which can display **tweet's images directly on terminal**.
46 You can try it with:
47 ```bash
48 rainbow -iot # Or rainbow --image-on-term
49 ```
50
51 In the first time you will be asked for authorization of Rainbow Stream app at Twitter.
52 Just click the "Authorize access" button and paste PIN number to the terminal, the rainbow will start.
53
54 #### The interactive mode
55 While your personal stream is continued, you are also ready to tweet, search, reply, retweet... directly from console.
56 Simply type "h" and hit the Enter key to see the help.
57
58 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 suggestion. Input history from previous run is available as well.
59
60 Here is full list of supported command
61
62 __Explore Commands__
63
64 * `trend` will show global trending topics. `trend US` will show trends in United States while `trend JP Tokyo` will show trends in Tokyo/Japan.
65
66 * `home` will show your timeline. `home 10` will print exactly 10 tweets.
67
68 * `mentions` will show mentions timeline. `mentions 7` will show 7 mention tweets.
69
70 * `whois @dtvd88` will show profile of @dtvd88.
71
72 * `view @mdo` will show @mdo 's timeline. `view @dmo 9` will print exactly 9 tweets.
73
74 * `s #noah` will search the word *'noah'*. Result will come back with highlight.
75
76 __Tweet Commands__
77
78 * `t the rainbow is god's promise to noah` will tweet exactly *'the rainbow is god's promise to noah'*.
79
80 * `rt 12` will retweet the tweet with *[id=12]*. You can see id of each tweet beside the time.
81  
82 * `allrt 12 20` will list 20 newest retweets of the tweet with *[id=12]*. 
83 If the number of retweets is not specified, 5 newest retweets will be listed instead.
84
85 * `rep 12 Really` will reply *'Really'* to the tweet with *[id=12]*.
86
87 * `fav 12` will favorite the tweet with *[id=12]*.
88
89 * `ufav 12` will unfavorite tweet with *[id=12]*.
90
91 * `del 12` will delete tweet with *[id=12]*.
92
93 * `show image 12` will show the image in tweet with *[id=12]* in your OS's image viewer.
94
95 __Direct Messages Commands__
96
97 * `inbox` will show inbox messages. `inbox 7` will show newest 7 messages.
98
99 * `sent` will show sent messages. `sent 7` will show newest 7 messages.
100
101 * `mes @dtvd88 hi` will send a `hi` message to @dtvd88.
102
103 * `trash 5` will remove message with *[message_id=5]*
104
105 __Friends and followers Commands__
106
107 * `ls fl` will list all your followers (people who are following you).
108
109 * `ls fr` will list all your friends (people who you are following).
110
111 * `fl @dtvd88` will follow @dtvd88.
112
113 * `ufl @dtvd88` will unfollow @dtvd88.
114
115 * `mute @dtvd88` will mute @dtvd88.
116
117 * `unmute @dtvd88` will unmute @dtvd88.
118
119 * `muting` will list muting users.
120
121 * `block @dtvd88` will block @dtvd88.
122
123 * `unblock @dtvd88` will unblock @dtvd88.
124
125 * `report @dtvd88` will report @dtvd88 as a spam account.
126
127 __Switching Stream Commands__
128
129 * `switch public #AKB48` will switch current stream to public stream and track keyword `AKB48`
130
131 * `switch public #AKB48 -f ` will do exactly as above but will ask you to provide 2 list:
132
133     `Only nicks` decide what nicks will be include only.
134
135     `Ignore nicks`decide what nicks will be exclude.
136
137 * `switch public #AKB48 -d ` will apply filter to *ONLY_LIST* and *IGNORE_LIST*.
138 You can setup 2 list above at `config.py`
139
140 * `switch mine` will switch current stream to personal stream. `-f` and `-d` will work as well.
141
142 __Smart shell__
143
144 * Put anything to terminal, the app will try to eval and display result as a python interactive shell.
145   * `142857*2` or `101**3` like a calculator.
146   * Even `cal` will show the calendar for current month.
147   * Put `order_rainbow('anything')` or `random_rainbow('wahahaha')` will make more fun :)
148
149 __Screening Commands__
150
151 * `h` will show the help.
152
153 * `c` will clear the screen.
154
155 * `q` will quit.
156
157 For example see the screenshot above.
158
159 ## Bug and feature requests
160 Found a bug or a feature request ? 
161 Please [create an issue](https://github.com/DTVD/rainbowstream/issues/new)
162 or contact me at [@dtvd88](https://twitter.com/dtvd88)
163
164 ## Contributing
165 I appreciate any help and support. Feel free to 
166 [fork](https://github.com/DTVD/rainbowstream/fork) 
167 and 
168 [create a pull request](https://github.com/DTVD/rainbowstream/compare/).
169 You will be listed as contributor.
170
171 ## License
172 Rainbow Stream are released under an MIT License. See LICENSE.txt for details