LunaHook/issues/2

This commit is contained in:
恍兮惚兮 2024-02-20 23:59:51 +08:00
parent bed074c6ec
commit 7bec30960f
24 changed files with 151 additions and 101 deletions

View File

@ -9,6 +9,21 @@ from myutils.config import globalconfig ,_TR,_TRL
from gui.usefulwidget import MySwitch ,selectcolor
from myutils.utils import makehtml
from myutils.wrapper import Singleton
def autoinitdialog_items(dict):
items=[]
for arg in dict['args']:
items.append({
'l':arg,'d':dict['args'],'k':arg
})
if 'argstype' in dict and arg in dict['argstype']:
items[-1].update(dict['argstype'][arg])
else:
items[-1].update(
{'t':'lineedit'}
)
items.append({'t':'okcancel' })
return items
@Singleton
class autoinitdialog(QDialog):
def __init__(self, parent,title,width,lines,_=None ) -> None:
@ -184,58 +199,49 @@ class postconfigdialog_(QDialog):
lb=QLabel(self)
lb.setText(_TR(key) )
formLayout.addWidget(lb)
if type(configdict[key]) in (float,int):
spin=QSpinBox(self)
spin.setMinimum(1)
spin.setMaximum(100)
spin.setValue(configdict[key])
spin.valueChanged.connect(lambda x:configdict.__setitem__(key,x))
formLayout.addWidget(spin)
self.resize(QSize(600,1))
# lines=QTextEdit(self)
# lines.setPlainText('\n'.join(configdict[key]))
# lines.textChanged.connect(lambda :configdict.__setitem__(key,lines.toPlainText().split('\n')))
# formLayout.addWidget(lines)
model=QStandardItemModel(len(configdict[key]),1 , self)
row=0
elif type(configdict[key])==type({}):
# lines=QTextEdit(self)
# lines.setPlainText('\n'.join(configdict[key]))
# lines.textChanged.connect(lambda :configdict.__setitem__(key,lines.toPlainText().split('\n')))
# formLayout.addWidget(lines)
model=QStandardItemModel(len(configdict[key]),1 , self)
row=0
for key1 in ( (configdict[key])): # 2
for key1 in ( (configdict[key])): # 2
item = QStandardItem(key1)
model.setItem(row, 0, item)
item = QStandardItem(key1)
model.setItem(row, 0, item)
item = QStandardItem(configdict[key][key1])
model.setItem(row, 1, item)
row+=1
model.setHorizontalHeaderLabels(_TRL([ '原文内容','替换为']))
table = QTableView(self)
table.setModel(model)
table.setWordWrap(False)
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
#table.setEditTriggers(QAbstractItemView.NoEditTriggers)
#table.clicked.connect(self.show_info)
button=QPushButton(self)
button.setText(_TR('添加行'))
def clicked1():
model.insertRow(0,[QStandardItem(''),QStandardItem('')])
button.clicked.connect(clicked1)
button2=QPushButton(self)
button2.setText(_TR('删除选中行'))
def clicked2():
model.removeRow(table.currentIndex().row())
button2.clicked.connect(clicked2)
self.button=button
self.model=model
self.key=key
self.configdict=configdict
self.closeevent=True
formLayout.addWidget(table)
formLayout.addWidget(button)
formLayout.addWidget(button2)
self.resize(QSize(600,400))
item = QStandardItem(configdict[key][key1])
model.setItem(row, 1, item)
row+=1
model.setHorizontalHeaderLabels(_TRL([ '原文内容','替换为']))
table = QTableView(self)
table.setModel(model)
table.setWordWrap(False)
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
#table.setEditTriggers(QAbstractItemView.NoEditTriggers)
#table.clicked.connect(self.show_info)
button=QPushButton(self)
button.setText(_TR('添加行'))
def clicked1():
model.insertRow(0,[QStandardItem(''),QStandardItem('')])
button.clicked.connect(clicked1)
button2=QPushButton(self)
button2.setText(_TR('删除选中行'))
def clicked2():
model.removeRow(table.currentIndex().row())
button2.clicked.connect(clicked2)
self.button=button
self.model=model
self.key=key
self.configdict=configdict
self.closeevent=True
formLayout.addWidget(table)
formLayout.addWidget(button)
formLayout.addWidget(button2)
self.resize(QSize(600,400))
self.show()
def postconfigdialog(parent,configdict,title):

View File

@ -494,7 +494,7 @@ class hookselect(closeashidewindow):
self.textOutput = QPlainTextEdit()
self.textOutput.setUndoRedoEnabled(False)
self.textOutput.setReadOnly(True)
self.textOutput.setReadOnly(globalconfig['textboxreadonly'])
self.sysOutput = QPlainTextEdit()

View File

@ -8,7 +8,7 @@ from gui.pretransfile import sqlite2json
from myutils.config import globalconfig ,_TR,_TRL,static_data
from myutils.utils import selectdebugfile,splittranslatortypes,checkportavailable
import os ,time,requests,threading
from gui.inputdialog import autoinitdialog
from gui.inputdialog import autoinitdialog ,autoinitdialog_items
from gui.usefulwidget import getspinbox,getcolorbutton,getsimpleswitch,selectcolor
import time,hashlib
def hashtext(a):
@ -33,19 +33,7 @@ def initsome11(self,l,label=None):
if fanyi in translatorsetting :
items=[]
for arg in translatorsetting[fanyi]['args']:
items.append({
'l':arg,'d':translatorsetting[fanyi]['args'],'k':arg
})
if 'argstype' in translatorsetting[fanyi] and arg in translatorsetting[fanyi]['argstype']:
items[-1].update(translatorsetting[fanyi]['argstype'][arg])
else:
items[-1].update(
{'t':'lineedit'}
)
items.append({'t':'okcancel' })
items=autoinitdialog_items(translatorsetting[fanyi])
last=getcolorbutton(globalconfig,'',callback=functools.partial(autoinitdialog,self, (globalconfig['fanyi'][fanyi]['name']),800,items),icon='fa.gear',constcolor="#FF69B4")
elif fanyi=='selfbuild':
last=getcolorbutton(globalconfig,'',callback=lambda:selectdebugfile('./userconfig/selfbuild.py' ),icon='fa.gear',constcolor="#FF69B4")

View File

@ -9,7 +9,7 @@ from myutils.config import globalconfig ,postprocessconfig,noundictconfig,transe
import functools ,gobject
from gui.usefulwidget import getcolorbutton,getsimpleswitch
from gui.codeacceptdialog import codeacceptdialog
from gui.inputdialog import getsomepath1 ,postconfigdialog
from gui.inputdialog import getsomepath1 ,postconfigdialog,autoinitdialog,autoinitdialog_items
from myutils.utils import selectdebugfile
from myutils.wrapper import Singleton
from myutils.config import savehook_new_list,savehook_new_data
@ -105,8 +105,12 @@ def setTab7_lazy(self) :
if post=='_remove_chaos':
config=(getcolorbutton(globalconfig,'',icon='fa.gear',constcolor="#FF69B4",callback=lambda:codeacceptdialog(self)))
elif 'args' in postprocessconfig[post]:
config=(getcolorbutton(globalconfig,'',callback= functools.partial( postconfigdialog,self,postprocessconfig[post]['args'],postprocessconfig[post]['name']),icon='fa.gear',constcolor="#FF69B4"))
if isinstance(list(postprocessconfig[post]['args'].values())[0],dict):
callback=functools.partial( postconfigdialog,self,postprocessconfig[post]['args'],postprocessconfig[post]['name'])
else:
items=autoinitdialog_items(postprocessconfig[post])
callback=functools.partial(autoinitdialog,self,postprocessconfig[post]['name'],600,items)
config=(getcolorbutton(globalconfig,'',callback= callback,icon='fa.gear',constcolor="#FF69B4"))
else:
config=('')

View File

@ -1,7 +1,7 @@
import functools ,os
from myutils.config import globalconfig ,ocrsetting,_TRL,ocrerrorfix
from gui.usefulwidget import getsimplecombobox,getspinbox,getcolorbutton,yuitsu_switch,getsimpleswitch,selectcolor
from gui.inputdialog import autoinitdialog ,postconfigdialog
from gui.inputdialog import autoinitdialog ,postconfigdialog,autoinitdialog_items
import gobject
def getocrgrid(self) :
@ -18,19 +18,7 @@ def getocrgrid(self) :
if os.path.exists(_f)==False:
continue
if name in ocrsetting:
items=[]
for arg in ocrsetting[name]['args']:
items.append({
'l':arg,'d':ocrsetting[name]['args'],'k':arg
})
if 'argstype' in ocrsetting[name] and arg in ocrsetting[name]['argstype']:
items[-1].update(ocrsetting[name]['argstype'][arg])
else:
items[-1].update(
{'t':'lineedit'}
)
items.append({'t':'okcancel' })
items=autoinitdialog_items(ocrsetting[name])
_3=getcolorbutton(globalconfig,'',callback=functools.partial(autoinitdialog,self,globalconfig['ocr'][name]['name'],800,items),icon='fa.gear',constcolor="#FF69B4")
else:

