fix merge conflicts

This commit is contained in:
Tobin
2015-04-03 23:47:14 -05:00
4 changed files with 66 additions and 7 deletions

View File

@@ -91,14 +91,12 @@ In submission mode you can view the self text for a submission and browse commen
Configuration
-------------
RTV will read a configuration file located at **~/.rtv**.
RTV will read a configuration file located at ``$XDG_CONFIG_HOME/rtv/rtv.cfg`` or ``~/.config/rtv/rtv.cfg`` if ``$XDG_CONFIG_HOME`` is not set.
This can be used to avoid having to re-enter login credentials every time the program is launched.
Each line in the file will replace the corresponding default argument in the launch script.
Example config:
**~/.rtv**
.. code-block:: ini
[rtv]

View File

@@ -26,9 +26,20 @@ def load_config():
saved settings for things like the username and password.
"""
config_path = os.path.join(os.path.expanduser('~'), '.rtv')
config = configparser.ConfigParser()
config.read(config_path)
HOME = os.path.expanduser('~')
XDG_CONFIG_HOME = os.getenv('XDG_CONFIG_HOME', os.path.join(HOME, '.config'))
config_paths = [
os.path.join(XDG_CONFIG_HOME, 'rtv', 'rtv.cfg'),
os.path.join(HOME, '.rtv')
]
# read only the first existing config file
for config_path in config_paths:
if os.path.exists(config_path):
config.read(config_path)
break
defaults = {}
if config.has_section('rtv'):

View File

@@ -52,3 +52,13 @@ COMMENT_FILE = """
# Replying to {author}'s {type}
{content}
"""
SUBMISSION_FILE = """
# Please enter your submission. Lines starting with '#' will be ignored,
# and an empty field aborts the submission.
#
# The first line will be interpreted as the title
# Following lines will be interpreted as the content
#
# Posting to /r/{name}
"""

View File

@@ -1,12 +1,14 @@
import curses
import time
import requests
import praw
from .exceptions import SubredditError
from .page import BasePage, Navigator, BaseController
from .submission import SubmissionPage
from .content import SubredditContent
from .helpers import clean, open_browser
from .helpers import clean, open_browser, open_editor
from .docs import SUBMISSION_FILE
from .curses_helpers import (BULLET, UARROW, DARROW, GOLD, Color,
LoadScreen, show_notification)
@@ -94,6 +96,44 @@ class SubredditPage(BasePage):
global opened_links
opened_links.add(url)
@SubredditController.register('p')
def post_submission(self):
# Abort if user isn't logged in
if not self.reddit.is_logged_in():
show_notification(self.stdscr, ['Login to reply'])
return
subreddit = self.reddit.get_subreddit(self.content.name)
# Make sure it is a valid subreddit for submission
# Strips the subreddit to just the name
sub = str(subreddit).split('/')[2]
if '+' in sub or sub == 'all' or sub == 'front':
message = 'Can\'t post to /r/{0}'.format(sub)
show_notification(self.stdscr, [message])
return
# Open the submission window
submission_info = SUBMISSION_FILE.format(name=sub)
curses.endwin()
submission_text = open_editor(submission_info)
curses.doupdate()
# Abort if there is no content
if not submission_text:
curses.flash()
return
try:
title, content = submission_text.split('\n', 1)
self.reddit.submit(sub, title, text=content)
except praw.errors.APIException as e:
show_notification(self.stdscr, [e.message])
except ValueError:
show_notification(self.stdscr, ['No post content! Post aborted.'])
else:
time.sleep(0.5)
self.refresh_content()
@staticmethod
def draw_item(win, data, inverted=False):