Compare commits
No commits in common. "ad306ad0e95a2265161e7c4f4062c70fb2b259a5" and "c2d48d48b1f09239dd3a2b603c5c1f44ef589d89" have entirely different histories.
ad306ad0e9
...
c2d48d48b1
|
@ -1,19 +1,18 @@
|
||||||
#!/usr/bin/python3
|
#!python3
|
||||||
import struct
|
import struct
|
||||||
import socket
|
import socket
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import mimetypes
|
import mimetypes
|
||||||
import subprocess
|
|
||||||
|
|
||||||
s = socket.socket(socket.AF_UNIX)
|
s = socket.socket(socket.AF_UNIX)
|
||||||
s.connect(os.path.join(os.environ["HOME"], ".mailcap.sock"))
|
s.connect(os.path.join(os.environ["HOME"], ".mailcap.sock"))
|
||||||
|
|
||||||
filename = sys.argv[1]
|
file = sys.argv[1]
|
||||||
mime = subprocess.run(["file", "-i", "-b", filename], check=True, stdout=subprocess.PIPE).stdout.decode('utf-8')
|
mime = mimetypes.guess_type(file)[0]
|
||||||
data = open(filename, "rb").read()
|
data = open(file, "rb").read()
|
||||||
|
|
||||||
def strtr(x, c="B"):
|
def strtr(x, c="B"):
|
||||||
return struct.pack(c, len(x)) + x
|
return struct.pack(c, len(x)) + x
|
||||||
|
|
||||||
s.sendall(strtr(filename.encode('utf-8')) + strtr(mime.encode('utf-8')) + strtr(data, "!I"))
|
s.sendall(strtr(file.encode('utf-8')) + strtr(mime.encode('utf-8')) + strtr(data, "!I"))
|
||||||
|
|
|
@ -112,8 +112,8 @@ if __name__ == "__main__":
|
||||||
if rv:
|
if rv:
|
||||||
f, mime = rv
|
f, mime = rv
|
||||||
print(f, mime)
|
print(f, mime)
|
||||||
match = mailcap.findmatch(caps, mime.split(';')[0], filename=f)
|
match = mailcap.findmatch(caps, mime, filename=f)
|
||||||
if match and match[0]:
|
if match:
|
||||||
os.system(match[0])
|
os.system(match[0])
|
||||||
if 'nodelete' not in match[1]:
|
if 'nodelete' not in match[1]:
|
||||||
os.remove(f)
|
os.remove(f)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user