Prototype: Files import

This commit is contained in:
2023-03-20 12:03:03 +01:00
parent 1749d49a52
commit 03b6bbe039
4 changed files with 144 additions and 15 deletions

View File

@@ -10,3 +10,5 @@ app = PosterClient(
)
Conversation(app)
users_with_context = []

View File

@@ -1,10 +1,12 @@
from os import kill, path
from os import kill, makedirs
from os import name as osname
from os import sep
from os import path, sep
from sys import exit
from traceback import print_exc
from typing import Any
from zipfile import ZipFile
import aiofiles
from ujson import JSONDecodeError, dumps, loads
from modules.logger import logWrite
@@ -207,6 +209,28 @@ def locale(key: str, *args: str, locale=configGet("locale")):
return f'⚠️ Locale in config is invalid: could not get "{key}" in {str(args)} from locale "{locale}"'
async def extract_and_save(handle: ZipFile, filename: str, destpath: str):
"""Extract and save file from archive
Args:
* handle (ZipFile): ZipFile handler
* filename (str): File base name
* path (str): Path where to store
"""
data = handle.read(filename)
filepath = path.join(destpath, filename)
try:
makedirs(path.dirname(filepath), exist_ok=True)
async with aiofiles.open(filepath, "wb") as fd:
await fd.write(data)
logWrite(f"Unzipped {filename}", debug=True)
except IsADirectoryError:
makedirs(filepath, exist_ok=True)
except FileNotFoundError:
pass
return
try:
from psutil import Process
except ModuleNotFoundError: