aboutsummaryrefslogtreecommitdiff
path: root/modules/title.py
diff options
context:
space:
mode:
authorGravatar jesopo2016-03-29 12:56:58 +0100
committerGravatar jesopo2016-03-29 12:56:58 +0100
commitf943d63098a50746f4e470e403a991a4d9713030 (patch)
treedeeb98058917d0155227211d72576f0cbab28d3f /modules/title.py
parentInitial commit (diff)
first commit.
Diffstat (limited to 'modules/title.py')
-rw-r--r--modules/title.py33
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.")