| 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 | ## Screenshot |
| 12 | ![rainbowstream](./screenshot/RainbowStream.png) |
| 13 | ![rainbowstreamIOT](./screenshot/RainbowStreamIOT.png) |
| 14 | |
| 15 | Screencast: |
| 16 | <a href="https://www.youtube.com/watch?v=tykCvPMJq8s" target="_blank">https://www.youtube.com/watch?v=tykCvPMJq8s</a> |
| 17 | |
| 18 | ## Install |
| 19 | You will need Python 2.7+ and pip. |
| 20 | |
| 21 | ```bash |
| 22 | pip install rainbowstream |
| 23 | ``` |
| 24 | |
| 25 | ## Usage |
| 26 | #### The stream |
| 27 | Just type |
| 28 | ```bash |
| 29 | rainbow |
| 30 | ``` |
| 31 | and see your stream. |
| 32 | |
| 33 | I shipped a feature which can display **tweet's images directly on terminal**. |
| 34 | You can try it with: |
| 35 | ```bash |
| 36 | rainbow -iot # Or rainbow --image-on-term |
| 37 | ``` |
| 38 | |
| 39 | In the first time you will be asked for authorization of Rainbow Stream app at Twitter. |
| 40 | Just click the "Authorize access" button and paste PIN number to the terminal, the rainbow will start. |
| 41 | |
| 42 | #### The interactive mode |
| 43 | While your personal stream is continued, you are also ready to tweet, search, reply, retweet... directly from console. |
| 44 | Simply type "h" and hit the Enter key to see the help. |
| 45 | |
| 46 | 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. |
| 47 | |
| 48 | Here is full list of supported command |
| 49 | |
| 50 | __Explore Commands__ |
| 51 | |
| 52 | * `trend` will show global trending topics. `trend US` will show trends in United States while `trend JP Tokyo` will show trends in Tokyo/Japan. |
| 53 | |
| 54 | * `home` will show your timeline. `home 10` will print exactly 10 tweets. |
| 55 | |
| 56 | * `mentions` will show mentions timeline. `mentions 7` will show 7 mention tweets. |
| 57 | |
| 58 | * `whois @dtvd88` will show profile of @dtvd88. |
| 59 | |
| 60 | * `view @mdo` will show @mdo 's timeline. `view @dmo 9` will print exactly 9 tweets. |
| 61 | |
| 62 | * `s #noah` will search the word *'noah'*. Result will come back with highlight. |
| 63 | |
| 64 | __Tweet Commands__ |
| 65 | |
| 66 | * `t the rainbow is god's promise to noah` will tweet exactly *'the rainbow is god's promise to noah'*. |
| 67 | |
| 68 | * `rt 12` will retweet the tweet with *[id=12]*. You can see id of each tweet beside the time. |
| 69 | |
| 70 | * `rep 12 Really` will reply *'Really'* to the tweet with *[id=12]*. |
| 71 | |
| 72 | * `fav 12` will favorite the tweet with *[id=12]*. |
| 73 | |
| 74 | * `ufav 12` will unfavorite tweet with *[id=12]*. |
| 75 | |
| 76 | * `del 12` will delete tweet with *[id=12]*. |
| 77 | |
| 78 | * `show image 12` will show the image in tweet with *[id=12]* in your OS's image viewer. |
| 79 | |
| 80 | __Direct Messages Commands__ |
| 81 | |
| 82 | * `inbox` will show inbox messages. `inbox 7` will show newest 7 messages. |
| 83 | |
| 84 | * `sent` will show sent messages. `sent 7` will show newest 7 messages. |
| 85 | |
| 86 | * `mes @dtvd88 hi` will send a `hi` message to @dtvd88. |
| 87 | |
| 88 | * `trash 5` will remove message with *[message_id=5]* |
| 89 | |
| 90 | __Friends and followers Commands__ |
| 91 | |
| 92 | * `ls fl` will list all your followers (people who are following you). |
| 93 | |
| 94 | * `ls fr` will list all your friends (people who you are following). |
| 95 | |
| 96 | * `fl @dtvd88` will follow @dtvd88. |
| 97 | |
| 98 | * `ufl @dtvd88` will unfollow @dtvd88. |
| 99 | |
| 100 | * `mute @dtvd88` will mute @dtvd88. |
| 101 | |
| 102 | * `unmute @dtvd88` will unmute @dtvd88. |
| 103 | |
| 104 | * `muting` will list muting users. |
| 105 | |
| 106 | * `block @dtvd88` will block @dtvd88. |
| 107 | |
| 108 | * `unblock @dtvd88` will unblock @dtvd88. |
| 109 | |
| 110 | * `report @dtvd88` will report @dtvd88 as a spam account. |
| 111 | |
| 112 | __Screening Commands__ |
| 113 | |
| 114 | * `h` will show the help. |
| 115 | |
| 116 | * `c` will clear the screen. |
| 117 | |
| 118 | * `q` will quit. |
| 119 | |
| 120 | __Switching Stream Commands__ |
| 121 | |
| 122 | * `switch public #AKB48` will switch current stream to public stream and track keyword `AKB48` |
| 123 | |
| 124 | * `switch public #AKB48 -f ` will do exactly as above but will ask you to provide 2 list: |
| 125 | |
| 126 | `Only nicks` decide what nicks will be include only. |
| 127 | |
| 128 | `Ignore nicks`decide what nicks will be exclude. |
| 129 | |
| 130 | * `switch public #AKB48 -d ` will apply filter to *ONLY_LIST* and *IGNORE_LIST*. |
| 131 | You can setup 2 list above at `config.py` |
| 132 | |
| 133 | * `switch mine` will switch current stream to personal stream. `-f` and `-d` will work as well. |
| 134 | |
| 135 | For example see the screenshot above. |
| 136 | |
| 137 | ## Bug Report |
| 138 | Please [create an issue](https://github.com/DTVD/rainbowstream/issues/new) |
| 139 | or contact me at [@dtvd88](https://twitter.com/dtvd88) |
| 140 | |
| 141 | ## License |
| 142 | Rainbow Stream are released under an MIT License. See LICENSE.txt for details |