This commit is contained in:
恍兮惚兮 2024-05-03 20:49:49 +08:00
parent f10c785d97
commit 44a0a12cdf
39 changed files with 38 additions and 61 deletions

View File

@ -8,24 +8,8 @@ if __name__ == "__main__":
windows.loadlibrary(
"./LunaTranslator/runtime/PyQt5/Qt5/bin/Qt5Core.dll"
) # win7 no vcredist2015
for p in (
"./userconfig/memory",
"./userconfig/memory",
"./userconfig/posts",
"./translation_record",
"./translation_record/cache",
"./cache",
"./cache/ocr",
"./cache/update",
"./cache/screenshot",
"./cache/tts",
"./cache/icon",
"./cache/backup",
):
os.makedirs(p, exist_ok=True)
from myutils.config import _TR, static_data, testpriv, globalconfig
from myutils.config import _TR, static_data, globalconfig
sys.path.append("./userconfig")
sys.path.insert(
@ -81,12 +65,6 @@ if __name__ == "__main__":
)
os._exit(0)
try:
testpriv()
except:
getQMessageBox(None, "错误", "当前路径读写权限不足,请使用管理员权限运行!")
os._exit(0)
gobject.baseobject = MAINUI()
gobject.baseobject.checklang()
gobject.baseobject.aa()

View File

@ -7,6 +7,7 @@ from myutils.config import _TR, globalconfig
from gui.usefulwidget import saveposwindow
from myutils.wrapper import Singleton_close
from winsharedutils import showintab
import os
@Singleton_close
@ -36,6 +37,7 @@ class dialog_memory(saveposwindow):
self.gamemd5 = gamemd5
formLayout = QVBoxLayout() #
self.showtext = QTextEdit()
os.makedirs("./userconfig/memory", exist_ok=True)
self.rwpath = "./userconfig/memory/{}.html".format(gamemd5)
try:
with open(self.rwpath, "r", encoding="utf8") as ff:

View File

@ -120,6 +120,7 @@ def sqlite2json2(self, sqlitefile, targetjson=None, existsmerge=False):
def sqlite2json(self):
os.makedirs("./translation_record", exist_ok=True)
f = QFileDialog.getOpenFileName(directory="./translation_record", filter="*.sqlite")
if f[0] == "":
return

View File

@ -104,6 +104,7 @@ class QButtonGroup_switch_widegt(QWidget):
def listprocessm():
os.makedirs("./cache", exist_ok=True)
cachefname = os.path.abspath("./cache/{}.txt".format(time.time()))
arch = "64" if gobject.baseobject.textsource.is64bit else "32"
exe = os.path.abspath("./files/plugins/shareddllproxy{}.exe".format(arch))

View File

