Added -a for force_ascii, utf-8 by default

This commit is contained in:
Robert Greener
2015-03-08 21:28:36 +00:00
parent bc9e36f7af
commit d6620dbdbe
3 changed files with 38 additions and 11 deletions

7
__main__.py Normal file
View File

@@ -0,0 +1,7 @@
# Entry point for rtv module
# Run by moving into the top level directory (the one with setup.py)
# and typing "python -m rtv"
from rtv.main import main
main()

View File

@@ -8,19 +8,30 @@ import requests
from .errors import SubmissionURLError, SubredditNameError from .errors import SubmissionURLError, SubredditNameError
is_utf8 = True
def clean(unicode_string): def clean(unicode_string):
""" """
Convert unicode string into ascii-safe characters. Checks if -a was given, if it was it
converts unicode string into ascii-safe characters.
""" """
if not is_utf8:
if six.PY2:
ascii_string = unicode_string.encode('ascii', 'replace')
else:
ascii_string = unicode_string.encode().decode('ascii', 'replace')
if six.PY2: ascii_string = ascii_string.replace('\\', '')
ascii_string = unicode_string.encode('ascii', 'replace') return ascii_string
else: else:
ascii_string = unicode_string.encode().decode('ascii', 'replace') if six.PY2:
utf8_string = unicode_string.encode('utf-8', 'replace')
else:
utf8_string = unicode_string.encode().decode('utf-8', 'replace')
ascii_string = ascii_string.replace('\\', '') utf8_string = utf8_string.replace('\\', '')
return ascii_string return utf8_string
def split_text(big_text, width): def split_text(big_text, width):

View File

@@ -8,7 +8,10 @@ from .errors import SubmissionURLError, SubredditNameError
from .utils import curses_session, load_config, HELP from .utils import curses_session, load_config, HELP
from .subreddit import SubredditPage from .subreddit import SubredditPage
from .submission import SubmissionPage from .submission import SubmissionPage
import locale
import rtv.content
is_utf8 = True # if -a is set then this is set to false
DESCRIPTION = """ DESCRIPTION = """
Reddit Terminal Viewer is a lightweight browser for www.reddit.com built into a Reddit Terminal Viewer is a lightweight browser for www.reddit.com built into a
@@ -34,6 +37,8 @@ def main():
formatter_class=argparse.RawDescriptionHelpFormatter) formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('-s', dest='subreddit', help='subreddit name') parser.add_argument('-s', dest='subreddit', help='subreddit name')
parser.add_argument('-l', dest='link', help='full link to a submission') parser.add_argument('-l', dest='link', help='full link to a submission')
parser.add_argument('-a', dest='force_ascii',
help='forces ascii (disables unicode)', action='store_true')
group = parser.add_argument_group( group = parser.add_argument_group(
'authentication (optional)', 'authentication (optional)',
@@ -54,6 +59,10 @@ def main():
if args.subreddit is None: if args.subreddit is None:
args.subreddit = 'front' args.subreddit = 'front'
if args.force_ascii:
rtv.content.is_utf8 = False
locale.setlocale(locale.LC_ALL, '')
try: try:
reddit = praw.Reddit(user_agent='desktop:https://github.com/michael-lazar/rtv:(by /u/civilization_phaze_3)') reddit = praw.Reddit(user_agent='desktop:https://github.com/michael-lazar/rtv:(by /u/civilization_phaze_3)')
reddit.config.decode_html_entities = True reddit.config.decode_html_entities = True