From 5d09d6bda4c0c7f9a6506e03f1c68282b13eb88f Mon Sep 17 00:00:00 2001 From: manetta Date: Fri, 12 Mar 2021 12:10:01 +0100 Subject: [PATCH] adding @style and @font support to logbot --- LogBot/README.md | 20 +++++++++++- LogBot/fonts/FONTS.txt | 3 ++ LogBot/fonts/notcouriersans.ttf | Bin 0 -> 69600 bytes LogBot/fonts/polsku.ttf | Bin 0 -> 25196 bytes LogBot/logbot.py | 55 ++++++++++++++++++++++++++++---- LogBot/stylesheet.css | 21 ------------ LogBot/stylesheets/float.css | 35 ++++++++++++++++++++ LogBot/stylesheets/linear.css | 31 ++++++++++++++++++ 8 files changed, 136 insertions(+), 29 deletions(-) create mode 100644 LogBot/fonts/FONTS.txt create mode 100755 LogBot/fonts/notcouriersans.ttf create mode 100755 LogBot/fonts/polsku.ttf delete mode 100644 LogBot/stylesheet.css create mode 100644 LogBot/stylesheets/float.css create mode 100644 LogBot/stylesheets/linear.css diff --git a/LogBot/README.md b/LogBot/README.md index 1a4f3bd..f8e4e60 100644 --- a/LogBot/README.md +++ b/LogBot/README.md @@ -12,16 +12,34 @@ _work-in-progress_ *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. -logbot @style : Edit the css of your log. For example: logbot @style body background-color: pink; [future-feature] + +logbot @style : Switch to another stylesheet. For example: logbot @style log. Available stylesheets include: log. See https://git.vvvvvvaria.org/varia/bots/ for examples. + +logbot @font : Switch to another font. For example: logbot @font font. Available fonts include: polsku, notcouriersans; or select None to switch back to default serif. See https://git.vvvvvvaria.org/varia/bots/ for examples. + logbot @uptime: To check how long @logbot has been around + @bots: To see who is around :) ``` +## Stylesheets + +Examples soon. + +## Fonts + +Examples soon. + ## Situated tails - Archive bot, Relearn 2017, diff --git a/LogBot/fonts/FONTS.txt b/LogBot/fonts/FONTS.txt new file mode 100644 index 0000000..f198d74 --- /dev/null +++ b/LogBot/fonts/FONTS.txt @@ -0,0 +1,3 @@ +Polsku, by Open Source Publishing (OSP): http://osp.kitchen/foundry/polsku/ + +NotCourierSans, by Open Source Publishing (OSP): http://osp.kitchen/foundry/notcouriersans/ diff --git a/LogBot/fonts/notcouriersans.ttf b/LogBot/fonts/notcouriersans.ttf new file mode 100755 index 0000000000000000000000000000000000000000..9fff7fd811e6982a46b88f7772fa9768b03c6003 GIT binary patch literal 69600 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

