diff options
Diffstat (limited to 'modules/title.py')
| -rw-r--r-- | modules/title.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/modules/title.py b/modules/title.py new file mode 100644 index 00000000..22795091 --- /dev/null +++ b/modules/title.py @@ -0,0 +1,33 @@ +import re +import Utils + +REGEX_URL = re.compile("https?://\S+", re.I) + +class Module(object): + def __init__(self, bot): + bot.events.on("received").on("command").on("title", "t").hook( + self.title, help="Get the title of the provided or most " + "recent URL.") + + def title(self, event): + url = None + if len(event["args"]) > 0: + url = event["args_split"][0] + else: + url = event["channel"].log.find(REGEX_URL) + if url: + url = re.search(REGEX_URL, url.message).group(0) + if not url: + event["stderr"].write("No URL provided/found.") + return + soup = Utils.get_url(url, soup=True) + if not soup: + event["stderr"].write("Failed to get URL.") + return + title = soup.title + if title: + title = title.text.replace("\n", " ").replace("\r", "" + ).replace(" ", " ").strip() + event["stdout"].write(title) + else: + event["stderr"].write("No title found.") |
