diff --git a/LogBot/logbot.py b/LogBot/logbot.py index ecd1d03..b143e88 100644 --- a/LogBot/logbot.py +++ b/LogBot/logbot.py @@ -129,28 +129,37 @@ logbot @uptime: To check how long @logbot has been around @bots: To see who is around :) """ + def _parse_room_name(self, room): + """Parse room name from entire address string.""" + return str(re.match(r".*@", room).group()).replace("@", "") + + def _setup_room(self, room): + """Create directories and database entries for a new room.""" + room_name = self._parse_room_name(room) + room_path = os.path.join(self.output, room_name) + self.log.info(f"Processing setup logic for: {room_path}") + + if room not in self.db.keys(): + self.db[room] = {} + self.db[room]["messages"] = {} + self.db[room]["title"] = room + 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) + self.log.info(f"Created a folder for: { room }") + self.log.info(f"Copied stylesheet.css to: { room }") + def setup(self): self.log.info(f"Output folder is set to: { self.output }") - for room in self.rooms: + self._setup_room(room) - roomname = str(re.match(r".*@", room).group()).replace("@", "") - room_path = os.path.join(self.output, roomname) - self.log.info(f"Processing setup logic for: {room_path}") - - # Check if the room is in the database already - if not room in self.db.keys(): - self.db[room] = {} - self.db[room]["messages"] = {} - self.db[room]["title"] = room - self.log.info(f"Added to the database: { room }") - - # Check if the room has an output folder already - if not os.path.exists(room_path): - os.mkdir(room_path) - shutil.copy("stylesheet.css", room_path) - self.log.info(f"Created a folder for: { room }") - self.log.info(f"Copied stylesheet.css to: { room }") + def group_invite(self, message): + """Extend xbotlib invite response logic and do required room setup.""" + super().group_invite(message) + self._setup_room(message.room) def group(self, message):