This commit is contained in:
Michael Lazar
2015-03-07 14:03:37 -08:00
2 changed files with 31 additions and 19 deletions

View File

@@ -1,27 +1,28 @@
.. image:: https://pypip.in/version/rtv/badge.svg?text=version&style=flat
:target: https://pypi.python.org/pypi/rtv/
:alt: Latest Version
======================
Reddit Terminal Viewer
======================
.. image:: https://pypip.in/version/rtv/badge.svg?text=version
:target: https://pypi.python.org/pypi/rtv/
:alt: Latest Version
Browse Reddit from your terminal
**Reddit Terminal Viewer (RTV)** is a lightweight browser for Reddit (www.reddit.com) built into a terminal window.
RTV is built in Python and utilizes the **curses** library.
It is compatible with a large range of terminal emulators on Linux and OSX systems.
RTV is built in python using the curses library, and is compatable with *most* terminal emulators on Linux and OS X.
.. image:: http://i.imgur.com/4a3Yrov.gif
------------
Installation
------------
The recommended installation method is pip.
Install using pip
.. code-block:: bash
$ sudo pip install --pre rtv
Alternatively, clone the repo and install with python.
Or clone the repository
.. code-block:: bash
@@ -29,7 +30,7 @@ Alternatively, clone the repo and install with python.
$ cd rtv
$ sudo python setup.py install
As part of the installation, an executable script will be placed in your system path.
The installation will place a script in the system path
.. code-block:: bash
@@ -44,35 +45,42 @@ RTV currently supports browsing both subreddits and individual submissions. In e
**Global Commands**
:``Arrow Keys`` or ``hjkl``: RTV supports both the arrow keys and vim bindings for navigation. Move up and down to scroll through items on the page.
:``r`` or ``F5``: Refresh the current page.
:``q``: Quit the program.
:``o``: Open the url of the selected item in the default web browser.
:``▲``/``▼`` or ``j``/``k``: Scroll to the prev/next item
:``o``: Open the selected item in the default web browser
:``r`` or ``F5``: Refresh the current page
:``q``: Quit
**Subreddit Mode**
In subreddit mode you can browse through the top submissions on either the front page or a specific subreddit.
:``Right`` or ``Enter``: Open the currently selected submission in a new page.
:``/``: Open a prompt to switch to a different subreddit. For example, pressing ``/`` and typing *python* will open */r/python*. You can return to Reddit's front page by using the alias */r/front*.
:```` or ``l``: View comments for the selected submission
:``/``: Open a prompt to switch subreddits
The ``/`` prompt accepts subreddits in the following formats
* ``/r/python``
* ``/r/python/new``
* ``/r/front`` will redirect to the front page
**Submission Mode**
In submission mode you can view the self text for a submission and browse comments.
:``Right`` or ``Enter``: Toggle the currently selected comment between hidden and visible. Alternatively, load additional comments identified by *[+] more comments*.
:``Left``: Exit the submission page and return to the subreddit.
:```` or ``h``: Return to subreddit mode
:``►`` or ``l``: Fold the selected comment, or load additional comments
-------------
Configuration
-------------
RTV will read a configuration dotfile located at **~/.rtv**.
RTV will read a configuration file located at **~/.rtv**.
This can be used to avoid having to re-enter login credentials every time the program is launched.
Each line in the file will replace the corresponding default argument in the launch script.
Example config file (**~/.rtv**):
Example config:
**~/.rtv**
::
[rtv]

View File

@@ -2,6 +2,7 @@ import argparse
from getpass import getpass
import praw
from requests.exceptions import ConnectionError, HTTPError
from praw.errors import InvalidUserPass
from rtv.errors import SubmissionURLError, SubredditNameError
from rtv.utils import curses_session, load_config, HELP
@@ -74,6 +75,9 @@ def main():
page = SubredditPage(stdscr, reddit, args.subreddit)
page.loop()
except InvalidUserPass:
print('Invalid password for username: {}'.format(args.username))
except KeyboardInterrupt:
return