[rainbowstream.git] / docs / _build / html / index.html
c264071c 1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "">
5<html xmlns="">
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4a7d0298 9 <title>Rainbow Stream &mdash; RainbowStream 0.4.3 documentation</title>
c264071c 10
4a7d0298 11 <link rel="stylesheet" href="_static/flasky.css" type="text/css" />
c264071c 12 <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
14 <script type="text/javascript">
16 URL_ROOT: './',
4a7d0298 17 VERSION: '0.4.3',
c264071c 18 COLLAPSE_INDEX: false,
19 FILE_SUFFIX: '.html',
20 HAS_SOURCE: true
21 };
22 </script>
23 <script type="text/javascript" src="_static/jquery.js"></script>
24 <script type="text/javascript" src="_static/underscore.js"></script>
25 <script type="text/javascript" src="_static/doctools.js"></script>
4a7d0298 26 <link rel="top" title="RainbowStream 0.4.3 documentation" href="#" />
29 <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
c264071c 31 </head>
32 <body>
4a7d0298 33
35 <div class=indexwrapper>
c264071c 38 <div class="related">
39 <h3>Navigation</h3>
40 <ul>
41 <li class="right" style="margin-right: 10px">
42 <a href="genindex.html" title="General Index"
43 accesskey="I">index</a></li>
4a7d0298 44 <li><a href="#">RainbowStream 0.4.3 documentation</a> &raquo;</li>
c264071c 45 </ul>
46 </div>
48 <div class="document">
49 <div class="documentwrapper">
50 <div class="bodywrapper">
51 <div class="body">
53 <div class="section" id="rainbow-stream">
54<h1>Rainbow Stream<a class="headerlink" href="#rainbow-stream" title="Permalink to this headline">¶</a></h1>
55<a class="reference external image-reference" href=""><img alt="" src="" /></a>
56<a class="reference external image-reference" href=""><img alt="" src="" /></a>
57<p>Terminal-based Twitter Client. Realtime tweetstream, compose, search ,
58favorite … and much more fun directly from terminal.</p>
4a7d0298 59<p>This package is built on the top of <a class="reference external" href="">Python Twitter Tool</a> and <a class="reference external" href="">Twitter API</a>,
60can run on Python 2.7.x and 3.x .</p>
c264071c 61</div>
62<div class="section" id="install">
63<h1>Install<a class="headerlink" href="#install" title="Permalink to this headline">¶</a></h1>
4a7d0298 64<div class="section" id="the-quick-way">
65<h2>The quick way<a class="headerlink" href="#the-quick-way" title="Permalink to this headline">¶</a></h2>
66<p>You will need Python and pip (2.7.x or 3.x).</p>
c264071c 67<div class="code bash highlight-python"><div class="highlight"><pre>sudo pip install rainbowstream
4a7d0298 68# Python 3 users: sudo pip3 install rainbowstream
c264071c 69</pre></div>
4a7d0298 71</div>
72<div class="section" id="the-recommended-way">
73<h2>The recommended way<a class="headerlink" href="#the-recommended-way" title="Permalink to this headline">¶</a></h2>
74<p>Use <a class="reference external" href="">virtualenv</a></p>
75<div class="code bash highlight-python"><div class="highlight"><pre>virtualenv venv
76# Python 3 users : use -p to specify your Python 3 localtion as below
77# virtualenv -p /usr/bin/python3 venv
78source venv/bin/activate
c264071c 79pip install rainbowstream
4a7d0298 83</div>
c264071c 84<div class="section" id="usage">
85<h1>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h1>
86<div class="section" id="the-stream">
87<h2>The stream<a class="headerlink" href="#the-stream" title="Permalink to this headline">¶</a></h2>
88<p>Just type</p>
4a7d0298 89<div class="code bash highlight-python"><div class="highlight"><pre><span class="n">rainbowstream</span>
c264071c 90</pre></div>
92<p>and see your stream.</p>
93<p>I shipped a feature which can display <strong>tweet&#8217;s images directly on terminal</strong>.
94You can try it with:</p>
4a7d0298 95<div class="code bash highlight-python"><div class="highlight"><pre><span class="n">rainbowstream</span> <span class="o">-</span><span class="n">iot</span> <span class="c"># Or rainbowstream --image-on-term</span>
c264071c 96</pre></div>
98<p>In the first time you will be asked for authorization of Rainbow Stream
99app at Twitter. Just click the “Authorize access” button and paste PIN
100number to the terminal, the rainbow will start.</p>
102<div class="section" id="the-interactive-mode">
103<h2>The interactive mode<a class="headerlink" href="#the-interactive-mode" title="Permalink to this headline">¶</a></h2>
104<p>While your personal stream is continued, you are also ready to tweet,
105search, reply, retweet… directly from console. Simply type “h” and hit
106the Enter key to see the help.</p>
107<p>Input is in interactive mode. It means that you can use arrow key to
108move up and down history, tab-autocomplete or 2 tab to view available
109suggestion. Input history from previous run is available as well.</p>
110<p>Here is full list of supported command:</p>
111<p><strong>Explore Commands</strong></p>
112<ul class="simple">
113<li><tt class="docutils literal"><span class="pre">trend</span></tt> will show global trending topics. <tt class="docutils literal"><span class="pre">trend</span> <span class="pre">US</span></tt> will show
114trends in United States while <tt class="docutils literal"><span class="pre">trend</span> <span class="pre">JP</span> <span class="pre">Tokyo</span></tt> will show trends in
116<li><tt class="docutils literal"><span class="pre">home</span></tt> will show your timeline. <tt class="docutils literal"><span class="pre">home</span> <span class="pre">10</span></tt> will print exactly 10
118<li><tt class="docutils literal"><span class="pre">mentions</span></tt> will show mentions timeline. <tt class="docutils literal"><span class="pre">mentions</span> <span class="pre">7</span></tt> will show 7
119mention tweets.</li>
120<li><tt class="docutils literal"><span class="pre">whois</span> <span class="pre">&#64;dtvd88</span></tt> will show profile of &#64;dtvd88.</li>
121<li><tt class="docutils literal"><span class="pre">view</span> <span class="pre">&#64;mdo</span></tt> will show &#64;mdo ’s timeline. <tt class="docutils literal"><span class="pre">view</span> <span class="pre">&#64;dmo</span> <span class="pre">9</span></tt> will print
122exactly 9 tweets.</li>
4a7d0298 123<li><tt class="docutils literal"><span class="pre">s</span> <span class="pre">noah</span></tt> will search the word <em>‘noah’</em>. Result will come back with
124highlight. Search can be performed with or without hashtag.</li>
c264071c 125</ul>
126<p><strong>Tweet Commands</strong></p>
127<ul class="simple">
128<li><tt class="docutils literal"><span class="pre">t</span> <span class="pre">the</span> <span class="pre">rainbow</span> <span class="pre">is</span> <span class="pre">god's</span> <span class="pre">promise</span> <span class="pre">to</span> <span class="pre">noah</span></tt> will tweet exactly <em>‘the
129rainbow is god’s promise to noah’</em>.</li>
130<li><tt class="docutils literal"><span class="pre">rt</span> <span class="pre">12</span></tt> will retweet the tweet with <em>[id=12]</em>. You can see id of
131each tweet beside the time.</li>
4a7d0298 132<li><tt class="docutils literal"><span class="pre">quote</span> <span class="pre">12</span></tt> will quote the tweet with <em>[id=12]</em>. If no extra text is added,
133the quote will be cancelled.</li>
c264071c 134<li><tt class="docutils literal"><span class="pre">allrt</span> <span class="pre">12</span> <span class="pre">20</span></tt> will list 20 newest retweets of the tweet with <em>[id=12]</em>. If the number of retweets is not specified, 5 newest retweets will be listed instead.</li>
135<li><tt class="docutils literal"><span class="pre">rep</span> <span class="pre">12</span> <span class="pre">Really</span></tt> will reply <em>‘Really’</em> to the tweet with <em>[id=12]</em>.</li>
136<li><tt class="docutils literal"><span class="pre">fav</span> <span class="pre">12</span></tt> will favorite the tweet with <em>[id=12]</em>.</li>
137<li><tt class="docutils literal"><span class="pre">ufav</span> <span class="pre">12</span></tt> will unfavorite tweet with <em>[id=12]</em>.</li>
138<li><tt class="docutils literal"><span class="pre">del</span> <span class="pre">12</span></tt> will delete tweet with <em>[id=12]</em>.</li>
139<li><tt class="docutils literal"><span class="pre">show</span> <span class="pre">image</span> <span class="pre">12</span></tt> will show the image in tweet with <em>[id=12]</em> in your
140OS’s image viewer.</li>
4a7d0298 141<li><tt class="docutils literal"><span class="pre">open</span> <span class="pre">12</span></tt> will open url in tweet with <em>[id=12]</em> in your
142OS’s default browser.</li>
c264071c 143</ul>
144<p><strong>Direct Messages Commands</strong></p>
145<ul class="simple">
146<li><tt class="docutils literal"><span class="pre">inbox</span></tt> will show inbox messages. <tt class="docutils literal"><span class="pre">inbox</span> <span class="pre">7</span></tt> will show newest 7
148<li><tt class="docutils literal"><span class="pre">sent</span></tt> will show sent messages. <tt class="docutils literal"><span class="pre">sent</span> <span class="pre">7</span></tt> will show newest 7
150<li><tt class="docutils literal"><span class="pre">mes</span> <span class="pre">&#64;dtvd88</span> <span class="pre">hi</span></tt> will send a <tt class="docutils literal"><span class="pre">hi</span></tt> message to &#64;dtvd88.</li>
151<li><tt class="docutils literal"><span class="pre">trash</span> <span class="pre">5</span></tt> will remove message with <em>[message_id=5]</em></li>
153<p><strong>Friends and followers Commands</strong></p>
154<ul class="simple">
155<li><tt class="docutils literal"><span class="pre">ls</span> <span class="pre">fl</span></tt> will list all your followers (people who are following
157<li><tt class="docutils literal"><span class="pre">ls</span> <span class="pre">fr</span></tt> will list all your friends (people who you are following).</li>
158<li><tt class="docutils literal"><span class="pre">fl</span> <span class="pre">&#64;dtvd88</span></tt> will follow &#64;dtvd88.</li>
159<li><tt class="docutils literal"><span class="pre">ufl</span> <span class="pre">&#64;dtvd88</span></tt> will unfollow &#64;dtvd88.</li>
160<li><tt class="docutils literal"><span class="pre">mute</span> <span class="pre">&#64;dtvd88</span></tt> will mute &#64;dtvd88.</li>
161<li><tt class="docutils literal"><span class="pre">unmute</span> <span class="pre">&#64;dtvd88</span></tt> will unmute &#64;dtvd88.</li>
162<li><tt class="docutils literal"><span class="pre">muting</span></tt> will list muting users.</li>
163<li><tt class="docutils literal"><span class="pre">block</span> <span class="pre">&#64;dtvd88</span></tt> will block &#64;dtvd88.</li>
164<li><tt class="docutils literal"><span class="pre">unblock</span> <span class="pre">&#64;dtvd88</span></tt> will unblock &#64;dtvd88.</li>
165<li><tt class="docutils literal"><span class="pre">report</span> <span class="pre">&#64;dtvd88</span></tt> will report &#64;dtvd88 as a spam account.</li>
4a7d0298 167<p><strong>Twitter list</strong></p>
168<ul class="simple">
169<li><tt class="docutils literal"><span class="pre">list</span></tt> will show all lists you are belong to.</li>
170<li><tt class="docutils literal"><span class="pre">list</span> <span class="pre">home</span></tt> will show timeline of list. You will be asked for list&#8217;s name.</li>
171<li><tt class="docutils literal"><span class="pre">list</span> <span class="pre">all_mem</span></tt> will show list&#8217;s all members.</li>
172<li><tt class="docutils literal"><span class="pre">list</span> <span class="pre">all_sub</span></tt> will show list&#8217;s all subscribers.</li>
173<li><tt class="docutils literal"><span class="pre">list</span> <span class="pre">add</span></tt> will add specific person to a list owned by you.</li>
174<li><tt class="docutils literal"><span class="pre">list</span> <span class="pre">rm</span></tt> will remove specific person from a list owned by you.</li>
175<li><tt class="docutils literal"><span class="pre">list</span> <span class="pre">sub</span></tt> will subscribe you to a specific list.</li>
176<li><tt class="docutils literal"><span class="pre">list</span> <span class="pre">unsub</span></tt> will unsubscribe you from a specific list.</li>
177<li><tt class="docutils literal"><span class="pre">list</span> <span class="pre">own</span></tt> will show all list owned by you.</li>
178<li><tt class="docutils literal"><span class="pre">list</span> <span class="pre">new</span></tt> will create a new list.</li>
179<li><tt class="docutils literal"><span class="pre">list</span> <span class="pre">update</span></tt> will update a list owned by you.</li>
180<li><tt class="docutils literal"><span class="pre">list</span> <span class="pre">del</span></tt> will delete a list owned by you.</li>
c264071c 182<p><strong>Switching Stream Commands</strong></p>
184<li><p class="first"><tt class="docutils literal"><span class="pre">switch</span> <span class="pre">public</span> <span class="pre">#AKB48</span></tt> will switch current stream to public stream
185and track keyword <tt class="docutils literal"><span class="pre">AKB48</span></tt></p>
187<li><p class="first"><tt class="docutils literal"><span class="pre">switch</span> <span class="pre">public</span> <span class="pre">#AKB48</span> <span class="pre">-f</span></tt> will do exactly as above but will ask you
188to provide 2 list:</p>
189<p><tt class="docutils literal"><span class="pre">Only</span> <span class="pre">nicks</span></tt> decide what nicks will be include only.</p>
190<p><tt class="docutils literal"><span class="pre">Ignore</span> <span class="pre">nicks</span></tt>decide what nicks will be exclude.</p>
192<li><p class="first"><tt class="docutils literal"><span class="pre">switch</span> <span class="pre">public</span> <span class="pre">#AKB48</span> <span class="pre">-d</span></tt> will apply filter to <em>ONLY_LIST</em> and
193<em>IGNORE_LIST</em>. You can setup 2 list above at <tt class="docutils literal"><span class="pre"></span></tt></p>
195<li><p class="first"><tt class="docutils literal"><span class="pre">switch</span> <span class="pre">mine</span></tt> will switch current stream to personal stream. <tt class="docutils literal"><span class="pre">-f</span></tt>
196and <tt class="docutils literal"><span class="pre">-d</span></tt> will work as well.</p>
199<p><strong>Smart shell</strong></p>
200<ul class="simple">
201<li>Put anything to terminal, the app will try to eval and display result as a python interactive shell.<ul>
202<li><tt class="docutils literal"><span class="pre">142857*2</span></tt> or <tt class="docutils literal"><span class="pre">101**3</span></tt> like a calculator.</li>
203<li>Even <tt class="docutils literal"><span class="pre">cal</span></tt> will show the calendar for current month.</li>
204<li>Put <tt class="docutils literal"><span class="pre">order_rainbow('anything')</span></tt> or <tt class="docutils literal"><span class="pre">random_rainbow('wahahaha')</span></tt> will make more fun :)</li>
4a7d0298 208<p><strong>Config Management</strong></p>
209<ul class="simple">
210<li><tt class="docutils literal"><span class="pre">theme</span></tt> will list available themes.</li>
213<div><ul class="simple">
214<li><tt class="docutils literal"><span class="pre">theme</span> <span class="pre">monokai</span></tt> will apply <em>monokai</em> theme immedaitely.</li>
215<li><tt class="docutils literal"><span class="pre">theme</span> <span class="pre">current_as_default</span></tt> will remember current theme as next time default.</li>
218<ul class="simple">
219<li><tt class="docutils literal"><span class="pre">config</span></tt> will list all config key.</li>
222<div><ul class="simple">
223<li><tt class="docutils literal"><span class="pre">config</span> <span class="pre">ASCII_ART</span></tt> will output current value of <em>ASCII_ART</em> config key.</li>
224<li><tt class="docutils literal"><span class="pre">config</span> <span class="pre">ASCII_ART</span> <span class="pre">default</span></tt> will output default value of <em>ASCII_ART</em> config key.</li>
225<li><tt class="docutils literal"><span class="pre">config</span> <span class="pre">ASCII_ART</span> <span class="pre">=</span> <span class="pre">False</span></tt> will set value of <em>ASCII_ART</em> config key to <em>False</em>.</li>
c264071c 228<p><strong>Screening Commands</strong></p>
229<ul class="simple">
230<li><tt class="docutils literal"><span class="pre">h</span></tt> will show the help.</li>
231<li><tt class="docutils literal"><span class="pre">c</span></tt> will clear the screen.</li>
232<li><tt class="docutils literal"><span class="pre">q</span></tt> will quit.</li>
4a7d0298 234<p>Available commands are listed in <a href="#id3"><span class="problematic" id="id4">`Read The Docs`_</span></a>.</p>
c264071c 235</div>
4a7d0298 236<div class="section" id="theme-customization">
237<h2>Theme customization<a class="headerlink" href="#theme-customization" title="Permalink to this headline">¶</a></h2>
238<p>Rainbow Stream is shipped with some default themes.
239You can either change theme by <tt class="docutils literal"><span class="pre">theme</span></tt> command or create your favorite one.</p>
240<p>Theme’s screenshot:</p>
241<ul class="simple">
244<div class="figure">
245<img alt="monokai" src="" />
c264071c 246</div>
4a7d0298 247<ul class="simple">
250<div class="figure">
251<img alt="solarized" src="" />
c264071c 252</div>
4a7d0298 253<ul class="simple">
254<li>Tomorrow Night</li>
256<div class="figure">
257<img alt="tomorrownight" src="" />
259<ul class="simple">
262<div class="figure">
263<img alt="larapaste" src="" />
c264071c 264</div>
4a7d0298 265<p>For detaile information, see <a class="reference external" href="">theme usage and customization</a>.</p>
267<div class="section" id="config-explanation">
268<h2>Config explanation<a class="headerlink" href="#config-explanation" title="Permalink to this headline">¶</a></h2>
269<p>Rainbow Stream has a config file located at <tt class="docutils literal"><span class="pre">~/.rainbow_config.json</span></tt>.
270You can view or set a new value of every config key by <tt class="docutils literal"><span class="pre">config</span></tt> command (See <strong>Interactive mode</strong> section above).</p>
271<ul class="simple">
272<li><tt class="docutils literal"><span class="pre">THEME</span></tt>: current theme.</li>
273<li><tt class="docutils literal"><span class="pre">ASCII_ART</span></tt>: diplay your twitter name by ascii art at stream begin or not.</li>
274<li><tt class="docutils literal"><span class="pre">SEARCH_MAX_RECORD</span></tt>: max tweets can display on &#8216;search&#8217; command.</li>
275<li><tt class="docutils literal"><span class="pre">HOME_TWEET_NUM</span></tt>: default tweets to display on &#8216;home&#8217; command.</li>
276<li><tt class="docutils literal"><span class="pre">RETWEETS_SHOW_NUM</span></tt>: default tweets to display on &#8216;allrt&#8217; command.</li>
277<li><tt class="docutils literal"><span class="pre">MESSAGES_DISPLAY</span></tt>: default messages to display on &#8216;inbox&#8217; or &#8216;sent&#8217; command.</li>
278<li><tt class="docutils literal"><span class="pre">TREND_MAX</span></tt>: default trends to display on &#8216;trend&#8217; command.</li>
279<li><tt class="docutils literal"><span class="pre">LIST_MAX</span></tt>: default tweets to display on &#8216;list home&#8217; command.</li>
280<li><tt class="docutils literal"><span class="pre">ONLY_LIST</span></tt>: filter list on &#8216;switch&#8217; command.</li>
281<li><tt class="docutils literal"><span class="pre">IGNORE_LIST</span></tt>: ignore list on &#8216;switch&#8217; command.</li>
282<li><tt class="docutils literal"><span class="pre">HISTORY_FILENAME</span></tt>: name of file which stores input history.</li>
283<li><tt class="docutils literal"><span class="pre">IMAGE_SHIFT</span></tt>: left and right margin of image in &#8216;-iot&#8217;/&#8217;&#8211;image-on-term&#8217; mode.</li>
284<li><tt class="docutils literal"><span class="pre">IMAGE_MAX_HEIGHT</span></tt>: max height of image in &#8216;-iot&#8217;/&#8217;&#8211;image-on-term&#8217; mode.</li>
285<li><tt class="docutils literal"><span class="pre">USER_DOMAIN</span></tt>: user URL of Twitter Streaming API.</li>
286<li><tt class="docutils literal"><span class="pre">PUBLIC_DOMAIN</span></tt>: public URL of Twitter Streaming API.</li>
287<li><tt class="docutils literal"><span class="pre">SITE_DOMAIN</span></tt>: site URL of Twitter Streaming API.</li>
291<div class="section" id="development">
292<h1>Development<a class="headerlink" href="#development" title="Permalink to this headline">¶</a></h1>
293<p>If you want to build a runnable version yourself, follow these simple
296<li><p class="first"><a class="reference external" href="">Create your own Twitter Application</a></p>
298<li><p class="first">Get your Twitter application’s API key and secret</p>
300<li><p class="first">Fork github&#8217;s repo and clone in your system.</p>
302<li><p class="first">Create a file <tt class="docutils literal"><span class="pre"></span></tt> in <a href="#id1"><span class="problematic" id="id2">``</span></a><a href="#id5"><span class="problematic" id="id6">`rainbowstream```_</span></a> folder with
303following content</p>
304<div class="code python highlight-python"><div class="highlight"><pre><span class="c"># Consumer information</span>
305<span class="n">CONSUMER_KEY</span> <span class="o">=</span> <span class="s">&#39;APIKey&#39;</span> <span class="c"># Your Twitter application&#39;s API key</span>
306<span class="n">CONSUMER_SECRET</span> <span class="o">=</span> <span class="s">&#39;APISecret&#39;</span> <span class="c"># Your Twitter application&#39;s API secret</span>
310<li><p class="first">Use pip to install in local</p>
311<div class="code bash highlight-python"><div class="highlight"><pre># cd to directory which contains (cloned directory)
312virtualenv venv # Python3 users: use -p to specify python3
313source venv/bin/activate
314pip install -e .
315which rainbowstream # /this-directory/venv/bin/rainbowstream
316pip list | grep rainbowstream # rainbowstream (0.x.x, /this-directory)
317# Remove ~/.rainbow_oauth if exists
318rainbowstream # local version of rainbowstream
c264071c 323</div>
326 </div>
327 </div>
328 </div>
329 <div class="sphinxsidebar">
330 <div class="sphinxsidebarwrapper">
331 <h3><a href="#">Table Of Contents</a></h3>
332 <ul>
333<li><a class="reference internal" href="#">Rainbow Stream</a></li>
4a7d0298 334<li><a class="reference internal" href="#install">Install</a><ul>
335<li><a class="reference internal" href="#the-quick-way">The quick way</a></li>
336<li><a class="reference internal" href="#the-recommended-way">The recommended way</a></li>
c264071c 339<li><a class="reference internal" href="#usage">Usage</a><ul>
340<li><a class="reference internal" href="#the-stream">The stream</a></li>
341<li><a class="reference internal" href="#the-interactive-mode">The interactive mode</a></li>
4a7d0298 342<li><a class="reference internal" href="#theme-customization">Theme customization</a></li>
343<li><a class="reference internal" href="#config-explanation">Config explanation</a></li>
c264071c 344</ul>
4a7d0298 346<li><a class="reference internal" href="#development">Development</a></li>
348<h3>Related Topics</h3>
350 <li><a href="#">Documentation overview</a><ul>
351 </ul></li>
c264071c 352</ul>
c264071c 353 <h3>This Page</h3>
354 <ul class="this-page-menu">
355 <li><a href="_sources/index.txt"
356 rel="nofollow">Show Source</a></li>
357 </ul>
358<div id="searchbox" style="display: none">
359 <h3>Quick search</h3>
360 <form class="search" action="search.html" method="get">
361 <input type="text" name="q" />
362 <input type="submit" value="Go" />
363 <input type="hidden" name="check_keywords" value="yes" />
364 <input type="hidden" name="area" value="default" />
365 </form>
366 <p class="searchtip" style="font-size: 90%">
367 Enter search terms or a module, class or function name.
368 </p>
370<script type="text/javascript">$('#searchbox').show(0);</script>
371 </div>
372 </div>
373 <div class="clearer"></div>
374 </div>
4a7d0298 375 <div class="footer">
376 &copy; Copyright 2014, Vu Nhat Minh.
377 Created using <a href="">Sphinx</a>.
378 </div>
380 </div>
c264071c 382 </body>