Full Code of tildeclub/ttrv for AI

main 3c23c99b30f5 cached
72 files
1.1 MB
487.3k tokens
775 symbols
1 requests
Download .txt
Showing preview only (1,211K chars total). Download the full file or copy to clipboard to get everything.
Repository: tildeclub/ttrv
Branch: main
Commit: 3c23c99b30f5
Files: 72
Total size: 1.1 MB

Directory structure:
gitextract_ir8937v6/

├── .coveragerc
├── .gitattributes
├── .gitignore
├── .pylintrc
├── AUTHORS.rst
├── CHANGELOG.rst
├── CONTRIBUTING.rst
├── CONTROLS.md
├── LICENSE
├── MANIFEST.in
├── README.md
├── THEMES.md
├── requirements.txt
├── scripts/
│   ├── build_authors.py
│   ├── build_manpage.py
│   ├── cassettes/
│   │   └── demo_theme.yaml
│   ├── count_lines.sh
│   ├── demo_theme.py
│   ├── initialize_session.py
│   ├── inspect_webbrowser.py
│   ├── pip_clean.sh
│   ├── ttrv.1.template
│   └── update_packages.py
├── setup.cfg
├── setup.py
├── test
├── ttrv/
│   ├── __init__.py
│   ├── __main__.py
│   ├── __version__.py
│   ├── clipboard.py
│   ├── config.py
│   ├── content.py
│   ├── docs.py
│   ├── exceptions.py
│   ├── inbox_page.py
│   ├── mime_parsers.py
│   ├── oauth.py
│   ├── objects.py
│   ├── packages/
│   │   ├── __init__.py
│   │   └── praw/
│   │       ├── __init__.py
│   │       ├── decorator_helpers.py
│   │       ├── decorators.py
│   │       ├── errors.py
│   │       ├── handlers.py
│   │       ├── helpers.py
│   │       ├── internal.py
│   │       ├── multiprocess.py
│   │       ├── objects.py
│   │       ├── praw.ini
│   │       └── settings.py
│   ├── page.py
│   ├── submission_page.py
│   ├── subreddit_page.py
│   ├── subscription_page.py
│   ├── templates/
│   │   ├── index.html
│   │   ├── mailcap
│   │   └── ttrv.cfg
│   ├── terminal.py
│   ├── theme.py
│   └── themes/
│       ├── colorblind-dark.cfg
│       ├── default.cfg.example
│       ├── molokai.cfg
│       ├── papercolor.cfg
│       ├── solarized-dark.cfg
│       └── solarized-light.cfg
├── ttrv.1
└── ttrv.egg-info/
    ├── PKG-INFO
    ├── SOURCES.txt
    ├── dependency_links.txt
    ├── entry_points.txt
    ├── requires.txt
    └── top_level.txt

================================================
FILE CONTENTS
================================================

================================================
FILE: .coveragerc
================================================
[run]
source = tvr
omit = 
    */__main__.py
    */packages/praw/*


================================================
FILE: .gitattributes
================================================
tests/cassettes/* binary


================================================
FILE: .gitignore
================================================
.*
!.travis.yml
!.pylintrc
!.gitignore
!.gitattributes
!.coveragerc
*~
*.pyc
*.log
build
dist
rtv.egg-info
tests/refresh-token
venv/


================================================
FILE: .pylintrc
================================================
[MASTER]

# Specify a configuration file.
#rcfile=

# Python code to execute, usually for sys.path manipulation such as
# pygtk.require().
#init-hook=

# Add files or directories to the blacklist. They should be base names, not
# paths.
ignore=praw

# Pickle collected data for later comparisons.
persistent=yes

# List of plugins (as comma separated values of python modules names) to load,
# usually to register additional checkers.
load-plugins=

# Use multiple processes to speed up Pylint.
jobs=1

# Allow loading of arbitrary C extensions. Extensions are imported into the
# active Python interpreter and may run arbitrary code.
unsafe-load-any-extension=no

# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code
extension-pkg-whitelist=

# Allow optimization of some AST trees. This will activate a peephole AST
# optimizer, which will apply various small optimizations. For instance, it can
# be used to obtain the result of joining multiple strings with the addition
# operator. Joining a lot of strings can lead to a maximum recursion error in
# Pylint and this flag can prevent that. It has one side effect, the resulting
# AST will be different than the one from reality.
optimize-ast=no


[MESSAGES CONTROL]

# Only show warnings with the listed confidence levels. Leave empty to show
# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED
confidence=

# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time. See also the "--disable" option for examples.
#enable=

# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifiers separated by comma (,) or put this
# option multiple times (only on the command line, not in the configuration
# file where it should appear only once).You can also use "--disable=all" to
# disable everything first and then reenable specific checks. For example, if
# you want to run only the similarities checker, you can use "--disable=all
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use"--disable=all --enable=classes
# --disable=W"
disable=execfile-builtin,zip-builtin-not-iterating,range-builtin-not-iterating,hex-method,old-division,file-builtin,long-builtin,input-builtin,no-absolute-import,invalid-name,delslice-method,suppressed-message,coerce-builtin,buffer-builtin,import-star-module-level,round-builtin,old-ne-operator,apply-builtin,missing-final-newline,basestring-builtin,xrange-builtin,getslice-method,filter-builtin-not-iterating,map-builtin-not-iterating,raw_input-builtin,indexing-exception,dict-iter-method,metaclass-assignment,setslice-method,next-method-called,intern-builtin,using-cmp-argument,missing-docstring,oct-method,backtick,print-statement,reload-builtin,long-suffix,old-raise-syntax,unicode-builtin,nonzero-method,old-octal-literal,cmp-method,useless-suppression,dict-view-method,parameter-unpacking,unpacking-in-except,coerce-method,unichr-builtin,raising-string,cmp-builtin,reduce-builtin,standarderror-builtin,no-else-return,too-many-locals,too-many-statements,too-few-public-methods,too-many-public-methods,too-many-instance-attributes


[REPORTS]

# Set the output format. Available formats are text, parseable, colorized, msvs
# (visual studio) and html. You can also give a reporter class, eg
# mypackage.mymodule.MyReporterClass.
output-format=text

# Put messages in a separate file for each module / package specified on the
# command line instead of printing them on stdout. Reports (if any) will be
# written in a file name "pylint_global.[txt|html]".
files-output=no

# Tells whether to display a full report or only the messages
reports=yes

# Python expression which should return a note less than 10 (10 is the highest
# note). You have access to the variables errors warning, statement which
# respectively contain the number of errors / warnings messages and the total
# number of statements analyzed. This is used by the global evaluation report
# (RP0004).
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)

# Template used to display messages. This is a python new-style format string
# used to format the message information. See doc for all details
#msg-template=


[SIMILARITIES]

# Minimum lines number of a similarity.
min-similarity-lines=5

# Ignore comments when computing similarities.
ignore-comments=yes

# Ignore docstrings when computing similarities.
ignore-docstrings=yes

# Ignore imports when computing similarities.
ignore-imports=no


[MISCELLANEOUS]

# List of note tags to take in consideration, separated by a comma.
notes=FIXME,XXX,TODO


[VARIABLES]

# Tells whether we should check for unused import in __init__ files.
init-import=no

# A regular expression matching the name of dummy variables (i.e. expectedly
# not used).
dummy-variables-rgx=_$|dummy

# List of additional names supposed to be defined in builtins. Remember that
# you should avoid to define new builtins when possible.
additional-builtins=

# List of strings which can identify a callback function by name. A callback
# name must start or end with one of those strings.
callbacks=cb_,_cb


[LOGGING]

# Logging modules to check that the string format arguments are in logging
# function parameter format
logging-modules=logging


[SPELLING]

# Spelling dictionary name. Available dictionaries: none. To make it working
# install python-enchant package.
spelling-dict=

# List of comma separated words that should not be checked.
spelling-ignore-words=

# A path to a file that contains private dictionary; one word per line.
spelling-private-dict-file=

# Tells whether to store unknown words to indicated private dictionary in
# --spelling-private-dict-file option instead of raising a message.
spelling-store-unknown-words=no


[TYPECHECK]

# Tells whether missing members accessed in mixin class should be ignored. A
# mixin class is detected if its name ends with "mixin" (case insensitive).
ignore-mixin-members=yes

# List of module names for which member attributes should not be checked
# (useful for modules/projects where namespaces are manipulated during runtime
# and thus existing member attributes cannot be deduced by static analysis. It
# supports qualified module names, as well as Unix pattern matching.
ignored-modules=

# List of classes names for which member attributes should not be checked
# (useful for classes with attributes dynamically set). This supports can work
# with qualified names.
ignored-classes=SQLObject

# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=REQUEST,acl_users,aq_parent


[FORMAT]

# Maximum number of characters on a single line.
max-line-length=100

# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=^\s*(# )?<?https?://\S+>?$

# Allow the body of an if to be on the same line as the test if there is no
# else.
single-line-if-stmt=no

# List of optional constructs for which whitespace checking is disabled. `dict-
# separator` is used to allow tabulation in dicts, etc.: {1  : 1,\n222: 2}.
# `trailing-comma` allows a space between comma and closing bracket: (a, ).
# `empty-line` allows space-only lines.
no-space-check=trailing-comma,dict-separator

# Maximum number of lines in a module
max-module-lines=1000

# String used as indentation unit. This is usually "    " (4 spaces) or "\t" (1
# tab).
indent-string='    '

# Number of spaces of indent required inside a hanging  or continued line.
indent-after-paren=4

# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
expected-line-ending-format=


[BASIC]

# List of builtins function names that should not be used, separated by a comma
bad-functions=map,filter

# Good variable names which should always be accepted, separated by a comma
good-names=i,j,k,ex,Run,_

# Bad variable names which should always be refused, separated by a comma
bad-names=foo,bar,baz,toto,tutu,tata

# Colon-delimited sets of names that determine each other's naming style when
# the name regexes allow several styles.
name-group=

# Include a hint for the correct naming format with invalid-name
include-naming-hint=no

# Regular expression matching correct module names
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$

# Naming hint for module names
module-name-hint=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$

# Regular expression matching correct variable names
variable-rgx=[a-z_][a-z0-9_]{2,30}$

# Naming hint for variable names
variable-name-hint=[a-z_][a-z0-9_]{2,30}$

# Regular expression matching correct class names
class-rgx=[A-Z_][a-zA-Z0-9]+$

# Naming hint for class names
class-name-hint=[A-Z_][a-zA-Z0-9]+$

# Regular expression matching correct attribute names
attr-rgx=[a-z_][a-z0-9_]{2,30}$

# Naming hint for attribute names
attr-name-hint=[a-z_][a-z0-9_]{2,30}$

# Regular expression matching correct constant names
const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$

# Naming hint for constant names
const-name-hint=(([A-Z_][A-Z0-9_]*)|(__.*__))$

# Regular expression matching correct class attribute names
class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$

# Naming hint for class attribute names
class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$

# Regular expression matching correct argument names
argument-rgx=[a-z_][a-z0-9_]{2,30}$

# Naming hint for argument names
argument-name-hint=[a-z_][a-z0-9_]{2,30}$

# Regular expression matching correct function names
function-rgx=[a-z_][a-z0-9_]{2,30}$

# Naming hint for function names
function-name-hint=[a-z_][a-z0-9_]{2,30}$

# Regular expression matching correct method names
method-rgx=[a-z_][a-z0-9_]{2,30}$

# Naming hint for method names
method-name-hint=[a-z_][a-z0-9_]{2,30}$

# Regular expression matching correct inline iteration names
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$

# Naming hint for inline iteration names
inlinevar-name-hint=[A-Za-z_][A-Za-z0-9_]*$

# Regular expression which should only match function or class names that do
# not require a docstring.
no-docstring-rgx=__.*__

# Minimum line length for functions/classes that require docstrings, shorter
# ones are exempt.
docstring-min-length=-1


[ELIF]

# Maximum number of nested blocks for function / method body
max-nested-blocks=5


[IMPORTS]

# Deprecated modules which should not be used, separated by a comma
deprecated-modules=stringprep,optparse

# Create a graph of every (i.e. internal and external) dependencies in the
# given file (report RP0402 must not be disabled)
import-graph=

# Create a graph of external dependencies in the given file (report RP0402 must
# not be disabled)
ext-import-graph=

# Create a graph of internal dependencies in the given file (report RP0402 must
# not be disabled)
int-import-graph=


[CLASSES]

# List of method names used to declare (i.e. assign) instance attributes.
defining-attr-methods=__init__,__new__,setUp

# List of valid names for the first argument in a class method.
valid-classmethod-first-arg=cls

# List of valid names for the first argument in a metaclass class method.
valid-metaclass-classmethod-first-arg=mcs

# List of member names, which should be excluded from the protected access
# warning.
exclude-protected=_asdict,_fields,_replace,_source,_make


[DESIGN]

# Maximum number of arguments for function / method
max-args=7

# Argument names that match this expression will be ignored. Default to name
# with leading underscore
ignored-argument-names=_.*

# Maximum number of locals for function / method body
max-locals=15

# Maximum number of return / yield for function / method body
max-returns=6

# Maximum number of branch for function / method body
max-branches=12

# Maximum number of statements in function / method body
max-statements=50

# Maximum number of parents for a class (see R0901).
max-parents=7

# Maximum number of attributes for a class (see R0902).
max-attributes=7

# Minimum number of public methods for a class (see R0903).
min-public-methods=2

# Maximum number of public methods for a class (see R0904).
max-public-methods=20

# Maximum number of boolean expressions in a if statement
max-bool-expr=5


[EXCEPTIONS]

# Exceptions that will emit a warning when being caught. Defaults to
# "Exception"
overgeneral-exceptions=Exception


================================================
FILE: AUTHORS.rst
================================================
================
TTRV Contributors
================
* `deepend <https://github.com/deepend-tildeclub>`_


================
RTV Contributors
================

Thanks to the following people for their contributions to this project.

* `Michael Lazar <https://github.com/michael-lazar>`_
* `Tobin Brown <https://github.com/Brobin>`_
* `woorst <https://github.com/woorst>`_
* `Théo Piboubès <https://github.com/ThePib>`_
* `Yusuke Sakamoto <https://github.com/yskmt>`_
* `Johnathan Jenkins <https://github.com/shaggytwodope>`_
* `tyjak <https://github.com/tyjak>`_
* `Edridge D'Souza <https://github.com/edridgedsouza>`_
* `Josue Ortega <https://github.com/noahfx>`_
* `mekhami <https://github.com/mekhami>`_
* `Nemanja Nedeljković <https://github.com/nemanjan00>`_
* `obosob <https://github.com/obosob>`_
* `codesoap <https://github.com/codesoap>`_
* `Toby Hughes <https://github.com/tobywhughes>`_
* `Noah Morrison <https://github.com/noahmorrison>`_
* `Mardigon Toler <https://github.com/mardigontoler>`_
* `5225225 <https://github.com/5225225>`_
* `Shawn Hind <https://github.com/shawnhind>`_
* `Antoine Nguyen <https://github.com/anhtuann>`_
* `JuanPablo <https://github.com/juanpabloaj>`_
* `Pablo Arias <https://github.com/pabloariasal>`_
* `Robert Greener <https://github.com/ragreener1>`_
* `mac1202 <https://github.com/mac1202>`_
* `Iqbal Singh <https://github.com/nagracks>`_
* `Lorenz Leitner <https://github.com/LoLei>`_
* `Markus Pettersson <https://github.com/MarkusPettersson98>`_
* `Reshef Elisha <https://github.com/ReshefElisha>`_
* `Ryan Reno <https://github.com/rreno>`_
* `Sam Tebbs <https://github.com/SamTebbs33>`_
* `Justin Partain <https://github.com/jupart>`_
* `afloofloo <https://github.com/afloofloo>`_
* `0xflotus <https://github.com/0xflotus>`_
* `Caleb Perkins <https://github.com/calebperkins>`_
* `Charles Saracco <https://github.com/crsaracco>`_
* `Corey McCandless <https://github.com/cmccandless>`_
* `Crestwave <https://github.com/Crestwave>`_
* `Danilo G. Baio <https://github.com/dbaio>`_
* `Donovan Glover <https://github.com/GloverDonovan>`_
* `Fabio Alessandro Locati <https://github.com/Fale>`_
* `Gabriel Le Breton <https://github.com/GabLeRoux>`_
* `Hans Roman <https://github.com/snahor>`_
* `micronn <https://github.com/micronn>`_
* `Ivan Klishch <https://github.com/klivan>`_
* `Joe MacDonald <https://github.com/joeythesaint>`_
* `Marc Abramowitz <https://github.com/msabramo>`_
* `Matt <https://github.com/mehandes>`_
* `Matthew Smith <https://github.com/msmith491>`_
* `Michael Kwon <https://github.com/mskwon>`_
* `Michael Wei <https://github.com/no2chem>`_
* `Ram-Z <https://github.com/Ram-Z>`_
* `Vivek Anand <https://github.com/vivekanand1101>`_
* `Wieland Hoffmann <https://github.com/mineo>`_
* `Adam Talsma <https://github.com/a-tal>`_
* `geheimnisse <https://github.com/geheimnisse>`_
* `Alexander Terry <https://github.com/mralext20>`_
* `peterpans01 <https://github.com/peterpans01>`_


================================================
FILE: CHANGELOG.rst
================================================
=============
TTVR Changelog
=============

.. _1.27.0: https://github.com/tildeclub/ttrv/releases/tag/v1.27.0
.. _1.26.0: https://github.com/tildeclub/ttrv/releases/tag/v1.26.0
.. _1.25.1: https://github.com/tildeclub/ttrv/releases/tag/v1.25.1
.. _1.25.0: https://github.com/tildeclub/ttrv/releases/tag/v1.25.0
.. _1.24.0: https://github.com/tildeclub/ttrv/releases/tag/v1.24.0
.. _1.23.0: https://github.com/tildeclub/ttrv/releases/tag/v1.23.0
.. _1.22.1: https://github.com/tildeclub/ttrv/releases/tag/v1.22.1
.. _1.22.0: https://github.com/tildeclub/ttrv/releases/tag/v1.22.0
.. _1.21.0: https://github.com/tildeclub/ttrv/releases/tag/v1.21.0
.. _1.20.0: https://github.com/tildeclub/ttrv/releases/tag/v1.20.0
.. _1.19.0: https://github.com/tildeclub/ttrv/releases/tag/v1.19.0
.. _1.18.0: https://github.com/tildeclub/ttrv/releases/tag/v1.18.0
.. _1.17.1: https://github.com/tildeclub/ttrv/releases/tag/v1.17.1
.. _1.17.0: https://github.com/tildeclub/ttrv/releases/tag/v1.17.0
.. _1.16.0: https://github.com/tildeclub/ttrv/releases/tag/v1.16.0
.. _1.15.1: https://github.com/tildeclub/ttrv/releases/tag/v1.15.1
.. _1.15.0: https://github.com/tildeclub/ttrv/releases/tag/v1.15.0
.. _1.14.1: https://github.com/tildeclub/ttrv/releases/tag/v1.14.1
.. _1.13.0: https://github.com/tildeclub/ttrv/releases/tag/v1.13.0
.. _1.12.1: https://github.com/tildeclub/ttrv/releases/tag/v1.12.1
.. _1.12.0: https://github.com/tildeclub/ttrv/releases/tag/v1.12.0
.. _1.11.0: https://github.com/tildeclub/ttrv/releases/tag/v1.11.0
.. _1.10.0: https://github.com/tildeclub/ttrv/releases/tag/v1.10.0
.. _1.9.1: https://github.com/tildeclub/ttrv/releases/tag/v1.9.1
.. _1.9.0: https://github.com/tildeclub/ttrv/releases/tag/v1.9.0
.. _1.8.1: https://github.com/tildeclub/ttrv/releases/tag/v1.8.1
.. _1.8.0: https://github.com/tildeclub/ttrv/releases/tag/v1.8.0
.. _1.7.0: https://github.com/tildeclub/ttrv/releases/tag/v1.7.0
.. _1.6.1: https://github.com/tildeclub/ttrv/releases/tag/v1.6.1
.. _1.6: https://github.com/tildeclub/ttrv/releases/tag/v1.6
.. _1.5: https://github.com/tildeclub/ttrv/releases/tag/v1.5
.. _1.4.2: https://github.com/tildeclub/ttrv/releases/tag/v1.4.2
.. _1.4.1: https://github.com/tildeclub/ttrv/releases/tag/v1.4.1
.. _1.4: https://github.com/tildeclub/ttrv/releases/tag/v1.4
.. _1.3: https://github.com/tildeclub/ttrv/releases/tag/v1.3
.. _1.2.2: https://github.com/tildeclub/ttrv/releases/tag/v1.2.2
.. _1.2.1: https://github.com/tildeclub/ttrv/releases/tag/v1.2.1
.. _1.2: https://github.com/tildeclub/ttrv/releases/tag/v1.2

--------------------
1.27.0_ (2019-06-02)
--------------------

This is the final release of RTV. See here for more information:

https://github.com/michael-lazar/rtv/issues/696

Features

* Added a configuration option to toggle whether to open web browser links in a
  new tab or a new window.

Documentation

* Improved the mailcap example for the ``feh`` command.
* Fixed the the descriptions for the ``j`` & ``k`` keys (they were swapped).

--------------------
1.26.0_ (2019-03-03)
--------------------

Features

* Added a brand new inbox page for viewing private messages and comment replies.
  The inbox is accessible with the ``i`` key. Supported actions include viewing
  message chains and replying to messages, marking messages as read/unread, and
  opening the context of a comment.
* Added the ability to compose new private messages with the ``C`` key.
* Updated the inline help ``?`` document to contain a more comprehensive list
  of commands.
* Opening a link from the command line is now faster at startup because the
  default subreddit will not be loaded beforehand.
* Added a new ``--debug-info`` command to display useful system information.

Bugfixes

* Fixed opening comments with the prompt ``/`` from the subscription window.
* The subscription and multireddit ``s``/``S`` keys now work from all pages.
* Relative time strings are now correctly pluralized.
* Fixed an unclosed file handler when opening the web browser.
* Fixed the application not starting if the user has an empty front page.

Configuration Changes

* Renamed the following keybindings to better represent their usage:

  * ``SORT_HOT`` -> ``SORT_1``
  * ``SORT_TOP`` -> ``SORT_2``
  * ``SORT_RISING`` -> ``SORT_3``
  * ``SORT_NEW`` -> ``SORT_4``
  * ``SORT_CONTROVERSIAL`` -> ``SORT_5``
  * ``SORT_GILDED`` -> ``SORT_6``
  * ``SUBREDDIT_OPEN_SUBSCRIPTIONS`` -> ``SUBSCRIPTIONS``
  * ``SUBREDDIT_OPEN_MULTIREDDITS`` -> ``MULTIREDDITS``


* Added new keybindings to support the inbox page:

  * ``SORT_7``
  * ``PRIVATE_MESSAGE``
  * ``INBOX_VIEW_CONTEXT``
  * ``INBOX_OPEN_SUBMISSION``
  * ``INBOX_REPLY``
  * ``INBOX_MARK_READ``
  * ``INBOX_EXIT``

* Added new theme elements to support the inbox page:

  * <New>
  * <Distinguished>
  * <MessageSubject>
  * <MessageLink>
  * <MessageAuthor>
  * <MessageSubreddit>
  * <MessageText>

--------------------
1.25.1_ (2019-02-13)
--------------------

Bugfixes

* Fixed a bug that was causing newlines to be stripped when posting comments
  and submissions.


--------------------
1.25.0_ (2019-02-03)
--------------------

Features

* You can now open HTML links that are embedded inside of comments and
  submissions by pressing the ``ENTER`` key and selecting a link from the list.
  This also works when copying links to the clipboard using ``Y``.
* Added the ``--no-autologin`` command line argument to disable automatically
  logging in at startup.
* Added the ``max_pager_cols`` configuration option to limit the text width
  when sending text to the system ``PAGER``.
* Additional filtering options have been added when viewing user pages.
* The gilded flair now displays the number of times a submission has been
  gilded.
* Submissions/comments now display the time that they were most recently edited.

Bugfixes

* Fixed the MIME parser for gfycat, and gfycat videos are now downloaded as mp4.
* Fixed formatting when composing posts with leading whitespace.
* Fixed crash when attempting to display a long terminal title.

Documentation

* RTV has been moved to the Arch Community Repository and installation
  instructions for Arch have been updated accordingly.


--------------------
1.24.0_ (2018-08-12)
--------------------

Features

* Python 3.7 is now officially supported.
* Lines that start with the hash symbol (#) are no longer ignored when
  composing posts in your editor. This allows # to be used with Reddit's
  markdown parser to denote headers.
* Added a new *dark colorblind* theme.
* Added support for the ``$RTV_PAGER`` environment variable, which can be
  used to set a unique PAGER for rtv.
* Added the ability to sort submissions by **guilded**.

Bugfixes

* Fixed a crash when setting the ``$BROWSER`` with python 3.7.
* Improved the error message when attempting to vote on an archived post.
* Cleaned up several outdated MIME parsers. Removed the vidme, twitch,
  oddshot, and imgtc parsers. Fixed the liveleak and reddit video parsers.


--------------------
1.23.0_ (2018-06-24)
--------------------

Features

* Submissions can now be marked as *[hidden]* using the ``space`` key. Hidden
  submissions will be removed from the feed when the page is reloaded.
* New MIME parsers have been added for vimeo.com and streamja.com.
* Added support for opening links with **qutebrowser**.

Bugfixes

* Fixed unhandled OAuth server log messages being dumped to stdout.
* Fixed the application crashing when performing rate-limited requests.
* Fixed crash when displaying posts that contain null byte characters.

Documentation

* Added README badge for *saythanks.io*.
* Updated the mailcap template to support *v.redd.it* links.


--------------------
1.22.1_ (2018-03-11)
--------------------

I forgot to check in a commit before publishing the 1.22.0 release (whoops!)

Bugfixes

* Updated the ``__version__.py`` file to report the current version.
* Added the missing v1.22.0 entry to the CHANGELOG.

--------------------
1.22.0_ (2018-03-07)
--------------------

Features

* Added the ``--no-flash`` option to disable terminal flashing.

Bugfixes

* Fixed automatically exiting on launch when trying to open an invalid
  subreddit with the ``-s`` flag.
* Fixed error handling for HTTP request timeouts when checking for new
  messages in the inbox.
* Fixed a typo in the sample theme config.

Documentation

* Added the FreeBSD package to the README.

--------------------
1.21.0_ (2017-12-30)
--------------------

Features

* Full support for customizable themes has been added. For more information,
  see the new section on themes in the README, and the ``THEMES.md`` file.

Bugfixes

* Fixed incorrect URL strings being sent to the **opera** web browser.
* Fixed timeout messages for the **surf** and **vimb** web browsers.
* Switched to using ``XDG_DATA_HOME`` to store the rtv browser history and
  credentials file.

--------------------
1.20.0_ (2017-12-05)
--------------------

Features

* Text piped to the ``$PAGER`` will now wrap on word / sentence breaks.
* New MIME parsers have been added for liveleak.com and worldstarhiphop.com.

Bugfixes

* Fixed a regression where text from the web browser's stdout/stderr was
  being sent to the terminal window.
* Fixed crashing on startup when the terminal doesn't support colors.
* Fixed broken text formatting when running inside of emacs ``term``.

Codebase

* Dropped support for python 3.3 because it's no longer supported upstream
  by **pytest**. The application will still install through pip but will no
  longer be tested.
* Added a text logo to the README.

--------------------
1.19.0_ (2017-10-24)
--------------------

Features

* Greatly improved loading times by using smarter rate limiting and page caching.
* The logout prompt is now visible as a popup notification.
* New MIME parsers have been added for gifs.com, giphy.com, imgtc.com,
  imgflip.com, livememe.com, makeameme.org and flickr.com
* Improved mailcap examples for parsing video links with mpv.

Bugfixes

* Patched a backwards-incompatible Reddit API change with the comment
  permalink now being returned in the response JSON.
* Fixed crashing when a comment contained exotic unicode characters like emojis.
* Removed the option to select custom sorting ranges for controversial and
  top comments.
* Fixed MIME parsing for single image Imgur galleries.

Codebase

* Preliminary refactoring for the upcoming theme support.
* Created some utility scripts for project maintenance.
* Created a release checklist document.
* Updated the README gif images and document layout.

--------------------
1.18.0_ (2017-09-06)
--------------------

Features

* The ``rtv -l`` flag has been deprecated and replaced with a positional
  argument, in order to match the syntax of other command line web browsers.
* NSFW content is now filtered according to the user's reddit profile
  settings.
* ``$RTV_BROWSER`` has been added as a way to set the preferred web browser.
* Sorting options for **relevance** and **comments** are now displayed on
  the search results page.
* An **[S]** badge is now displayed next to the submission author.
* The gfycat MIME parser has been expanded to support more URLs.
* New MIME parsers have been added for oddshot.tv, clips.twitch.tv,
  clippituser.tv, and Reddit's beta hosted videos.

Bugfixes

* Users can now use the prompt to navigate to "/comments/..." pages from
  inside of a submission.
* Users can now navigate to multireddits using the "/u/me/" prefix.
* Fixed the ``$BROWSER`` behavior on macOS to support the **chrome**,
  **firefox**, **safari**, and **default** keywords.

Codebase

* Travis CI tests have been moved to the trusty environment.
* Added more detailed logging of the environment and settings at startup.

--------------------
1.17.1_ (2017-08-06)
--------------------

Bugfixes

* ``J``/``K`` commands are now restricted to the submission page.

--------------------
1.17.0_ (2017-08-03)
--------------------

Features

* Added the ``J`` command to jump to the next sibling comment.
* Added the ``K`` command to jump to the parent comment.
* Search results can now be sorted, and the title bar has been updated
  to display the current search query.
* Imgur URLs are now resolved via the Imgur API.
  This enables the loading of large albums with over 10 images.
  An ``imgur_client_id`` option has been added to the RTV configuration.
* A MIME parser has been added for www.liveleak.com.
* RTV now respects the ``$VISUAL`` environment variable.

Bugfixes

* Fixed a screen refresh bug on urxvt terminals.
* New key bindings will now attempt to fallback to their default key if not
  defined in the user's configuration file.

Documentation

* Added additional mailcap examples for framebuffer videos and iTerm2.
* Python version information is now captured in the log at startup.


--------------------
1.16.0_ (2017-06-08)
--------------------

Features

* Added the ability to copy links to the OS clipboad with ``y`` and ``Y``.
* Both submissions and comments can now be viewed on **/user/** pages.
* A MIME parser has been added for www.streamable.com.
* A MIME parser has been added for www.vidme.com.
* Submission URLs can now be opened while viewing the comments page.

Bugfixes

* More graceful handling for the invalid LOCALE error on MacOS.
* A fatal error is now raised when trying to run on Windows without curses.
* Fixed an error when trying to view saved comments.
* Invalid refresh-tokens are now automatically deleted.
* Users who are signed up for Reddit's beta profiles can now launch RTV.

--------------------
1.15.1_ (2017-04-09)
--------------------
Codebase

* Removed the mailcap-fix dependency for python versions >= 3.6.0.
* Enabled installing test dependencies with ``pip install rtv[test]``.

--------------------
1.15.0_ (2017-03-30)
--------------------
Features

* Added the ability to open comment threads using the submission's
  permalink. E.g. **/comments/30rwj2**

