This commit is contained in:
恍兮惚兮 2024-05-11 02:54:46 +08:00
parent e3dde783c8
commit c021aca406
20 changed files with 95 additions and 54 deletions

View File

@ -808,7 +808,7 @@ class hookselect(closeashidewindow):
):
ishide = True
for i in range(
min(len(gobject.baseobject.textsource.hookdatacollecter[key]), 20)
len(gobject.baseobject.textsource.hookdatacollecter[key])
):
if any(
@ -975,13 +975,10 @@ class hookselect(closeashidewindow):
try:
# print(gobject.baseobject.textsource)
gobject.baseobject.textsource.selectinghook = self.save[index.row()]
pid, addr, ctx1, ctx2, _, _ = self.save[index.row()]
self.textOutput.setPlainText(
"\n".join(
gobject.baseobject.textsource.hookdatacollecter[
self.save[index.row()]
]
)
gobject.baseobject.textsource.QueryThreadHistory(pid, addr, ctx1, ctx2)
)
self.textOutput.moveCursor(QTextCursor.End)

View File

@ -74,18 +74,32 @@ def gethookgrid(self):
),
],
[
("文本缓冲区长度", 5),
("最大缓冲区长度", 5),
(
getspinbox(
0,
10000,
1000000,
globalconfig,
"flushbuffersize",
"maxBufferSize",
callback=lambda x: gobject.baseobject.textsource.setsettings(),
),
3,
),
],
[
("最大缓存文本长度", 5),
(
getspinbox(
0,
1000000000,
globalconfig,
"maxHistorySize",
callback=lambda x: gobject.baseobject.textsource.setsettings(),
),
3,
),
],
[],
[
("过滤包含乱码的文本行", 5),
(getsimpleswitch(globalconfig, "filter_chaos_code"), 1),

View File

@ -76,7 +76,7 @@ class SearchParam(Structure):
findhookcallback_t = CFUNCTYPE(None, c_wchar_p, c_wchar_p)
ProcessEvent = CFUNCTYPE(None, DWORD)
ThreadEvent = CFUNCTYPE(None, c_wchar_p, c_char_p, ThreadParam)
OutputCallback = CFUNCTYPE(None, c_wchar_p, c_char_p, ThreadParam, c_wchar_p)
OutputCallback = CFUNCTYPE(c_bool, c_wchar_p, c_char_p, ThreadParam, c_wchar_p)
ConsoleHandler = CFUNCTYPE(None, c_wchar_p)
HookInsertHandler = CFUNCTYPE(None, c_uint64, c_wchar_p)
EmbedCallback = CFUNCTYPE(None, c_wchar_p, ThreadParam)
@ -98,7 +98,6 @@ class texthook(basetext):
self.hookdatacollecter = OrderedDict()
self.hooktypecollecter = OrderedDict()
self.currentname = None
self.numcharactorcounter = {}
self.reverse = {}
self.forward = []
self.selectinghook = None
@ -139,7 +138,7 @@ class texthook(basetext):
)
)
self.Luna_Settings = LunaHost.Luna_Settings
self.Luna_Settings.argtypes = c_int, c_bool, c_int, c_int
self.Luna_Settings.argtypes = c_int, c_bool, c_int, c_int, c_int
self.Luna_Start = LunaHost.Luna_Start
self.Luna_Start.argtypes = (
c_void_p,
@ -188,6 +187,24 @@ class texthook(basetext):
self.Luna_embedcallback = LunaHost.Luna_embedcallback
self.Luna_embedcallback.argtypes = DWORD, LPCWSTR, LPCWSTR
self.Luna_FreePtr = LunaHost.Luna_FreePtr
self.Luna_FreePtr.argtypes = (c_void_p,)
self.Luna_QueryThreadHistory = LunaHost.Luna_QueryThreadHistory
self.Luna_QueryThreadHistory.argtypes = (ThreadParam,)
self.Luna_QueryThreadHistory.restype = c_void_p
def QueryThreadHistory(self, pid, addr, ctx1, ctx2):
tp = ThreadParam()
tp.addr = addr
tp.processId = pid
tp.ctx = ctx1
tp.ctx2 = ctx2
ws = self.Luna_QueryThreadHistory(tp)
string = cast(ws, c_wchar_p).value
self.Luna_FreePtr(ws)
return string
def Luna_Startup(self):
procs = [
ProcessEvent(self.onprocconnect),
@ -349,7 +366,8 @@ class texthook(basetext):
globalconfig["textthreaddelay"],
globalconfig["direct_filterrepeat"],
self.codepage(),
globalconfig["flushbuffersize"],
globalconfig["maxBufferSize"],
globalconfig["maxHistorySize"],
)
def codepage(self):
@ -439,11 +457,11 @@ class texthook(basetext):
key = self.parsetextthread(hc, hn, tp)
if globalconfig["filter_chaos_code"] and checkchaos(output):
return
return False
if key not in self.hookdatacollecter:
if self.onnewhook(hc, hn, tp) == False:
return
return False
self.lock.acquire()
if self.hooktypecollecter[key] == 1:
self.currentname = output
@ -457,16 +475,12 @@ class texthook(basetext):
if key == self.selectinghook:
gobject.baseobject.hookselectdialog.getnewsentencesignal.emit(output)
if key not in self.numcharactorcounter:
self.numcharactorcounter[key] = 0
while self.numcharactorcounter[key] > 1000000:
_ = self.hookdatacollecter[key].pop(0)
self.numcharactorcounter[key] -= len(_)
self.hookdatacollecter[key].append(output)
self.numcharactorcounter[key] += len(output)
self.hookdatacollecter[key] = self.hookdatacollecter[key][-100:]
gobject.baseobject.hookselectdialog.update_item_new_line.emit(key, output)
self.lock.release()
return True
def checkisusingembed(self, address, ctx1, ctx2):
for pid in self.connectedpids:

View File

@ -75,7 +75,8 @@
"button_color_close": "#D32424",
"button_color_normal": "#FFFFFF",
"textthreaddelay": 500,
"flushbuffersize": 3000,
"maxBufferSize": 3000,
"maxHistorySize": 1000000,
"transuigeo": [
500,
500,

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "ساكورا نشر البرنامج التعليمي",
"Github仓库": "مستودع جيتوب",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "استخدام المعلومات الواردة أعلاه في الترجمة ( عادة ما يكون هناك بعض التحسن ، ولكن يمكن أن يؤدي إلى إبطاء )",
"文本缓冲区长度": "نص طول المخزن المؤقت",
"历史翻译和调试输出": "تاريخ الترجمة وتصحيح الأخطاء الناتج",
"调试输出": "التصحيح الناتج",
"显示翻译": "عرض الترجمة",
@ -770,5 +769,7 @@
"投影字体": "عرض الخط",
"发光字体": "خط الانارة",
"发光亮度": "سطوع مضيئة",
"投影距离": "المسافة المتوقعة"
"投影距离": "المسافة المتوقعة",
"最大缓冲区长度": "أقصى طول المخزن المؤقت",
"最大缓存文本长度": "أقصى طول النص مخبأ"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Sakura部署教程",
"Github仓库": "Github倉庫",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "利用上文資訊翻譯(通常會有一定的效果提升,但會導致變慢)",
"文本缓冲区长度": "文字緩衝區長度",
"历史翻译和调试输出": "歷史翻譯和調試輸出",
"调试输出": "調試輸出",
"显示翻译": "顯示翻譯",
@ -770,5 +769,7 @@
"投影字体": "投影字體",
"发光字体": "發光字體",
"发光亮度": "發光亮度",
"投影距离": "投影距離"
"投影距离": "投影距離",
"最大缓冲区长度": "最大緩衝區長度",
"最大缓存文本长度": "最大緩存文字長度"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Sakura Deployment Tutorial",
"Github仓库": "Github warehouse",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "Translate using the information provided in the previous text (usually with some improvement in effectiveness, but it can lead to slower translation)",
"文本缓冲区长度": "Text buffer length",
"历史翻译和调试输出": "Historical translation and debugging output",
"调试输出": "Debugging output",
"显示翻译": "Display translation",
@ -770,5 +769,7 @@
"投影字体": "Projection font",
"发光字体": "Luminous font",
"发光亮度": "luminance",
"投影距离": "Projection distance"
"投影距离": "Projection distance",
"最大缓冲区长度": "Maximum buffer length",
"最大缓存文本长度": "Maximum cached text length"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Guía de despliegue Sakura",
"Github仓库": "Almacén github",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "Traducción utilizando la información anterior (generalmente tiene un cierto efecto de mejora, pero puede causar lentitud)",
"文本缓冲区长度": "Longitud del colchón de texto",
"历史翻译和调试输出": "Traducción histórica y salida de depuración",
"调试输出": "Salida de depuración",
"显示翻译": "Mostrar traducción",
@ -770,5 +769,7 @@
"投影字体": "Fuente de proyección",
"发光字体": "Fuente luminosa",
"发光亮度": "Brillo luminoso",
"投影距离": "Distancia de proyección"
"投影距离": "Distancia de proyección",
"最大缓冲区长度": "Longitud máxima de la zona de amortiguación",
"最大缓存文本长度": "Longitud máxima del texto en caché"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Tutoriel de déploiement Sakura",
"Github仓库": "Entrepôt github",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "Utilisez les informations ci - dessus pour traduire (il y a généralement une certaine augmentation de l'effet, mais cela entraîne un ralentissement)",
"文本缓冲区长度": "Longueur du tampon de texte",
"历史翻译和调试输出": "Traduction historique et sortie de débogage",
"调试输出": "Sortie de débogage",
"显示翻译": "Afficher la traduction",
@ -770,5 +769,7 @@
"投影字体": "Polices de projection",
"发光字体": "Polices lumineuses",
"发光亮度": "Luminosité lumineuse",
"投影距离": "Distance de projection"
"投影距离": "Distance de projection",
"最大缓冲区长度": "Longueur maximale du tampon",
"最大缓存文本长度": "Longueur maximale du texte mis en cache"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Tutorial sull'implementazione di Sakura",
"Github仓库": "Magazzino Github",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "Tradurre utilizzando le informazioni fornite nel testo precedente (di solito con qualche miglioramento in efficacia, ma può portare a una traduzione più lenta)",
"文本缓冲区长度": "Lunghezza buffer di testo",
"历史翻译和调试输出": "Risultato storico di traduzione e debug",
"调试输出": "Debug output",
"显示翻译": "Mostra traduzione",
@ -770,5 +769,7 @@
"投影字体": "Carattere di proiezione",
"发光字体": "Carattere luminoso",
"发光亮度": "luminanza",
"投影距离": "Distanza di proiezione"
"投影距离": "Distanza di proiezione",
"最大缓冲区长度": "Lunghezza massima del buffer",
"最大缓存文本长度": "Lunghezza massima del testo memorizzato nella cache"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Sakura導入チュートリアル",
"Github仓库": "Github倉庫",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "上記の情報翻訳を利用する(通常は一定の効果が上がるが、遅くなる)",
"文本缓冲区长度": "テキストバッファ長",
"历史翻译和调试输出": "履歴翻訳とデバッグ出力",
"调试输出": "デバッグ出力",
"显示翻译": "翻訳を表示",
@ -770,5 +769,7 @@
"投影字体": "投影フォント",
"发光字体": "発光フォント",
"发光亮度": "発光輝度",
"投影距离": "とうえいきょり"
"投影距离": "とうえいきょり",
"最大缓冲区长度": "最大バッファ長",
"最大缓存文本长度": "最大キャッシュテキスト長"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Sakura 배포 자습서",
"Github仓库": "Github 창고",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "위의 정보를 사용하여 번역 (일반적으로 효과가 향상되지만 느려질 수 있음)",
"文本缓冲区长度": "텍스트 버퍼 길이",
"历史翻译和调试输出": "역사 번역 및 디버그 출력",
"调试输出": "출력 디버그",
"显示翻译": "번역 표시",
@ -770,5 +769,7 @@
"投影字体": "글꼴 투영",
"发光字体": "발광 글꼴",
"发光亮度": "광도",
"投影距离": "투영 거리"
"投影距离": "투영 거리",
"最大缓冲区长度": "최대 버퍼 길이",
"最大缓存文本长度": "최대 캐시 텍스트 길이"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Samouczek wdrażania Sakury",
"Github仓库": "Magazyn Github",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "Przetłumacz za pomocą informacji podanych w poprzednim tekście (zwykle z pewną poprawą skuteczności, ale może to prowadzić do wolniejszego tłumaczenia)",
"文本缓冲区长度": "Długość bufora tekstu",
"历史翻译和调试输出": "Historiczne tłumaczenie i debugowanie",
"调试输出": "Wyjście debugowania",
"显示翻译": "Wyświetl tłumaczenie",
@ -770,5 +769,7 @@
"投影字体": "Czcionka projekcji",
"发光字体": "Jasna czcionka",
"发光亮度": "luminancja",
"投影距离": "Odległość projekcji"
"投影距离": "Odległość projekcji",
"最大缓冲区长度": "Maksymalna długość bufora",
"最大缓存文本长度": "Maksymalna długość buforowanego tekstu"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Курс развертывания Sakura",
"Github仓库": "Склад Github",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "Использование вышеприведенного перевода информации (обычно имеет определенный эффект улучшения, но приводит к замедлению)",
"文本缓冲区长度": "Длина буфера текста",
"历史翻译和调试输出": "Исторический перевод и отладка вывода",
"调试输出": "Отладочный вывод",
"显示翻译": "Показать перевод",
@ -770,5 +769,7 @@
"投影字体": "Проекционный шрифт",
"发光字体": "Светящийся шрифт",
"发光亮度": "Светимость",
"投影距离": "Расстояние проекции"
"投影距离": "Расстояние проекции",
"最大缓冲区长度": "Максимальная длина буфера",
"最大缓存文本长度": "Максимальная длина текста кэша"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Sakura Deployment กวดวิชา",
"Github仓库": "คลังสินค้า Github",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "ใช้ประโยชน์จากการแปลข้อมูลข้างต้น (มักจะมีผลบางอย่างเพิ่มขึ้น แต่ทำให้ช้าลง)",
"文本缓冲区长度": "ความยาวบัฟเฟอร์ข้อความ",
"历史翻译和调试输出": "การแปลประวัติและการแก้จุดบกพร่องเอาท์พุท",
"调试输出": "การว่าจ้างเอาท์พุท",
"显示翻译": "แสดงคำแปล",
@ -770,5 +769,7 @@
"投影字体": "Projection ตัวอักษร",
"发光字体": "Luminous ตัวอักษร",
"发光亮度": "ความสว่างส่องสว่าง",
"投影距离": "ระยะการฉาย"
"投影距离": "ระยะการฉาย",
"最大缓冲区长度": "ความยาวบัฟเฟอร์สูงสุด",
"最大缓存文本长度": "ความยาวสูงสุดของข้อความแคช"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Sakura Deployment Tutorial",
"Github仓库": "Github deposu",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "Önceki metinde verilen bilgileri kullanarak çevirin (genelde etkinliğinde bazı gelişmelerle, fakat daha yavaş çeviriye yol açabilir)",
"文本缓冲区长度": "Metin buffer uzunluğu",
"历史翻译和调试输出": "Tarihi çeviri ve hata ayıklama çıkışı",
"调试输出": "Hata ayıklama çıkışı",
"显示翻译": "Çeviri göster",
@ -770,5 +769,7 @@
"投影字体": "Projeksyon yazıtipi",
"发光字体": "Açık yazıtipi",
"发光亮度": "ışık",
"投影距离": "Projeksyon mesafesi"
"投影距离": "Projeksyon mesafesi",
"最大缓冲区长度": "Azamik buffer uzunluğu",
"最大缓存文本长度": "Maximum cached text length"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Навчення розробки Sakura",
"Github仓库": "Сховище Github",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "Переклад за допомогою інформації, наданої у попередньому тексті (зазвичай, з деяким покращенням ефективності, але це може призвести до повільнішого перекладу)",
"文本缓冲区长度": "Довжина текстового буфера",
"历史翻译和调试输出": "Історічний переклад і вивід зневаджування",
"调试输出": "Вивод зневаджування",
"显示翻译": "Показувати переклад",
@ -770,5 +769,7 @@
"投影字体": "Шрифт проектування",
"发光字体": "Світливий шрифт",
"发光亮度": "світло",
"投影距离": "Відстань проекту"
"投影距离": "Відстань проекту",
"最大缓冲区长度": "Максимальна довжина буфера",
"最大缓存文本长度": "Максимальна довжина кешування тексту"
}

View File

@ -643,7 +643,6 @@
"Sakura部署教程": "Hướng dẫn triển khai Sakura",
"Github仓库": "Kho Github",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "Sử dụng thông tin trên để dịch (thường có một số hiệu ứng tăng lên, nhưng có thể dẫn đến chậm hơn)",
"文本缓冲区长度": "Chiều dài bộ đệm văn bản",
"历史翻译和调试输出": "Lịch sử dịch và gỡ lỗi đầu ra",
"调试输出": "Đầu ra gỡ lỗi",
"显示翻译": "Hiện bản dịch",
@ -770,5 +769,7 @@
"投影字体": "Phông chiếu",
"发光字体": "Phông phát sáng",
"发光亮度": "Độ sáng phát sáng",
"投影距离": "Khoảng cách chiếu"
"投影距离": "Khoảng cách chiếu",
"最大缓冲区长度": "Chiều dài bộ đệm tối đa",
"最大缓存文本长度": "Độ dài văn bản bộ nhớ cache tối đa"
}

View File

@ -642,7 +642,6 @@
"Sakura部署教程": "",
"Github仓库": "",
"利用上文信息翻译(通常会有一定的效果提升,但会导致变慢)": "",
"文本缓冲区长度": "",
"历史翻译和调试输出": "",
"历史翻译": "",
"调试输出": "",
@ -770,5 +769,7 @@
"投影字体": "",
"发光字体": "",
"发光亮度": "",
"投影距离": ""
"投影距离": "",
"最大缓冲区长度": "",
"最大缓存文本长度": ""
}

View File

@ -28,8 +28,8 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/version)
include(generate_product_version)
set(VERSION_MAJOR 2)
set(VERSION_MINOR 49)
set(VERSION_PATCH 2)
set(VERSION_MINOR 50)
set(VERSION_PATCH 0)
add_library(pch pch.cpp)
target_precompile_headers(pch PUBLIC pch.h)