Merge branch 'feature/copy-url' of https://github.com/noahfx/rtv into noahfx-feature/copy-url

This commit is contained in:
Michael Lazar
2017-05-09 15:43:13 -04:00
6 changed files with 512 additions and 6 deletions

View File

@@ -35,7 +35,6 @@ Once you are logged in your username will appear in the top-right corner of the
:``S``: View a list of subscribed multireddits
:``w``: Save a submission
--------------
Subreddit Mode
--------------
@@ -72,3 +71,5 @@ In submission mode you can view the self text for a submission and browse commen
:``o`` or ``ENTER``: Open the comment permalink with your web browser
:``SPACE``: Fold the selected comment, or load additional comments
:``b``: Display URLs with urlview
:``y``: Copy submission permalink to clipboard
:``Y``: Copy submission link to clipboard

View File

@@ -1,6 +1,5 @@
# -*- coding: utf-8 -*-
import os
import sys
import platform
import subprocess

View File

@@ -333,10 +333,12 @@ class Page(object):
if url is not None:
try:
self.copy_to_clipboard(url)
self.term.show_notification(
'Copied {} to clipboard'.format(url), timeout=1)
except ProgramError as e:
_logger.exception(e)
self.term.show_notification(
'Failed to copy {} to clipboard, {}'.format(url, str(e)))
'Failed to copy {} to clipboard, {}'.format(url, e))
@PageController.register(Command('COPY_SUBMISSION_URL'))
def copy_post_permalink(self):
@@ -345,14 +347,16 @@ class Page(object):
"""
data = self.get_selected_item()
url = data.get('url')
url = data.get('url_full')
if url is not None:
try:
self.copy_to_clipboard(url)
self.term.show_notification(
'Copied {} to clipboard'.format(url), timeout=1)
except ProgramError as e:
_logger.exception(e)
self.term.show_notification(
'Failed to copy {} to clipboard, {}'.format(url, str(e)))
'Failed to copy {} to clipboard, {}'.format(url, e))
def clear_input_queue(self):
"""

View File

@@ -11,7 +11,6 @@ install_requires = [
'kitchen',
'requests >=2.4.0', # https://github.com/michael-lazar/rtv/issues/325
'six',
'pyperclip'
]
tests_require = [

View File

@@ -0,0 +1,445 @@
interactions:
- request:
body: null
headers:
Accept: ['*/*']
Accept-Encoding: ['gzip, deflate']
Connection: [keep-alive]
User-Agent: [rtv test suite PRAW/3.5.0 Python/3.4.0 b'Linux-3.13.0-92-generic-x86_64-with-Ubuntu-14.04-trusty']
method: GET
uri: https://www.reddit.com/r/Python/comments/2xmo63.json
response:
body:
string: !!binary |
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
headers:
CF-RAY: [2d097eba10851201-SJC]
Connection: [keep-alive]
Content-Encoding: [gzip]
Content-Length: ['7683']
Content-Type: [application/json; charset=UTF-8]
Date: ['Thu, 11 Aug 2016 06:05:18 GMT']
Server: [cloudflare-nginx]
Set-Cookie: ['__cfduid=d4268e21ad71b8831b824bd1ab737f8461470895517; expires=Fri,
11-Aug-17 06:05:17 GMT; path=/; domain=.reddit.com; HttpOnly', 'loid=h8cDfltd9Q62s2CuD9;
Domain=reddit.com; Max-Age=63071999; Path=/; expires=Sat, 11-Aug-2018 06:05:18
GMT; secure', 'loidcreated=2016-08-11T06%3A05%3A17.813Z; Domain=reddit.com;
Max-Age=63071999; Path=/; expires=Sat, 11-Aug-2018 06:05:18 GMT; secure']
Strict-Transport-Security: [max-age=15552000; includeSubDomains; preload]
Vary: [accept-encoding]
X-Moose: [majestic]
access-control-allow-origin: ['*']
access-control-expose-headers: ['X-Reddit-Tracking, X-Moose']
cache-control: ['max-age=0, must-revalidate']
set-cookie: ['__cfduid=d4268e21ad71b8831b824bd1ab737f8461470895517; expires=Fri,
11-Aug-17 06:05:17 GMT; path=/; domain=.reddit.com; HttpOnly', 'loid=h8cDfltd9Q62s2CuD9;
Domain=reddit.com; Max-Age=63071999; Path=/; expires=Sat, 11-Aug-2018 06:05:18
GMT; secure', 'loidcreated=2016-08-11T06%3A05%3A17.813Z; Domain=reddit.com;
Max-Age=63071999; Path=/; expires=Sat, 11-Aug-2018 06:05:18 GMT; secure']
x-content-type-options: [nosniff]
x-frame-options: [SAMEORIGIN]
x-reddit-tracking: ['https://pixel.redditmedia.com/pixel/of_destiny.png?v=9QHLT8aK44XrW4EophpKTOutu0tVHtG38E44PzX7D82HXsx4xQ2AOsuvVhWDQsq0mtKtWBhcqSY%3D']
x-ua-compatible: [IE=edge]
x-xss-protection: [1; mode=block]
status: {code: 200, message: OK}
- request:
body: redirect_uri=http%3A%2F%2F127.0.0.1%3A65000%2F&refresh_token=**********&grant_type=refresh_token
headers:
Accept: ['*/*']
Accept-Encoding: ['gzip, deflate']
Authorization: ['**********']
Connection: [keep-alive]
Content-Length: ['122']
Content-Type: [application/x-www-form-urlencoded]
Cookie: [loid=h8cDfltd9Q62s2CuD9; __cfduid=d4268e21ad71b8831b824bd1ab737f8461470895517;
loidcreated=2016-08-11T06%3A05%3A17.813Z]
User-Agent: [rtv test suite PRAW/3.5.0 Python/3.4.0 b'Linux-3.13.0-92-generic-x86_64-with-Ubuntu-14.04-trusty']
method: POST
uri: https://api.reddit.com/api/v1/access_token/
response:
body:
string: !!binary |
H4sIAAAAAAAAAyWMwWoCQRAFf6WZs4cFIYJHTSAHFSTkvMxOP7SRnRm628VB/HeZ5PSgqHrPEFOC
2ejlhhy2FB5xqLeW94fvdcqfX/vN8cy70+Fn4N+wovDnjd4qujwhKrRzxiIJo3DHp5LRIR5VFDZK
f15/DMOKgqXy34LF6SrmRRsJI7t4o7nZfVIwixtVlSU6ZpjFC4wUkUlRizpZXEB2n2bxPpZUJtBS
HOH1BvKMizXWAAAA
headers:
CF-RAY: [2d097ec6b49511c5-SJC]
Connection: [keep-alive]
Content-Encoding: [gzip]
Content-Type: [application/json; charset=UTF-8]
Date: ['Thu, 11 Aug 2016 06:05:20 GMT']
Server: [cloudflare-nginx]
Strict-Transport-Security: [max-age=15552000; includeSubDomains; preload]
X-Moose: [majestic]
cache-control: ['max-age=0, must-revalidate']
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: [rtv test suite PRAW/3.5.0 Python/3.4.0 b'Linux-3.13.0-92-generic-x86_64-with-Ubuntu-14.04-trusty']
method: GET
uri: https://oauth.reddit.com/api/v1/me.json
response:
body:
string: !!binary |
H4sIAKEVrFcC/31V23LbQAj9lY6fO53EcZukP8OgFZIZrXbVvdhxMvn3wlqKVnXSNxtYOBwO6G3H
EWicrL8Q7X5/69BG+v5td8QII7KtTA5HjdgZPrHlV0zsHUxHfCV42InfBMJErYTcH/Y/9w/3vw53
P+40F7cEXfAjBN/4FKucUjzmOJFry8PFPKeCnMyS7m7/tKRTaL79F55lN8CAYUQx7vfPmt1BQ0n/
fyT240gufcQ9HsTYSbEcSHG9yRtJRMAj9gRToBPTOYL1fS94fE4SlELWXIF6jomC0CdIoLP+DImi
RrztThgYnf6Wmi4Fb2GvJNHLRIELBtaO9w/vBfuJ4IiTEMGuB+fPaxlsI4WTlAk0+ZDEv/r+C5bd
GkhjQ629gMHQLoFf4bz/DOfhueCkHs0FImEwR83TrSVG37AlOFMDCUNPW6TSBWA2qpna+EphgNZL
xwlSQDOszpjYDIL4OjEdzuzIUx9QFGW8H7hMbVMjeWGqy05Rzw4f0PUUSP2qdhlX9YzHPgfouZOM
ToiOG4xCBDpBSKctCsozAJi8ZXNZPZ0PRqaZ0lSFz+w42RoZdYPOUVi9kx9o9K73CiFRmcdmNjE3
Ar/l9OlsHnU2n7Moim28kAFGQA7FuVVQkU6W/Rf2VrOj8ywj2SGD5njbZjQiFnvDS+lbJtByIFNt
i4QTOdXdzZMJcyTY1O/LQsQUQWa9CVZk102AllEw1hzj3P+mxQ/uIGRb6yUJh8LP7ZQiJVVv5bhI
XG7EYwJO9eRQJH3ipDsRTixzPwdOeiYX/6JJepG5VpqcfExQ1rIKlsCr3mAUAhFW6DOkOnFjvRmW
i/MVHDmkSwEViddDcv+0PpAD3Htb314u17U26J+d/ePQq/o0XLqZOJQvgPhctlbjXONfRMC5SHa5
1FKQO5ZzVNauSlvymGt7yrQ+uH4LdAGrCvNXQKu8/wUqtT8UrwYAAA==
headers:
CF-RAY: [2d097ed34b4a0da3-SJC]
Connection: [keep-alive]
Content-Encoding: [gzip]
Content-Length: ['724']
Content-Type: [application/json; charset=UTF-8]
Date: ['Thu, 11 Aug 2016 06:05:21 GMT']
Server: [cloudflare-nginx]
Set-Cookie: ['__cfduid=d6cb6589403737ef48dcd7d7fbc1cf7e91470895521; expires=Fri,
11-Aug-17 06:05:21 GMT; path=/; domain=.reddit.com; HttpOnly', 'loid=6nnM93nf6LWuCnh8YN;
Domain=reddit.com; Max-Age=63071999; Path=/; expires=Sat, 11-Aug-2018 06:05:21
GMT; secure', 'loidcreated=2016-08-11T06%3A05%3A21.856Z; Domain=reddit.com;
Max-Age=63071999; Path=/; expires=Sat, 11-Aug-2018 06:05:21 GMT; secure']
Strict-Transport-Security: [max-age=15552000; includeSubDomains; preload]
Vary: [accept-encoding]
X-Moose: [majestic]
cache-control: ['private, s-maxage=0, max-age=0, must-revalidate', 'max-age=0,
must-revalidate']
expires: ['-1']
set-cookie: ['__cfduid=d6cb6589403737ef48dcd7d7fbc1cf7e91470895521; expires=Fri,
11-Aug-17 06:05:21 GMT; path=/; domain=.reddit.com; HttpOnly', 'loid=6nnM93nf6LWuCnh8YN;
Domain=reddit.com; Max-Age=63071999; Path=/; expires=Sat, 11-Aug-2018 06:05:21
GMT; secure', 'loidcreated=2016-08-11T06%3A05%3A21.856Z; Domain=reddit.com;
Max-Age=63071999; Path=/; expires=Sat, 11-Aug-2018 06:05:21 GMT; secure']
x-content-type-options: [nosniff]
x-frame-options: [SAMEORIGIN]
x-ratelimit-remaining: ['594.0']
x-ratelimit-reset: ['279']
x-ratelimit-used: ['6']
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: [loid=6nnM93nf6LWuCnh8YN; __cfduid=d6cb6589403737ef48dcd7d7fbc1cf7e91470895521;
loidcreated=2016-08-11T06%3A05%3A21.856Z]
User-Agent: [rtv test suite PRAW/3.5.0 Python/3.4.0 b'Linux-3.13.0-92-generic-x86_64-with-Ubuntu-14.04-trusty']
method: GET
uri: https://oauth.reddit.com/r/Python/comments/2xmo63/a_python_terminal_viewer_for_browsing_reddit/.json
response:
body:
string: !!binary |
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
headers:
CF-RAY: [2d097eddfbc60da3-SJC]
Connection: [keep-alive]
Content-Encoding: [gzip]
Content-Length: ['7728']
Content-Type: [application/json; charset=UTF-8]
Date: ['Thu, 11 Aug 2016 06:05:23 GMT']
Server: [cloudflare-nginx]
Strict-Transport-Security: [max-age=15552000; includeSubDomains; preload]
Vary: [accept-encoding]
X-Moose: [majestic]
cache-control: ['private, s-maxage=0, max-age=0, must-revalidate', 'max-age=0,
must-revalidate']
expires: ['-1']
x-content-type-options: [nosniff]
x-frame-options: [SAMEORIGIN]
x-ratelimit-remaining: ['593.0']
x-ratelimit-reset: ['277']
x-ratelimit-used: ['7']
x-reddit-tracking: ['https://pixel.redditmedia.com/pixel/of_destiny.png?v=NyuqD032ae99kTV0T%2BAITasTOjN%2Fg9zy2Dq4E1MIlEyy0tJcLHVNgN%2Bb%2BcKxJrfFtx3tf7G5f0rl6CmQZvP2wiM5nAWVSM4d']
x-ua-compatible: [IE=edge]
x-xss-protection: [1; mode=block]
status: {code: 200, message: OK}
version: 1

View File

@@ -1,6 +1,9 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import os
import platform
import subprocess
import curses
from rtv.submission_page import SubmissionPage
@@ -443,3 +446,58 @@ def test_submission_urlview(submission_page, terminal, refresh_token):
mock.patch('subprocess.Popen'):
submission_page.controller.trigger('b')
open_urlview.assert_called_with('http://test.url.com ❤')
def test_submission_copy_to_clipboard(submission_page, terminal, refresh_token):
def get_linux_clipboard_content():
paste_cmd = None
for cmd in ['xsel', 'xclip']:
cmd_exists = subprocess.call(
['which', cmd],
stdout=subprocess.PIPE, stderr=subprocess.PIPE) is 0
if cmd_exists:
paste_cmd = cmd
break
if paste_cmd is not None:
cmd_args = {'xsel' : ['xsel', '-b', '-o'],
'xclip' : ['xclip', '-selection', 'c', '-o']}
p = subprocess.Popen(cmd_args.get(paste_cmd),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
close_fds=True)
stdout, stderr = p.communicate()
return stdout.decode('utf-8')
def get_clipboard_content():
paste_content = None
#Check OS type
os_type = None
if os.name == 'mac' or platform.system() == 'Darwin':
os_type = 'macOs'
elif os.name == 'posix' or platform.system() == 'Linux':
os_type = 'linux'
if os_type is not None:
if os_type == 'macOs':
p = subprocess.Popen(['pbpaste', 'r'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
close_fds=True)
stdout, stderr = p.communicate()
paste_content = stdout.decode('utf-8')
elif os_type == 'linux':
paste_content = get_linux_clipboard_content()
return paste_content
# Log in
submission_page.config.refresh_token = refresh_token
submission_page.oauth.authorize()
#Get submission
data = submission_page.content.get(submission_page.nav.absolute_index)
#Trigger copy command for permalink
submission_page.controller.trigger('y')
assert data.get('permalink') == get_clipboard_content()
#Trigger copy command for submission
submission_page.controller.trigger('Y')
assert data.get('url_full') == get_clipboard_content()