GrabBox는 Sierra로 인해 이동할 수 없습니다.
개요
정황
대응
move2dropbox.py
# -*- coding: utf-8 -*-
import time
import os
import uuid
import shutil
import subprocess
from PIL import Image
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
here = os.path.abspath(os.path.dirname(__file__))
HOME_DIR = os.path.expanduser('~')
SCREENSHOT_DIR = os.path.join(here, 'screenshot')
DROPBOX_DIR = os.path.join(HOME_DIR, 'Dropbox', 'アプリ', 'GrabBox')
DROPBOX_URL = 'https://dl.dropboxusercontent.com/spa/xxxxxxxxx/'
CMD_LOCATION = 'defaults write com.apple.screencapture location {}'.format(SCREENSHOT_DIR) # NOQA
CMD_NAME = 'defaults write com.apple.screencapture name "grabox"'
CMD_KILLALL = 'killall SystemUIServer'
def resize_for_retina(imgfile):
img = Image.open(imgfile)
resized = img.resize([int(0.5 * s) for s in img.size])
resized.save(imgfile)
class MyHandler(FileSystemEventHandler):
def on_created(self, event):
for img in os.listdir(SCREENSHOT_DIR):
if not img.endswith('.png'):
continue
new_img = '{}.png'.format(uuid.uuid4().hex)
resize_for_retina(os.path.join(SCREENSHOT_DIR, img))
shutil.move(
os.path.join(SCREENSHOT_DIR, img),
os.path.join(DROPBOX_DIR, new_img)
)
subprocess.call(
'echo "{}" | pbcopy'.format(DROPBOX_URL + new_img),
shell=True
)
if __name__ == "__main__":
if not os.path.exists(SCREENSHOT_DIR):
os.makedirs(SCREENSHOT_DIR)
subprocess.call(CMD_LOCATION, shell=True)
subprocess.call(CMD_NAME, shell=True)
subprocess.call(CMD_KILLALL, shell=True)
observer = Observer()
observer.schedule(MyHandler(), path=SCREENSHOT_DIR, recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
마지막으로 백스테이지에서 이 스크립트를 두드리는 조개 스크립트를 만듭니다.move2dropbox.command
nohup python /path/to/move2dropbox.py > /dev/null 2>&1 &
".command"확장자로 시스템 환경 사용자 및 그룹 > 로그인 항목에 등록이렇게 로그인하면 위의 모니터링 스크립트가 임의로 실행됩니다.
총결산
추기 (2016/10/31)
추천한 물건을 열거하다
Reference
이 문제에 관하여(GrabBox는 Sierra로 인해 이동할 수 없습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tell-k/items/451dd2cf117748f5c792텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)