Compare commits
21 commits
Author | SHA1 | Date | |
---|---|---|---|
cbfdd831a7 | |||
528e1e81a1 | |||
0d5b7cb854 | |||
96ba34f17b | |||
b283f66bb8 | |||
ee73b777ba | |||
e4df14c3b7 | |||
68e3e2020c | |||
b572834329 | |||
b685fa6e18 | |||
216c1bf4d7 | |||
8deaabf5d8 | |||
66ff8f1474 | |||
96ba32b610 | |||
7d7bba643e | |||
0306704d69 | |||
87cc4999dc | |||
2b3409f9f3 | |||
87e8e051c0 | |||
5392f00a49 | |||
022064e227 |
4 changed files with 103 additions and 36 deletions
115
bot.py
115
bot.py
|
@ -1,8 +1,9 @@
|
||||||
import simplematrixbotlib as botLibrary
|
import simplematrixbotlib as botLibrary
|
||||||
import json
|
import json
|
||||||
import fetch
|
import fetch
|
||||||
|
import time
|
||||||
|
|
||||||
version = "0.1.5"
|
version = "0.3.0"
|
||||||
|
|
||||||
print("Imag/quotes bot version " + version)
|
print("Imag/quotes bot version " + version)
|
||||||
print("Loading config…")
|
print("Loading config…")
|
||||||
|
@ -22,6 +23,7 @@ else:
|
||||||
|
|
||||||
print("Logging in…")
|
print("Logging in…")
|
||||||
credentials = botLibrary.Creds(config['matrix']['server'], config['matrix']['userid'], config['matrix']['password'])
|
credentials = botLibrary.Creds(config['matrix']['server'], config['matrix']['userid'], config['matrix']['password'])
|
||||||
|
admin = config['bot']['admin']
|
||||||
bot = botLibrary.Bot(credentials)
|
bot = botLibrary.Bot(credentials)
|
||||||
PREFIX = "!q"
|
PREFIX = "!q"
|
||||||
print("Logged in.")
|
print("Logged in.")
|
||||||
|
@ -33,29 +35,27 @@ async def help_message(room, message):
|
||||||
and match.command("help")):
|
and match.command("help")):
|
||||||
return
|
return
|
||||||
if debugMode == False:
|
if debugMode == False:
|
||||||
message = (f"""
|
message = (f"""Help
|
||||||
Help
|
============================
|
||||||
============================
|
A work-in-progress Python rewrite of the original quotes bot, aiming for a mostly complete remake.
|
||||||
A work-in-progress Python rewrite of the original quotes bot, aiming for a mostly complete remake.
|
{PREFIX} help - show this message
|
||||||
{PREFIX} help - show this message
|
{PREFIX} get - fetch a image from the defined instance
|
||||||
{PREFIX} get - fetch a image from the defined instance
|
{PREFIX} source - send a link to the source code
|
||||||
{PREFIX} source - send a link to the source code
|
{PREFIX} version - show the bot version
|
||||||
{PREFIX} version - show the bot version
|
{PREFIX} die - kills the bot (only admins can do this!)""")
|
||||||
""")
|
|
||||||
else:
|
else:
|
||||||
message = (f"""
|
message = (f"""Help
|
||||||
Help
|
============================
|
||||||
============================
|
A work-in-progress Python rewrite of the original quotes bot, aiming for a mostly complete remake.
|
||||||
A work-in-progress Python rewrite of the original quotes bot, aiming for a mostly complete remake.
|
{PREFIX} help - show this message
|
||||||
{PREFIX} help - show this message
|
{PREFIX} get - fetch a image from the defined instance
|
||||||
{PREFIX} get - fetch a image from the defined instance
|
{PREFIX} source - send a link to the source code
|
||||||
{PREFIX} source - send a link to the source code
|
{PREFIX} version - show the bot version
|
||||||
{PREFIX} version - show the bot version
|
{PREFIX} die - kills the bot (only admins can do this!)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
NOTE: Debug mode is on. Output will be more verbose.
|
NOTE: Debug mode is on. Output will be more verbose.""")
|
||||||
""")
|
|
||||||
|
|
||||||
|
|
||||||
await bot.api.send_text_message(room.room_id, message)
|
await bot.api.send_text_message(room.room_id, message)
|
||||||
|
@ -71,18 +71,57 @@ async def make_choice(room, message):
|
||||||
temp = False
|
temp = False
|
||||||
else:
|
else:
|
||||||
id = match.args()
|
id = match.args()
|
||||||
id = str(id[1])
|
try:
|
||||||
|
id = int(id[1])
|
||||||
|
except ValueError:
|
||||||
|
youTriedMessage = ("Blunt tried :skull:")
|
||||||
|
await bot.api.send_text_message(room.room_id, youTriedMessage)
|
||||||
|
|
||||||
quoteImage = fetch.fetchQuote(id)
|
quoteImage = fetch.fetchQuote(id)
|
||||||
|
quoteData = fetch.fetchQuoteData(id)
|
||||||
|
|
||||||
|
def formatData(data):
|
||||||
|
if data is not None:
|
||||||
|
timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(data['created']))
|
||||||
|
dataToFormat = data
|
||||||
|
created = timestamp
|
||||||
|
description = str(data['desc'])
|
||||||
|
imageid = str(data['iid'])
|
||||||
|
ocr = str(data['ocr'])
|
||||||
|
score = str(data['score'])
|
||||||
|
return created, description, imageid, ocr, score
|
||||||
|
else:
|
||||||
|
dataToFormat = data
|
||||||
|
created = "Error"
|
||||||
|
description = "Error"
|
||||||
|
imageid = "Error"
|
||||||
|
ocr = "Error"
|
||||||
|
score = "Error"
|
||||||
|
return created, description, imageid, ocr, score
|
||||||
|
|
||||||
if debugMode == False:
|
if debugMode == False:
|
||||||
pass
|
created, description, imageid, ocr, score = formatData(quoteData)
|
||||||
|
message1 = (f"""Created: {created}
|
||||||
|
Description: {description}
|
||||||
|
Image ID: {imageid}
|
||||||
|
OCR (Tesseract): {ocr}
|
||||||
|
Rating: {score}""")
|
||||||
else:
|
else:
|
||||||
message = (f"""
|
created, description, imageid, ocr, score = formatData(quoteData)
|
||||||
Command recived (DEBUG).
|
message1 = (f"""Created: {created}
|
||||||
(We're supposed to fetch quote number {id} now.)
|
Description: {description}
|
||||||
""")
|
Image ID: {imageid}
|
||||||
|
OCR (Tesseract):
|
||||||
|
> {ocr}
|
||||||
|
Rating: {score}""")
|
||||||
|
message2 = (f"""Command recived (DEBUG).
|
||||||
|
(We're supposed to fetch quote number {id} now.)""")
|
||||||
|
|
||||||
await bot.api.send_text_message(room.room_id, message)
|
if debugMode == True:
|
||||||
|
await bot.api.send_text_message(room.room_id, message2)
|
||||||
|
await bot.api.send_text_message(room.room_id, message1)
|
||||||
|
else:
|
||||||
|
await bot.api.send_text_message(room.room_id, message1)
|
||||||
imageMessage = (quoteImage)
|
imageMessage = (quoteImage)
|
||||||
await bot.api.send_image_message(room.room_id, imageMessage) # https://quotes.everypizza.im/image/178
|
await bot.api.send_image_message(room.room_id, imageMessage) # https://quotes.everypizza.im/image/178
|
||||||
|
|
||||||
|
@ -93,10 +132,8 @@ async def help_message(room, message):
|
||||||
and match.command("source")):
|
and match.command("source")):
|
||||||
return
|
return
|
||||||
|
|
||||||
message = (f"""
|
message = (f"""quotes-bot-python by Nyx Tutt (@n:everypizza.im)
|
||||||
quotes-bot-python by Nyx Tutt (@n:everypizza.im)
|
https://git.everypizza.im/n/quotes-bot-python/""")
|
||||||
https://git.everypizza.im/n/quotes-bot-python/
|
|
||||||
""")
|
|
||||||
|
|
||||||
await bot.api.send_text_message(room.room_id, message)
|
await bot.api.send_text_message(room.room_id, message)
|
||||||
|
|
||||||
|
@ -107,10 +144,18 @@ async def help_message(room, message):
|
||||||
and match.command("version")):
|
and match.command("version")):
|
||||||
return
|
return
|
||||||
|
|
||||||
message = (f"""
|
message = (f"""quotes-bot-python version {version}""")
|
||||||
quotes-bot-python version {version}
|
|
||||||
""")
|
|
||||||
|
|
||||||
await bot.api.send_text_message(room.room_id, message)
|
await bot.api.send_text_message(room.room_id, message)
|
||||||
|
|
||||||
|
@bot.listener.on_message_event
|
||||||
|
async def help_message(room, message):
|
||||||
|
match = botLibrary.MessageMatch(room, message, bot, PREFIX)
|
||||||
|
if match.is_not_from_this_bot() and match.prefix() and match.command("die"):
|
||||||
|
if match.is_from_userid(admin):
|
||||||
|
await bot.api.send_text_message(room.room_id, "Ok")
|
||||||
|
exit(0)
|
||||||
|
else:
|
||||||
|
await bot.api.send_text_message(room.room_id, "You don't have permissions for that.")
|
||||||
|
|
||||||
bot.run()
|
bot.run()
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
"server": "https://quotes.example.com"
|
"server": "https://quotes.example.com"
|
||||||
},
|
},
|
||||||
"bot": {
|
"bot": {
|
||||||
"debugMode": true
|
"debugMode": true,
|
||||||
|
"admin": "@alice:example.com"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
BIN
error.png
Normal file
BIN
error.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
21
fetch.py
21
fetch.py
|
@ -17,4 +17,25 @@ def fetchQuote(quoteId):
|
||||||
return filename
|
return filename
|
||||||
else:
|
else:
|
||||||
print(f"An error occured while saving the file: {quote.status_code}")
|
print(f"An error occured while saving the file: {quote.status_code}")
|
||||||
|
return "error.png"
|
||||||
|
|
||||||
|
def fetchQuoteData(quoteId):
|
||||||
|
processedId = str(config['imag']['server'] + "/api/image/" + str(quoteId))
|
||||||
|
print(processedId)
|
||||||
|
quoteData = requests.get(processedId)
|
||||||
|
code = 200
|
||||||
|
if quoteData.status_code == 200:
|
||||||
|
return quoteData.json()
|
||||||
|
# print(str(json.dumps(quoteData)))
|
||||||
|
print(quoteData.json())
|
||||||
|
else:
|
||||||
|
print(f"An error occured while saving the file: {quoteData.status_code}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def fetchTopQuotes(instance):
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
def fetchBottomQuotes(instance):
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
fetchQuoteData(178)
|
||||||
|
|
Loading…
Add table
Reference in a new issue