[framalink] Fix framalink quoting; add @provider
!framalink now allows the provider to be specified using the @provider parameter.
This commit is contained in:
parent
7ce9b2bb4c
commit
aca073faff
@ -21,7 +21,7 @@ def default_reducer(url, data):
|
|||||||
|
|
||||||
def framalink_reducer(url, data):
|
def framalink_reducer(url, data):
|
||||||
json_data = json.loads(web.getURLContent(url, "lsturl="
|
json_data = json.loads(web.getURLContent(url, "lsturl="
|
||||||
+ quote(data, "/:%@&=?"),
|
+ quote(data),
|
||||||
header={"Content-Type": "application/x-www-form-urlencoded"}))
|
header={"Content-Type": "application/x-www-form-urlencoded"}))
|
||||||
if 'short' in json_data:
|
if 'short' in json_data:
|
||||||
return json_data['short']
|
return json_data['short']
|
||||||
@ -54,13 +54,13 @@ def load(context):
|
|||||||
|
|
||||||
# MODULE CORE #########################################################
|
# MODULE CORE #########################################################
|
||||||
|
|
||||||
def reduce(url):
|
def reduce(url, provider=DEFAULT_PROVIDER):
|
||||||
"""Ask the url shortner website to reduce given URL
|
"""Ask the url shortner website to reduce given URL
|
||||||
|
|
||||||
Argument:
|
Argument:
|
||||||
url -- the URL to reduce
|
url -- the URL to reduce
|
||||||
"""
|
"""
|
||||||
return PROVIDERS[DEFAULT_PROVIDER][0](PROVIDERS[DEFAULT_PROVIDER][1], url)
|
return PROVIDERS[provider][0](PROVIDERS[provider][1], url)
|
||||||
|
|
||||||
def gen_response(res, msg, srv):
|
def gen_response(res, msg, srv):
|
||||||
if res is None:
|
if res is None:
|
||||||
@ -105,7 +105,7 @@ def parseresponse(msg):
|
|||||||
@hook("cmd_hook", "framalink",
|
@hook("cmd_hook", "framalink",
|
||||||
help="Reduce any given URL",
|
help="Reduce any given URL",
|
||||||
help_usage={None: "Reduce the last URL said on the channel",
|
help_usage={None: "Reduce the last URL said on the channel",
|
||||||
"URL [URL ...]": "Reduce the given URL(s)"})
|
"[@provider=framalink] URL [URL ...]": "Reduce the given URL(s) using thespecified shortner"})
|
||||||
def cmd_reduceurl(msg):
|
def cmd_reduceurl(msg):
|
||||||
minify = list()
|
minify = list()
|
||||||
|
|
||||||
@ -121,10 +121,15 @@ def cmd_reduceurl(msg):
|
|||||||
else:
|
else:
|
||||||
minify += msg.args
|
minify += msg.args
|
||||||
|
|
||||||
|
if 'provider' in msg.kwargs and msg.kwargs['provider'] in PROVIDERS:
|
||||||
|
provider = msg.kwargs['provider']
|
||||||
|
else:
|
||||||
|
provider = DEFAULT_PROVIDER
|
||||||
|
|
||||||
res = list()
|
res = list()
|
||||||
for url in minify:
|
for url in minify:
|
||||||
o = urlparse(web.getNormalizedURL(url), "http")
|
o = urlparse(web.getNormalizedURL(url), "http")
|
||||||
minief_url = reduce(url)
|
minief_url = reduce(url, provider)
|
||||||
if o.netloc == "":
|
if o.netloc == "":
|
||||||
res.append(gen_response(minief_url, msg, o.scheme))
|
res.append(gen_response(minief_url, msg, o.scheme))
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user