init
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
|
||||
|
||||
|
||||
import time
|
||||
|
||||
|
||||
class BackBoardManager:
|
||||
def __init__(self):
|
||||
self.backboards = {} # user_id: Backboard
|
||||
|
||||
def add_backboard(self, user_id, folder):
|
||||
self.backboards[user_id] = Backboard(user_id, folder)
|
||||
|
||||
def get_backboard(self, user_id):
|
||||
if user_id not in self.backboards:
|
||||
return None
|
||||
return self.backboards[user_id]
|
||||
|
||||
|
||||
|
||||
|
||||
class Backboard:
|
||||
def __init__(self, user_id, folder):
|
||||
self.user_id = user_id
|
||||
self.folder = folder
|
||||
self.create_time = time.time()
|
||||
self.enter_chapter_time = time.time()
|
||||
self.history = []
|
||||
self.file_tree = "[]"
|
||||
self.active_file_path = ""
|
||||
self.active_file_content = ""
|
||||
self.pasted_file_path = ""
|
||||
self.pasted_content = ""
|
||||
|
||||
|
||||
def next_chapter(self):
|
||||
self.enter_chapter_time = time.time()
|
||||
|
||||
def get_info_prompt(self):
|
||||
|
||||
five_history = ""
|
||||
for h in self.history[-5:]:
|
||||
five_history += h['type'] + "\n" + h.get('filePath', '') + "\n\n"
|
||||
# return f"###Global Info:###\n\
|
||||
# User is {self.user_id}\n\
|
||||
# User's total study time is {self.get_deltatime_mmss(self.create_time, time.time())}\n\
|
||||
# User's current chapter study time is {self.get_deltatime_mmss(self.enter_chapter_time, time.time())}\n\
|
||||
# \n\n\
|
||||
# Activated file path: {self.active_file_path}\n\
|
||||
# Activated file content (current editing 10 lines): \n\
|
||||
# ```\n\
|
||||
# {self.active_file_content[-10:]}\n\
|
||||
# ```\n\
|
||||
# \n\n\
|
||||
# Last five action:\n\
|
||||
# {"\n".join(self.history[-5:])}\n\nFile tree: \n{self.file_tree}\n"
|
||||
|
||||
|
||||
def add_history(self, realtime_action):
|
||||
if(realtime_action['type']=='config'):return
|
||||
if len(self.history)!=0:
|
||||
if (self.history[-1]['type']=='edit'):
|
||||
if(self.history[-1]['filepath'] == realtime_action['filepath']):
|
||||
self.history[-1]['content'] = realtime_action['content']
|
||||
return
|
||||
self.history.append(realtime_action)
|
||||
|
||||
|
||||
def get_deltatime_mmss(self, start_time, end_time):
|
||||
elapsed_time = end_time - start_time
|
||||
hours = int(elapsed_time // 3600)
|
||||
minutes = int((elapsed_time % 3600) // 60)
|
||||
seconds = int(elapsed_time % 60)
|
||||
return f"{hours:02d}:{minutes:02d}:{seconds:02d}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user