hJ4kotiQ8)XW*D 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 Od;JCaeD&GF_x}%-KB#5@ literal 0 HcmV?d00001 diff --git a/LogBot/fonts/polsku.ttf b/LogBot/fonts/polsku.ttf new file mode 100755 index 0000000000000000000000000000000000000000..35c7d9cdc6f2239aa4898c27c0e90f770dab45ed GIT binary patch literal 25196 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 literal 0 HcmV?d00001 diff --git a/LogBot/logbot.py b/LogBot/logbot.py index 20edd5d..f25e14e 100644 --- a/LogBot/logbot.py +++ b/LogBot/logbot.py @@ -22,7 +22,9 @@ class Logbot(Bot): logbot @title : Set the title of your log. - logbot @style : Edit the css of your log. For example: logbot @style body background-color: pink; [future-feature] + logbot @style : Switch to another stylesheet. For example: logbot @style log. Available stylesheets include: log. See https://git.vvvvvvaria.org/varia/bots/ for examples. + + logbot @font : Switch to another font. For example: logbot @font font. Available fonts include: polsku, notcouriersans; or select None to switch back to default serif. See https://git.vvvvvvaria.org/varia/bots/ for examples. logbot @uptime: To check how long @logbot has been around @@ -117,8 +119,7 @@ class Logbot(Bot): date = datetime.now() with open(feed_path, "w") as out: feed = template.render( - # hard-coding the URL for now - log_path=os.path.join("https://vvvvvvaria.org/logs/", room_name, "index.html"), + log_path=os.path.join("https://vvvvvvaria.org/logs/", room_name, "index.html"), # hard-coding the URL for now title=self.db[message.room]["title"], db=self.db[message.room], date=date.strftime("%A, %d. %B %Y %I:%M%p") @@ -157,14 +158,20 @@ class Logbot(Bot): self.db[room]["messages"] = {} if "title" not in self.db[room]: self.db[room]["title"] = room + if "stylesheet" not in self.db[room]: + self.db[room]["stylesheet"] = room + if "font" not in self.db[room]: + self.db[room]["font"] = room self.db._dumps() self.log.info(f"Added to the database: { room }") if not os.path.exists(room_path): os.mkdir(room_path) - shutil.copy("stylesheet.css", room_path) + stylesheet_path = os.path.join("stylesheets","linear.css") # default stylesheet + stylesheet_dest_path = os.path.join(room_path,"stylesheet.css") + shutil.copy(stylesheet_path, stylesheet_dest_path) self.log.info(f"Created a folder for: { room }") - self.log.info(f"Copied stylesheet.css to: { room }") + self.log.info(f"Added stylesheet.css to: { room }") def setup(self): """Setup a log for all the rooms LogBot is subscribed to.""" @@ -219,13 +226,47 @@ class Logbot(Bot): # Response to @title elif "@title" in message.text: match = re.findall("@title .*", message.content)[0] - title = match.replace("@title", "") + title = match.replace("@title ", "") self.db[message.room]["title"] = title reply = f"The title of the log is changed to: { title }" # Response to @style elif "@style" in message.text: - reply = "This is a future-feature ..." + match = re.findall("@style .*", message.content)[0] + stylesheet = match.replace("@style ", "") + stylesheet = stylesheet.lower() + self.db[message.room]["stylesheet"] = stylesheet + room_name = self._parse_room_name(message.room) + room_path = os.path.join(self.output, room_name) + stylesheet_path = os.path.join("stylesheets", f"{ stylesheet }.css") + stylesheet_dest_path = os.path.join(room_path, "stylesheet.css") + try: + shutil.copy(stylesheet_path, stylesheet_dest_path) + self.log.info(f"Stylesheet in room { room_name } switched to: { stylesheet }") + reply = f"I'm switching the stylesheet of this log to: { stylesheet }." + except: + reply = f"The stylesheet '{ stylesheet }' is unknown to me. Check @help to see the available stylesheets." + + # Response to @font + elif "@font" in message.text: + match = re.findall("@font .*", message.content)[0] + font = match.replace("@font ", "") + font = font.lower() + self.db[message.room]["font"] = font + room_name = self._parse_room_name(message.room) + room_path = os.path.join(self.output, room_name) + font_path = os.path.join("fonts", f"{ font }.ttf") + font_dest_path = os.path.join(room_path, "font.ttf") + if font == 'none': + os.remove(font_dest_path) + reply = "I removed the font and switched back to default serif." + else: + try: + shutil.copy(font_path, font_dest_path) + self.log.info(f"font in room { room_name } switched to: { font }") + reply = f"I'm switching the font of this log to: { font }." + except: + reply = f"The font '{ font }' is unknown to me. Check @help to see the available fonts." else: reply = "Hmm ... not sure what you want to do?" diff --git a/LogBot/stylesheet.css b/LogBot/stylesheet.css deleted file mode 100644 index a5cc991..0000000 --- a/LogBot/stylesheet.css +++ /dev/null @@ -1,21 +0,0 @@ -body { - margin: 1em; - max-width: 800px; -} -.post { - margin: 1em 0; - clear: both; -} -.post p.key { - float: left; - margin: 0 1em 1em; -} -.post p.message { -} -img, -iframe, -audio, -video { - max-width: calc(100% - 100px); - height: auto; -} diff --git a/LogBot/stylesheets/float.css b/LogBot/stylesheets/float.css new file mode 100644 index 0000000..724f2af --- /dev/null +++ b/LogBot/stylesheets/float.css @@ -0,0 +1,35 @@ +@font-face{ + font-family: "font"; + src: url("font.ttf") format("truetype"); +} +body { + margin: 1em 1em 3em 1em; + background-color: #eeebeb; + font-family: "font", serif; + font-size: 16px; + line-height: 1.6; +} +.post { + margin: 1.5em 2em; + float: left; +} +.post p.key { + float: left; + margin: 0 1em; + font-size: 10px; + line-height: 1px; +} +.post p.message { + float: left; + max-width: 350px; + margin: -0.6em 0; +} +img, +iframe, +audio, +video { + max-width: 350px; + height: auto; + clear: both; + margin: 0.4em 0; +} diff --git a/LogBot/stylesheets/linear.css b/LogBot/stylesheets/linear.css new file mode 100644 index 0000000..9ac83b1 --- /dev/null +++ b/LogBot/stylesheets/linear.css @@ -0,0 +1,31 @@ +@font-face{ + font-family: "font"; + src: url("font.ttf") format("truetype"); +} +body { + margin: 1em; + max-width: 800px; + background-color: lightyellow; + font-family: "font", serif; + font-size: 16px; + line-height: 1.6; +} +.post { + margin: 1em 0; + clear: both; +} +.post p.key { + float: left; + margin: 0 1em 1em; + font-size: 10px; +} +.post p.message { +} +img, +iframe, +audio, +video { + max-width: calc(100% - 100px); + height: auto; + margin: 0.6em 0; +}