moved to new util structure from refresh
This commit is contained in:
parent
b25b8d6cec
commit
e29ea1c613
13 changed files with 40 additions and 77 deletions
54
util/web.py
Normal file
54
util/web.py
Normal file
|
@ -0,0 +1,54 @@
|
|||
""" web.py - handy functions for web services """
|
||||
|
||||
import http
|
||||
import urlnorm
|
||||
import json
|
||||
import urllib
|
||||
import yql
|
||||
|
||||
short_url = "http://is.gd/create.php"
|
||||
paste_url = "http://hastebin.com"
|
||||
yql_env = "http://datatables.org/alltables.env"
|
||||
|
||||
YQL = yql.Public()
|
||||
|
||||
|
||||
class ShortenError(Exception):
|
||||
def __init__(self, code, text):
|
||||
self.code = code
|
||||
self.text = text
|
||||
|
||||
def __str__(self):
|
||||
return self.text
|
||||
|
||||
|
||||
def isgd(url):
|
||||
""" shortens a URL with the is.gd API """
|
||||
url = urlnorm.normalize(url.encode('utf-8'), assume_scheme='http')
|
||||
params = urllib.urlencode({'format': 'json', 'url': url})
|
||||
request = http.get_json("http://is.gd/create.php?%s" % params)
|
||||
|
||||
if "errorcode" in request:
|
||||
raise ShortenError(request["errorcode"], request["errormessage"])
|
||||
else:
|
||||
return request["shorturl"]
|
||||
|
||||
|
||||
def try_isgd(url):
|
||||
try:
|
||||
out = isgd(url)
|
||||
except (ShortenError, http.HTTPError):
|
||||
out = url
|
||||
return out
|
||||
|
||||
|
||||
def haste(text, ext='txt'):
|
||||
""" pastes text to a hastebin server """
|
||||
page = http.get(paste_url + "/documents", post_data=text)
|
||||
data = json.loads(page)
|
||||
return ("%s/%s.%s" % (paste_url, data['key'], ext))
|
||||
|
||||
|
||||
def query(query, params={}):
|
||||
""" runs a YQL query and returns the results """
|
||||
return YQL.execute(query, params, env=yql_env)
|
Reference in a new issue