18 lines
1.9 KiB
Python
18 lines
1.9 KiB
Python
from pathlib import Path
|
|
import os
|
|
import difflib
|
|
for root in (Path('C:/wechat_rpa'), Path('C:/kefu/wechat_rpa')):
|
|
p = root / 'wechat_gui_qt.py'
|
|
s = p.read_text(encoding='utf-8')
|
|
s = s.replace(' guard = DesktopInstanceGuard()\n activation_timer = None\n try:\n try:\n primary = guard.acquire()', ' guard = None\n activation_timer = None\n try:\n try:\n guard = DesktopInstanceGuard()\n primary = guard.acquire()', 1)
|
|
s = s.replace(' guard.close()\n\n\ndef _run_desktop_session', ' if guard is not None:\n guard.close()\n\n\ndef _run_desktop_session', 1)
|
|
s = s.replace(' self._close_minimized = True\n self._tray_hidden = False', ' if not self.isVisible() or self.capsule.isVisible():\n self.expand_console()\n self._close_minimized = True\n self._tray_hidden = False', 1)
|
|
s = s.replace(' def changeEvent(self, event) -> None:\n if event.type() == QEvent.Type.WindowStateChange and hasattr(self, "_scale_timer"):', ' def changeEvent(self, event) -> None:\n if (event.type() == QEvent.Type.WindowStateChange and not self.isMinimized()\n and not getattr(self, "_tray_hidden", False)):\n self._close_minimized = False\n if event.type() == QEvent.Type.WindowStateChange and hasattr(self, "_scale_timer"):', 1)
|
|
compile(s, str(p), 'exec')
|
|
t = p.with_suffix('.tray.tmp')
|
|
t.write_text(s, encoding='utf-8')
|
|
os.replace(t, p)
|
|
old = (root / 'backups/single-instance-tray-20260917/wechat_gui_qt.py').read_text(encoding='utf-8')
|
|
diffname = 'production-qt.diff' if root == Path('C:/wechat_rpa') else 'source-qt.diff'
|
|
(Path(__file__).parent / diffname).write_text(''.join(difflib.unified_diff(old.splitlines(True), s.splitlines(True), fromfile='before/wechat_gui_qt.py', tofile=str(p))), encoding='utf-8')
|