blob: 80b450f874dd1ffd9a42ccbb3f88e2662e92068d (
about) (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import re
from src import ModuleManager, Utils
REGEX_URL = re.compile("https?://\S+", re.I)
class Module(ModuleManager.BaseModule):
@Utils.hook("received.command.title|t", usage="[URL]")
def title(self, event):
"""
Get the title of a URL
"""
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.")
|