mirror of
https://github.com/ParisNeo/lollms-webui.git
synced 2024-12-24 06:36:37 +00:00
66 lines
2.0 KiB
Python
66 lines
2.0 KiB
Python
import os
|
|
from typing import List
|
|
from discussions.discussion import Discussion
|
|
|
|
class DiscussionDatabase:
|
|
"""
|
|
Class representing a discussion database.
|
|
"""
|
|
|
|
def __init__(self, name, root_folder):
|
|
"""
|
|
Initializes a new DiscussionDatabase object.
|
|
|
|
Args:
|
|
name (str): The name of the discussion database.
|
|
root_folder (str): The root folder of the discussion database.
|
|
"""
|
|
self.name = name
|
|
self.root_folder = root_folder
|
|
self.discussions:List[Discussion] = {}
|
|
|
|
def load_discussions(self):
|
|
"""
|
|
Loads the discussions from the discussion database.
|
|
"""
|
|
for discussion_folder in os.listdir(self.root_folder):
|
|
discussion = Discussion(discussion_folder)
|
|
discussion.load_messages()
|
|
self.discussions[discussion_folder] = discussion
|
|
|
|
def save_discussions(self):
|
|
"""
|
|
Saves the discussions to the discussion database.
|
|
"""
|
|
for discussion in self.discussions.values():
|
|
discussion.save_messages()
|
|
|
|
def remove_discussion(self, discussion_name):
|
|
"""
|
|
Removes a discussion from the discussion database.
|
|
|
|
Args:
|
|
discussion_name (str): The name of the discussion to remove.
|
|
"""
|
|
del self.discussions[discussion_name]
|
|
os.rmdir(f'{self.root_folder}/{discussion_name}')
|
|
|
|
def list_discussions(self):
|
|
"""
|
|
Lists all the discussions in the discussion database.
|
|
|
|
Returns:
|
|
List[str]: A list of discussion names.
|
|
"""
|
|
return list(self.discussions.keys())
|
|
|
|
def new_discussion(self, discussion_name):
|
|
"""
|
|
Creates a new discussion in the discussion database.
|
|
|
|
Args:
|
|
discussion_name (str): The name of the new discussion.
|
|
"""
|
|
discussion = Discussion(discussion_name)
|
|
self.discussions[discussion_name] = discussion
|
|
os.mkdir(f'{self.root_folder}/{discussion_name}') |