@ -190,6 +190,7 @@ def exportchspatch(self):
doexportchspatch(exe, realgame)
md5 = getfilemd5(exe)
name = os.path.basename(exe).replace("." + os.path.basename(exe).split(".")[-1], "")
os.makedirs("./translation_record", exist_ok=True)
sqlfname_all = "./translation_record/" + name + "_" + md5 + ".sqlite"
if os.path.exists(sqlfname_all) == False:
f = QFileDialog.getOpenFileName(

View File

@ -30,7 +30,7 @@ from myutils.utils import (
loadpostsettingwindowmethod,
)
from myutils.config import savehook_new_data
import copy
import copy, os
from myutils.post import POSTSOLVE
@ -39,6 +39,7 @@ def savegameprocesstext():
try:
with open("./userconfig/mypost.py", "r", encoding="utf8") as ff:
_mypost = ff.read()
os.makedirs("./userconfig/posts", exist_ok=True)
with open(
"./userconfig/posts/{}.py".format(gobject.baseobject.textsource.uuname),
"w",

View File

@ -387,6 +387,7 @@ class QUnFrameWindow(resizableframeless):
def ocroncefunction(rect):
img = imageCut(0, rect[0][0], rect[0][1], rect[1][0], rect[1][1])
fname = "./cache/ocr/once.png"
os.makedirs("./cache/ocr", exist_ok=True)
img.save(fname)
text = ocr_run(fname)
gobject.baseobject.textgetmethod(text, False)

View File

@ -232,13 +232,6 @@ def _TRL(kk):
return x
def testpriv():
fname = f"./userconfig/{os.getpid()}"
with open(fname, "w") as ff:
ff.write("")
os.remove(fname)
def saveallconfig():
def safesave(fname, js):
# 有时保存时意外退出会导致config文件被清空
@ -248,6 +241,7 @@ def saveallconfig():
os.remove(fname)
os.rename(fname + ".tmp", fname)
os.makedirs("./userconfig", exist_ok=True)
safesave("./userconfig/config.json", globalconfig)
safesave("./userconfig/magpie_config.json", magpie_config)
safesave("./userconfig/postprocessconfig.json", postprocessconfig)

View File

@ -83,6 +83,7 @@ def updatemethod(_version, progresscallback):
savep = "./cache/update/LunaTranslator{}.zip".format(bit)
def endcallback():
os.makedirs("./cache/update", exist_ok=True)
if os.path.exists("./cache/update/LunaTranslator"):
shutil.rmtree("./cache/update/LunaTranslator")
zipf = zipfile.ZipFile("./cache/update/LunaTranslator{}.zip".format(bit))

View File

@ -167,6 +167,7 @@ def getExeIcon(name, icon=True, cache=False):
name = exepath
data = winsharedutils.extracticon2data(name)
if cache:
os.makedirs("./cache/icon", exist_ok=True)
fn = "./cache/icon/{}.bmp".format(hashlib.md5(name.encode("utf8")).hexdigest())
if data:
pixmap = QPixmap()

View File

@ -11,6 +11,7 @@ def b64string(a):
def vndbdownloadimg(url, wait=True):
os.makedirs("./cache/vndb", exist_ok=True)
savepath = "./cache/vndb/" + b64string(url) + ".jpg"
if os.path.exists(savepath):
return savepath
@ -59,6 +60,7 @@ def vndbdowloadinfo(vid):
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42",
}
url = "https://vndb.org/" + vid
os.makedirs("./cache/vndb", exist_ok=True)
savepath = "./cache/vndb/" + b64string(url) + ".html"
# print(url,savepath)
if not os.path.exists(savepath):
@ -197,12 +199,13 @@ def safedownload():
"https://dl.vndb.org/dump/vndb-tags-latest.json.gz",
proxies=getproxy(),
)
with open("./cache/vndb-tags-latest.json.gz", "wb") as ff:
os.makedirs("./cache/vndb", exist_ok=True)
with open("./cache/vndb/vndb-tags-latest.json.gz", "wb") as ff:
ff.write(resp.content)
decompress_gzip_file(
"./cache/vndb-tags-latest.json.gz", "./cache/vndb-tags-latest.json"
"./cache/vndb/vndb-tags-latest.json.gz", "./cache/vndb/vndb-tags-latest.json"
)
with open("./cache/vndb-tags-latest.json", "r", encoding="utf8") as ff:
with open("./cache/vndb/vndb-tags-latest.json", "r", encoding="utf8") as ff:
js = json.load(ff)
newjs = {}
for item in js:
@ -250,8 +253,7 @@ def getvntagsbyid(vid):
def searchforidimage(titleorid):
print(titleorid)
if os.path.exists("./cache/vndb") == False:
os.mkdir("./cache/vndb")
os.makedirs("./cache/vndb", exist_ok=True)
if isinstance(titleorid, str):
vid = getvidbytitle(titleorid)
if not vid:

View File

@ -25,6 +25,7 @@ class Method(scalebase):
def init(self):
self.statuslistener()
os.makedirs("./cache", exist_ok=True)
self.jspath = os.path.abspath("./cache/magpie.config.json")
self.engine = subproc_w(
'./files/plugins/Magpie/Magpie.Core.exe "{}"'.format(self.jspath),

View File

@ -3,7 +3,7 @@ from myutils.config import globalconfig
import winsharedutils
from gui.rangeselect import rangeadjust
from myutils.ocrutil import imageCut, ocr_run, ocr_end
import time, gobject
import time, gobject, os
from PyQt5.QtWidgets import QApplication
from PyQt5.QtGui import QImage
from textsource.textsourcebase import basetext
@ -164,7 +164,7 @@ class ocrtext(basetext):
return "\n".join(__text)
def ocrtest(self, img):
os.makedirs("./cache/ocr", exist_ok=True)
fname = "./cache/ocr/{}.png".format(self.timestamp)
img.save(fname)
# print(fname)

View File

@ -16,7 +16,7 @@ class basetext:
self.pids = []
self.md5 = md5
self.basename = basename
os.makedirs("./translation_record", exist_ok=True)
sqlfname_all_old = (
"./translation_record/" + md5 + "_" + basename + ".pretrans_common.sqlite"
)

View File

@ -5,7 +5,7 @@ from myutils.config import globalconfig, translatorsetting, static_data
from threading import Thread
import time, types
import zhconv, gobject
import sqlite3
import sqlite3, os
from myutils.commonbase import commonbase
import functools
from myutils.utils import stringfyerror, autosql, PriorityQueue
@ -109,6 +109,7 @@ class basetrans(commonbase):
if self.transtype != "pre":
try:
os.makedirs("./translation_record/cache", exist_ok=True)
self.sqlwrite2 = autosql(
sqlite3.connect(
"./translation_record/cache/{}.sqlite".format(self.typename),

View File

@ -10,6 +10,7 @@ from myutils.subproc import subproc_w, autoproc
class TTS(TTSbase):
def checkchange(self):
fname = str(time.time())
os.makedirs("./cache/tts/", exist_ok=True)
savepath = os.path.join(os.getcwd(), "cache/tts", fname)
exepath = os.path.join(os.getcwd(), "files/plugins/shareddllproxy32.exe")
t = time.time()

View File

@ -5,7 +5,7 @@ import websocket
from datetime import datetime
import time
import re
import uuid
import uuid, os
import time
import requests
import time
@ -193,6 +193,7 @@ def transferMsTTSData(rate, content, voice):
else:
break
ws.close()
os.makedirs("./cache/tts/", exist_ok=True)
outputPath = "./cache/tts/" + str(time.time()) + ".mp3"
with open(outputPath, "wb") as audio_out:
audio_out.write(audio_stream)

View File

@ -1,7 +1,7 @@
from traceback import print_exc
import requests
import base64
import time
import time, os
from tts.basettsclass import TTSbase
@ -48,7 +48,7 @@ class TTS(TTSbase):
)
fname = str(time.time())
b64 = base64.b64decode(response.json()["audio"]["data"])
os.makedirs("./cache/tts/", exist_ok=True)
with open("./cache/tts/" + fname + ".mp3", "wb") as ff:
ff.write(b64)

View File

@ -1,5 +1,5 @@
import requests
import time
import time, os
from tts.basettsclass import TTSbase
from urllib.parse import quote
@ -29,6 +29,7 @@ class TTS(TTSbase):
f"http://127.0.0.1:23456/voice/{model}?text={encoded_content}&id={idx}&lang=ja&format=wav"
).content
fname = str(time.time())
os.makedirs("./cache/tts/", exist_ok=True)
with open("./cache/tts/" + fname + ".wav", "wb") as ff:
ff.write(response)

View File

@ -75,6 +75,7 @@ class TTS(TTSbase):
self.rate = globalconfig["ttscommon"]["rate"]
self.voice = self.config["voice"]
fname = str(time.time())
os.makedirs("./cache/tts/", exist_ok=True)
savepath = os.path.join(os.getcwd(), "cache/tts", fname + ".wav")
dllpath = os.path.join(self.path, "aitalked.dll")
##dllpath=r'C:\Users\wcy\Downloads\zunko\aitalked.dll'

View File

@ -73,6 +73,7 @@ class TTS(TTSbase):
self.rate = globalconfig["ttscommon"]["rate"]
self.voice = self.config["voice"]
fname = str(time.time())
os.makedirs("./cache/tts/", exist_ok=True)
savepath = os.path.join(os.getcwd(), "cache/tts", fname + ".wav")
dllpath = os.path.join(self.path, "aitalked.dll")

View File

@ -101,6 +101,7 @@ class TTS(TTSbase):
headers=headers,
data=json.dumps(response.json()),
)
os.makedirs("./cache/tts/", exist_ok=True)
with open("./cache/tts/" + fname + ".wav", "wb") as ff:
ff.write(response.content)
return "./cache/tts/" + fname + ".wav"

View File

@ -36,7 +36,7 @@ class TTS(TTSbase):
version = 7
voice_idx = self._7m[voice]
fname = str(time.time())
os.makedirs("./cache/tts/", exist_ok=True)
winsharedutils.SAPI_Speak(
content, version, voice_idx, rate, 100, "./cache/tts/" + fname + ".wav"
)

View File

@ -1,5 +1,5 @@
import requests
import time
import time, os
from tts.basettsclass import TTSbase
@ -39,6 +39,7 @@ class TTS(TTSbase):
proxies={"http": None, "https": None},
).content
fname = str(time.time())
os.makedirs("./cache/tts/", exist_ok=True)
with open("./cache/tts/" + fname + ".mp3", "wb") as ff:
ff.write(response)

View File

@ -569,7 +569,6 @@
"使用说明": "تعليمات الاستخدام",
"注册地址": "العنوان المسجل",
"API接口地址": "عنوان واجهة المعهد",
"当前路径读写权限不足,请使用管理员权限运行!": "المسار الحالي لا يملك أذونات القراءة والكتابة ، يرجى استخدام أذونات المسؤول لتشغيل !",
"通用文字识别(标准版)": "العام التعرف على الحروف ( طبعة قياسية )",
"通用文字识别(标准含位置版)": "العام التعرف على الحروف ( بما في ذلك موقع النسخة القياسية )",
"通用文字识别(高精度版)": "العام التعرف على الحروف ( عالية الدقة )",

View File

@ -569,7 +569,6 @@
"使用说明": "使用說明",
"注册地址": "註冊地址",
"API接口地址": "API介面地址",
"当前路径读写权限不足,请使用管理员权限运行!": "當前路徑讀寫許可權不足,請使用管理員許可權運行!",
"通用文字识别(标准版)": "通用文字識別(標準版)",
"通用文字识别(标准含位置版)": "通用文字識別(標準含位置版)",
"通用文字识别(高精度版)": "通用文字識別(高精度版)",

View File

@ -569,7 +569,6 @@
"使用说明": "Instructions for use",
"注册地址": "Company Registered Address",
"API接口地址": "API interface address",
"当前路径读写权限不足,请使用管理员权限运行!": "The current path has insufficient read and write permissions. Please run with administrator privileges!",
"通用文字识别(标准版)": "Universal Text Recognition (Standard Edition)",
"通用文字识别(标准含位置版)": "Universal text recognition (standard with positional version)",
"通用文字识别(高精度版)": "Universal Text Recognition (High Precision Edition)",

View File

@ -569,7 +569,6 @@
"使用说明": "Instrucciones de uso",
"注册地址": "Dirección registrada",
"API接口地址": "Dirección de la interfaz API",
"当前路径读写权限不足,请使用管理员权限运行!": "¡Los permisos de lectura y escritura de la ruta actual son insuficientes, ¡ por favor, use los permisos de Administrador para ejecutar!",
"通用文字识别(标准版)": "Reconocimiento de texto universal (versión estándar)",
"通用文字识别(标准含位置版)": "Reconocimiento de texto universal (estándar con versión de ubicación)",
"通用文字识别(高精度版)": "Reconocimiento de texto universal (versión de alta precisión)",

View File

@ -569,7 +569,6 @@
"使用说明": "Instructions d'utilisation",
"注册地址": "Adresse enregistrée",
"API接口地址": "Adresse de l'interface API",
"当前路径读写权限不足,请使用管理员权限运行!": "Le chemin actuel n'a pas les droits de lecture et d'écriture suffisants, exécutez - le avec les droits d'administrateur!",
"通用文字识别(标准版)": "Reconnaissance de texte universelle (version standard)",
"通用文字识别(标准含位置版)": "Reconnaissance de texte universelle (version standard avec emplacement)",
"通用文字识别(高精度版)": "Reconnaissance de texte universelle (version haute précision)",

View File

@ -569,7 +569,6 @@
"使用说明": "Istruzioni per l'uso",
"注册地址": "Indirizzo di registrazione della società",
"API接口地址": "Indirizzo interfaccia API",
"当前路径读写权限不足,请使用管理员权限运行!": "Il percorso corrente non ha permessi di lettura e scrittura sufficienti. Esegui con privilegi di amministratore!",
"通用文字识别(标准版)": "Riconoscimento universale del testo (edizione standard)",
"通用文字识别(标准含位置版)": "Riconoscimento universale del testo (standard con versione posizionale)",
"通用文字识别(高精度版)": "Riconoscimento universale del testo (Edizione ad alta precisione)",

View File

@ -569,7 +569,6 @@
"使用说明": "使用方法",
"注册地址": "登録アドレス",
"API接口地址": "APIインタフェースアドレス",
"当前路径读写权限不足,请使用管理员权限运行!": "現在のパスは読み書き権限が不足しています。管理者権限を使用して実行してください!",
"通用文字识别(标准版)": "汎用文字認識(標準版)",
"通用文字识别(标准含位置版)": "共通文字認識(標準位置版含む)",
"通用文字识别(高精度版)": "汎用文字認識(高精度版)",

View File

@ -569,7 +569,6 @@
"使用说明": "사용 설명",
"注册地址": "등록 주소",
"API接口地址": "API 인터페이스 주소",
"当前路径读写权限不足,请使用管理员权限运行!": "현재 경로에 읽기 및 쓰기 권한이 부족합니다. 관리자 권한으로 실행하십시오!",
"通用文字识别(标准版)": "일반 텍스트 인식 (표준)",
"通用文字识别(标准含位置版)": "일반 텍스트 인식 (위치 버전 표준 포함)",
"通用文字识别(高精度版)": "일반 텍스트 인식 (고정밀 버전)",

