from xbotlib import Bot import json import jinja2 import re import os import shutil output = './' def add_to_db(self, message): keys = [int(x) for x in self.db[message.room].keys()] if not keys: new_key = '0' else: new_key = str(keys[-1] + 1) self.db[message.room][new_key] = message.content def del_from_db(self, message, key): del self.db[message.room][key] def write_log(self, message): template_file = 'index.html.j2' # Hmm... how to read the self.template ? print('using the template: ', template_file) template = jinja2.Template(open(template_file).read()) if not os.path.isdir(message.room): os.mkdir(message.room) shutil.copy('stylesheet.css', message.room) with open(f'{ output }/{ message.room }/index.html','w') as out: html = template.render(room=message.room, db=self.db[message.room]) out.write(html) print('writing to: ', f'{ message.room }/index.html') class logbot(Bot): help = '''Oh dear, logbot is here! (You can speak to the bot using @logbot or logbot:) : Your image is added to the log. logbot @help: Print this message logbot @add : Add a message to the log. logbot @delete : Delete posts from the log. For example: @logbot @delete 5 logbot @title : Set the title of your log. [future-feature] logbot @style : Edit the css of your log. For example: logbot @style body background-color: pink; [future-feature] logbot @uptime: To check how long @logbot has been around @bots: To see who is around :) ''' def group(self, message): if not message.room in self.db.keys(): self.db[message.room] = {} # to debug in the terminal print('------------------') print('message: ', message.text) print('room: ', message.room) print('sender: ', message.sender) if message.url: # messages = writedb(f'') reply = 'Thanks for that image!' elif '@add' in message.text: add_to_db(self, message) reply = 'Added, thanks!' elif '@delete' in message.text: match = re.findall("@delete \d*", message.content)[0] key = str(match.replace('@delete ','')) if key in self.db[message.room]: print('To be deleted:', self.db[message.room][key]) reply = f'This message is deleted: { self.db[message.room][key] }' del_from_db(self, message, key) else: reply = 'This message is already gone!' elif '@help' in message.text: print('HELP') elif '@title' in message.text: reply = 'This is a future-feature ...' elif '@style' in message.text: reply = 'This is a future-feature ...' else: reply = 'Hmm ... not sure what you want to do?' write_log(self, message) return self.reply(reply, room=message.room) logbot()