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.", usage="[URL]")

	def title(self, event):
		url = None
		if len(event["args"]) > 0:
			url = event["args_split"][0]
		else:
			url = event["buffer"].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.")