Compare commits
7 Commits
task_manag
...
328329eb9a
Author | SHA1 | Date | |
---|---|---|---|
328329eb9a | |||
63044c545f | |||
|
5382b876e2 | ||
|
3d80517a6f | ||
|
d08e8199f8 | ||
|
adb4a25d25 | ||
|
dab4e41de0 |
@@ -14,7 +14,9 @@ def command(msg, rcpt):
|
||||
response = "chatbot commands:" + "\n"
|
||||
response += "!help Show this help page" + "\n"
|
||||
response += "!ai [message] Ask llama2" + "\n"
|
||||
response += "!wiki [message] Ask wiki"
|
||||
response += "!wiki [message] Ask wiki\n"
|
||||
response += "!tasks Show active tasks from the taskmanager\n"
|
||||
response += "!vreme [city] | !prognoza [city] | !weather [city] Show weather for [city]\n"
|
||||
return response
|
||||
elif msg.startswith("!ai"):
|
||||
client = ollama.Client(host='https://ollama.krov.dmz.rs')
|
||||
@@ -24,6 +26,9 @@ def command(msg, rcpt):
|
||||
cmd, query = msg.split(" ", 1)
|
||||
return sf.query_external_website("https://en.wikipedia.org", "/wiki/" + query)
|
||||
elif msg.startswith("!tasks"):
|
||||
content = sf.getDmzTasks()
|
||||
content = sf.getDmzTasks("https://todo.dmz.rs/")
|
||||
return content
|
||||
elif msg.startswith("!vreme") or msg.startswith("!prognoza") or msg.startswith("!weather"):
|
||||
_, query = msg.split(" ", 1)
|
||||
return sf.get_weather(query)
|
||||
|
||||
|
@@ -2,10 +2,14 @@ import requests
|
||||
from bs4 import BeautifulSoup
|
||||
from urllib.parse import quote
|
||||
|
||||
def getSoup(base_url, query = ""):
|
||||
page = requests.get(base_url + quote(query))
|
||||
soup = BeautifulSoup(page.content, "html.parser")
|
||||
return soup
|
||||
|
||||
def query_external_website(base_url, query):
|
||||
try:
|
||||
page = requests.get(base_url + quote(query))
|
||||
soup = BeautifulSoup(page.content, "html.parser")
|
||||
soup = getSoup(base_url, query)
|
||||
title = soup.find(id="firstHeading").text
|
||||
mainContentElement = soup.find(id="mw-content-text")
|
||||
if "This page is a redirect" in mainContentElement.text:
|
||||
@@ -18,16 +22,36 @@ def query_external_website(base_url, query):
|
||||
except Exception as e:
|
||||
return e
|
||||
|
||||
def getDmzTasks():
|
||||
def getDmzTasks(url):
|
||||
try:
|
||||
page = requests.get("https://todo.dmz.rs/")
|
||||
soup = BeautifulSoup(page.content, "html.parser")
|
||||
soup = getSoup(url)
|
||||
tasks = soup.find_all(class_="task")
|
||||
result = "\nActive tasks:\n"
|
||||
for task in tasks:
|
||||
taskIndex = task.select("div")[0].text
|
||||
taskTitle = task.select("div")[1].text
|
||||
result += taskIndex + " " + taskTitle + "\n"
|
||||
result += taskIndex + " " + taskTitle
|
||||
taskSoup = getSoup(url + task.find("a")["href"][1:])
|
||||
description = taskSoup.find("main").select("section")[0].find("p").text
|
||||
result += "\n\tDescription:\n" + "\t\t" + description + "\n"
|
||||
result += "\tAssigned users:\n" + "\t\t"
|
||||
assignedUsers = taskSoup.find_all(class_="user-info-wrap")
|
||||
if len(assignedUsers) == 0:
|
||||
result += "None! Be the first :)\n"
|
||||
result += "\tLink: " + url + task.find("a")["href"][1:] + "\n\n"
|
||||
continue
|
||||
usersList = ""
|
||||
for user in assignedUsers:
|
||||
usersList += user.find("div").text.split(": ")[1] + ", "
|
||||
result += usersList[:-2] + "\n"
|
||||
result += "\tLink: " + url + task.find("a")["href"][1:] + "\n\n"
|
||||
return result
|
||||
except Exception as e:
|
||||
return e
|
||||
|
||||
def get_weather(city:str) -> str:
|
||||
url = f"https://wttr.in/{city}?format=3"
|
||||
if not city.isalpha():
|
||||
return "no such city"
|
||||
resp = requests.get(url)
|
||||
return resp.content.decode("utf-8").strip()
|
||||
|
Reference in New Issue
Block a user