diff --git a/LogBot/avatar.1.png b/LogBot/avatar.1.png
new file mode 100644
index 0000000..893c2f1
Binary files /dev/null and b/LogBot/avatar.1.png differ
diff --git a/LogBot/avatar.png b/LogBot/avatar.png
index 893c2f1..5c74215 100644
Binary files a/LogBot/avatar.png and b/LogBot/avatar.png differ
diff --git a/LogBot/index.html.j2 b/LogBot/index.html.j2
index 3c849e9..22d2812 100644
--- a/LogBot/index.html.j2
+++ b/LogBot/index.html.j2
@@ -6,12 +6,12 @@
-OMG
+{{ room }}
-{% for num, msg in messages.items() %}
+{% for num, msg in db.items() %}
-
({{ num }})
+
({{ num }})
{{ msg }}
diff --git a/LogBot/logbot.py b/LogBot/logbot.py
index 12b4b02..a13ff4c 100644
--- a/LogBot/logbot.py
+++ b/LogBot/logbot.py
@@ -2,92 +2,101 @@ 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')
-db = 'storage.json'
-
-def readdb():
- storage = open(db, 'r').read()
- messages = json.loads(storage)
- return messages
-
-def writedb(message):
- try:
- with open(db, 'r') as storage:
- messages = json.loads(storage.read())
- if messages.keys():
- keys = [int(x) for x in messages.keys()]
- keys.sort()
- lastid = keys[-1]
- nextid = lastid + 1
- else:
- nextid = 0
- messages[f'{ nextid }'] = message
- storage = open(db, 'w')
- storage.write(json.dumps(messages, indent=4))
- except IOError:
- with open(db, 'w') as storage:
- storage.write(json.dumps('{}'))
- writedb(message)
- return messages
-
-def deletefromdb(id):
- with open(db, 'r') as storage:
- messages = json.loads(storage.read())
- del messages[id]
- storage = open(db, 'w')
- storage.write(json.dumps(messages, indent=4))
- return messages
-
-def writelog(messages):
- template = jinja2.Template(open('index.html.j2').read())
- with open('log.html','w') as out:
- html = template.render(messages=messages)
- out.write(html)
class logbot(Bot):
- help = '''Oh dear, logbot is here!
+ help = '''Oh dear, logbot is here!
-@delete
-Delete posts from the log.
-For example: @logbot @delete 5
+(You can speak to the bot using @logbot or logbot:)
-@bots
-To see who is around :)
+: Your image is added to the log.
-@uptime
-To check how long @logbot has been around
+logbot @help: Print this message
-@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):
- print(message.content)
- messages = readdb()
-
- if message.url:
- messages = writedb(f'')
- reply = 'Thanks for that image!'
-
- elif '@delete' in message.text:
- match = re.findall("@delete \d*", message.content)[0]
- id = match.replace('@delete ','')
- if id in messages:
- print('To be deleted:', messages[str(id)])
- reply = f'This message is deleted: { messages[str(id)] }'
- messages = deletefromdb(id)
- else:
- reply = 'This message is already gone!'
-
- elif '@help' in message.text:
- print('HELP')
-
- else:
- messages = writedb(message.text)
- reply = 'Added, thanks!'
-
- writelog(messages)
- return self.reply(reply, room=message.room)
+ 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()
diff --git a/LogBot/stylesheet.css b/LogBot/stylesheet.css
index 95427bd..bfcadc4 100644
--- a/LogBot/stylesheet.css
+++ b/LogBot/stylesheet.css
@@ -1,12 +1,11 @@
body{
- background-color: pink;
margin: 1em;
}
.post{
margin: 1em 0;
clear: both;
}
-.post p.id{
+.post p.key{
float: left;
margin: 0 1em 1em;
}