Bugfixes

* Updated ``requests`` requirement to fix a bug in version 2.3.0.
* Fixed an edge case where comment trees were unfolding out of order.  

Codebase

* Removed dependency on the PyPI ``praw`` package. A version of PRAW 3
  is now bundled with rtv. This should make installation easier because
  users are no longer required to maintain a legacy version of praw in
  their python dependencies.
* Removed ``update-checker`` dependency.  

--------------------
1.14.1_ (2017-01-12)
--------------------
Features

* The order-by option menu now triggers after a single '2' or '5' keystroke
  instead of needing to double press.

Bugfixes

* Mailcap now handles multi-part shell commands correctly, e.g. "emacs -nw"
* OS X no longer relies on $DISPLAY to check if there is a display available.
* Added error handling for terminals that don't support hiding the cursor.
* Fixed a bug on tmux that prevented scrolling when $TERM was set to
  "xterm-256color" instead of screen.

Documentation

* Added section to FAQ about garbled characters output by curses.

--------------------
1.13.0_ (2016-10-17)
--------------------
Features

* Pressing `2` or `5` twice now opens a menu to select the time frame. 
* Added the `hide_username` config option.
* Added the `max_comment_cols` config option.

Bugfixes

* Fixed the terminal title from displaying b'' in py3.
* Flipped j and k in the documentation.
* Fixed bug when selecting post order for the front page.
* Added more descriptive error messages for invalid subreddits.

--------------------
1.12.1_ (2016-09-27)
--------------------
Bugfixes

* Fixed security vulnerability where malicious URLs could inject python code.
* No longer hangs when using mpv on long videos.
* Now falls back to ascii mode when the system locale is not utf-8.

--------------------
1.12.0_ (2016-08-25)
--------------------
Features

* Added a help banner with common key bindings.
* Added `gg` and `G` bindings to jump to the top and bottom the the page.
* Updated help screen now opens with the system PAGER.
* The `/` prompt now works from inside of submissions.
* Added an Instagram parser to extract images and videos from urls.

Bugixes

