Eingangsschalter/sopel-bot/modules/spaceapi.py

56 lines
1.2 KiB
Python

#!/usr/bin/env python3
import json
import sopel.module
SPACEAPI = "/var/www/html/spaceapi.json"
CHANNEL = "#ccchb"
PLACE = "ccchb"
cache = {
"open": False
}
def get_spaceapi():
with open(SPACEAPI, 'r') as infile:
data = json.load(infile)
return data
def status_msg(status):
status_text = "closed"
if status:
status_text = "open"
return PLACE + ' is ' + status_text
def change_status(bot, status):
status_text = "closed"
if status:
status_text = "open"
bot.say(PLACE +' changed to '+ status_text, CHANNEL)
topic = status_msg(status)
channel = bot.channels[CHANNEL]
if channel.topic != None:
topic = channel.topic.replace(status_msg(not status), topic)
bot.write(('TOPIC', CHANNEL + ' :' + topic))
def check_status(bot, human=False):
data = get_spaceapi()
status = data["state"]["open"]
if status != cache["open"]:
cache["open"] = status
if CHANNEL in bot.channels:
change_status(bot, status)
if human:
bot.reply(status_msg(status))
@sopel.module.interval(5)
def interval_check_status(bot):
check_status(bot)
@sopel.module.commands('status')
def cmd_check_status(bot, trigger):
check_status(bot, True)