Functions for publish website by ftp or sftp

This commit is contained in:
2026-06-04 20:33:16 +02:00
committed by kitoy
parent 576b382e53
commit c073b3aaf9
5 changed files with 139 additions and 39 deletions

View File

@@ -6,6 +6,8 @@ from PIL import Image
from pathlib import Path, PurePath, PurePosixPath
from shutil import rmtree, copytree
import subprocess
from flask import session
class DataSite:
user_folder = None
@@ -214,25 +216,44 @@ class DataSite:
return False
else:
return True
def publish(self, serverInfos=dict(), password=str()):
userDir = Path(PurePosixPath(self.user_folder))
command = "lftp -u \"{}\",\"{}\" -p {} {} -e ' mirror -R public {}; chmod -R o+rx ./; bye;'".format(serverInfos['username'],
upload = "lftp -u \"{}\",\"{}\" -p {} {} -e ' mirror -R public {}; chmod -R o+rx ./; bye;'".format(serverInfos['username'],
password,
serverInfos['Port'],
serverInfos['Address'],
serverInfos['folder'])
set_permissions = "lftp -u \"{}\",\"{}\" -p {} {} -e 'chmod -R o+rx ./; bye;'".format(serverInfos['username'],
password,
serverInfos['Port'],
serverInfos['Address'],
serverInfos['folder'])
try:
subprocess.call(command, shell=True, cwd=str(userDir))
subprocess.call(upload, shell=True, cwd=str(userDir))
self.update_status_publish("Uploaded")
subprocess.call(set_permissions, shell=True, cwd=str(userDir))
except ChildProcessError:
return False
return True
def update_status_publish (self, status: str):
self.datas['publication_status'] = status
self.filej.write_text(json.dumps(self.datas, indent=5))
def get_status_publish(self):
if 'publication_status' in self.datas.keys():
return self.datas['publication_status']
else:
return "";