initial commit
This commit is contained in:
commit
6f2cb5d19c
3 changed files with 61 additions and 0 deletions
5
README.md
Normal file
5
README.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
# garfeef
|
||||
a simple matrix bot that randomly posts randomly generated garfield comics
|
||||
|
||||
requires some matrix python libraries
|
||||
|
3
config.example.py
Normal file
3
config.example.py
Normal file
|
@ -0,0 +1,3 @@
|
|||
USERNAME="garfield"
|
||||
PASSWORD="secure password"
|
||||
SERVER="http://matrix.org"
|
53
garfeef.py
Executable file
53
garfeef.py
Executable file
|
@ -0,0 +1,53 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
A test bot using the Python Matrix Bot API
|
||||
Test it out by adding it to a group chat and doing one of the following:
|
||||
1. Say "Hi"
|
||||
2. Say !echo this is a test!
|
||||
3. Say !d6 to get a random size-sided die roll result
|
||||
"""
|
||||
|
||||
import random
|
||||
import urllib.request
|
||||
import time
|
||||
|
||||
from matrix_bot_api.matrix_bot_api import MatrixBotAPI
|
||||
from matrix_bot_api.mregex_handler import MRegexHandler
|
||||
from matrix_bot_api.mcommand_handler import MCommandHandler
|
||||
|
||||
# Global variables
|
||||
from config import *
|
||||
|
||||
def get_garfeed():
|
||||
contents = str(urllib.request.urlopen("https://www.bgreco.net/garfield/").read())
|
||||
# funny way of parsing this html
|
||||
url = "https://www.bgreco.net/garfield/save.png" + contents.split("save.png")[1].split(">")[0]
|
||||
with open("save.png", "wb") as file:
|
||||
file.write(urllib.request.urlopen(url).read())
|
||||
return url
|
||||
|
||||
|
||||
def sendmsg(bot):
|
||||
for room in bot.rooms:
|
||||
print(type(room))
|
||||
get_garfeed()
|
||||
|
||||
with open("save.png", "rb") as file:
|
||||
url = bot.client.upload(file, "image/png")
|
||||
room.send_image(url, "garfeeld.png")
|
||||
|
||||
def main():
|
||||
bot = MatrixBotAPI(USERNAME, PASSWORD, SERVER)
|
||||
bot.start_polling()
|
||||
bot.client.api.upload_keys()
|
||||
|
||||
print(f"up and running as {USERNAME}")
|
||||
while True:
|
||||
sendmsg(bot)
|
||||
timenext = random.randint(60, 60*60)
|
||||
print(f"next in {timenext} seconds")
|
||||
time.sleep(timenext)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in a new issue