* Shortened reddit links (https://redd.it/) will now work with ``-s``.

Codebase
  
* Removed the Tornado dependency from the project.
* Added a requirements.txt file.
* Fixed a bunch of tests where cassettes were not being generated.
* Added compatability for pytest-xdist.


--------------------
1.11.0_ (2016-08-02)
--------------------
Features

* Added the ability to open image and video urls with the user's mailcap file.
* New ``--enable-media`` and ``copy-mailcap`` commands to support mailcap.
* New command `w` to save submissions and comments.
* New command `p` to toggle between the front page and the last visited subreddit.
* New command `S` to view subscribed multireddits.
* Extended ``/`` prompt to work with users, multireddits, and domains.
* New page ``/u/saved`` to view saved submissions.
* You can now specify the sort period by appending **-(period)**,
  E.g. **/r/python/top-week**.

Bugfixes

* Terminal title is now only set when $DISPLAY is present.
* Urlview now works on the submission as well as comments.
* Fixed text encoding when using urlview.
* Removed `futures` dependency from the python 3 wheel.
* Unhandled resource warnings on exit are now ignored.

Documentation

* Various README updates.
* Updated asciinema demo video.
* Added script to update the AUTHORS.rst file.

--------------------
1.10.0_ (2016-07-11)
--------------------
Features

* New command, `b` extracts urls from comments using urlviewer.
* Comment files will no longer be destroyed if RTV encounters an error while posting.
* The terminal title now displays the subreddit name/url.

Bugfixes

* Fixed crash when entering empty or invalid subreddit name.
* Fixed crash when opening x-posts linked to subreddits.
* Fixed a bug where the terminal title wasn't getting set.
* **/r/me** is now displayed as *My Submissions* in the header.

-------------------
1.9.1_ (2016-06-13)
-------------------
Features

* Better support for */r/random*.
* Added a ``monochrome`` config setting to disable all color.
* Improved cursor positioning when expanding/hiding comments.
* Show ``(not enough space)`` when comments are too large.

Bugfixes

* Fixed permissions when copying the config file.
* Fixed bug where submission indicies were duplicated when paging.
* Specify praw v3.4.0 to avoid installing praw 4.

Documentation

* Added section to the readme on Arch Linux installation.
* Updated a few argument descriptions.
* Added a proper ascii logo.

-------------------
1.9.0_ (2016-04-05)
-------------------
Features

* You can now open long posts/comments with the $PAGER by pressing `l`.
* Changed a couple of visual separators.

Documentation

* Added testing instructions to the FAQ.

-------------------
1.8.1_ (2016-03-01)
-------------------
Features

* All keys are now rebindable through the config.
* New bindings - ctrl-d and ctrl-u for page up / page down.
* Added tag for stickied posts and comments.
* Added bullet between timestamp and comment count.

Bugfixes

* Links starting with np.reddit.com no longer return `Forbidden`.

Documentation

* Updated README.

-------------------
1.8.0_ (2015-12-20)
-------------------
Features

* A banner on the top of the page now displays the selected page sort order.
* Hidden scores now show up as "- pts".
* Oauth settings are now accesible through the config file.
* New argument `--config` specifies the config file to use.
* New argument `--copy-config` generates a default config file.

Documentation

* Added a keyboard reference from keyboardlayouteditor.com
* Added a link to an asciinema demo video

-------------------
1.7.0_ (2015-12-08)
-------------------

**Note**
This version comes with a large change in the internal structure of the project,
but does not break backwards compatibility. This includes adding a new test
suite that will hopefully improve the stability of future releases.

Continuous Integration additions

* Travis-CI https://travis-ci.org/michael-lazar/rtv
* Coveralls https://coveralls.io/github/michael-lazar/rtv
* Gitter (chat) https://gitter.im/michael-lazar/rtv
* Added a tox config for local testing
* Added a pylint config for static code and style analysis
* The project now uses VCR.py to record HTTP interactions for testing.

Features

* Added a wider utilization of the loading screen for functions that make
  reddit API calls.
* In-progress loading screens can now be cancelled by pressing the `Esc` key.

Bugfixes

* OSX users should now be able to login using OAuth.
* Comments now return the correct nested level when loading "More Comments".
* Several unicode fixes, the project is now much more consistent in the way
  that unicode is handled.
* Several undocumented bug fixes as a result of the code restructure.


-------------------
1.6.1_ (2015-10-19)
-------------------
Bugfixes

* Fixed authentication checking for */r/me*.
* Added force quit option with the `Q` key.
* Removed option to sort subscriptions.
* Fixed crash with pressing `i` when not logged in.
* Removed futures requirement from the python 3 distribution.

Documentation

* Updated screenshot in README.
* Added section to the FAQ on installation.

-----------------
1.6_ (2015-10-14)
-----------------
Features

* Switched all authentication to OAuth.
* Can now list the version with `rtv --version`.
* Added a man page.
* Added confirmation prompt when quitting.
* Submissions now display the index in front of their title.

Bugfixes

* Streamlined error logging.

Documentation

* Added missing docs for the `i` key.
* New documentation for OAuth.
* New FAQ section.

-----------------
1.5_ (2015-08-26)
-----------------
Features

* New page to view and open subscribed subreddits with `s`.
* Sorting method can now be toggled with the `1` - `5` keys.
* Links to x-posts are now opened inside of RTV.

Bugfixes

* Added */r/* to subreddit names in the subreddit view.

-------------------
1.4.2_ (2015-08-01)
-------------------
Features

* Pressing the `o` key now opens selfposts directly inside of rtv.

Bugfixes

* Fixed invalid subreddits from throwing unexpected errors.

-------------------
1.4.1_ (2015-07-11)
-------------------
Features

* Added the ability to check for unread messages with the `i` key.
* Upped required PRAW version to 3.

Bugfixes

* Fixed crash caused by downvoting.
* Missing flairs now display properly.
* Fixed ResourceWarning on Python 3.2+.

-----------------
1.4_ (2015-05-16)
-----------------
Features

* Unicode support has been vastly improved and is now turned on by default.
  Ascii only mode can be toggled with the `--ascii` command line flag.
* Added pageup and pagedown with the `m` and `n` keys.
* Support for terminal based webbrowsers such as links and w3m.
* Browsing history is now persistent and stored in `$XDG_CACHE_HOME`.

Bugfixes

* Several improvements for handling unicode.
* Fixed crash caused by resizing the window and exiting a submission.

-----------------
1.3_ (2015-04-22)
-----------------
Features

* Added edit `e` and delete `d` for comments and submissions.
* Added *nsfw* tags.

Bugfixes

* Upvote/downvote icon now displays in the submission selfpost.
* Loading large *MoreComment* blocks no longer hangs the program.
* Improved logging and error handling with praw interactions.

-------------------
1.2.2_ (2015-04-07)
-------------------
Bugfixes

* Fixed default subreddit not being set.

Documentation

* Added changelog and contributor links to the README.

-------------------
1.2.1_ (2015-04-06)
-------------------
Bugfixes

* Fixed crashing on invalid subreddit names

-----------------
1.2_ (2015-04-06)
-----------------
Features

* Added user login / logout with the `u` key.
* Added subreddit searching with the `f` key.
* Added submission posting with the `p` key.
* Added viewing of user submissions with `/r/me`.
* Program title now displays in the terminal window.
* Gold symbols now display on guilded comments and posts.
* Moved default config location to XDG_CONFIG_HOME.

Bugfixes

* Improved error handling for submission / comment posts.
* Fixed handling of unicode flairs.
* Improved displaying of the help message and selfposts on small terminal windows.
* The author's name now correctly highlights in submissions
* Corrected user agent formatting.
* Various minor bugfixes.

------------------
1.1.1 (2015-03-30)
------------------
* Post comments using your text editor.


================================================
FILE: CONTRIBUTING.rst
================================================
----------------------
Contributor Guidelines
----------------------

Before you start
================

- Post an issue on the `tracker <https://github.com/tildeclub/ttrv/issues>`_ describing the bug or feature you would like to add
- If an issue already exists, leave a comment to let others know that you intend to work on it

Considerations
==============

- One of the project's goals is to maintain compatibility with as many terminal emulators as possible.
  Please be mindful of this when designing a new feature

  - Is it compatible with both Linux and OS X?
  - Is it compatible with both Python 2 and Python 3
  - Will it work over ssh (without X11)?
  - What about terminals that don't support color? Or in those with limited (8/256) colors?
  - Will it work in tmux/screen?
  - Will is fail gracefully if unicode is not supported?

- If you're adding a new feature, try to include a few test cases.
  See the section below on setting up your test environment
- If you tried, but you can't get the tests running in your environment, it's ok
- If you are unsure about anything, ask!

Submitting a pull request
=========================

- Reference the issue # that the pull request is related to
- Make sure you have merged in the latest changes from the ``master`` branch
- After you submit, make sure that the Travis-CI build passes
- Be prepared to have your code reviewed.
  For non-trivial additions, it's normal for this process to take a few iterations

Style guide
===========

- All code should follow `PEP 8 <https://www.python.org/dev/peps/pep-0008/>`_
- Try to keep lines under 80 characters, but don't sacrifice readability to do it!

  **Ugly**

  .. code-block:: python

              text = ''.join(
                  line for line in fp2 if not line.startswith('#'))
                  
  **Better**

  .. code-block:: python

            text = ''.join(line for line in fp2 if not line.startswith('#'))
            
- Use the existing codebase as a reference when writing docstrings (adopted from the `Google Style Guide <https://google.github.io/styleguide/pyguide.html#Comments>`_)
- Add an encoding header ``# -*- coding: utf-8 -*-`` to all new files
- **Please don't submit pull requests for style-only code changes**

Running the tests
=================

This project uses `pytest <http://pytest.org/>`_ and `VCR.py <https://vcrpy.readthedocs.org/>`_

VCR is a tool that records HTTP requests made during the test run and stores them in *tests/cassettes* for subsequent runs.
This both speeds up the tests and helps to maintain consistency across runs.

1. Install the test dependencies

   .. code-block:: bash
  
      $ pip install ttrv[test]

2. Set your ``$PYTHONPATH`` to point to the directory of your ttrv repository.

    .. code-block:: bash

      $ export PYTHONPATH=~/code/ttrv/

3. Run the tests using the existing cassettes
  
   .. code-block:: bash
    
     $ python -m pytest ~/code/ttrv/tests/
     ================================ test session starts ================================
     platform linux -- Python 3.4.0, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
     rootdir: ~/code/ttrv/, inifile: 
     plugins: xdist-1.14, cov-2.2.0
     collected 113 items

4. By default, the cassettes will act as read-only.
   If you have written a new test and would like to record a cassette, you must provide your own refresh token.
   The easiest thing to do is to use the token generated by ttrv when you log in.
   This is usually stored as *~/.local/share/ttrv/refresh-token*.

   .. code-block:: bash
    
      $ python -m pytest ~/code/ttrv/tests/ --record-mode once --refresh-token ~/.local/share/ttrv/refresh-token
      ================================ test session starts ================================
      platform linux -- Python 3.4.0, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
      rootdir: ~/code/ttrv/, inifile: 
      plugins: xdist-1.14, cov-2.2.0
      collected 113 items
  
   Note that all sensitive information will automatically be stripped from the cassette when it's saved.

5. Once you have generated a new cassette, go ahead and commit it to your branch along with your test case


================================================
FILE: CONTROLS.md
================================================
# Controls

## Basic Commands

- <kbd>j</kbd> or <kbd>▼</kbd> - Move the cursor down
- <kbd>k</kbd> or <kbd>▲</kbd> - Move the cursor up
- <kbd>l</kbd> or <kbd>►</kbd> - View the currently selected item
- <kbd>h</kbd> or <kbd>◄</kbd> - Return to the previous view
- <kbd>m</kbd> or <kbd>PgUp</kbd> - Move the cursor up one page
- <kbd>n</kbd> or <kbd>PgDn</kbd> - Move the cursor down one page
- <kbd>gg</kbd> - Jump to the top of the page
- <kbd>G</kbd> - Jump to the bottom of the page
- <kbd>1</kbd> to <kbd>7</kbd> - Sort submissions by category
- <kbd>r</kbd> or <kbd>F5</kbd> - Refresh the content on the current page
- <kbd>u</kbd> - Login to your reddit account
- <kbd>q</kbd> - Quit
- <kbd>Q</kbd> - Force quit
- <kbd>y</kbd> - Copy submission permalink to clipboard
- <kbd>Y</kbd> - Copy submission link to clipboard
- <kbd>F2</kbd> - Cycle to the previous color theme
- <kbd>F3</kbd> - Cycle to the next color theme
- <kbd>?</kbd> - Show the help screen
- <kbd>/</kbd> - Open a prompt to select a subreddit

The <kbd>/</kbd> key opens a text prompt at the bottom of the screen. You can use
this to type in the name of the subreddit that you want to open. The following text
formats are recognized:

- ``/python`` - Open a subreddit, shorthand
- ``/r/python`` - Open a subreddit
- ``/r/python/new`` - Open a subreddit, sorted by category
- ``/r/python/controversial-year`` - Open a subreddit, sorted by category and time
- ``/r/python+linux+commandline`` - Open multiple subreddits merged together
- ``/comments/30rwj2`` - Open a submission, shorthand
- ``/r/python/comments/30rwj2`` - Open a submission
- ``/r/front`` - Open your front page
- ``/u/me`` - View your submissions
- ``/u/me/saved`` - View your saved content
- ``/u/me/hidden`` - View your hidden content
- ``/u/me/upvoted`` - View your upvoted content
- ``/u/me/downvoted`` - View your downvoted content
- ``/u/spez`` - View a user's submissions and comments
- ``/u/spez/submitted`` - View a user's submissions
- ``/u/spez/comments`` - View a user's comments
- ``/u/multi-mod/m/android`` - Open a user's curated multireddit
- ``/domain/python.org`` - Search for links for the given domain

## Authenticated Commands

Some actions require that you be logged in to your reddit account. You can login
by pressing the <kbd>u</kbd> key. Once you are logged in, your username will
appear in the top-right corner of the screen.

- <kbd>a</kbd> - Upvote
- <kbd>z</kbd> - Downvote
- <kbd>c</kbd> - Compose a new submission or comment
- <kbd>C</kbd> - Compose a new private message
- <kbd>e</kbd> - Edit the selected submission or comment
- <kbd>d</kbd> - Delete the selected submission or comment
- <kbd>i</kbd> - View your inbox (see [inbox mode](#inbox-mode))
- <kbd>s</kbd> - View your subscribed subreddits (see [subscription mode](#subscription-mode))
- <kbd>S</kbd> - View your subscribed multireddits (see [subscription mode](#subscription-mode))
- <kbd>u</kbd> - Logout of your reddit account
- <kbd>w</kbd> - Save the selected submission or comment

## Subreddit Mode

The following actions can be performed when viewing a subreddit:

- <kbd>l</kbd> or <kbd>►</kbd> - View the comments for the selected submission (see [submission mode](#submission-mode))
- <kbd>o</kbd> or <kbd>ENTER</kbd> - Open the selected submission link using your web browser or ``.mailcap`` config
- <kbd>SPACE</kbd> - Mark the selected submission as *hidden*
- <kbd>p</kbd> - Toggle between the currently viewed subreddit and ``/r/front``
- <kbd>f</kbd> - Open a prompt to search the current subreddit for a text string

## Submission Mode

The following actions can be performed when viewing a submission:

- <kbd>h</kbd> or <kbd>◄</kbd> - Close the submission and return to the previous page
- <kbd>l</kbd> or <kbd>►</kbd> - View the selected comment using the system's pager
- <kbd>o</kbd> or <kbd>ENTER</kbd> - Open a link in the comment using your web browser or ``.mailcap`` config
- <kbd>SPACE</kbd> - Fold or expand the selected comment and its children
- <kbd>b</kbd> - Send the comment text to the system's urlviewer application
- <kbd>J</kbd> - Move the cursor down the the next comment at the same indentation
- <kbd>K</kbd> - Move the cursor up to the parent comment

## Subscription Mode

The following actions can be performed when viewing your subscriptions or multireddits:

- <kbd>h</kbd> or <kbd>◄</kbd> - Close your subscriptions and return to the previous page
- <kbd>l</kbd> or <kbd>►</kbd> - Open the selected subreddit or multireddit

## Inbox Mode

The following actions can be performed when viewing your inbox:

- <kbd>h</kbd> or <kbd>◄</kbd> - Close your inbox and return to the previous page
- <kbd>l</kbd> or <kbd>►</kbd> - View the context of the selected comment
- <kbd>o</kbd> or <kbd>Enter</kbd> - Open the submission of the selected comment
- <kbd>c</kbd> - Reply to the selected comment or message
- <kbd>w</kbd> - Mark the selected comment or message as seen


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2015 michael-lazar

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



================================================
FILE: MANIFEST.in
================================================
include version.py
include CHANGELOG.rst
include AUTHORS.rst
include README.md
include LICENSE
include ttrv.1
include ttrv/templates/*
include ttrv/themes/*


================================================
FILE: README.md
================================================
<h1 align="center">Tilde Terminal Reddit Viewer (TTRV)</h1>
<p>Forked from Original source/development at: <a href="https://github.com/michael-lazar/rtv">RTV</a></p>

<p align="center">
A text-based interface (TUI) to view and interact with Reddit from your terminal.<br>
</p>

<p align="center">
<img alt="title image" src="https://github.com/tildeclub/ttrv/raw/master/resources/title_image.png"/>
</p>

<p align="center">
</p>

## Table of Contents

* [Demo](#demo)  
* [Installation](#installation)  
* [Usage](#usage)  
* [Settings](#settings)
* [Themes](#themes)
* [FAQ](#faq)  
* [Contributing](#contributing)  
* [License](#license)  

## Demo

<p align="center">
<img alt="title image" src="https://github.com/tildeclub/ttrv/raw/master/resources/demo.gif"/>
</p>

## Installation

### PyPI package

TTRV is available on [PyPI](https://pypi.python.org/pypi/ttrv/) and can be installed with pip:

```bash
$ pip install ttrv
```

### From source

```bash
$ git clone https://github.com/tildeclub/ttrv.git
$ cd ttrv/
$ python setup.py install
```

### Windows

TTRV is not supported on Windows but you can enable Windows subsystem for Linux, download your preferred Linux distribution from Microsoft Store and access it from there.

To open links on Edge, paste the line below to ``{HOME}/.bashrc`` 
```
export BROWSER='/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'
```

## Usage

To run the program, type:

```bash
$ ttrv --help
```

### Controls

Move the cursor using either the arrow keys or *Vim* style movement:

- Press <kbd>▲</kbd> and <kbd>▼</kbd> to scroll through submissions
- Press <kbd>▶</kbd> to view the selected submission and <kbd>◀</kbd> to return
- Press <kbd>space-bar</kbd> to expand/collapse comments
- Press <kbd>u</kbd> to login (this requires a web browser for [OAuth](https://github.com/reddit-archive/reddit/wiki/oauth2))
- Press <kbd>?</kbd> to open the help screen

Press <kbd>/</kbd> to open the navigation prompt, where you can type things like:

- ``/front``
- ``/r/commandprompt+linuxmasterrace``
- ``/r/programming/controversial``
- ``/u/me``
- ``/u/multi-mod/m/art``
- ``/domain/github.com``

See [CONTROLS](CONTROLS.md) for the full list of commands.

## Settings

### Configuration File

Configuration files are stored in the ``{HOME}/.config/ttrv/`` directory.

Check out [ttrv.cfg](ttrv/templates/ttrv.cfg) for the full list of configurable options. You can clone this file into your home directory by running:

```bash
$ ttrv --copy-config
```

### Viewing Media Links

You can use [mailcap](https://en.wikipedia.org/wiki/Media_type#Mailcap) to configure how TTRV will open different types of links.

<p align="center">
<img alt="title image" src="https://github.com/tildeclub/ttrv/raw/master/resources/mailcap.gif"/>
</p>

A mailcap file allows you to associate different MIME media types, like ``image/jpeg`` or ``video/mp4``, with shell commands. This feature is disabled by default because it takes a few extra steps to configure. To get started, copy the default mailcap template to your home directory.

```bash
$ ttrv --copy-mailcap
```

This template contains examples for common MIME types that work with popular reddit websites like *imgur*, *youtube*, and *gfycat*. Open the mailcap template and follow the [instructions](ttrv/templates/mailcap) listed inside.

Once you've setup your mailcap file, enable it by launching ttrv with the ``ttrv --enable-media`` flag (or set it in your **ttrv.cfg**)

### Environment Variables

The default programs that TTRV interacts with can be configured through environment variables:

<table>
  <tr>
  <td><strong>$TTRV_EDITOR</strong></td>
  <td>A program used to compose text submissions and comments, e.g. <strong>vim</strong>, <strong>emacs</strong>, <strong>gedit</strong>
  <br/> <em>If not specified, will fallback to $VISUAL and $EDITOR in that order.</em></td>
  </tr>
  <tr>
  <td><strong>$TTRV_BROWSER</strong></td>
  <td>A program used to open links to external websites, e.g. <strong>firefox</strong>, <strong>google-chrome</strong>, <strong>w3m</strong>, <strong>lynx</strong>
  <br/> <em>If not specified, will fallback to $BROWSER, or your system's default browser.</em></td>
  </tr>
  <tr>
  <td><strong>$TTRV_URLVIEWER</strong></td>
  <td>A tool used to extract hyperlinks from blocks of text, e.g. <a href=https://github.com/sigpipe/urlview>urlview</a>, <a href=https://github.com/firecat53/urlscan>urlscan</a>
  <br/> <em>If not specified, will fallback to urlview if it is installed.</em></td>
  </tr>
</table>

### Clipboard

TTRV supports copying submission links to the OS clipboard. On macOS this is supported out of the box.
On Linux systems you will need to install either [xsel](http://www.vergenet.net/~conrad/software/xsel/) or [xclip](https://sourceforge.net/projects/xclip/).

## Themes

Themes can be used to customize the look and feel of TTRV

<table>
  <tr>
    <td align="center">
      <p><strong>Solarized Dark</strong></p>
      <img src="https://github.com/tildeclub/ttrv/raw/master/resources/theme_solarized_dark.png"></img>
    </td>
    <td align="center">
      <p><strong>Solarized Light</strong></p>
      <img src="https://github.com/tildeclub/ttrv/raw/master/resources/theme_solarized_light.png"></img>
    </td>
  </tr>
  <tr>
    <td align="center">
      <p><strong>Papercolor</strong></p>
      <img src="https://github.com/tildeclub/ttrv/raw/master/resources/theme_papercolor.png"></img>
    </td>
    <td align="center">
      <p><strong>Molokai</strong></p>
      <img src="https://github.com/tildeclub/ttrv/raw/master/resources/theme_molokai.png"></img>
    </td>
  </tr>
</table>

You can list all installed themes with the ``--list-themes`` command, and select one with ``--theme``. You can save your choice permanently in your [ttrv.cfg](ttrv/templates/ttrv.cfg) file. You can also use the <kbd>F2</kbd> & <kbd>F3</kbd> keys inside of TTRV to cycle through all available themes.

For instructions on writing and installing your own themes, see [THEMES.md](THEMES.md).

## FAQ

<details>
 <summary>Why am I getting an error during installation/when launching ttrv?</summary>
 
  > If your distro ships with an older version of python 2.7 or python-requests,
  > you may experience SSL errors or other package incompatibilities. The
  > easiest way to fix this is to install ttrv using python 3. If you
  > don't already have pip3, see http://stackoverflow.com/a/6587528 for setup
  > instructions. Then do
  >
  > ```bash
  > $ sudo pip uninstall ttrv
  > $ sudo pip3 install -U ttrv
  > ```

</details>
<details>
  <summary>Why do I see garbled text like <em>M-b~@M-"</em> or <em>^@</em>?</summary>
 
  > This type of text usually shows up when python is unable to render
  > unicode properly.
  >    
  > 1. Try starting TTRV in ascii-only mode with ``ttrv --ascii``
  > 2. Make sure that the terminal/font that you're using supports unicode
  > 3. Try [setting the LOCALE to utf-8](https://perlgeek.de/en/article/set-up-a-clean-utf8-environment)
  > 4. Your python may have been built against the wrong curses library,
  >    see [here](stackoverflow.com/questions/19373027) and
  >    [here](https://bugs.python.org/issue4787) for more information

</details>
<details>
 <summary>How do I run the code directly from the repository?</summary>
 
  > This project is structured to be run as a python *module*. This means that
  > you need to launch it using python's ``-m`` flag. See the example below, which
  > assumes that you have cloned the repository into the directory **~/ttrv_project**.
  >
  > ```bash
  > $ cd ~/ttrv_project
  > $ python3 -m ttrv
  > ```

</details>

## Contributing
All feedback and suggestions are welcome, just post an issue!

Before writing any code, please read the [Contributor Guidelines](CONTRIBUTING.rst).

## License
This project is distributed under the [MIT](LICENSE) license.
   


================================================
FILE: THEMES.md
================================================
# Themes

## Installing Themes

You can install custom themes by copying them into your **~/.config/ttrv/themes/**
directory. The name of the theme will match the name of the file.

```
$ cp my-custom-theme.cfg ~/.config/ttrv/themes/
$ ttrv --theme my-custom-theme
```

If you've created a cool theme and would like to share it with the community,
please submit a pull request!

## A quick primer on ANSI colors

Color support on modern terminals can be split into 4 categories:

1. No support for colors
2. 8 system colors - Black, Red, Green, Yellow, Blue, Magenta,
   Cyan, and White
3. 16 system colors - Everything above + bright variations
4. 256 extended colors - Everything above + 6x6x6 color palette + 24 greyscale colors

<p align="center">
<img alt="terminal colors" src="resources/terminal_colors.png"/>
<br><i>The 256 terminal color codes, image from <a href=https://github.com/eikenb/terminal-colors>https://github.com/eikenb/terminal-colors</a></i>
</p>

The 16 system colors, along with the default foreground and background,
can usually be customized through your terminal's profile settings. The
6x6x6 color palette and grayscale colors are constant RGB values across
all terminals. TTRV's default theme only uses the 8 primary system colors,
which is why it matches the "look and feel" of the terminal that you're
running it in.

<p align="center">
<img alt="iTerm preferences" src="resources/iterm_preferences.png"/>
<br><i>Setting the 16 system colors in iTerm preferences</i>
</p>

The curses library determines your terminal's color support by reading your
environment's ``$TERM`` variable, and looking up your terminal's
capabilities in the [terminfo](https://linux.die.net/man/5/terminfo)
database. You can emulate this behavior by using the ``tput`` command:

```
bash$ export TERM=xterm
bash$ tput colors
8
bash$ export TERM=xterm-256color
bash$ tput colors
256
bash$ export TERM=vt220
bash$ tput colors
-1
```

In general you should not be setting your ``$TERM`` variable manually,
it will be set automatically by you terminal. Often, problems with
terminal colors can be traced back to somebody hardcoding
``TERM=xterm-256color`` in their .bashrc file.

## Understanding TTRV Themes

Here's an example of what an TTRV theme file looks like:

```
[theme]
;<element>            = <foreground>  <background>  <attributes>
Normal                = default       default       normal
Selected              = default       default       normal
SelectedCursor        = default       default       reverse

TitleBar              = cyan          -             bold+reverse
OrderBar              = yellow        -             bold
OrderBarHighlight     = yellow        -             bold+reverse
HelpBar               = cyan          -             bold+reverse
Prompt                = cyan          -             bold+reverse
NoticeInfo            = -             -             bold
NoticeLoading         = -             -             bold
NoticeError           = -             -             bold
NoticeSuccess         = -             -             bold

CursorBlock           = -             -             -
CursorBar1            = magenta       -             -
CursorBar2            = cyan          -             -
CursorBar3            = green         -             -
CursorBar4            = yellow        -             -

CommentAuthor         = blue          -             bold
CommentAuthorSelf     = green         -             bold
CommentCount          = -             -             -
CommentText           = -             -             -
Created               = -             -             -
Downvote              = red           -             bold
Gold                  = yellow        -             bold
HiddenCommentExpand   = -             -             bold
HiddenCommentText     = -             -             -
MultiredditName       = yellow        -             bold
MultiredditText       = -             -             -
NeutralVote           = -             -             bold
NSFW                  = red           -             bold+reverse
Saved                 = green         -             -
Score                 = -             -             -
Separator             = -             -             bold
Stickied              = green         -             -
SubscriptionName      = yellow        -             bold
SubscriptionText      = -             -             -
SubmissionAuthor      = green         -             bold
SubmissionFlair       = red           -             -
SubmissionSubreddit   = yellow        -             -
SubmissionText        = -             -             -
SubmissionTitle       = -             -             bold
Upvote                = green         -             bold
Link                  = blue          -             underline
LinkSeen              = magenta       -             underline
UserFlair             = yellow        -             bold
```

Every piece of text drawn on the screen is assigned to an ``<element>``,
which has three properties:

- ``<foreground>``: The text color
- ``<background>``: The background color
- ``<attributes>``: Additional text attributes, like bold or underlined

### Colors

The ``<foreground>`` and ``<background>`` properties can be set to any the following values:

- ``default``, which means use the terminal's default foreground or background color.
- The 16 system colors:
  <p>
  <table>
    <tr><td>black</td><td>dark_gray</td></tr>
    <tr><td>red</td></td><td>bright_red</td></tr>
    <tr><td>green</td></td><td>bright_green</td></tr>
    <tr><td>yellow</td></td><td>bright_yellow</td></tr>
    <tr><td>blue</td></td><td>bright_blue</td></tr>
    <tr><td>magenta</td></td><td>bright_magenta</td></tr>
    <tr><td>cyan</td></td><td>bright_cyan</td></tr>
    <tr><td>light_gray</td></td><td>white</td></tr>
  </table>
  </p>
- ``ansi_{n}``, where n is between 0 and 255. These will map to their
  corresponding ANSI colors (see the figure above).
- Hex RGB codes, like ``#0F0F0F``, which will be converted to their nearest
  ANSI color. This is generally not recommended because the conversion process
  downscales the color resolution and the resulting colors will look "off".

### Attributes

The ``<attributes>`` property can be set to any of the following values:

- ``normal``, ``bold``, ``underline``, or ``standout``.
- ``reverse`` will swap the foreground and background colors.

Attributes can be mixed together using the + symbol. For example,
  ``bold+underline`` will make the text bold and underlined.

### Modifiers

TTRV themes use special "modifer" elements to define the default
application style. This allows you to do things like set the default
background color without needing to set ``<background>`` on every
single element. The three modifier elements are:

- ``Normal`` - The default modifier that applies to all text elements.
- ``Selected`` - Applies to text elements that are highlighted on the page.
- ``SelectedCursor`` - Like ``Selected``, but only applies to ``CursorBlock``
  and ``CursorBar{n}`` elements.

When an element is marked with a ``-`` token, it means inherit the
attribute value from the relevant modifier. This is best explained
through an example:

```
[theme]
;<element>            = <foreground>  <background>  <attributes>
Normal                = ansi_241      ansi_230      normal
Selected              = ansi_241      ansi_254      normal

Link                  = ansi_33       -             underline
```

<p align="center">
<img src="resources/theme_modifiers.png"/>
<br><i>The default solarized-light theme</i>
</p>

In the snippet above, the ``Link`` element has its background color set
to the ``-`` token. This means that it will inherit it's background
from either the ``Normal`` (light yellow, ansi_230) or the ``Selected`` (light grey, ansi_254)
element, depending on if it's selected or not.

Compare this with what happens when the ``Link`` background is hard-coded to ``ansi_230``:

```
[theme]
;<element>            = <foreground>  <background>  <attributes>
Normal                = ansi_241      ansi_230      normal
Selected              = ansi_241      ansi_254      normal

Link                  = ansi_33       ansi_230      underline
```

<p align="center">
<img src="resources/theme_modifiers_2.png"/>
<br><i>The Link element hard-coded to ansi_230</i>
</p>

In this case, the ``Link`` background stays yellow (ansi_230) even when the link is
selected by the cursor.


================================================
FILE: requirements.txt
================================================
beautifulsoup4==4.5.1
decorator==4.0.10
kitchen==1.2.4
mailcap-fix==0.1.3
requests==2.20.0
six==1.10.0
pytest==3.2.3
vcrpy==1.10.5
pylint==1.6.5
pytest-xdist==1.22.5

================================================
FILE: scripts/build_authors.py
================================================
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Scrape the project contributors list from Github and update AUTHORS.rst
"""

from __future__ import unicode_literals
import os
import time
import logging

import requests

_filepath = os.path.dirname(os.path.relpath(__file__))

FILENAME = os.path.abspath(os.path.join(_filepath, '..', 'AUTHORS.rst'))
URL = "https://api.github.com/repos/tildeclub/ttrv/contributors?per_page=1000"
HEADER = """\
================
TTRV Contributors
================

Thanks to the following people for their contributions to this project.

"""


def main():

    logging.captureWarnings(True)

    # Request the list of contributors
    print('GET {}'.format(URL))
    resp = requests.get(URL)
    contributors = resp.json()

    lines = []
    for contributor in contributors:
        time.sleep(1.0)

        # Request each contributor individually to get the full name
        print('GET {}'.format(contributor['url']))
        resp = requests.get(contributor['url'])
        user = resp.json()

        name = user.get('name') or contributor['login']
        url = user['html_url']
        lines.append('* `{} <{}>`_'.format(name, url))

    print('Writing to {}'.format(FILENAME))
    text = HEADER + '\n'.join(lines)
    text = text.encode('utf-8')
    with open(FILENAME, 'wb') as fp:
        fp.write(text)


if __name__ == '__main__':
    main()


================================================
FILE: scripts/build_manpage.py
================================================
#!/usr/bin/env python

"""
Internal tool used to automatically generate an up-to-date version of the tvr
man page. Currently this script should be manually ran after each version bump.
In the future, it would be nice to have this functionality built into setup.py.

Usage:
    $ python scripts/build_manpage.py
"""

import os
import sys
from datetime import datetime

_filepath = os.path.dirname(os.path.relpath(__file__))
ROOT = os.path.abspath(os.path.join(_filepath, '..'))
sys.path.insert(0, ROOT)

import tvr
from tvr import config


def main():

    parser = config.build_parser()
    help_text = parser.format_help()
    help_sections = help_text.split('\n\n')
    del help_sections[1]

    data = {}
    print('Fetching version')
    data['version'] = tvr.__version__
    print('Fetching release date')
    data['release_date'] = datetime.utcnow().strftime('%B %d, %Y')
    print('Fetching synopsis')
    synopsis = help_sections[0].replace('usage: ', '')
    synopsis = ' '.join(line.strip() for line in synopsis.split('\n'))
    data['synopsis'] = synopsis
    print('Fetching description')
    data['description'] = help_sections[1]
    # Build the options section for each argument from the help section
    # Example Before:
    #         -h, --help        show this help message and exit
    # Example After
    #         .TP
    #         \fB-h\fR, \fB--help\fR
    #         show this help message and exit
    options = ''
    lines = help_sections[2].split('\n')[1:]  # positional arguments
    lines.extend(help_sections[3].split('\n')[1:])  # optional arguments
    lines = [line.strip() for line in lines]
    arguments = []
    for line in lines:
        if line.startswith('-'):
            arguments.append(line)
        elif line.startswith('URL'):
            # Special case for URL which is a positional argument
            arguments.append(line)
        else:
            arguments[-1] = arguments[-1] + ' ' + line
    for argument in arguments:
        flag, description = (col.strip() for col in argument.split('  ', 1))
        flag = ', '.join(r'\fB'+f+r'\fR' for f in flag.split(', '))
        options += '\n'.join(('.TP', flag, description, '\n'))
    data['options'] = options
    print('Fetching license')
    data['license'] = tvr.__license__
    print('Fetching copyright')
    data['copyright'] = tvr.__copyright__
    # Escape dashes is all of the sections
    data = {k: v.replace('-', r'\-') for k, v in data.items()}
    print('Reading from %s/scripts/tvr.1.template' % ROOT)
    with open(os.path.join(ROOT, 'scripts/tvr.1.template')) as fp:
        template = fp.read()
    print('Populating template')
    out = template.format(**data)
    print('Writing to %s/tvr.1' % ROOT)
    with open(os.path.join(ROOT, 'tvr.1'), 'w') as fp:
        fp.write(out)


if __name__ == '__main__':
    main()


================================================
FILE: scripts/cassettes/demo_theme.yaml
================================================
interactions:
- request:
    body: grant_type=refresh_token&redirect_uri=http%3A%2F%2F127.0.0.1%3A65000%2F&refresh_token=**********
    headers:
      Accept: ['*/*']
      Accept-Encoding: ['gzip, deflate']
      Authorization: ['**********']
      Connection: [keep-alive]
      Content-Length: ['122']
      Content-Type: [application/x-www-form-urlencoded]
      User-Agent: [TTRV Theme Demo PRAW/3.6.1 Python/3.6.1 b'Darwin-14.5.0-x86_64-i386-64bit']
    method: POST
    uri: https://api.reddit.com/api/v1/access_token/
  response:
    body: {string: '{"access_token": "5TsmI0CKTE9P80JWx5PNB8q2cQw", "token_type":
        "bearer", "device_id": "None", "expires_in": 3600, "scope": "edit history
        identity mysubreddits privatemessages read report save submit subscribe vote"}'}
    headers:
      Accept-Ranges: [bytes]
      Connection: [keep-alive]
      Content-Length: ['214']
      Content-Type: [application/json; charset=UTF-8]
      Date: ['Fri, 07 Jul 2017 05:52:23 GMT']
      Server: [snooserv]
      Set-Cookie: ['session_tracker=CYIJ6S5YULMlp5p0IA.0.1499406743221.Z0FBQUFBQlpYeUdYNDQwcjA1andsVVJrVjFwNGtKNzZiMHE5ODhpd3BUVjVicjhoRmRudDVBeXZqbm93ZUxuZ1JsTmlIdWp2ZXRERTZubjI3N0k5a2ZQeWpoYVFlaThJS05ibkZ3RlhZTmtVYVF2VXFhcnFyQl83RDk3MXJEZzJzX0xDM1BPRE14ZDg;
          Domain=reddit.com; Max-Age=7199; Path=/; expires=Fri, 07-Jul-2017 07:52:23
          GMT; secure', edgebucket=u1fMLgWA7OnvVsZM9S; Domain=reddit.com; Max-Age=63071999;
          Path=/;  secure]
      Strict-Transport-Security: [max-age=15552000; includeSubDomains; preload]
      Via: [1.1 varnish]
      X-Cache: [MISS]
      X-Cache-Hits: ['0']
      X-Moose: [majestic]
      X-Served-By: [cache-iad2131-IAD]
      X-Timer: ['S1499406743.211475,VS0,VE19']
      cache-control: ['max-age=0, must-revalidate']
      set-cookie: ['session_tracker=CYIJ6S5YULMlp5p0IA.0.1499406743221.Z0FBQUFBQlpYeUdYNDQwcjA1andsVVJrVjFwNGtKNzZiMHE5ODhpd3BUVjVicjhoRmRudDVBeXZqbm93ZUxuZ1JsTmlIdWp2ZXRERTZubjI3N0k5a2ZQeWpoYVFlaThJS05ibkZ3RlhZTmtVYVF2VXFhcnFyQl83RDk3MXJEZzJzX0xDM1BPRE14ZDg;
          Domain=reddit.com; Max-Age=7199; Path=/; expires=Fri, 07-Jul-2017 07:52:23
          GMT; secure', edgebucket=u1fMLgWA7OnvVsZM9S; Domain=reddit.com; Max-Age=63071999;
          Path=/;  secure]
      x-content-type-options: [nosniff]
      x-frame-options: [SAMEORIGIN]
      x-xss-protection: [1; mode=block]
    status: {code: 200, message: OK}
- request:
    body: null
    headers:
      Accept: ['*/*']
      Accept-Encoding: ['gzip, deflate']
      Authorization: ['**********']
      Connection: [keep-alive]
      User-Agent: [TTRV Theme Demo PRAW/3.6.1 Python/3.6.1 b'Darwin-14.5.0-x86_64-i386-64bit']
    method: GET
    uri: https://oauth.reddit.com/api/v1/me.json
  response:
    body:
      string: !!binary |
        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
    headers:
      Accept-Ranges: [bytes]
      Connection: [keep-alive]
      Content-Encoding: [gzip]
      Content-Length: ['1347']
      Content-Type: [application/json; charset=UTF-8]
      Date: ['Fri, 07 Jul 2017 05:52:24 GMT']
      Server: [snooserv]
      Set-Cookie: ['session_tracker=EsHcNvrMDzIw7rl10k.0.1499406744791.Z0FBQUFBQlpYeUdZbllUSU1OcEdvaHd2V0tGOUlRUzVVNWRqVUtVeUFKSkxIV0t5Yk5sQWFyczJTSk9tWDRBbnJyd2t4alkxZzR5elZOMTBZeWp4UWRnUnctMTdOaE1pSDIyTHhsUGJCS1pvM2hlX0xUN0M0U0FKeGtEM3YwWFNVMFYyOC1yMk55YUs;
          Domain=reddit.com; Max-Age=7199; Path=/; expires=Fri, 07-Jul-2017 07:52:24
          GMT; secure', edgebucket=FCaLeYpsJ64Y4b61zH; Domain=reddit.com; Max-Age=63071999;
          Path=/;  secure]
      Strict-Transport-Security: [max-age=15552000; includeSubDomains; preload]
      Vary: [accept-encoding]
      Via: [1.1 varnish]
      X-Cache: [MISS]
      X-Cache-Hits: ['0']
      X-Moose: [majestic]
      X-Served-By: [cache-iad2130-IAD]
      X-Timer: ['S1499406745.741230,VS0,VE93']
      cache-control: ['private, s-maxage=0, max-age=0, must-revalidate, max-age=0,
          must-revalidate']
      expires: ['-1']
      set-cookie: ['session_tracker=EsHcNvrMDzIw7rl10k.0.1499406744791.Z0FBQUFBQlpYeUdZbllUSU1OcEdvaHd2V0tGOUlRUzVVNWRqVUtVeUFKSkxIV0t5Yk5sQWFyczJTSk9tWDRBbnJyd2t4alkxZzR5elZOMTBZeWp4UWRnUnctMTdOaE1pSDIyTHhsUGJCS1pvM2hlX0xUN0M0U0FKeGtEM3YwWFNVMFYyOC1yMk55YUs;
          Domain=reddit.com; Max-Age=7199; Path=/; expires=Fri, 07-Jul-2017 07:52:24
          GMT; secure', edgebucket=FCaLeYpsJ64Y4b61zH; Domain=reddit.com; Max-Age=63071999;
          Path=/;  secure]
      x-content-type-options: [nosniff]
      x-frame-options: [SAMEORIGIN]
      x-ratelimit-remaining: ['599.0']
      x-ratelimit-reset: ['456']
      x-ratelimit-used: ['1']
      x-xss-protection: [1; mode=block]
    status: {code: 200, message: OK}
- request:
    body: null
    headers:
      Accept: ['*/*']
      Accept-Encoding: ['gzip, deflate']
      Authorization: ['**********']
      Connection: [keep-alive]
      Cookie: [edgebucket=FCaLeYpsJ64Y4b61zH; session_tracker=EsHcNvrMDzIw7rl10k.0.1499406744791.Z0FBQUFBQlpYeUdZbllUSU1OcEdvaHd2V0tGOUlRUzVVNWRqVUtVeUFKSkxIV0t5Yk5sQWFyczJTSk9tWDRBbnJyd2t4alkxZzR5elZOMTBZeWp4UWRnUnctMTdOaE1pSDIyTHhsUGJCS1pvM2hlX0xUN0M0U0FKeGtEM3YwWFNVMFYyOC1yMk55YUs]
      User-Agent: [TTRV Theme Demo PRAW/3.6.1 Python/3.6.1 b'Darwin-14.5.0-x86_64-i386-64bit']
    method: GET
    uri: https://oauth.reddit.com/user/civilization_phaze_3/saved.json?sort=new&t=all&limit=1024
  response:
    body:
      string: !!binary |
        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
        KxpWx4bQcWt6eP3ly38BcMfWWAA+AAA=
    headers:
      Accept-Ranges: [bytes]
      Connection: [keep-alive]
      Content-Encoding: [gzip]
      Content-Length: ['3785']
      Content-Type: [application/json; charset=UTF-8]
      Date: ['Fri, 07 Jul 2017 05:52:26 GMT']
      Server: [snooserv]
      Strict-Transport-Security: [max-age=15552000; includeSubDomains; preload]
      Vary: [accept-encoding]
      Via: [1.1 varnish]
      X-Cache: [MISS]
      X-Cache-Hits: ['0']
      X-Moose: [majestic]
      X-Served-By: [cache-iad2130-IAD]
      X-Timer: ['S1499406747.598866,VS0,VE101']
      cache-control: ['private, s-maxage=0, max-age=0, must-revalidate, max-age=0,
          must-revalidate']
      expires: ['-1']
      set-cookie: ['loid=0000000000000lqnao.2.1425202840186.Z0FBQUFBQlpYeUdhdHFFRkJMVXZTQ1hoYUdjNGI4SHhGSG9NemY2bElIQUZqTjZCRFBjVkJQMnpQdHcxS2dyd1hjWWh2QllvQmg1ZWVrUlhYVG5mMW41S1FaNXJoTFRyc1hpUVpWWHNZU21TWmM5Tnd1QUJyTmcyM0dOaWFIc3VEYlU5X05WNF9wMW0;
          Domain=reddit.com; Max-Age=63071999; Path=/; expires=Sun, 07-Jul-2019 05:52:26
          GMT; secure', 'session_tracker=EsHcNvrMDzIw7rl10k.0.1499406746608.Z0FBQUFBQlpYeUdhYmFhMjY0QlJLRm1kLUlRWGl4RWZRVHZIcWZhcWZNSWlZeHhoLVp4eUc0S0MzcXk2QmxEWlJIWU9NbEtHUHJaN2pWQ2RuczlBMnoyOXp6WDJRX3JTY3pLdTU3cG5YdEpCcmx6XzdqVHRxZTJNRG1oY0h0LUdpdUQ4cFVJTXI3UzE;
          Domain=reddit.com; Max-Age=7199; Path=/; expires=Fri, 07-Jul-2017 07:52:26
          GMT; secure']
      x-content-type-options: [nosniff]
      x-frame-options: [SAMEORIGIN]
      x-ratelimit-remaining: ['598.0']
      x-ratelimit-reset: ['454']
      x-ratelimit-used: ['2']
      x-reddit-tracking: ['https://pixel.redditmedia.com/pixel/of_destiny.png?v=cb%2FABGh5ca5iuA7xnGcRuEy59xY8w0%2Bkq%2BKrywYDqnXs%2BwyInsDbRdQM5L4nNUXtvkgdj%2Flk1QyLdOuD6TXf3o4u%2BU2zNLtEKHri235%2Fcl0Dyn44KTucNQ%3D%3D']
      x-ua-compatible: [IE=edge]
      x-xss-protection: [1; mode=block]
    status: {code: 200, message: OK}
- request:
    body: null
    headers:
      Accept: ['*/*']
      Accept-Encoding: ['gzip, deflate']
      Authorization: ['**********']
      Connection: [keep-alive]
      Cookie: [edgebucket=FCaLeYpsJ64Y4b61zH; session_tracker=EsHcNvrMDzIw7rl10k.0.1499406746608.Z0FBQUFBQlpYeUdhYmFhMjY0QlJLRm1kLUlRWGl4RWZRVHZIcWZhcWZNSWlZeHhoLVp4eUc0S0MzcXk2QmxEWlJIWU9NbEtHUHJaN2pWQ2RuczlBMnoyOXp6WDJRX3JTY3pLdTU3cG5YdEpCcmx6XzdqVHRxZTJNRG1oY0h0LUdpdUQ4cFVJTXI3UzE;
          loid=0000000000000lqnao.2.1425202840186.Z0FBQUFBQlpYeUdhdHFFRkJMVXZTQ1hoYUdjNGI4SHhGSG9NemY2bElIQUZqTjZCRFBjVkJQMnpQdHcxS2dyd1hjWWh2QllvQmg1ZWVrUlhYVG5mMW41S1FaNXJoTFRyc1hpUVpWWHNZU21TWmM5Tnd1QUJyTmcyM0dOaWFIc3VEYlU5X05WNF9wMW0]
      User-Agent: [TTRV Theme Demo PRAW/3.6.1 Python/3.6.1 b'Darwin-14.5.0-x86_64-i386-64bit']
    method: GET
    uri: https://oauth.reddit.com/subreddits/popular/.json?limit=1024
  response:
    body:
      string: !!binary |
        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
        yg4gpYlj9u9
Download .txt
gitextract_ir8937v6/

├── .coveragerc
├── .gitattributes
├── .gitignore
├── .pylintrc
├── AUTHORS.rst
├── CHANGELOG.rst
├── CONTRIBUTING.rst
├── CONTROLS.md
├── LICENSE
├── MANIFEST.in
├── README.md
├── THEMES.md
├── requirements.txt
├── scripts/
│   ├── build_authors.py
│   ├── build_manpage.py
│   ├── cassettes/
│   │   └── demo_theme.yaml
│   ├── count_lines.sh
│   ├── demo_theme.py
│   ├── initialize_session.py
│   ├── inspect_webbrowser.py
│   ├── pip_clean.sh
│   ├── ttrv.1.template
│   └── update_packages.py
├── setup.cfg
├── setup.py
├── test
├── ttrv/
│   ├── __init__.py
│   ├── __main__.py
│   ├── __version__.py
│   ├── clipboard.py
│   ├── config.py
│   ├── content.py
│   ├── docs.py
│   ├── exceptions.py
│   ├── inbox_page.py
│   ├── mime_parsers.py
│   ├── oauth.py
│   ├── objects.py
│   ├── packages/
│   │   ├── __init__.py
│   │   └── praw/
│   │       ├── __init__.py
│   │       ├── decorator_helpers.py
│   │       ├── decorators.py
│   │       ├── errors.py
│   │       ├── handlers.py
│   │       ├── helpers.py
│   │       ├── internal.py
│   │       ├── multiprocess.py
│   │       ├── objects.py
│   │       ├── praw.ini
│   │       └── settings.py
│   ├── page.py
│   ├── submission_page.py
│   ├── subreddit_page.py
│   ├── subscription_page.py
│   ├── templates/
│   │   ├── index.html
│   │   ├── mailcap
│   │   └── ttrv.cfg
│   ├── terminal.py
│   ├── theme.py
│   └── themes/
│       ├── colorblind-dark.cfg
│       ├── default.cfg.example
│       ├── molokai.cfg
│       ├── papercolor.cfg
│       ├── solarized-dark.cfg
│       └── solarized-light.cfg
├── ttrv.1
└── ttrv.egg-info/
    ├── PKG-INFO
    ├── SOURCES.txt
    ├── dependency_links.txt
    ├── entry_points.txt
    ├── requires.txt
    └── top_level.txt
Download .txt
SYMBOL INDEX (775 symbols across 30 files)

FILE: scripts/build_authors.py
  function main (line 29) | def main():

FILE: scripts/build_manpage.py
  function main (line 24) | def main():

FILE: scripts/demo_theme.py
  function initialize_vcr (line 34) | def initialize_vcr():
  function notification_getch (line 69) | def notification_getch(self):
  function prompt_getch (line 75) | def prompt_getch(self):
  function draw_screen (line 81) | def draw_screen(stdscr, reddit, config, theme, oauth):
  function main (line 214) | def main():

FILE: scripts/update_packages.py
  function main (line 20) | def main():

FILE: setup.py
  function long_description (line 41) | def long_description():

FILE: ttrv/__main__.py
  function main (line 60) | def main():

FILE: ttrv/clipboard.py
  function _subprocess_copy (line 10) | def _subprocess_copy(text, args_list):
  function copy (line 15) | def copy(text):
  function copy_osx (line 27) | def copy_osx(text):
  function copy_linux (line 31) | def copy_linux(text):

FILE: ttrv/config.py
  function build_parser (line 31) | def build_parser():
  function copy_default_mailcap (line 93) | def copy_default_mailcap(filename=MAILCAP):
  function copy_default_config (line 100) | def copy_default_config(filename=CONFIG):
  function _copy_settings_file (line 107) | def _copy_settings_file(source, destination, name):
  class OrderedSet (line 130) | class OrderedSet(object):
    method __init__ (line 136) | def __init__(self, elements=None):
    method __contains__ (line 141) | def __contains__(self, item):
    method __len__ (line 144) | def __len__(self):
    method __getitem__ (line 147) | def __getitem__(self, item):
    method add (line 150) | def add(self, item):
  class Config (line 155) | class Config(object):
    method __init__ (line 160) | def __init__(self, history_file=HISTORY, token_file=TOKEN, **kwargs):
    method __getitem__ (line 175) | def __getitem__(self, item):
    method __setitem__ (line 181) | def __setitem__(self, key, value):
    method __delitem__ (line 184) | def __delitem__(self, key):
    method update (line 187) | def update(self, **kwargs):
    method load_refresh_token (line 190) | def load_refresh_token(self):
    method save_refresh_token (line 197) | def save_refresh_token(self):
    method delete_refresh_token (line 202) | def delete_refresh_token(self):
    method load_history (line 207) | def load_history(self):
    method save_history (line 214) | def save_history(self):
    method delete_history (line 219) | def delete_history(self):
    method get_args (line 225) | def get_args():
    method get_file (line 242) | def get_file(cls, filename=None):
    method _parse_ttrv_file (line 258) | def _parse_ttrv_file(config):
    method _ensure_filepath (line 296) | def _ensure_filepath(filename):

FILE: ttrv/content.py
  class Content (line 23) | class Content(object):
    method get (line 25) | def get(self, index, n_cols):
    method iterate (line 32) | def iterate(self, index, step, n_cols=70):
    method range (line 50) | def range(self):
    method flatten_comments (line 57) | def flatten_comments(comments, root_level=0):
    method strip_praw_comment (line 123) | def strip_praw_comment(cls, comment):
    method strip_praw_submission (line 208) | def strip_praw_submission(cls, sub):
    method strip_praw_subscription (line 279) | def strip_praw_subscription(subscription):
    method strip_praw_message (line 299) | def strip_praw_message(cls, msg):
    method humanize_timestamp (line 345) | def humanize_timestamp(utc_timestamp, verbose=False):
    method wrap_text (line 401) | def wrap_text(text, width):
    method extract_links (line 416) | def extract_links(html):
  class SubmissionContent (line 432) | class SubmissionContent(Content):
    method __init__ (line 438) | def __init__(self, submission, loader, indent_size=2, max_indent_level=8,
    method from_url (line 456) | def from_url(cls, reddit, url, loader, indent_size=2, max_indent_level=8,
    method range (line 476) | def range(self):
    method get (line 479) | def get(self, index, n_cols=70):
    method toggle (line 509) | def toggle(self, index, n_cols=70):
  class SubredditContent (line 560) | class SubredditContent(Content):
    method __init__ (line 566) | def __init__(self, name, submissions, loader, order=None,
    method from_name (line 591) | def from_name(cls, reddit, name, loader, order=None, query=None):
    method range (line 803) | def range(self):
    method get (line 809) | def get(self, index, n_cols=70):
  class SubscriptionContent (line 866) | class SubscriptionContent(Content):
    method __init__ (line 868) | def __init__(self, name, subscriptions, loader):
    method from_user (line 892) | def from_user(cls, reddit, loader, content_type='subreddit'):
    method range (line 909) | def range(self):
    method get (line 912) | def get(self, index, n_cols=70):
  class InboxContent (line 941) | class InboxContent(Content):
    method __init__ (line 943) | def __init__(self, order, content_generator, loader,
    method from_user (line 964) | def from_user(cls, reddit, loader, order='all'):
    method range (line 985) | def range(self):
    method get (line 988) | def get(self, index, n_cols=70):
  class RequestHeaderRateLimiter (line 1027) | class RequestHeaderRateLimiter(DefaultHandler):
    method __init__ (line 1040) | def __init__(self):
    method _delay (line 1058) | def _delay(self):
    method _update (line 1070) | def _update(self, response_headers):
    method _clear_timeouts (line 1106) | def _clear_timeouts(self, cache_timeout):
    method clear_cache (line 1116) | def clear_cache(self):
    method evict (line 1121) | def evict(self, urls):
    method request (line 1137) | def request(self, _cache_key, _cache_ignore, _cache_timeout, **kwargs):
    method _request (line 1176) | def _request(self, request, proxies, timeout, verify, **_):

FILE: ttrv/exceptions.py
  class EscapeInterrupt (line 5) | class EscapeInterrupt(Exception):
  class ConfigError (line 9) | class ConfigError(Exception):
  class TTRVError (line 13) | class TTRVError(Exception):
  class AccountError (line 17) | class AccountError(TTRVError):
  class SubmissionError (line 21) | class SubmissionError(TTRVError):
  class SubredditError (line 25) | class SubredditError(TTRVError):
  class NoSubmissionsError (line 29) | class NoSubmissionsError(TTRVError):
    method __init__ (line 32) | def __init__(self, name):
  class SubscriptionError (line 38) | class SubscriptionError(TTRVError):
  class InboxError (line 42) | class InboxError(TTRVError):
  class ProgramError (line 46) | class ProgramError(TTRVError):
  class BrowserError (line 50) | class BrowserError(TTRVError):
  class TemporaryFileError (line 54) | class TemporaryFileError(TTRVError):
  class MailcapEntryNotFound (line 58) | class MailcapEntryNotFound(TTRVError):
  class InvalidRefreshToken (line 62) | class InvalidRefreshToken(TTRVError):

FILE: ttrv/inbox_page.py
  class InboxController (line 10) | class InboxController(PageController):
  class InboxPage (line 14) | class InboxPage(Page):
    method __init__ (line 20) | def __init__(self, reddit, term, config, oauth, content_type='all'):
    method handle_selected_page (line 28) | def handle_selected_page(self):
    method refresh_content (line 45) | def refresh_content(self, order=None, name=None):
    method load_content_inbox (line 58) | def load_content_inbox(self):
    method load_content_unread_messages (line 62) | def load_content_unread_messages(self):
    method load_content_messages (line 66) | def load_content_messages(self):
    method load_content_comment_replies (line 70) | def load_content_comment_replies(self):
    method load_content_post_replies (line 74) | def load_content_post_replies(self):
    method load_content_username_mentions (line 78) | def load_content_username_mentions(self):
    method load_content_sent_messages (line 82) | def load_content_sent_messages(self):
    method mark_seen (line 87) | def mark_seen(self):
    method inbox_reply (line 105) | def inbox_reply(self):
    method close_inbox (line 112) | def close_inbox(self):
    method view_context (line 120) | def view_context(self):
    method open_submission (line 130) | def open_submission(self):
    method _draw_item (line 138) | def _draw_item(self, win, data, inverted):

FILE: ttrv/mime_parsers.py
  class BaseMIMEParser (line 12) | class BaseMIMEParser(object):
    method get_mimetype (line 20) | def get_mimetype(url):
  class OpenGraphMIMEParser (line 41) | class OpenGraphMIMEParser(BaseMIMEParser):
    method get_mimetype (line 56) | def get_mimetype(url):
  class VideoTagMIMEParser (line 71) | class VideoTagMIMEParser(BaseMIMEParser):
    method get_mimetype (line 82) | def get_mimetype(url):
  class GfycatMIMEParser (line 99) | class GfycatMIMEParser(BaseMIMEParser):
    method get_mimetype (line 113) | def get_mimetype(url):
  class YoutubeMIMEParser (line 121) | class YoutubeMIMEParser(BaseMIMEParser):
    method get_mimetype (line 131) | def get_mimetype(url):
  class VimeoMIMEParser (line 135) | class VimeoMIMEParser(BaseMIMEParser):
    method get_mimetype (line 143) | def get_mimetype(url):
  class GifvMIMEParser (line 147) | class GifvMIMEParser(BaseMIMEParser):
    method get_mimetype (line 157) | def get_mimetype(url):
  class RedditUploadsMIMEParser (line 162) | class RedditUploadsMIMEParser(BaseMIMEParser):
    method get_mimetype (line 170) | def get_mimetype(url):
  class RedditVideoMIMEParser (line 177) | class RedditVideoMIMEParser(BaseMIMEParser):
    method get_mimetype (line 185) | def get_mimetype(url):
  class ImgurApiMIMEParser (line 200) | class ImgurApiMIMEParser(BaseMIMEParser):
    method get_mimetype (line 219) | def get_mimetype(cls, url):
    method fallback (line 271) | def fallback(cls, url, domain):
  class ImgurScrapeMIMEParser (line 283) | class ImgurScrapeMIMEParser(BaseMIMEParser):
    method get_mimetype (line 300) | def get_mimetype(url):
  class InstagramMIMEParser (line 311) | class InstagramMIMEParser(OpenGraphMIMEParser):
  class StreamableMIMEParser (line 318) | class StreamableMIMEParser(OpenGraphMIMEParser):
  class LiveleakMIMEParser (line 325) | class LiveleakMIMEParser(BaseMIMEParser):
    method get_mimetype (line 337) | def get_mimetype(url):
  class ClippitUserMIMEParser (line 363) | class ClippitUserMIMEParser(BaseMIMEParser):
    method get_mimetype (line 370) | def get_mimetype(url):
  class GifsMIMEParser (line 383) | class GifsMIMEParser(OpenGraphMIMEParser):
  class GiphyMIMEParser (line 390) | class GiphyMIMEParser(OpenGraphMIMEParser):
  class ImgflipMIMEParser (line 397) | class ImgflipMIMEParser(OpenGraphMIMEParser):
  class LivememeMIMEParser (line 404) | class LivememeMIMEParser(OpenGraphMIMEParser):
  class MakeamemeMIMEParser (line 411) | class MakeamemeMIMEParser(OpenGraphMIMEParser):
  class FlickrMIMEParser (line 418) | class FlickrMIMEParser(OpenGraphMIMEParser):
  class StreamjaMIMEParser (line 426) | class StreamjaMIMEParser(VideoTagMIMEParser):
  class WorldStarHipHopMIMEParser (line 433) | class WorldStarHipHopMIMEParser(BaseMIMEParser):
    method get_mimetype (line 444) | def get_mimetype(url):
  class RedGifsParser (line 465) | class RedGifsParser(BaseMIMEParser):
    method get_mimetype (line 472) | def get_mimetype(url):

FILE: ttrv/oauth.py
  class OAuthHTTPServer (line 26) | class OAuthHTTPServer(HTTPServer):
    method handle_error (line 28) | def handle_error(self, request, client_address):
  class OAuthHandler (line 38) | class OAuthHandler(BaseHTTPRequestHandler):
    method do_GET (line 46) | def do_GET(self):
    method log_message (line 84) | def log_message(self, fmt, *args):
    method build_body (line 90) | def build_body(self, template_file=INDEX):
  class OAuthHelper (line 116) | class OAuthHelper(object):
    method __init__ (line 120) | def __init__(self, reddit, term, config):
    method authorize (line 140) | def authorize(self, autologin=False):
    method clear_oauth_data (line 246) | def clear_oauth_data(self):

FILE: ttrv/objects.py
  function patch_webbrowser (line 28) | def patch_webbrowser():
  function curses_session (line 76) | def curses_session():
  class LoadScreen (line 128) | class LoadScreen(object):
    method __init__ (line 179) | def __init__(self, terminal):
    method __call__ (line 189) | def __call__(
    method __enter__ (line 218) | def __enter__(self):
    method __exit__ (line 230) | def __exit__(self, exc_type, e, exc_tb):
    method animate (line 258) | def animate(self, delay, interval, message, trail):
  class Navigator (line 314) | class Navigator(object):
    method __init__ (line 327) | def __init__(
    method step (line 362) | def step(self):
    method position (line 366) | def position(self):
    method absolute_index (line 370) | def absolute_index(self):
    method move (line 377) | def move(self, direction, n_windows):
    method move_page (line 441) | def move_page(self, direction, n_windows):
    method flip (line 498) | def flip(self, n_windows):
    method _is_valid (line 509) | def _is_valid(self, page_index):
  class Controller (line 522) | class Controller(object):
    method __init__ (line 544) | def __init__(self, instance, keymap=None):
    method trigger (line 586) | def trigger(self, char, *args, **kwargs):
    method register (line 610) | def register(cls, *chars):
  class Command (line 621) | class Command(object):
    method __init__ (line 630) | def __init__(self, val):
    method __repr__ (line 633) | def __repr__(self):
    method __eq__ (line 636) | def __eq__(self, other):
    method __ne__ (line 639) | def __ne__(self, other):
    method __hash__ (line 642) | def __hash__(self):
  class KeyMap (line 646) | class KeyMap(object):
    method __init__ (line 651) | def __init__(self, bindings):
    method set_bindings (line 655) | def set_bindings(self, bindings):
    method get (line 667) | def get(self, command):
    method parse (line 677) | def parse(cls, key):

FILE: ttrv/packages/praw/__init__.py
  class Config (line 57) | class Config(object):  # pylint: disable=R0903
    method ua_string (line 197) | def ua_string(praw_info):
    method __init__ (line 214) | def __init__(self, site_name, **kwargs):
    method __getitem__ (line 275) | def __getitem__(self, key):
    method short_domain (line 281) | def short_domain(self):
  class BaseReddit (line 294) | class BaseReddit(object):
    method __init__ (line 306) | def __init__(self, user_agent, site_name=None, handler=None,
    method _request (line 378) | def _request(self, url, params=None, data=None, files=None, auth=None,
    method _json_reddit_objecter (line 477) | def _json_reddit_objecter(self, json_data):
    method evict (line 491) | def evict(self, urls):
    method get_content (line 503) | def get_content(self, url, params=None, limit=0, place_holder=None,
    method request (line 588) | def request(self, url, params=None, data=None, retry_on_error=True,
    method request_json (line 604) | def request_json(self, url, params=None, data=None, as_objects=True,
  class OAuth2Reddit (line 639) | class OAuth2Reddit(BaseReddit):
    method __init__ (line 647) | def __init__(self, *args, **kwargs):
    method _handle_oauth_request (line 654) | def _handle_oauth_request(self, data):
    method get_access_information (line 670) | def get_access_information(self, code):
    method get_authorize_url (line 693) | def get_authorize_url(self, state, scope='identity', refreshable=False):
    method has_oauth_app_info (line 712) | def has_oauth_app_info(self):
    method refresh_access_information (line 724) | def refresh_access_information(self, refresh_token):
    method set_oauth_app_info (line 750) | def set_oauth_app_info(self, client_id, client_secret, redirect_uri):
  class UnauthenticatedReddit (line 769) | class UnauthenticatedReddit(BaseReddit):
    method __init__ (line 779) | def __init__(self, *args, **kwargs):
    method create_redditor (line 786) | def create_redditor(self, user_name, password, email=''):
    method default_subreddits (line 798) | def default_subreddits(self, *args, **kwargs):
    method get_comments (line 809) | def get_comments(self, subreddit, gilded_only=False, *args, **kwargs):
    method get_controversial (line 823) | def get_controversial(self, *args, **kwargs):
    method get_domain_listing (line 836) | def get_domain_listing(self, domain, sort='hot', period=None, *args,
    method get_flair (line 871) | def get_flair(self, subreddit, redditor, **params):
    method get_front_page (line 893) | def get_front_page(self, *args, **kwargs):
    method get_info (line 906) | def get_info(self, url=None, thing_id=None, *args, **kwargs):
    method get_moderators (line 969) | def get_moderators(self, subreddit, **kwargs):
    method get_new (line 976) | def get_new(self, *args, **kwargs):
    method get_new_subreddits (line 988) | def get_new_subreddits(self, *args, **kwargs):
    method get_popular_subreddits (line 998) | def get_popular_subreddits(self, *args, **kwargs):
    method get_random_subreddit (line 1008) | def get_random_subreddit(self, nsfw=False):
    method get_random_submission (line 1026) | def get_random_submission(self, subreddit='all'):
    method get_redditor (line 1045) | def get_redditor(self, user_name, *args, **kwargs):
    method get_rising (line 1055) | def get_rising(self, *args, **kwargs):
    method get_rules (line 1068) | def get_rules(self, subreddit, bottom=False):
    method get_sticky (line 1078) | def get_sticky(self, subreddit, bottom=False):
    method get_submission (line 1090) | def get_submission(self, url=None, submission_id=None, comment_limit=0,
    method get_submissions (line 1111) | def get_submissions(self, fullnames, *args, **kwargs):
    method get_subreddit (line 1132) | def get_subreddit(self, subreddit_name, *args, **kwargs):
    method get_subreddit_recommendations (line 1146) | def get_subreddit_recommendations(self, subreddits, omit=None):
    method get_top (line 1165) | def get_top(self, *args, **kwargs):
    method get_gilded (line 1178) | def get_gilded(self, *args, **kwargs):
    method get_traffic (line 1192) | def get_traffic(self, subreddit):
    method get_wiki_page (line 1204) | def get_wiki_page(self, subreddit, page):
    method get_wiki_pages (line 1209) | def get_wiki_pages(self, subreddit):
    method is_username_available (line 1215) | def is_username_available(self, username):
    method search (line 1225) | def search(self, query, subreddit=None, sort=None, syntax=None,
    method search_reddit_names (line 1278) | def search_reddit_names(self, query):
  class AuthenticatedReddit (line 1286) | class AuthenticatedReddit(OAuth2Reddit, UnauthenticatedReddit):
    method __init__ (line 1298) | def __init__(self, *args, **kwargs):
    method __str__ (line 1310) | def __str__(self):
    method _url_update (line 1320) | def _url_update(self, url):
    method accept_moderator_invite (line 1331) | def accept_moderator_invite(self, subreddit):
    method clear_authentication (line 1345) | def clear_authentication(self):
    method delete (line 1358) | def delete(self, password, message=""):
    method edit_wiki_page (line 1378) | def edit_wiki_page(self, subreddit, page, content, reason=''):
    method get_access_information (line 1393) | def get_access_information(self, code,  # pylint: disable=W0221
    method get_flair_choices (line 1411) | def get_flair_choices(self, subreddit, link=None):
    method get_friends (line 1428) | def get_friends(self, **params):
    method get_me (line 1434) | def get_me(self):
    method has_scope (line 1445) | def has_scope(self, scope):
    method is_logged_in (line 1455) | def is_logged_in(self):
    method is_oauth_session (line 1464) | def is_oauth_session(self):
    method login (line 1479) | def login(self, username=None, password=None, **kwargs):
    method refresh_access_information (line 1521) | def refresh_access_information(self,  # pylint: disable=W0221
    method select_flair (line 1542) | def select_flair(self, item, flair_template_id='', flair_text=''):
    method set_access_credentials (line 1579) | def set_access_credentials(self, scope, access_token, refresh_token=None,
  class ModConfigMixin (line 1609) | class ModConfigMixin(AuthenticatedReddit):
    method create_subreddit (line 1619) | def create_subreddit(self, name, title, description='', language='en',
    method delete_image (line 1649) | def delete_image(self, subreddit, name=None, header=False):
    method get_settings (line 1671) | def get_settings(self, subreddit, **params):
    method set_settings (line 1678) | def set_settings(self, subreddit, title, public_description='',
    method set_stylesheet (line 1740) | def set_stylesheet(self, subreddit, stylesheet):
    method upload_image (line 1754) | def upload_image(self, subreddit, image_path, name=None,
    method update_settings (line 1792) | def update_settings(self, subreddit, **kwargs):
  class ModFlairMixin (line 1807) | class ModFlairMixin(AuthenticatedReddit):
    method add_flair_template (line 1816) | def add_flair_template(self, subreddit, text='', css_class='',
    method clear_flair_templates (line 1831) | def clear_flair_templates(self, subreddit, is_link=False):
    method configure_flair (line 1842) | def configure_flair(self, subreddit, flair_enabled=False,
    method delete_flair (line 1867) | def delete_flair(self, subreddit, user):
    method get_flair_list (line 1878) | def get_flair_list(self, subreddit, *args, **kwargs):
    method set_flair (line 1896) | def set_flair(self, subreddit, item, flair_text='', flair_css_class=''):
    method set_flair_csv (line 1924) | def set_flair_csv(self, subreddit, flair_mapping):
  class ModLogMixin (line 1957) | class ModLogMixin(AuthenticatedReddit):
    method get_mod_log (line 1966) | def get_mod_log(self, subreddit, mod=None, action=None, *args, **kwargs):
  class ModOnlyMixin (line 1988) | class ModOnlyMixin(AuthenticatedReddit):
    method _get_userlist (line 1996) | def _get_userlist(self, url, user_only, *args, **kwargs):
    method get_banned (line 2008) | def get_banned(self, subreddit, user_only=True, *args, **kwargs):
    method get_contributors (line 2020) | def get_contributors(self, subreddit, *args, **kwargs):
    method get_edited (line 2047) | def get_edited(self, subreddit='mod', *args, **kwargs):
    method get_mod_mail (line 2062) | def get_mod_mail(self, subreddit='mod', *args, **kwargs):
    method get_mod_queue (line 2078) | def get_mod_queue(self, subreddit='mod', *args, **kwargs):
    method get_muted (line 2094) | def get_muted(self, subreddit, user_only=True, *args, **kwargs):
    method get_reports (line 2108) | def get_reports(self, subreddit='mod', *args, **kwargs):
    method get_spam (line 2123) | def get_spam(self, subreddit='mod', *args, **kwargs):
    method get_stylesheet (line 2138) | def get_stylesheet(self, subreddit, **params):
    method get_unmoderated (line 2145) | def get_unmoderated(self, subreddit='mod', *args, **kwargs):
    method get_wiki_banned (line 2161) | def get_wiki_banned(self, subreddit, *args, **kwargs):
    method get_wiki_contributors (line 2168) | def get_wiki_contributors(self, subreddit, *args, **kwargs):
  class ModSelfMixin (line 2182) | class ModSelfMixin(AuthenticatedReddit):
    method leave_contributor (line 2190) | def leave_contributor(self, subreddit):
    method leave_moderator (line 2199) | def leave_moderator(self, subreddit):
    method _leave_status (line 2210) | def _leave_status(self, subreddit, statusurl):
  class MultiredditMixin (line 2227) | class MultiredditMixin(AuthenticatedReddit):
    method copy_multireddit (line 2238) | def copy_multireddit(self, from_redditor, from_name, to_name=None,
    method create_multireddit (line 2265) | def create_multireddit(self, name, description_md=None, icon_name=None,
    method delete_multireddit (line 2319) | def delete_multireddit(self, name, *args, **kwargs):
    method edit_multireddit (line 2339) | def edit_multireddit(self, *args, **kwargs):
    method get_multireddit (line 2347) | def get_multireddit(self, redditor, multi, *args, **kwargs):
    method get_multireddits (line 2361) | def get_multireddits(self, redditor, *args, **kwargs):
    method rename_multireddit (line 2380) | def rename_multireddit(self, current_name, new_name, *args, **kwargs):
  class MySubredditsMixin (line 2398) | class MySubredditsMixin(AuthenticatedReddit):
    method get_my_contributions (line 2407) | def get_my_contributions(self, *args, **kwargs):
    method get_my_moderation (line 2421) | def get_my_moderation(self, *args, **kwargs):
    method get_my_multireddits (line 2435) | def get_my_multireddits(self):
    method get_my_subreddits (line 2442) | def get_my_subreddits(self, *args, **kwargs):
  class PrivateMessagesMixin (line 2455) | class PrivateMessagesMixin(AuthenticatedReddit):
    method _mark_as_read (line 2464) | def _mark_as_read(self, thing_ids, unread=False):
    method get_comment_replies (line 2478) | def get_comment_replies(self, *args, **kwargs):
    method get_inbox (line 2489) | def get_inbox(self, *args, **kwargs):
    method get_message (line 2498) | def get_message(self, message_id, *args, **kwargs):
    method get_messages (line 2511) | def get_messages(self, *args, **kwargs):
    method get_post_replies (line 2521) | def get_post_replies(self, *args, **kwargs):
    method get_sent (line 2531) | def get_sent(self, *args, **kwargs):
    method get_unread (line 2541) | def get_unread(self, unset_has_mail=False, update_user=False, *args,
    method get_mentions (line 2563) | def get_mentions(self, *args, **kwargs):
    method send_message (line 2574) | def send_message(self, recipient, subject, message, from_sr=None,
  class ReportMixin (line 2614) | class ReportMixin(AuthenticatedReddit):
    method hide (line 2623) | def hide(self, thing_id, _unhide=False):
    method unhide (line 2670) | def unhide(self, thing_id):
  class SubmitMixin (line 2682) | class SubmitMixin(AuthenticatedReddit):
    method _add_comment (line 2690) | def _add_comment(self, thing_id, text):
    method submit (line 2713) | def submit(self, subreddit, title, text=None, url=None, captcha=None,
  class SubscribeMixin (line 2769) | class SubscribeMixin(AuthenticatedReddit):
    method subscribe (line 2778) | def subscribe(self, subreddit, unsubscribe=False):
    method unsubscribe (line 2792) | def unsubscribe(self, subreddit):
  class Reddit (line 2802) | class Reddit(ModConfigMixin, ModFlairMixin, ModLogMixin, ModOnlyMixin,

FILE: ttrv/packages/praw/decorator_helpers.py
  function _get_captcha (line 8) | def _get_captcha(reddit_session, captcha_id):
  function _is_mod_of_all (line 23) | def _is_mod_of_all(user, subreddit):
  function _make_func_args (line 29) | def _make_func_args(function):

FILE: ttrv/packages/praw/decorators.py
  function alias_function (line 44) | def alias_function(function, class_name):
  function deprecated (line 73) | def deprecated(msg=''):
  function limit_chars (line 84) | def limit_chars(function, *args, **kwargs):
  function oauth_generator (line 94) | def oauth_generator(function, *args, **kwargs):
  function raise_api_exceptions (line 110) | def raise_api_exceptions(function, *args, **kwargs):
  function require_captcha (line 150) | def require_captcha(function, *args, **kwargs):
  function restrict_access (line 186) | def restrict_access(scope, mod=None, login=None, oauth_only=False,
  function require_oauth (line 284) | def require_oauth(function, *args, **kwargs):

FILE: ttrv/packages/praw/errors.py
  class PRAWException (line 31) | class PRAWException(Exception):
  class ClientException (line 39) | class ClientException(PRAWException):
    method __init__ (line 42) | def __init__(self, message=None):
    method __str__ (line 53) | def __str__(self):
  class OAuthScopeRequired (line 58) | class OAuthScopeRequired(ClientException):
    method __init__ (line 65) | def __init__(self, function, scope, message=None):
  class LoginRequired (line 81) | class LoginRequired(ClientException):
    method __init__ (line 89) | def __init__(self, function, message=None):
  class LoginOrScopeRequired (line 102) | class LoginOrScopeRequired(OAuthScopeRequired, LoginRequired):
    method __init__ (line 109) | def __init__(self, function, scope, message=None):
  class ModeratorRequired (line 125) | class ModeratorRequired(LoginRequired):
    method __init__ (line 128) | def __init__(self, function):
  class ModeratorOrScopeRequired (line 139) | class ModeratorOrScopeRequired(LoginOrScopeRequired, ModeratorRequired):
    method __init__ (line 146) | def __init__(self, function, scope):
  class OAuthAppRequired (line 161) | class OAuthAppRequired(ClientException):
  class HTTPException (line 169) | class HTTPException(PRAWException):
    method __init__ (line 172) | def __init__(self, _raw, message=None):
    method __str__ (line 185) | def __str__(self):
  class Forbidden (line 190) | class Forbidden(HTTPException):
  class NotFound (line 194) | class NotFound(HTTPException):
  class InvalidComment (line 198) | class InvalidComment(PRAWException):
    method __str__ (line 203) | def __str__(self):
  class InvalidSubmission (line 208) | class InvalidSubmission(PRAWException):
    method __str__ (line 213) | def __str__(self):
  class InvalidSubreddit (line 218) | class InvalidSubreddit(PRAWException):
    method __str__ (line 223) | def __str__(self):
  class RedirectException (line 228) | class RedirectException(PRAWException):
    method __init__ (line 231) | def __init__(self, request_url, response_url, message=None):
    method __str__ (line 247) | def __str__(self):
  class OAuthException (line 252) | class OAuthException(PRAWException):
    method __init__ (line 260) | def __init__(self, message, url):
    method __str__ (line 271) | def __str__(self):
  class OAuthInsufficientScope (line 276) | class OAuthInsufficientScope(OAuthException):
  class OAuthInvalidGrant (line 284) | class OAuthInvalidGrant(OAuthException):
  class OAuthInvalidToken (line 288) | class OAuthInvalidToken(OAuthException):
  class APIException (line 292) | class APIException(PRAWException):
    method __init__ (line 299) | def __init__(self, error_type, message, field='', response=None):
    method __str__ (line 314) | def __str__(self):
  class ExceptionList (line 324) | class ExceptionList(APIException):
    method __init__ (line 327) | def __init__(self, errors):
    method __str__ (line 336) | def __str__(self):
  class AlreadySubmitted (line 344) | class AlreadySubmitted(APIException):
  class AlreadyModerator (line 350) | class AlreadyModerator(APIException):
  class BadCSS (line 356) | class BadCSS(APIException):
  class BadCSSName (line 362) | class BadCSSName(APIException):
  class BadUsername (line 368) | class BadUsername(APIException):
  class InvalidCaptcha (line 374) | class InvalidCaptcha(APIException):
  class InvalidEmails (line 380) | class InvalidEmails(APIException):
  class InvalidFlairTarget (line 386) | class InvalidFlairTarget(APIException):
  class InvalidInvite (line 392) | class InvalidInvite(APIException):
  class InvalidUser (line 398) | class InvalidUser(APIException):
  class InvalidUserPass (line 404) | class InvalidUserPass(APIException):
  class InsufficientCreddits (line 410) | class InsufficientCreddits(APIException):
  class NotLoggedIn (line 416) | class NotLoggedIn(APIException):
  class NotModified (line 422) | class NotModified(APIException):
    method __init__ (line 431) | def __init__(self, response):
    method __str__ (line 439) | def __str__(self):
  class RateLimitExceeded (line 444) | class RateLimitExceeded(APIException):
  class SubredditExists (line 455) | class SubredditExists(APIException):
  class UsernameExists (line 461) | class UsernameExists(APIException):
  function _build_error_mapping (line 467) | def _build_error_mapping():

FILE: ttrv/packages/praw/handlers.py
  class RateLimitHandler (line 18) | class RateLimitHandler(object):
    method rate_limit (line 30) | def rate_limit(function):
    method evict (line 60) | def evict(cls, urls):  # pylint: disable=W0613
    method __del__ (line 71) | def __del__(self):
    method __init__ (line 79) | def __init__(self):
    method request (line 83) | def request(self, request, proxies, timeout, verify, **_):
  class DefaultHandler (line 111) | class DefaultHandler(RateLimitHandler):
    method with_cache (line 120) | def with_cache(function):
    method clear_cache (line 163) | def clear_cache(cls):
    method evict (line 170) | def evict(cls, urls):
  class MultiprocessHandler (line 190) | class MultiprocessHandler(object):
    method __init__ (line 193) | def __init__(self, host='localhost', port=10101):
    method _relay (line 198) | def _relay(self, **kwargs):
    method evict (line 237) | def evict(self, urls):
    method request (line 241) | def request(self, **kwargs):

FILE: ttrv/packages/praw/helpers.py
  function comment_stream (line 40) | def comment_stream(reddit_session, subreddit, limit=None, verbosity=1):
  function submission_stream (line 67) | def submission_stream(reddit_session, subreddit, limit=None, verbosity=1):
  function valid_redditors (line 99) | def valid_redditors(redditors, sub):
  function submissions_between (line 119) | def submissions_between(reddit_session,
  function _stream_generator (line 289) | def _stream_generator(get_function, limit=None, verbosity=1):
  function chunk_sequence (line 360) | def chunk_sequence(sequence, chunk_length, allow_incomplete=True):
  function convert_id36_to_numeric_id (line 382) | def convert_id36_to_numeric_id(id36):
  function convert_numeric_id_to_id36 (line 390) | def convert_numeric_id_to_id36(numeric_id):
  function flatten_tree (line 427) | def flatten_tree(tree, nested_attr='replies', depth_first=False):
  function normalize_url (line 448) | def normalize_url(url):
  class BoundedSet (line 457) | class BoundedSet(object):
    method __init__ (line 464) | def __init__(self, max_items):
    method __contains__ (line 470) | def __contains__(self, item):
    method add (line 474) | def add(self, item):

FILE: ttrv/packages/praw/internal.py
  function _get_redditor_listing (line 49) | def _get_redditor_listing(subpath=''):
  function _get_sorter (line 72) | def _get_sorter(subpath='', **defaults):
  function _image_type (line 91) | def _image_type(image):
  function _modify_relationship (line 109) | def _modify_relationship(relationship, unlink=False, is_sub=False):
  function _prepare_request (line 149) | def _prepare_request(reddit_session, url, params, data, auth, files,
  function _raise_redirect_exceptions (line 209) | def _raise_redirect_exceptions(response):
  function _raise_response_exceptions (line 227) | def _raise_response_exceptions(response):
  function _to_reddit_list (line 249) | def _to_reddit_list(arg):
  function _warn_pyopenssl (line 263) | def _warn_pyopenssl():

FILE: ttrv/packages/praw/multiprocess.py
  class ThreadingTCPServer (line 15) | class ThreadingTCPServer(socketserver.ThreadingMixIn, socketserver.TCPSe...
    method handle_error (line 22) | def handle_error(_, client_addr):
  class RequestHandler (line 34) | class RequestHandler(socketserver.StreamRequestHandler):
    method cache_hit_callback (line 52) | def cache_hit_callback(key):
    method do_request (line 58) | def do_request(self, request, proxies, timeout, **_):
    method handle (line 66) | def handle(self):
  function run (line 79) | def run():

FILE: ttrv/packages/praw/objects.py
  class RedditContentObject (line 49) | class RedditContentObject(object):
    method from_api_response (line 53) | def from_api_response(cls, reddit_session, json_dict):
    method __init__ (line 57) | def __init__(self, reddit_session, json_dict=None, fetch=True,
    method __eq__ (line 72) | def __eq__(self, other):
    method __hash__ (line 77) | def __hash__(self):
    method __getattr__ (line 81) | def __getattr__(self, attr):
    method __getstate__ (line 94) | def __getstate__(self):
    method __ne__ (line 102) | def __ne__(self, other):
    method __reduce_ex__ (line 106) | def __reduce_ex__(self, _):
    method __setattr__ (line 114) | def __setattr__(self, name, value):
    method __str__ (line 136) | def __str__(self):
    method _get_json_dict (line 143) | def _get_json_dict(self):
    method _populate (line 170) | def _populate(self, json_dict, fetch):
    method _post_populate (line 191) | def _post_populate(self, fetch):
    method fullname (line 195) | def fullname(self):
    method has_fetched (line 207) | def has_fetched(self):
  class Moderatable (line 212) | class Moderatable(RedditContentObject):
    method approve (line 216) | def approve(self):
    method distinguish (line 236) | def distinguish(self, as_made_by='mod', sticky=False):
    method ignore_reports (line 255) | def ignore_reports(self):
    method remove (line 268) | def remove(self, spam=False):
    method undistinguish (line 288) | def undistinguish(self):
    method unignore_reports (line 297) | def unignore_reports(self):
  class Editable (line 309) | class Editable(RedditContentObject):
    method delete (line 313) | def delete(self):
    method edit (line 326) | def edit(self, text):
  class Gildable (line 340) | class Gildable(RedditContentObject):
    method gild (line 344) | def gild(self, months=None):
  class Hideable (line 372) | class Hideable(RedditContentObject):
    method hide (line 375) | def hide(self, _unhide=False):
    method unhide (line 387) | def unhide(self):
  class Inboxable (line 396) | class Inboxable(RedditContentObject):
    method mark_as_read (line 399) | def mark_as_read(self):
    method mark_as_unread (line 407) | def mark_as_unread(self):
    method reply (line 415) | def reply(self, text):
  class Messageable (line 433) | class Messageable(RedditContentObject):
  class Refreshable (line 439) | class Refreshable(RedditContentObject):
    method refresh (line 442) | def refresh(self):
  class Reportable (line 509) | class Reportable(RedditContentObject):
    method report (line 513) | def report(self, reason=None):
  class Saveable (line 535) | class Saveable(RedditContentObject):
    method save (line 539) | def save(self, unsave=False):
    method unsave (line 552) | def unsave(self):
  class Voteable (line 561) | class Voteable(RedditContentObject):
    method clear_vote (line 564) | def clear_vote(self):
    method downvote (line 581) | def downvote(self):
    method upvote (line 596) | def upvote(self):
    method vote (line 612) | def vote(self, direction=0):
  class Comment (line 637) | class Comment(Editable, Gildable, Inboxable, Moderatable, Refreshable,
    method __init__ (line 641) | def __init__(self, reddit_session, json_dict):
    method __unicode__ (line 655) | def __unicode__(self):
    method _fast_permalink (line 660) | def _fast_permalink(self):
    method _update_submission (line 669) | def _update_submission(self, submission):
    method is_root (line 678) | def is_root(self):
    method permalink (line 684) | def permalink(self):
    method replies (line 689) | def replies(self):
    method submission (line 722) | def submission(self):
  class Message (line 730) | class Message(Inboxable):
    method from_id (line 735) | def from_id(reddit_session, message_id, *args, **kwargs):
    method __init__ (line 760) | def __init__(self, reddit_session, json_dict):
    method __unicode__ (line 769) | def __unicode__(self):
    method collapse (line 775) | def collapse(self):
    method mute_modmail_author (line 781) | def mute_modmail_author(self, _unmute=False):
    method uncollapse (line 793) | def uncollapse(self):
    method unmute_modmail_author (line 798) | def unmute_modmail_author(self):
  class MoreComments (line 803) | class MoreComments(RedditContentObject):
    method __init__ (line 806) | def __init__(self, reddit_session, json_dict):
    method __lt__ (line 812) | def __lt__(self, other):
    method __unicode__ (line 820) | def __unicode__(self):
    method _continue_comments (line 824) | def _continue_comments(self, update):
    method _update_submission (line 837) | def _update_submission(self, submission):
    method comments (line 840) | def comments(self, update=True):
  class Redditor (line 870) | class Redditor(Gildable, Messageable, Refreshable):
    method __init__ (line 879) | def __init__(self, reddit_session, user_name=None, json_dict=None,
    method __repr__ (line 894) | def __repr__(self):
    method __unicode__ (line 898) | def __unicode__(self):
    method _post_populate (line 902) | def _post_populate(self, fetch):
    method friend (line 911) | def friend(self, note=None, _unfriend=False):
    method get_disliked (line 943) | def get_disliked(self, *args, **kwargs):
    method get_downvoted (line 951) | def get_downvoted(self, *args, **kwargs):
    method get_friend_info (line 973) | def get_friend_info(self):
    method get_liked (line 986) | def get_liked(self, *args, **kwargs):
    method get_upvoted (line 994) | def get_upvoted(self, *args, **kwargs):
    method mark_as_read (line 1012) | def mark_as_read(self, messages, unread=False):
    method unfriend (line 1035) | def unfriend(self):
  class LoggedInRedditor (line 1044) | class LoggedInRedditor(Redditor):
    method get_blocked (line 1050) | def get_blocked(self):
    method get_cached_moderated_reddits (line 1055) | def get_cached_moderated_reddits(self):
    method get_friends (line 1071) | def get_friends(self, **params):
  class ModAction (line 1080) | class ModAction(RedditContentObject):
    method __init__ (line 1083) | def __init__(self, reddit_session, json_dict=None, fetch=False):
    method __unicode__ (line 1087) | def __unicode__(self):
  class Submission (line 1092) | class Submission(Editable, Gildable, Hideable, Moderatable, Refreshable,
    method _extract_more_comments (line 1099) | def _extract_more_comments(tree):
    method from_id (line 1117) | def from_id(reddit_session, subreddit_id):
    method from_json (line 1124) | def from_json(json_response):
    method from_url (line 1132) | def from_url(reddit_session, url, comment_limit=0, comment_sort=None,
    method __init__ (line 1170) | def __init__(self, reddit_session, json_dict):
    method __unicode__ (line 1186) | def __unicode__(self):
    method _insert_comment (line 1194) | def _insert_comment(self, comment):
    method _update_comments (line 1214) | def _update_comments(self, comments):
    method add_comment (line 1219) | def add_comment(self, text):
    method comments (line 1232) | def comments(self):  # pylint: disable=E0202
    method comments (line 1248) | def comments(self, new_comments):  # pylint: disable=E0202
    method get_duplicates (line 1253) | def get_duplicates(self, *args, **kwargs):
    method get_flair_choices (line 1268) | def get_flair_choices(self, *args, **kwargs):
    method lock (line 1281) | def lock(self):
    method mark_as_nsfw (line 1294) | def mark_as_nsfw(self, unmark_nsfw=False):
    method replace_more_comments (line 1320) | def replace_more_comments(self, limit=32, threshold=1):
    method set_flair (line 1371) | def set_flair(self, *args, **kwargs):
    method set_contest_mode (line 1383) | def set_contest_mode(self, state=True):
    method set_suggested_sort (line 1407) | def set_suggested_sort(self, sort='blank'):
    method short_link (line 1421) | def short_link(self):
    method sticky (line 1432) | def sticky(self, bottom=True):
    method unlock (line 1451) | def unlock(self):
    method unmark_as_nsfw (line 1464) | def unmark_as_nsfw(self):
    method unset_contest_mode (line 1473) | def unset_contest_mode(self):
    method unsticky (line 1492) | def unsticky(self):
  class Subreddit (line 1503) | class Subreddit(Messageable, Refreshable):
    method __init__ (line 1599) | def __init__(self, reddit_session, subreddit_name=None, json_dict=None,
    method __repr__ (line 1631) | def __repr__(self):
    method __unicode__ (line 1635) | def __unicode__(self):
    method _post_populate (line 1639) | def _post_populate(self, fetch):
    method clear_all_flair (line 1647) | def clear_all_flair(self):
  class Multireddit (line 1661) | class Multireddit(Refreshable):
    method from_api_response (line 1693) | def from_api_response(cls, reddit_session, json_dict):
    method __init__ (line 1702) | def __init__(self, reddit_session, author=None, name=None,
    method __repr__ (line 1728) | def __repr__(self):
    method __unicode__ (line 1733) | def __unicode__(self):
    method _post_populate (line 1737) | def _post_populate(self, fetch):
    method add_subreddit (line 1749) | def add_subreddit(self, subreddit, _delete=False, *args, **kwargs):
    method copy (line 1775) | def copy(self, to_name):
    method delete (line 1786) | def delete(self):
    method edit (line 1796) | def edit(self, *args, **kwargs):
    method remove_subreddit (line 1807) | def remove_subreddit(self, subreddit, *args, **kwargs):
    method rename (line 1811) | def rename(self, new_name, *args, **kwargs):
  class PRAWListing (line 1824) | class PRAWListing(RedditContentObject):
    method __init__ (line 1829) | def __init__(self, reddit_session, json_dict=None, fetch=False):
    method __contains__ (line 1840) | def __contains__(self, item):
    method __delitem__ (line 1844) | def __delitem__(self, index):
    method __getitem__ (line 1848) | def __getitem__(self, index):
    method __iter__ (line 1852) | def __iter__(self):
    method __len__ (line 1856) | def __len__(self):
    method __setitem__ (line 1860) | def __setitem__(self, index, item):
    method __unicode__ (line 1864) | def __unicode__(self):
  class UserList (line 1869) | class UserList(PRAWListing):
    method _convert (line 1875) | def _convert(reddit_session, data):
  class WikiPage (line 1882) | class WikiPage(Refreshable):
    method from_api_response (line 1886) | def from_api_response(cls, reddit_session, json_dict):
    method __init__ (line 1899) | def __init__(self, reddit_session, subreddit=None, page=None,
    method __unicode__ (line 1912) | def __unicode__(self):
    method add_editor (line 1917) | def add_editor(self, username, _delete=False, *args, **kwargs):
    method get_settings (line 1937) | def get_settings(self, *args, **kwargs):
    method edit (line 1951) | def edit(self, *args, **kwargs):
    method edit_settings (line 1961) | def edit_settings(self, permlevel, listed, *args, **kwargs):
    method remove_editor (line 1986) | def remove_editor(self, username, *args, **kwargs):
  class WikiPageListing (line 2000) | class WikiPageListing(PRAWListing):
    method _convert (line 2006) | def _convert(reddit_session, data):
  function _add_aliases (line 2015) | def _add_aliases():

FILE: ttrv/packages/praw/settings.py
  function _load_configuration (line 25) | def _load_configuration():

FILE: ttrv/page.py
  function logged_in (line 23) | def logged_in(f):
  class PageController (line 37) | class PageController(Controller):
  class Page (line 41) | class Page(object):
    method __init__ (line 46) | def __init__(self, reddit, term, config, oauth):
    method refresh_content (line 60) | def refresh_content(self, order=None, name=None):
    method _draw_item (line 63) | def _draw_item(self, win, data, inverted):
    method get_selected_item (line 66) | def get_selected_item(self):
    method loop (line 72) | def loop(self):
    method handle_selected_page (line 101) | def handle_selected_page(self):
    method reload_page (line 136) | def reload_page(self):
    method exit (line 144) | def exit(self):
    method force_exit (line 152) | def force_exit(self):
    method previous_theme (line 159) | def previous_theme(self):
    method next_theme (line 173) | def next_theme(self):
    method show_help (line 187) | def show_help(self):
    method move_cursor_up (line 194) | def move_cursor_up(self):
    method move_cursor_down (line 202) | def move_cursor_down(self):
    method move_next_unread (line 210) | def move_next_unread(self):
    method move_prev_unread (line 218) | def move_prev_unread(self):
    method move_page_up (line 226) | def move_page_up(self):
    method move_page_down (line 234) | def move_page_down(self):
    method move_page_top (line 242) | def move_page_top(self):
    method move_page_bottom (line 251) | def move_page_bottom(self):
    method upvote (line 261) | def upvote(self):
    method downvote (line 283) | def downvote(self):
    method save (line 305) | def save(self):
    method login (line 324) | def login(self):
    method reply (line 337) | def reply(self):
    method delete_item (line 391) | def delete_item(self):
    method edit (line 415) | def edit(self):
    method send_private_message (line 452) | def send_private_message(self):
    method prompt_and_select_link (line 497) | def prompt_and_select_link(self):
    method copy_permalink (line 531) | def copy_permalink(self):
    method copy_url (line 539) | def copy_url(self):
    method copy_to_clipboard (line 546) | def copy_to_clipboard(self, url):
    method subscriptions (line 566) | def subscriptions(self):
    method multireddits (line 574) | def multireddits(self):
    method prompt (line 581) | def prompt(self):
    method inbox (line 604) | def inbox(self):
    method open_inbox_page (line 610) | def open_inbox_page(self, content_type):
    method open_subscription_page (line 622) | def open_subscription_page(self, content_type):
    method open_submission_page (line 634) | def open_submission_page(self, url=None, submission=None):
    method open_subreddit_page (line 646) | def open_subreddit_page(self, name):
    method clear_input_queue (line 658) | def clear_input_queue(self):
    method draw (line 666) | def draw(self):
    method _draw_header (line 684) | def _draw_header(self):
    method _draw_banner (line 765) | def _draw_banner(self):
    method _draw_content (line 789) | def _draw_content(self):
    method _draw_footer (line 864) | def _draw_footer(self):
    method _move_cursor (line 877) | def _move_cursor(self, direction):
    method _move_cursor_to_unread (line 884) | def _move_cursor_to_unread(self, direction):
    method _move_page (line 895) | def _move_page(self, direction):
    method _prompt_period (line 900) | def _prompt_period(self, order):

FILE: ttrv/submission_page.py
  class SubmissionController (line 10) | class SubmissionController(PageController):
  class SubmissionPage (line 14) | class SubmissionPage(Page):
    method __init__ (line 20) | def __init__(self, reddit, term, config, oauth, url=None, submission=N...
    method handle_selected_page (line 37) | def handle_selected_page(self):
    method refresh_content (line 53) | def refresh_content(self, order=None, name=None):
    method sort_content_hot (line 73) | def sort_content_hot(self):
    method sort_content_top (line 77) | def sort_content_top(self):
    method sort_content_rising (line 81) | def sort_content_rising(self):
    method sort_content_new (line 85) | def sort_content_new(self):
    method sort_content_controversial (line 89) | def sort_content_controversial(self):
    method toggle_comment (line 93) | def toggle_comment(self):
    method exit_submission (line 114) | def exit_submission(self):
    method open_link (line 121) | def open_link(self):
    method open_pager (line 142) | def open_pager(self):
    method add_comment (line 163) | def add_comment(self):
    method delete_comment (line 171) | def delete_comment(self):
    method comment_urlview (line 181) | def comment_urlview(self):
    method move_parent_up (line 193) | def move_parent_up(self):
    method move_sibling_next (line 211) | def move_sibling_next(self):
    method _draw_item (line 236) | def _draw_item(self, win, data, inverted):
    method _draw_comment (line 247) | def _draw_comment(self, win, data, inverted):
    method _draw_more_comments (line 323) | def _draw_more_comments(self, win, data):
    method _draw_submission (line 339) | def _draw_submission(self, win, data):

FILE: ttrv/subreddit_page.py
  class SubredditController (line 13) | class SubredditController(PageController):
  class SubredditPage (line 17) | class SubredditPage(Page):
    method __init__ (line 23) | def __init__(self, reddit, term, config, oauth, name):
    method handle_selected_page (line 35) | def handle_selected_page(self):
    method refresh_content (line 50) | def refresh_content(self, order=None, name=None):
    method sort_content_hot (line 76) | def sort_content_hot(self):
    method sort_content_top (line 83) | def sort_content_top(self):
    method sort_content_rising (line 91) | def sort_content_rising(self):
    method sort_content_new (line 102) | def sort_content_new(self):
    method sort_content_controversial (line 106) | def sort_content_controversial(self):
    method sort_content_gilded (line 117) | def sort_content_gilded(self):
    method search_subreddit (line 124) | def search_subreddit(self, name=None):
    method show_frontpage (line 141) | def show_frontpage(self):
    method open_submission (line 158) | def open_submission(self, url=None):
    method open_link (line 171) | def open_link(self):
    method post_submission (line 190) | def post_submission(self):
    method hide (line 224) | def hide(self):
    method _draw_item (line 237) | def _draw_item(self, win, data, inverted):

FILE: ttrv/subscription_page.py
  class SubscriptionController (line 10) | class SubscriptionController(PageController):
  class SubscriptionPage (line 14) | class SubscriptionPage(Page):
    method __init__ (line 20) | def __init__(self, reddit, term, config, oauth, content_type='subreddi...
    method handle_selected_page (line 29) | def handle_selected_page(self):
    method refresh_content (line 36) | def refresh_content(self, order=None, name=None):
    method select_subreddit (line 52) | def select_subreddit(self):
    method close_subscriptions (line 60) | def close_subscriptions(self):
    method _draw_banner (line 66) | def _draw_banner(self):
    method _draw_item (line 70) | def _draw_item(self, win, data, inverted):

FILE: ttrv/terminal.py
  class Terminal (line 49) | class Terminal(object):
    method __init__ (line 59) | def __init__(self, stdscr, config):
    method up_arrow (line 76) | def up_arrow(self):
    method down_arrow (line 80) | def down_arrow(self):
    method neutral_arrow (line 84) | def neutral_arrow(self):
    method gilded (line 88) | def gilded(self):
    method vline (line 92) | def vline(self):
    method display (line 96) | def display(self):
    method flash (line 126) | def flash(self):
    method curs_set (line 136) | def curs_set(val):
    method addch (line 147) | def addch(window, y, x, ch, attr):
    method getch (line 159) | def getch(self):
    method suspend (line 167) | def suspend():
    method no_delay (line 179) | def no_delay(self):
    method get_arrow (line 192) | def get_arrow(self, likes):
    method clean (line 208) | def clean(self, string, n_cols=None):
    method add_line (line 255) | def add_line(self, window, text, row=None, col=None, attr=None):
    method add_space (line 291) | def add_space(window):
    method show_notification (line 305) | def show_notification(self, message, timeout=None, style='Info'):
    method prompt_user_to_select_link (line 360) | def prompt_user_to_select_link(self, links):
    method get_link_pages (line 401) | def get_link_pages(links):
    method get_link_page_text (line 417) | def get_link_page_text(link_page):
    method open_link (line 428) | def open_link(self, url):
    method get_mailcap_entry (line 511) | def get_mailcap_entry(self, url):
    method open_browser (line 559) | def open_browser(self, url):
    method open_pager (line 643) | def open_pager(self, data, wrap=None):
    method open_editor (line 675) | def open_editor(self, data=''):
    method open_urlview (line 739) | def open_urlview(self, data):
    method text_input (line 771) | def text_input(self, window, allow_resize=False):
    method prompt_input (line 815) | def prompt_input(self, prompt, key=False):
    method prompt_y_or_n (line 866) | def prompt_y_or_n(self, prompt):
    method strip_textpad (line 881) | def strip_textpad(text):
    method strip_instructions (line 916) | def strip_instructions(text):
    method clear_screen (line 929) | def clear_screen(self):
    method attr (line 956) | def attr(self, element):
    method check_theme (line 966) | def check_theme(theme):
    method set_theme (line 979) | def set_theme(self, theme=None):

FILE: ttrv/theme.py
  class Theme (line 19) | class Theme(object):
    method __init__ (line 131) | def __init__(self, name=None, source=None, elements=None, use_color=Tr...
    method display_string (line 222) | def display_string(self):
    method bind_curses (line 225) | def bind_curses(self):
    method get (line 254) | def get(self, element, selected=False):
    method turn_on_selected (line 268) | def turn_on_selected(self):
    method list_themes (line 293) | def list_themes(cls, path=THEMES):
    method print_themes (line 325) | def print_themes(cls, path=THEMES):
    method from_name (line 366) | def from_name(cls, name, path=THEMES):
    method from_file (line 388) | def from_file(cls, filename, source):
    method _parse_line (line 426) | def _parse_line(cls, element, line, filename=None):
    method _set_fallback (line 477) | def _set_fallback(elements, src_field, fallback, dest_field=None):
    method rgb_to_ansi (line 495) | def rgb_to_ansi(color):
  class ThemeList (line 523) | class ThemeList(object):
    method __init__ (line 529) | def __init__(self):
    method reload (line 533) | def reload(self):
    method _step (line 540) | def _step(self, theme, direction):
    method next (line 563) | def next(self, theme):
    method previous (line 566) | def previous(self, theme):
Condensed preview — 72 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,232K chars).
[
  {
    "path": ".coveragerc",
    "chars": 67,
    "preview": "[run]\nsource = tvr\nomit = \n    */__main__.py\n    */packages/praw/*\n"
  },
  {
    "path": ".gitattributes",
    "chars": 25,
    "preview": "tests/cassettes/* binary\n"
  },
  {
    "path": ".gitignore",
    "chars": 133,
    "preview": ".*\n!.travis.yml\n!.pylintrc\n!.gitignore\n!.gitattributes\n!.coveragerc\n*~\n*.pyc\n*.log\nbuild\ndist\nrtv.egg-info\ntests/refresh"
  },
  {
    "path": ".pylintrc",
    "chars": 12609,
    "preview": "[MASTER]\n\n# Specify a configuration file.\n#rcfile=\n\n# Python code to execute, usually for sys.path manipulation such as\n"
  },
  {
    "path": "AUTHORS.rst",
    "chars": 2944,
    "preview": "================\nTTRV Contributors\n================\n* `deepend <https://github.com/deepend-tildeclub>`_\n\n\n=============="
  },
  {
    "path": "CHANGELOG.rst",
    "chars": 24469,
    "preview": "=============\nTTVR Changelog\n=============\n\n.. _1.27.0: https://github.com/tildeclub/ttrv/releases/tag/v1.27.0\n.. _1.26."
  },
  {
    "path": "CONTRIBUTING.rst",
    "chars": 4156,
    "preview": "----------------------\nContributor Guidelines\n----------------------\n\nBefore you start\n================\n\n- Post an issue"
  },
  {
    "path": "CONTROLS.md",
    "chars": 4946,
    "preview": "# Controls\n\n## Basic Commands\n\n- <kbd>j</kbd> or <kbd>▼</kbd> - Move the cursor down\n- <kbd>k</kbd> or <kbd>▲</kbd> - Mo"
  },
  {
    "path": "LICENSE",
    "chars": 1081,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2015 michael-lazar\n\nPermission is hereby granted, free of charge, to any person obt"
  },
  {
    "path": "MANIFEST.in",
    "chars": 157,
    "preview": "include version.py\ninclude CHANGELOG.rst\ninclude AUTHORS.rst\ninclude README.md\ninclude LICENSE\ninclude ttrv.1\ninclude tt"
  },
  {
    "path": "README.md",
    "chars": 7894,
    "preview": "<h1 align=\"center\">Tilde Terminal Reddit Viewer (TTRV)</h1>\n<p>Forked from Original source/development at: <a href=\"http"
  },
  {
    "path": "THEMES.md",
    "chars": 8462,
    "preview": "# Themes\n\n## Installing Themes\n\nYou can install custom themes by copying them into your **~/.config/ttrv/themes/**\ndirec"
  },
  {
    "path": "requirements.txt",
    "chars": 165,
    "preview": "beautifulsoup4==4.5.1\ndecorator==4.0.10\nkitchen==1.2.4\nmailcap-fix==0.1.3\nrequests==2.20.0\nsix==1.10.0\npytest==3.2.3\nvcr"
  },
  {
    "path": "scripts/build_authors.py",
    "chars": 1386,
    "preview": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\n\"\"\"\nScrape the project contributors list from Github and update AUTHORS.r"
  },
  {
    "path": "scripts/build_manpage.py",
    "chars": 2840,
    "preview": "#!/usr/bin/env python\n\n\"\"\"\nInternal tool used to automatically generate an up-to-date version of the tvr\nman page. Curre"
  },
  {
    "path": "scripts/cassettes/demo_theme.yaml",
    "chars": 531828,
    "preview": "interactions:\n- request:\n    body: grant_type=refresh_token&redirect_uri=http%3A%2F%2F127.0.0.1%3A65000%2F&refresh_token"
  },
  {
    "path": "scripts/count_lines.sh",
    "chars": 405,
    "preview": "#!/usr/bin/env bash\n\nROOT=\"$(dirname \"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\")\"\n\ncd ${ROOT}\necho -e \"\\nTests:"
  },
  {
    "path": "scripts/demo_theme.py",
    "chars": 9062,
    "preview": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\nfrom __future__ import print_funct"
  },
  {
    "path": "scripts/initialize_session.py",
    "chars": 776,
    "preview": "\"\"\"\nInitialize an authenticated instance of PRAW to interact with.\n\n$ python -i initialize_session.py\n\"\"\"\nfrom ttrv.docs"
  },
  {
    "path": "scripts/inspect_webbrowser.py",
    "chars": 814,
    "preview": "#!/usr/bin/env python\n\n\"\"\"\nUtility script used to examine the python webbrowser module with different OSs.\n\"\"\"\n\nimport o"
  },
  {
    "path": "scripts/pip_clean.sh",
    "chars": 364,
    "preview": "#!/usr/bin/env bash\n# Removes any lingering build/release files from the project directory\n\nfind . -type f -name '*.pyc'"
  },
  {
    "path": "scripts/ttrv.1.template",
    "chars": 1349,
    "preview": ".TH \"TTRV\" \"1\" \"{release_date}\" \"Version {version}\" \"Usage and Commands\"\n.SH NAME\nTTRV - Reddit Terminal Viewer\n.SH SYNO"
  },
  {
    "path": "scripts/update_packages.py",
    "chars": 1384,
    "preview": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\n\"\"\"\nUpdate the project's bundled dependencies by downloading the git repo"
  },
  {
    "path": "setup.cfg",
    "chars": 21,
    "preview": "[wheel]\nuniversal = 1"
  },
  {
    "path": "setup.py",
    "chars": 2544,
    "preview": "import sys\nimport codecs\nimport setuptools\n\nfrom version import __version__ as version\n\n\ninstall_requires = [\n    'beaut"
  },
  {
    "path": "test",
    "chars": 5,
    "preview": "test\n"
  },
  {
    "path": "ttrv/__init__.py",
    "chars": 916,
    "preview": "# -*- coding: utf-8 -*-\nr\"\"\"\n________                      _____              ______\n___  __/__________________ ______(_"
  },
  {
    "path": "ttrv/__main__.py",
    "chars": 10717,
    "preview": "# -*- coding: utf-8 -*-\n# pylint: disable=wrong-import-position\n\nfrom __future__ import unicode_literals\nfrom __future__"
  },
  {
    "path": "ttrv/__version__.py",
    "chars": 88,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\n__version__ = '1.27.3'\n"
  },
  {
    "path": "ttrv/clipboard.py",
    "chars": 1200,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\nimport sys\nimport subprocess\n\nfrom .exceptions import P"
  },
  {
    "path": "ttrv/config.py",
    "chars": 10468,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\nimport os\nimport codecs\nimport shutil\nimport argparse\nf"
  },
  {
    "path": "ttrv/content.py",
    "chars": 45047,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\nimport re\nimport time\nimport logging\nfrom datetime impo"
  },
  {
    "path": "ttrv/docs.py",
    "chars": 7282,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\nAGENT = \"\"\"\\\ndesktop:https://github.com/tildeclub/ttrv:"
  },
  {
    "path": "ttrv/exceptions.py",
    "chars": 1367,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\n\nclass EscapeInterrupt(Exception):\n    \"Signal that the"
  },
  {
    "path": "ttrv/inbox_page.py",
    "chars": 7289,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\nfrom . import docs\nfrom .content import InboxContent\nfr"
  },
  {
    "path": "ttrv/mime_parsers.py",
    "chars": 16147,
    "preview": "import re\nimport logging\nimport mimetypes\nimport json\n\nimport requests\nfrom bs4 import BeautifulSoup\n\n_logger = logging."
  },
  {
    "path": "ttrv/oauth.py",
    "chars": 9365,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\nimport os\nimport time\nimport uuid\nimport string\nimport "
  },
  {
    "path": "ttrv/objects.py",
    "chars": 26247,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\nimport re\nimport os\nimport sys\nimport time\nimport signa"
  },
  {
    "path": "ttrv/packages/__init__.py",
    "chars": 775,
    "preview": "\"\"\"\nThis stub allows the user to fallback to their system installation of\npraw if the bundled package is missing. This t"
  },
  {
    "path": "ttrv/packages/praw/__init__.py",
    "chars": 120714,
    "preview": "# This file is part of PRAW.\n#\n# PRAW is free software: you can redistribute it and/or modify it under the\n# terms of th"
  },
  {
    "path": "ttrv/packages/praw/decorator_helpers.py",
    "chars": 1428,
    "preview": "\"\"\"Internal helper functions used by praw.decorators.\"\"\"\nimport inspect\nfrom requests.compat import urljoin\nimport six\ni"
  },
  {
    "path": "ttrv/packages/praw/decorators.py",
    "chars": 11985,
    "preview": "# This file is part of PRAW.\n#\n# PRAW is free software: you can redistribute it and/or modify it under the\n# terms of th"
  },
  {
    "path": "ttrv/packages/praw/errors.py",
    "chars": 14188,
    "preview": "# This file is part of PRAW.\n#\n# PRAW is free software: you can redistribute it and/or modify it under the\n# terms of th"
  },
  {
    "path": "ttrv/packages/praw/handlers.py",
    "chars": 9418,
    "preview": "\"\"\"Provides classes that handle request dispatching.\"\"\"\n\nfrom __future__ import print_function, unicode_literals\n\nimport"
  },
  {
    "path": "ttrv/packages/praw/helpers.py",
    "chars": 19086,
    "preview": "# This file is part of PRAW.\n#\n# PRAW is free software: you can redistribute it and/or modify it under the\n# terms of th"
  },
  {
    "path": "ttrv/packages/praw/internal.py",
    "chars": 10243,
    "preview": "# This file is part of PRAW.\n#\n# PRAW is free software: you can redistribute it and/or modify it under the\n# terms of th"
  },
  {
    "path": "ttrv/packages/praw/multiprocess.py",
    "chars": 3895,
    "preview": "\"\"\"Provides a request server to be used with the multiprocess handler.\"\"\"\n\nfrom __future__ import print_function, unicod"
  },
  {
    "path": "ttrv/packages/praw/objects.py",
    "chars": 80907,
    "preview": "# This file is part of PRAW.\n#\n# PRAW is free software: you can redistribute it and/or modify it under the\n# terms of th"
  },
  {
    "path": "ttrv/packages/praw/praw.ini",
    "chars": 2233,
    "preview": "[DEFAULT]\n# The domain name PRAW will use to interact with the reddit site via its API.\napi_domain: api.reddit.com\n\n# Ti"
  },
  {
    "path": "ttrv/packages/praw/settings.py",
    "chars": 1778,
    "preview": "# This file is part of PRAW.\n#\n# PRAW is free software: you can redistribute it and/or modify it under the\n# terms of th"
  },
  {
    "path": "ttrv/page.py",
    "chars": 32396,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\nimport re\nimport os\nimport sys\nimport time\nimport loggi"
  },
  {
    "path": "ttrv/submission_page.py",
    "chars": 15317,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\nfrom . import docs\nfrom .content import SubmissionConte"
  },
  {
    "path": "ttrv/subreddit_page.py",
    "chars": 11886,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\nimport time\n\nfrom . import docs\nfrom .content import Su"
  },
  {
    "path": "ttrv/subscription_page.py",
    "chars": 3352,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\nfrom . import docs\nfrom .content import SubscriptionCon"
  },
  {
    "path": "ttrv/templates/index.html",
    "chars": 692,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n    <title>RTV OAuth2 Helper</title>\n    <!-- style borrowed from http://bettermotherfucki"
  },
  {
    "path": "ttrv/templates/mailcap",
    "chars": 3550,
    "preview": "# Example mailcap file for Terminal Viewer for Reddit\n# https://github.com/tildeclub/ttrv/\n#\n# Copy the contents of this"
  },
  {
    "path": "ttrv/templates/ttrv.cfg",
    "chars": 5482,
    "preview": "; Tilde Terminal Reddit Viewer Configuration File\n; https://github.com/tildeclub/ttrv\n;\n; This file should be placed in "
  },
  {
    "path": "ttrv/terminal.py",
    "chars": 37361,
    "preview": "# -*- coding: utf-8 -*-\nfrom __future__ import unicode_literals\n\nimport os\nimport re\nimport sys\nimport time\nimport shlex"
  },
  {
    "path": "ttrv/theme.py",
    "chars": 22143,
    "preview": "# pylint: disable=bad-whitespace\n\nimport os\nimport codecs\nimport curses\nimport logging\nfrom collections import OrderedDi"
  },
  {
    "path": "ttrv/themes/colorblind-dark.cfg",
    "chars": 3385,
    "preview": "# Black             ansi_235\n# White             ansi_253\n\n# Sky Blue          ansi_81\n# Bluish Green      ansi_36\n# Yel"
  },
  {
    "path": "ttrv/themes/default.cfg.example",
    "chars": 3148,
    "preview": "[theme]\n;<element>            = <foreground>  <background>  <attributes>\nNormal                = default       default  "
  },
  {
    "path": "ttrv/themes/molokai.cfg",
    "chars": 3716,
    "preview": "# https://github.com/tomasr/molokai\n\n# normal            ansi_252, ansi_234\n# line number       ansi_239, ansi_235\n# cur"
  },
  {
    "path": "ttrv/themes/papercolor.cfg",
    "chars": 3664,
    "preview": "# https://github.com/NLKNguyen/papercolor-theme\n\n# background    ansi_255\n# negative      ansi_124\n# positive      ansi_"
  },
  {
    "path": "ttrv/themes/solarized-dark.cfg",
    "chars": 3658,
    "preview": "# http://ethanschoonover.com/solarized\n\n# base3     ansi_230\n# base2     ansi_254\n# base1     ansi_245  (optional emphas"
  },
  {
    "path": "ttrv/themes/solarized-light.cfg",
    "chars": 3674,
    "preview": "# http://ethanschoonover.com/solarized\n\n# base03    ansi_234\n# base02    ansi_235\n# base01    ansi_240  (optional emphas"
  },
  {
    "path": "ttrv.1",
    "chars": 2702,
    "preview": ".TH \"TTRV\" \"1\" \"June 03, 2019\" \"Version 1.27.0\" \"Usage and Commands\"\n.SH NAME\nTTRV - Tilde Terminal Reddit Viewer\n.SH SY"
  },
  {
    "path": "ttrv.egg-info/PKG-INFO",
    "chars": 8932,
    "preview": "Metadata-Version: 2.1\nName: ttrv\nVersion: 1.27.3\nSummary: Tilde Terminal Reddit Viewer\nHome-page: https://github.com/til"
  },
  {
    "path": "ttrv.egg-info/SOURCES.txt",
    "chars": 1210,
    "preview": "AUTHORS.rst\nCHANGELOG.rst\nLICENSE\nMANIFEST.in\nREADME.md\nsetup.cfg\nsetup.py\nttrv.1\nversion.py\nttrv/__init__.py\nttrv/__mai"
  },
  {
    "path": "ttrv.egg-info/dependency_links.txt",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": "ttrv.egg-info/entry_points.txt",
    "chars": 45,
    "preview": "[console_scripts]\nttrv = ttrv.__main__:main\n\n"
  },
  {
    "path": "ttrv.egg-info/requires.txt",
    "chars": 149,
    "preview": "beautifulsoup4\ndecorator\nkitchen\nrequests>=2.4.0\nsix\n\n[:python_version<'3.6']\nmailcap-fix\n\n[test]\ncoveralls\npytest>=3.1."
  },
  {
    "path": "ttrv.egg-info/top_level.txt",
    "chars": 5,
    "preview": "ttrv\n"
  }
]

About this extraction

This page contains the full source code of the tildeclub/ttrv GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 72 files (1.1 MB), approximately 487.3k tokens, and a symbol index with 775 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!