Add function for create website

This commit is contained in:
2026-07-23 04:26:04 +02:00
parent 64552bc928
commit 2841c69953

View File

@@ -12,31 +12,58 @@ from flask import session
class DataSite: class DataSite:
user_folder = None user_folder = None
username = str() username = str()
datas = str() datas = dict()
static_path = None static_path = None
trash = list() trash = list()
filej= None filej= None
def __init__(self, username :str , users_folder :str ): def __init__(self, username :str , users_folder :str ):
self.username = username self.username = username
self.user_folder = PurePosixPath(users_folder).joinpath(username) self.user_folder = Path(PurePosixPath(users_folder).joinpath(username))
self.filej = Path(PurePosixPath(self.user_folder).joinpath('ident.json')) self.filej = Path(PurePosixPath(self.user_folder).joinpath('ident.json'))
with self.filej.open(newline='', mode='r', encoding='utf-8') as f:
self.datas = json.load(f)
self.static_path = Path(PurePosixPath(self.user_folder.joinpath('public'))) self.static_path = Path(PurePosixPath(self.user_folder.joinpath('public')))
self.static_path.mkdir(parents=True, exist_ok=True)
def create(self, theme:str):
themesImgFolder = Path(PurePosixPath('app').joinpath('static','themes', theme, 'img'))
imgFolder = Path(PurePosixPath(self.user_folder).joinpath('public', 'img'))
#imgFolder.mkdir(exist_ok=True)
site_default = Path('./app/templates/themes/'+theme+'/ident-default.json')
if self.user_folder.exists():
raise FileNotFoundError(f"Ce site existe déjà")
return False
else:
self.user_folder.mkdir(parents=True, exist_ok=False)
self.filej.write_text(site_default.read_text())
self.static_path.mkdir(parents=True, exist_ok=True)
copytree(themesImgFolder, imgFolder)
if not self.filej.exists():
raise FileNotFoundError(f"Le site n'a pas pu etre créé")
return False
else:
self.load_file()
return True
def load_file(self): def load_file(self):
if not self.filej.isfile(): if not self.filej.is_file():
raise FileNotFoundError(f"Le fichier ident.json n'existe pas : {self.filej}") raise FileNotFoundError(f"Le fichier ident.json n'existe pas : {self.filej}")
with self.filej.open(newline='', mode='r', encoding='utf-8') as f: with self.filej.open(newline='', mode='r', encoding='utf-8') as f:
self.datas = json.load(f) self.datas = json.load(f)
def update_json(self):
self.filej.write_text(json.dumps(self.datas, indent=5))
def set_passwd(self, passwd:str):
self.datas['config']['passwd']
self.update_json()
def get_passwd(self):
return self.datas['config']['passwd']
def get_blocs(self, page: str): def get_blocs(self, page: str):
@@ -86,7 +113,7 @@ class DataSite:
img['subtitle']="" img['subtitle']=""
img['text'] = "" img['text'] = ""
img['category'] = "" img['category'] = ""
img['file'] = image_uploaded img['file'] = '/img/' + image_uploaded
return img return img
@@ -109,9 +136,10 @@ class DataSite:
return bloc return bloc
def save_menu(self, menu:dict): def save_menu(self, menu:dict):
self.datas['menu'] = menu self.datas['menu'] = menu
self.filej.write_text(json.dumps(self.datas, indent=5)) self.update_json()
def save_blocs(self, page='', blocs=dict()): def save_blocs(self, page='', blocs=dict()):
@@ -127,12 +155,11 @@ class DataSite:
page_info.write_text(json.dumps(datas, indent=3)) page_info.write_text(json.dumps(datas, indent=3))
else: else:
self.datas['blocs']= blocs self.datas['blocs']= blocs
self.filej.write_text(json.dumps(self.datas, indent=5)) self.update_json()
def save_server_info(self, serverInfos=dict()): def save_server_info(self, serverInfos=dict()):
self.datas['publish'] = serverInfos self.datas['publish'] = serverInfos
self.filej.write_text(json.dumps(self.datas, indent=5)) self.update_json()
def get_theme(self): def get_theme(self):
@@ -160,10 +187,10 @@ class DataSite:
if not page.exists(): if not page.exists():
raise FileNotFoundError(f"La page n'a pas pu etre créé : {page}") raise FileNotFoundError(f"La page n'a pas pu etre créé : {page}")
return False
return True return True
def rm_page(self, pageName :str): def rm_page(self, pageName:str):
page_folder = Path(PurePosixPath(self.user_folder).joinpath(pageName)) page_folder = Path(PurePosixPath(self.user_folder).joinpath(pageName))
page = Path(PurePosixPath(self.user_folder).joinpath(pageName, 'page.json')) page = Path(PurePosixPath(self.user_folder).joinpath(pageName, 'page.json'))