From 47aa5473a50ba54cd0e69a83187f218a54db9f0b Mon Sep 17 00:00:00 2001 From: manetta Date: Fri, 18 Feb 2022 16:46:05 +0100 Subject: [PATCH] writing HTML in templates, not in db + padding baseurl to templates to make images in the RSS work (hopefully) --- LogBot/logbot.py | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/LogBot/logbot.py b/LogBot/logbot.py index ae7510b..4debd2d 100644 --- a/LogBot/logbot.py +++ b/LogBot/logbot.py @@ -12,6 +12,8 @@ from xbotlib import Bot class Logbot(Bot): + baseurl = "https://vvvvvvaria.org/logs/" # hardcoding the url now, self.baseurl would be helpful to have in the conf + help = """Oh dear, logbot is here! (You can speak to the bot using @logbot or logbot:) @@ -61,23 +63,13 @@ class Logbot(Bot): with open(file_path, "wb") as media_file: media_file.write(data) - # define media_post + # define relative path to media file as "media_path" media_path = os.path.join(media_type, filename) - if media_type == "image": - media_post = f'' - elif media_type == "application": - media_post = f'' - elif media_type == "audio": - media_post = f'' - elif media_type == "video": - media_post = f'' - else: - media_post = None # get the size of the file media_size = os.path.getsize(os.path.join(self.output, folder_name, media_path)) - return media_post, media_type, media_mime, media_path, media_size + return media_type, media_mime, media_path, media_size def _href_wrap(self, post): """Wrap links in tags.""" @@ -112,16 +104,17 @@ class Logbot(Bot): template = jinja2.Template(open("template.rss").read()) # self.feedtemplate would be useful to have in the conf with open(feed_path, "w") as out: feed = template.render( - log_path=os.path.join("https://vvvvvvaria.org/logs/", folder_name, "index.html"), # hardcoding the url now, self.baseurl would be helpful to have in the conf - feed_path=os.path.join("https://vvvvvvaria.org/logs/", folder_name, "feed.rss.xml"), # hardcoding the url again + log_path=os.path.join(self.baseurl, folder_name, "index.html"), + feed_path=os.path.join(self.baseurl, folder_name, "feed.rss.xml"), title=self.db[message.room]["title"], db=self.db[message.room], - date=date.strftime("%a, %d %b %Y %H:%M:%S +0100") # timezone is hardcoded now + date=date.strftime("%a, %d %b %Y %H:%M:%S +0100"), # timezone is hardcoded now + baseurl=self.baseurl ) out.write(feed) self.log.info(f"writing to: { feed_path }") - def _add_to_db(self, message, media_post=None, media_type=None, media_url=None, media_size=None): + def _add_to_db(self, message, media_type=None, media_path=None, media_size=None): """Save new entry to database.""" keys = [x for x in self.db[message.room]["messages"].keys()] keys.sort(key=int) @@ -130,13 +123,13 @@ class Logbot(Bot): new_key = "0" else: new_key = str(int(keys[-1]) + 1) - if media_post: + if media_path: self.db[message.room]["messages"][new_key] = {} - self.db[message.room]["messages"][new_key]['post'] = media_post + self.db[message.room]["messages"][new_key]['post'] = '' self.db[message.room]["messages"][new_key]['date'] = date self.db[message.room]["messages"][new_key]['media'] = {} self.db[message.room]["messages"][new_key]['media']['type'] = media_type - self.db[message.room]["messages"][new_key]['media']['url'] = os.path.join("https://vvvvvvaria.org/logs/", media_url) + self.db[message.room]["messages"][new_key]['media']['path'] = media_path self.db[message.room]["messages"][new_key]['media']['size'] = media_size else: post = message.content.replace("@add ", "") @@ -207,10 +200,10 @@ class Logbot(Bot): # Response to files: image / PDF / audio / video if message.url: - media_post, media_type, media_mime, media_path, media_size = self._download(message) + media_type, media_mime, media_path, media_size = self._download(message) # TODO: Insert a list of accepted file types here. if media_post: - num = self._add_to_db(message, media_post=media_post, media_type=media_mime, media_url=media_path, media_size=media_size) + num = self._add_to_db(message, media_type=media_mime, media_path=media_path, media_size=media_size) media_type = media_type.replace("images", "image") # linguistic hack! if 'pdf' in message.url: media_type = 'PDF' # linguistic hack! @@ -260,7 +253,7 @@ class Logbot(Bot): try: os.rename(current_folder_name_path, new_folder_name_path) self.db[message.room]["folder"] = new_folder_name - reply = f"The foldername of the log is changed to: { new_folder_name }. The URL of the log changed into: https://vvvvvvaria.org/logs/{ new_folder_name}" + reply = f"The foldername of the log is changed to: { new_folder_name }. The URL of the log changed into: { self.baseurl }{ new_folder_name}" except: reply = f"Sorry i couldn't shange that foldername into: '{ new_folder_name }'. Try again with: 'logbot @folder newname'."