Merge pull request #3 from radarhere/fix-imagegrab-with-wl-paste

Formatting
This commit is contained in:
Carl Weaver 2023-05-23 22:21:28 +08:00 committed by GitHub
commit 1dffa86e20
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 12 deletions

View File

@ -102,7 +102,7 @@ $ms = new-object System.IO.MemoryStream(, $bytes)
@pytest.mark.skipif( @pytest.mark.skipif(
( (
sys.platform != "linux" sys.platform != "linux"
or not all(shutil.which(cmd) for cmd in ["wl-paste", "wl-copy"]) or not all(shutil.which(cmd) for cmd in ("wl-paste", "wl-copy"))
), ),
reason="Linux with wl-clipboard only", reason="Linux with wl-clipboard only",
) )
@ -111,5 +111,5 @@ $ms = new-object System.IO.MemoryStream(, $bytes)
image_path = "Tests/images/hopper." + ext image_path = "Tests/images/hopper." + ext
with open(image_path, "rb") as fp: with open(image_path, "rb") as fp:
subprocess.call(["wl-copy"], stdin=fp) subprocess.call(["wl-copy"], stdin=fp)
im = ImageGrab.grabclipboard() im = ImageGrab.grabclipboard()
assert_image_equal_tofile(im, image_path) assert_image_equal_tofile(im, image_path)

View File

@ -142,17 +142,16 @@ def grabclipboard():
return None return None
else: else:
if shutil.which("wl-paste"): if shutil.which("wl-paste"):
args = ["wl-paste"]
output = subprocess.check_output(["wl-paste", "-l"]).decode() output = subprocess.check_output(["wl-paste", "-l"]).decode()
clipboard_mimetypes = output.splitlines() mimetypes = output.splitlines()
if "image/png" in mimetypes:
mimetype = "image/png"
elif mimetypes:
mimetype = mimetypes[0]
else:
mimetype = None
def find_mimetype(): args = ["wl-paste"]
if "image/png" in clipboard_mimetypes:
return "image/png"
if clipboard_mimetypes:
return clipboard_mimetypes[0]
mimetype = find_mimetype()
if mimetype: if mimetype:
args.extend(["-t", mimetype]) args.extend(["-t", mimetype])
elif shutil.which("xclip"): elif shutil.which("xclip"):