View File

@ -569,7 +569,6 @@
"使用说明": "Instrukcja użytkowania",
"注册地址": "Adres zarejestrowany w firmie",
"API接口地址": "Adres interfejsu API",
"当前路径读写权限不足,请使用管理员权限运行!": "Bieżąca ścieżka ma niewystarczające uprawnienia do odczytu i zapisu. Proszę uruchomić z uprawnieniami administratora!",
"通用文字识别(标准版)": "Uniwersalne rozpoznawanie tekstu (wersja standardowa)",
"通用文字识别(标准含位置版)": "Uniwersalne rozpoznawanie tekstu (standardowo z wersją pozycyjną)",
"通用文字识别(高精度版)": "Uniwersalne rozpoznawanie tekstu (High Precision Edition)",

View File

@ -569,7 +569,6 @@
"使用说明": "Описание использования",
"注册地址": "Адрес регистрации",
"API接口地址": "Адрес интерфейса API",
"当前路径读写权限不足,请使用管理员权限运行!": "Текущие права чтения и записи пути недостаточны, пожалуйста, используйте права администратора для запуска!",
"通用文字识别(标准版)": "Универсальное распознавание текста (стандартная версия)",
"通用文字识别(标准含位置版)": "Универсальное распознавание текста (стандартная версия с указанием местоположения)",
"通用文字识别(高精度版)": "Универсальное распознавание текста (высокоточная версия)",

View File

@ -518,7 +518,6 @@
"韩语(EUC-KR)": "เกาหลี (EUC-KR)",
"选择路径": "เลือกเส้นทาง",
"普通字体": "Normal ตัวอักษร",
"当前路径读写权限不足,请使用管理员权限运行!": "การเข้าถึงการอ่านและการเขียนพาธปัจจุบันไม่เพียงพอโปรดใช้สิทธิ์ของผู้ดูแลระบบเพื่อเรียกใช้!",
"快捷键": "ปุ่มลัด",
"转区启动": "เริ่มการเปลี่ยนโซน",
"快译通": "แปลด่วน",

View File

@ -569,7 +569,6 @@
"使用说明": "Kullanılacak talimatlar",
"注册地址": "Şirket Kayıtlı Adresi",
"API接口地址": "API arayüz adresi",
"当前路径读写权限不足,请使用管理员权限运行!": "Mevcut yolun okuma ve yazma izni yetersiz. Lütfen yönetici hakkınla çalışın!",
"通用文字识别(标准版)": "Universal Text Recognition (Standard Edition)",
"通用文字识别(标准含位置版)": "Evrensel metin tanımlaması (pozisyonel versiyonla standart)",
"通用文字识别(高精度版)": "Universal Text Recognition (High Precision Edition)",

View File

@ -569,7 +569,6 @@
"使用说明": "Накази використання",
"注册地址": "Реєстрована адреса компанії",
"API接口地址": "Адреса інтерфейсу API",
"当前路径读写权限不足,请使用管理员权限运行!": "У поточному шляху недостатньо прав на читання і запис. Будь ласка, запускайте привілеї адміністратора!",
"通用文字识别(标准版)": "Універсальне визнання тексту (стандартне редагування)",
"通用文字识别(标准含位置版)": "Універсальне розпізнавання тексту (стандартне з позиційною версією)",
"通用文字识别(高精度版)": "Universal Text Recognition (High Precision Edition)",

View File

@ -569,7 +569,6 @@
"使用说明": "Hướng dẫn sử dụng",
"注册地址": "Địa chỉ đăng ký",
"API接口地址": "Địa chỉ giao diện API",
"当前路径读写权限不足,请使用管理员权限运行!": "Đường dẫn hiện tại không đủ quyền đọc và ghi, hãy chạy với quyền quản trị viên!",
"通用文字识别(标准版)": "Nhận dạng văn bản chung (Standard Edition)",
"通用文字识别(标准含位置版)": "Nhận dạng văn bản chung (phiên bản tiêu chuẩn bao gồm vị trí)",
"通用文字识别(高精度版)": "Nhận dạng văn bản chung (phiên bản chính xác cao)",

View File

@ -513,7 +513,6 @@
"韩语(EUC-KR)": "",
"选择路径": "",
"普通字体": "",
"当前路径读写权限不足,请使用管理员权限运行!": "",
"快捷键": "",
"转区启动": "",
"快译通": "",