Fix macos clipboard race condition

This commit is contained in:
AuroraWright
2025-04-22 16:30:47 -07:00
parent 94e2ecc5a7
commit 5efea0f22f
2 changed files with 15 additions and 13 deletions

View File

@@ -16,8 +16,7 @@ import asyncio
import websockets import websockets
import socketserver import socketserver
from PIL import Image from PIL import Image, UnidentifiedImageError
from PIL import UnidentifiedImageError
from loguru import logger from loguru import logger
from pynput import keyboard from pynput import keyboard
from desktop_notifier import DesktopNotifierSync from desktop_notifier import DesktopNotifierSync
@@ -882,14 +881,17 @@ def run():
with objc.autorelease_pool(): with objc.autorelease_pool():
old_count = count old_count = count
count = pasteboard.changeCount() count = pasteboard.changeCount()
if not just_unpaused and count != old_count and NSPasteboardTypeTIFF in pasteboard.types(): if not just_unpaused and count != old_count:
clipboard_text = '' while len(pasteboard.types()) == 0:
if NSPasteboardTypeString in pasteboard.types(): time.sleep(0.1)
clipboard_text = pasteboard.stringForType_(NSPasteboardTypeString) if NSPasteboardTypeTIFF in pasteboard.types():
if ignore_flag or clipboard_text != '*ocr_ignore*': clipboard_text = ''
img = normalize_macos_clipboard(pasteboard.dataForType_(NSPasteboardTypeTIFF)) if NSPasteboardTypeString in pasteboard.types():
img = Image.open(io.BytesIO(img)) clipboard_text = pasteboard.stringForType_(NSPasteboardTypeString)
process_clipboard = True if ignore_flag or clipboard_text != '*ocr_ignore*':
img = normalize_macos_clipboard(pasteboard.dataForType_(NSPasteboardTypeTIFF))
img = Image.open(io.BytesIO(img))
process_clipboard = True
else: else:
if not paused: if not paused:
old_img = img old_img = img

View File

@@ -35,9 +35,9 @@
;api_key = api_key_here ;api_key = api_key_here
;endpoint = https://YOURPROJECT.cognitiveservices.azure.com/ ;endpoint = https://YOURPROJECT.cognitiveservices.azure.com/
[mangaocr] [mangaocr]
pretrained_model_name_or_path = kha-white/manga-ocr-base ;pretrained_model_name_or_path = kha-white/manga-ocr-base
force_cpu = False ;force_cpu = False
[easyocr] [easyocr]
gpu = True ;gpu = True
[ocrspace] [ocrspace]
;api_key = api_key_here ;api_key = api_key_here