PyWxDump/pywxdump/api/utils.py
2024-02-26 00:48:47 +08:00

64 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-#
# -------------------------------------------------------------------------------
# Name: utils.py
# Description:
# Author: xaoyaoo
# Date: 2024/01/16
# -------------------------------------------------------------------------------
import base64
import json
import logging
import os
import traceback
from .rjson import ReJson
from functools import wraps
def read_session(session_file, arg):
with open(session_file, 'r') as f:
session = json.load(f)
return session.get(arg, "")
def save_session(session_file, arg, value):
try:
with open(session_file, 'r') as f:
session = json.load(f)
except:
session = {}
session[arg] = value
with open(session_file, 'w') as f:
json.dump(session, f, indent=4)
return True
def error9999(func):
@wraps(func)
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except Exception as e:
traceback_data = traceback.format_exc()
rdata = f"{traceback_data}"
return ReJson(9999, body=rdata)
return wrapper
def gen_base64(path):
# 获取文件名后缀
extension = os.path.splitext(path)[1]
if extension == '.js':
start_str = 'data:text/javascript;base64,'
elif extension == '.css':
start_str = 'data:text/css;base64,'
elif extension == '.html':
start_str = 'data:text/html;base64,'
elif extension == '.json':
start_str = 'data:application/json;base64,'
else:
start_str = 'data:text/plain;base64,'
with open(path, 'rb') as file:
js_code = file.read()
base64_encoded_js = base64.b64encode(js_code).decode('utf-8')
return start_str + base64_encoded_js