Use urrllib3 to shorten, expand URLs.
Get rid of requests library from code. Rename http_handler to manager.
This commit is contained in:
parent
7860af2e6e
commit
1f0b666c42
44
buku.py
44
buku.py
@ -29,7 +29,6 @@ try:
|
|||||||
readline
|
readline
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
import requests
|
|
||||||
import signal
|
import signal
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import sys
|
import sys
|
||||||
@ -2253,6 +2252,8 @@ class BukuDb:
|
|||||||
Shortened url on success, None on failure.
|
Shortened url on success, None on failure.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
global myproxy
|
||||||
|
|
||||||
if not index and not url:
|
if not index and not url:
|
||||||
logerr('Either a valid DB index or URL required')
|
logerr('Either a valid DB index or URL required')
|
||||||
return None
|
return None
|
||||||
@ -2265,10 +2266,6 @@ class BukuDb:
|
|||||||
|
|
||||||
url = results[0][0]
|
url = results[0][0]
|
||||||
|
|
||||||
proxies = {
|
|
||||||
'https': os.environ.get('https_proxy'),
|
|
||||||
}
|
|
||||||
|
|
||||||
from urllib.parse import quote_plus as qp
|
from urllib.parse import quote_plus as qp
|
||||||
|
|
||||||
urlbase = 'https://tny.im/yourls-api.php?action='
|
urlbase = 'https://tny.im/yourls-api.php?action='
|
||||||
@ -2277,22 +2274,25 @@ class BukuDb:
|
|||||||
else:
|
else:
|
||||||
_u = urlbase + 'expand&format=simple&shorturl=' + qp(url)
|
_u = urlbase + 'expand&format=simple&shorturl=' + qp(url)
|
||||||
|
|
||||||
|
if myproxy is None:
|
||||||
|
gen_headers()
|
||||||
|
|
||||||
|
if myproxy:
|
||||||
|
manager = urllib3.ProxyManager(myproxy, num_pools=1, headers=myheaders)
|
||||||
|
else:
|
||||||
|
manager = urllib3.PoolManager(num_pools=1, headers={'User-Agent': USER_AGENT})
|
||||||
|
|
||||||
try:
|
try:
|
||||||
r = requests.post(_u,
|
r = manager.request('POST', _u, headers={'content-type': 'application/json', 'User-Agent': USER_AGENT})
|
||||||
headers={
|
|
||||||
'content-type': 'application/json',
|
|
||||||
'User-Agent': USER_AGENT
|
|
||||||
},
|
|
||||||
proxies=proxies)
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logerr(e)
|
logerr(e)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if r.status_code != 200:
|
if r.status != 200:
|
||||||
logerr('[%s] %s', r.status_code, r.reason)
|
logerr('[%s] %s', r.status, r.reason)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return r.text
|
return r.data.decode(errors='replace')
|
||||||
|
|
||||||
def fixtags(self):
|
def fixtags(self):
|
||||||
"""Undocumented API to fix tags set in earlier versions.
|
"""Undocumented API to fix tags set in earlier versions.
|
||||||
@ -2801,10 +2801,10 @@ def network_handler(url, http_head=False):
|
|||||||
gen_headers()
|
gen_headers()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
http_handler = get_PoolManager()
|
manager = get_PoolManager()
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
resp = http_handler.request_encode_url(method, url, timeout=40)
|
resp = manager.request(method, url, timeout=40)
|
||||||
|
|
||||||
if resp.status == 200:
|
if resp.status == 200:
|
||||||
if method == 'GET':
|
if method == 'GET':
|
||||||
@ -2830,8 +2830,8 @@ def network_handler(url, http_head=False):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logerr('network_handler(): %s', e)
|
logerr('network_handler(): %s', e)
|
||||||
finally:
|
finally:
|
||||||
if http_handler:
|
if manager:
|
||||||
http_handler.clear()
|
manager.clear()
|
||||||
if method == 'HEAD':
|
if method == 'HEAD':
|
||||||
return ('', 1, 0)
|
return ('', 1, 0)
|
||||||
if page_title is None:
|
if page_title is None:
|
||||||
@ -3456,12 +3456,12 @@ def check_upstream_release():
|
|||||||
gen_headers()
|
gen_headers()
|
||||||
|
|
||||||
if myproxy:
|
if myproxy:
|
||||||
http_handler = urllib3.ProxyManager(myproxy, num_pools=1, headers=myheaders)
|
manager = urllib3.ProxyManager(myproxy, num_pools=1, headers=myheaders)
|
||||||
else:
|
else:
|
||||||
http_handler = urllib3.PoolManager(num_pools=1, headers={'User-Agent': USER_AGENT})
|
manager = urllib3.PoolManager(num_pools=1, headers={'User-Agent': USER_AGENT})
|
||||||
|
|
||||||
try:
|
try:
|
||||||
r = http_handler.request('GET', 'https://api.github.com/repos/jarun/buku/releases?per_page=1', headers={'User-Agent': USER_AGENT})
|
r = manager.request('GET', 'https://api.github.com/repos/jarun/buku/releases?per_page=1', headers={'User-Agent': USER_AGENT})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logerr(e)
|
logerr(e)
|
||||||
return
|
return
|
||||||
@ -3475,7 +3475,7 @@ def check_upstream_release():
|
|||||||
else:
|
else:
|
||||||
logerr('[%s] %s', r.status, r.reason)
|
logerr('[%s] %s', r.status, r.reason)
|
||||||
|
|
||||||
http_handler.clear()
|
manager.clear()
|
||||||
|
|
||||||
|
|
||||||
def regexp(expr, item):
|
def regexp(expr, item):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user