View File

@ -164,7 +164,7 @@ def setTabThree_lazy(self) :
[('任务栏中显示',6),getsimpleswitch(globalconfig,'showintab' ,callback=__changeshowintab)],
[('子窗口任务栏中显示',6),getsimpleswitch(globalconfig,'showintab_sub')],
[('选择文本窗口中文本框只读',6),getsimpleswitch(globalconfig,'textboxreadonly',callback=lambda x:gobject.baseobject.hookselectdialog.textOutput.setReadOnly(x) )]
]
alleffect=['','Bicubic','Bilinear','Jinc','Lanczos','Nearest','SSimDownscaler']
downsname=magpie10_config.get('downscalingEffect',{'name':''}).get('name')

View File

@ -6,6 +6,7 @@ import importlib,gobject
from myutils.utils import getfilemd5
from myutils.config import postprocessconfig,globalconfig ,savehook_new_data,static_data
def _2_f(line,args):
keepnodump=args['保持非重复字符']
times=args['重复次数(若为1则自动分析去重)']
if times>=2:
@ -27,9 +28,21 @@ def _2_f(line,args):
guesstimes=sorted(x.keys(),key= lambda x1:x[x1])[-1]
else:
guesstimes=1
newline=[line[i*guesstimes] for i in range(len(line)//guesstimes)]
line=''.join(newline)
if keepnodump:
newline=''
i=0
while i<len(line):
newline+=line[i]
nextn=line[i:i+guesstimes]
print(guesstimes,nextn,len(set(nextn)))
if len(nextn)==guesstimes and len(set(nextn))==1:
i+=guesstimes
else:
i+=1
line=newline
else:
newline=[line[i*guesstimes] for i in range(len(line)//guesstimes)]
line=''.join(newline)
return line
def _3_f(line,args):
times=args['重复次数(若为1则自动分析去重)']

View File

@ -96,6 +96,7 @@
500,
500
],
"textboxreadonly":true,
"ocr_stable_sim": 0,
"ocr_diff_sim": 0.95,
"autorun": true,

View File

@ -28,7 +28,19 @@
"use": false,
"name": "去除重复字符_AAAABBBBCCCC->ABC",
"args": {
"重复次数(若为1则自动分析去重)": 1
"重复次数(若为1则自动分析去重)": 1,
"保持非重复字符":true
},
"argstype":{
"保持非重复字符": {
"type": "switch"
},
"重复次数(若为1则自动分析去重)": {
"type": "intspin",
"min": 0,
"max": 10000,
"step": 1
}
}
},
"_3": {
@ -36,6 +48,14 @@
"name": "去除重复行_ABCDABCDABCD->ABCD",
"args": {
"重复次数(若为1则自动分析去重)": 1
},
"argstype":{
"重复次数(若为1则自动分析去重)": {
"type": "intspin",
"min": 0,
"max": 10000,
"step": 1
}
}
},"_3_2": {
"use": false,

View File

@ -705,5 +705,7 @@
"外部缩放软件": "برامج التكبير الخارجي",
"Hook Magpie进程使其不会退出缩放": "هوك ماجي العملية بحيث لا تخرج من التكبير",
"Hook LosslessScaling进程使其不会退出缩放": "هوك looslessscaling العملية بحيث لا تخرج من التكبير",
"正在使用日语模型作为代替,可能效果不佳": "استخدام النموذج الياباني بدلا من ذلك ، قد لا تعمل بشكل جيد"
"正在使用日语模型作为代替,可能效果不佳": "استخدام النموذج الياباني بدلا من ذلك ، قد لا تعمل بشكل جيد",
"保持非重复字符": "الحفاظ على الطابع غير المتكرر",
"选择文本窗口中文本框只读": "حدد مربع النص للقراءة فقط في نافذة النص"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "外部縮放軟件",
"Hook Magpie进程使其不会退出缩放": "Hook Magpie行程使其不會退出縮放",
"Hook LosslessScaling进程使其不会退出缩放": "Hook LosslessScaling行程使其不會退出縮放",
"正在使用日语模型作为代替,可能效果不佳": "正在使用日語模型作為代替,可能效果不佳"
"正在使用日语模型作为代替,可能效果不佳": "正在使用日語模型作為代替,可能效果不佳",
"保持非重复字符": "保持非重複字元",
"选择文本窗口中文本框只读": "選擇文字視窗中文字方塊只讀"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "External scaling software",
"Hook Magpie进程使其不会退出缩放": "Hook Magpie process prevents it from exiting scaling",
"Hook LosslessScaling进程使其不会退出缩放": "Hook LosslessScaling process prevents it from exiting scaling",
"正在使用日语模型作为代替,可能效果不佳": "Using Japanese models as a substitute may not be effective"
"正在使用日语模型作为代替,可能效果不佳": "Using Japanese models as a substitute may not be effective",
"保持非重复字符": "Keep non repeating characters",
"选择文本窗口中文本框只读": "Select read-only text boxes in the text window"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "Software de zoom externo",
"Hook Magpie进程使其不会退出缩放": "El proceso Hook magpie hace que no salga del zoom",
"Hook LosslessScaling进程使其不会退出缩放": "El proceso Hook losslessscaling hace que no salga del zoom",
"正在使用日语模型作为代替,可能效果不佳": "Se está utilizando el modelo japonés como sustituto y puede que no funcione bien"
"正在使用日语模型作为代替,可能效果不佳": "Se está utilizando el modelo japonés como sustituto y puede que no funcione bien",
"保持非重复字符": "Mantener caracteres no repetitivos",
"选择文本窗口中文本框只读": "Seleccione la ventana de texto en la que el cuadro de texto es de solo lectura"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "Logiciel de zoom externe",
"Hook Magpie进程使其不会退出缩放": "Le processus Hook Magpie ne quitte pas le zoom",
"Hook LosslessScaling进程使其不会退出缩放": "Hook losslesscaling processus pour ne pas quitter le zoom",
"正在使用日语模型作为代替,可能效果不佳": "Le modèle japonais est utilisé à la place, peut ne pas fonctionner aussi bien"
"正在使用日语模型作为代替,可能效果不佳": "Le modèle japonais est utilisé à la place, peut ne pas fonctionner aussi bien",
"保持非重复字符": "Garder les caractères non répétitifs",
"选择文本窗口中文本框只读": "Sélectionner une zone de texte en lecture seule dans la fenêtre de texte"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "Software di ridimensionamento esterno",
"Hook Magpie进程使其不会退出缩放": "Il processo Hook Magpie impedisce di uscire dalla scala",
"Hook LosslessScaling进程使其不会退出缩放": "Hook LosslessScaling processo impedisce di uscire dalla scalabilità",
"正在使用日语模型作为代替,可能效果不佳": "Utilizzare modelli giapponesi come sostituto potrebbe non essere efficace"
"正在使用日语模型作为代替,可能效果不佳": "Utilizzare modelli giapponesi come sostituto potrebbe non essere efficace",
"保持非重复字符": "Mantieni caratteri non ripetuti",
"选择文本窗口中文本框只读": "Selezionare le caselle di testo di sola lettura nella finestra di testo"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "外部ズームソフトウェア",
"Hook Magpie进程使其不会退出缩放": "Hook Magpieプロセスはスケールを終了しないようにする",
"Hook LosslessScaling进程使其不会退出缩放": "Hook LosslessScalingプロセスはスケーリングを終了しないようにする",
"正在使用日语模型作为代替,可能效果不佳": "代替として日本語モデルを使用していますが、効果が低いかもしれません"
"正在使用日语模型作为代替,可能效果不佳": "代替として日本語モデルを使用していますが、効果が低いかもしれません",
"保持非重复字符": "非反復文字の維持",
"选择文本窗口中文本框只读": "テキストウィンドウのテキストボックス読み取り専用を選択"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "외부 확대 / 축소 소프트웨어",
"Hook Magpie进程使其不会退出缩放": "Hook Magpie 프로세스로 인해 줌이 종료되지 않습니다.",
"Hook LosslessScaling进程使其不会退出缩放": "Hook LosslessScaling 프로세스로 인해 줌이 종료되지 않습니다.",
"正在使用日语模型作为代替,可能效果不佳": "일본어 모델을 대체하는 중입니다. 효과가 없을 수 있습니다"
"正在使用日语模型作为代替,可能效果不佳": "일본어 모델을 대체하는 중입니다. 효과가 없을 수 있습니다",
"保持非重复字符": "비반복 문자 유지",
"选择文本窗口中文本框只读": "텍스트 선택 창의 텍스트 상자 읽기 전용"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "Oprogramowanie do skalowania zewnętrznego",
"Hook Magpie进程使其不会退出缩放": "Proces Hook Magpie zapobiega zakończeniu skalowania",
"Hook LosslessScaling进程使其不会退出缩放": "Proces Hook Losslessless Scaling zapobiega zakończeniu skalowania",
"正在使用日语模型作为代替,可能效果不佳": "Używanie japońskich modeli jako substytutów może nie być skuteczne"
"正在使用日语模型作为代替,可能效果不佳": "Używanie japońskich modeli jako substytutów może nie być skuteczne",
"保持非重复字符": "Zachowaj niepowtarzające się znaki",
"选择文本窗口中文本框只读": "Zaznaczanie pola tekstowe tylko do odczytu w oknie tekstowym"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "Программное обеспечение для внешнего масштабирования",
"Hook Magpie进程使其不会退出缩放": "Процесс Hook Magpie не выводит из масштабирования",
"Hook LosslessScaling进程使其不会退出缩放": "Процесс Hook LosslessScaling не выводит из масштабирования",
"正在使用日语模型作为代替,可能效果不佳": "В качестве замены используется японская модель, которая может быть неэффективной"
"正在使用日语模型作为代替,可能效果不佳": "В качестве замены используется японская модель, которая может быть неэффективной",
"保持非重复字符": "Сохранить символ без повторения",
"选择文本窗口中文本框只读": "Выберите текстовое окно только для чтения"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "ซอฟต์แวร์ซูมภายนอก",
"Hook Magpie进程使其不会退出缩放": "กระบวนการ Hook Magpie ทำให้ไม่ออกจากการซูม",
"Hook LosslessScaling进程使其不会退出缩放": "Hook LosslessScaling กระบวนการทำให้มันไม่ออกจากซูม",
"正在使用日语模型作为代替,可能效果不佳": "ใช้แบบจำลองภาษาญี่ปุ่นแทนอาจไม่ได้ผล"
"正在使用日语模型作为代替,可能效果不佳": "ใช้แบบจำลองภาษาญี่ปุ่นแทนอาจไม่ได้ผล",
"保持非重复字符": "เก็บอักขระที่ไม่ซ้ำกัน",
"选择文本窗口中文本框只读": "เลือกกล่องข้อความในหน้าต่างข้อความ อ่านอย่างเดียว"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "Dışarı skalama yazılımı",
"Hook Magpie进程使其不会退出缩放": "Hook Magpie süreci ölçeklenmesini engelledi",
"Hook LosslessScaling进程使其不会退出缩放": "Hook LosslessScaling süreç ölçeklenmesini engelledi",
"正在使用日语模型作为代替,可能效果不佳": "Japon modellerini yerine koymak etkili olmayabilir."
"正在使用日语模型作为代替,可能效果不佳": "Japon modellerini yerine koymak etkili olmayabilir.",
"保持非重复字符": "Tekrarlamayan karakterleri tut",
"选择文本窗口中文本框只读": "Metin penceresindeki sadece okuyulmuş metin kutularını seçin"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "Зовнішнє програмне забезпечення масштабу",
"Hook Magpie进程使其不会退出缩放": "Процес Hook Magpie забороняє їй вийти з масштабу",
"Hook LosslessScaling进程使其不会退出缩放": "Процес безвтратного розміруScaling забороняє їй вийти з розміру",
"正在使用日语模型作为代替,可能效果不佳": "Використання японських моделей як заміни може бути неефективним"
"正在使用日语模型作为代替,可能效果不佳": "Використання японських моделей як заміни може бути неефективним",
"保持非重复字符": "Зберегти символи, які не повторюються",
"选择文本窗口中文本框只读": "Виберіть текстові поля для лише читання у текстовому вікні"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "Phần mềm Zoom ngoài",
"Hook Magpie进程使其不会退出缩放": "Quá trình Hook Magpie làm cho nó không thoát khỏi zoom",
"Hook LosslessScaling进程使其不会退出缩放": "Quá trình Hook LosslessScaling làm cho nó không thoát khỏi zoom",
"正在使用日语模型作为代替,可能效果不佳": "Các mô hình tiếng Nhật đang được sử dụng thay thế và có thể không hiệu quả"
"正在使用日语模型作为代替,可能效果不佳": "Các mô hình tiếng Nhật đang được sử dụng thay thế và có thể không hiệu quả",
"保持非重复字符": "Giữ các ký tự không trùng lặp",
"选择文本窗口中文本框只读": "Chọn hộp văn bản chỉ đọc trong cửa sổ văn bản"
}

View File

@ -705,5 +705,7 @@
"外部缩放软件": "",
"Hook Magpie进程使其不会退出缩放": "",
"Hook LosslessScaling进程使其不会退出缩放": "",
"正在使用日语模型作为代替,可能效果不佳": ""
"正在使用日语模型作为代替,可能效果不佳": "",
"保持非重复字符": "",
"选择文本窗口中文本框只读": ""
}