have !unshorten look back throgh logs for a url

This commit is contained in:
jesopo 2019-07-23 18:07:47 +01:00
parent a27aa6f7d8
commit 89cb69ed46

View file

@ -56,32 +56,35 @@ class Module(ModuleManager.BaseModule):
return page.data["data"]["url"] return page.data["data"]["url"]
return None return None
def _find_url(self, target, args):
url = None
if args:
url = args[0]
if not re.match(utils.http.REGEX_URL, url):
url = "http://%s" % url
else:
url = target.buffer.find(utils.http.REGEX_URL)
if url:
url = re.search(utils.http.REGEX_URL, url.message).group(0)
url = utils.http.url_sanitise(url)
if not url:
raise utils.EventError("No URL provided/found.")
return url
@utils.hook("received.command.shorten") @utils.hook("received.command.shorten")
def shorten(self, event): def shorten(self, event):
""" """
:help: Shorten a given URL :help: Shorten a given URL
:usage: <url> :usage: <url>
""" """
url = None url = self._find_url(event["target"], event["args_split"])
if len(event["args"]) > 0:
url = event["args_split"][0]
if not re.match(utils.http.REGEX_URL, url):
url = "http://%s" % url
else:
url = event["target"].buffer.find(utils.http.REGEX_URL)
if url:
url = re.search(utils.http.REGEX_URL, url.message).group(0)
if not url:
raise utils.EventError("No URL provided/found.")
event["stdout"].write("Shortened URL: %s" % self._shorturl( event["stdout"].write("Shortened URL: %s" % self._shorturl(
event["server"], url)) event["server"], url))
@utils.hook("received.command.unshorten", min_args=1) @utils.hook("received.command.unshorten")
def unshorten(self, event): def unshorten(self, event):
url = event["args_split"][0] url = self._find_url(event["target"], event["args_split"])
if not re.match(utils.http.REGEX_URL, url):
url = "http://%s" % url
try: try:
response = utils.http.request(url, method="HEAD", response = utils.http.request(url, method="HEAD",