2008년 12월 17일
AppleScript로 IRC 창에 스샷을 뿌리자!!!!
이런 스크립트를 짜게 된 계기는 우선 맥북을 쓰면서 리눅스 유저들의 편리한 스샷질? 이 부러워서 였습니다.
뭐 맥으로도 할수 없을까 고민하다가 맥의 기본내장되어있는 스샷기능과 Cyberduck 이라는 FTP클라이언트
그리고 Colloquy IRC 클라인트 그리고 QuickSilve를 이용하여 IRC창에 스샷을 뿌려주는 스크립트를 만들게 되었습니니다.
좀 허접하지만, 어여뿌게 봐주세용^^
아래 사진은 제가 찍은 스샷화면입니다.
동작을 설명하면 간단합니다. 스샷을 찍고 그 파일을 FTP에 올리고 섭의 이미지 주소를 IRC에 뿌려주는 동작을 하는 스크립트죠..
우선 소스부터 간단히 보면
소스보기
소스에서 보는것과 괕이 Current Date에서 시간을 변수에 저장합니다 년 월 일 시간을 각각 따로 저장한이유는
the current date 만 문자열로 출력할경우 공백과 한글등이 삽입되여 출력됨으로 파일명으로 적절치 않기 때문에 각각 따로 뽑아서 붙이는 방식을 택했습니다. 네그렇습니다. 시간을 사용해서 중복된 이름이 생기기 않게 하기위함이죠.
do shell script "/usr/sbin/screencapture " & image_location & AddPng
에서 스샷을 찍는 동작을 수행하고 이는 기본적으로 내장된 스크립트입니다.
찍은 스샷을 FTP올리기 위해서 FTP클라이언트를 오픈하고
set theServer to "XXXXX.home.co.kr"
set theProtocol to "ftp"
set theUser to "XXXXX"
set theRemoteFolder to "/html/ScreenShot"
에서 저장한 변수의 값으로 섭에 연결을 하고 업로드를 수행하고 연결을 종료합니다.
개인적인 id와 섭주소는 가렸습니다.
그리고 IRC 창에 업로드한 이미지를 뿌리기 위해서 Colloquy를 오픈하고 이미지 주소를 메세지로 뿌려줍니다.
여기서 혹시 꼭 IRC로만 뿌려야 하나 하는 의구심이 드는분들은
-- IRC창을 활성화 시키고 주소를 출력
ignoring application responses
tell application "Colloquy"
activate
send message IMGLocation & DTimeSTM & AddPng
end tell
end ignoring
이부분 대신에 아래와 같이 수정하시면 됩니다.
display dialog the IMGLocation & DTimeSTM & AddPng buttons {"Clipboard", "OK"} default button 1
if the button returned of the result is "Clipboard" then
set the clipboard to the IMGLocation & DTimeSTM & AddPng
end if
네 이건 이미지 주소를 메세제창으로 출력해주는 겁니다.
클립보드로 복사를 할수있는 버튼을 넣어서 편하게 필요한 곳에 붙여 넣어서 사용 하실수 있습니다.
위 소스로 수정후 실행하면 아래 사진과 같습니다.

Clipboard버튼이 활성화 되어있으니 return 키난 눌러서 붙여넣기 하면 되겠죠.
이런 일련의 동작을 ApplScript창을 뛰워서 실행을 눌러서 동작해야 되느냐? 그건 불편하기때문에..
단축키로 만들어야 겠죠...
단축키로 만들기 위해서는 위동작을 수행하는 AppleScript를 응용 프로그램 만들어 줍니다
방법은 아래 그림과 같이
ApplScript편집창에서 파일-별도저장을 선택합니다.
파일포멧을 응용프로그램으로 선택하고,
실행전용만 체그합니다. 시동화면을 뛰우면 불편하기때문에....
이렇게 저장해둔 응용프로그램을 QuickSilver라는 맥유저에게는 엄청 잘알려진 프로그램이 있죠...QuicSilver 사용은 여기선 생략하겠습니다. 워낙 잘알려진 프로그램이라서...
QuickSilver 프로그램을 이용해서 단축키를 설정해주시면 필요할때 마다 단축키로 스샷을 찍고 그 결과를 다른사람들과 공유할수 있죠...
# by | 2008/12/17 15:53 | 맥북Think | 트랙백 | 덧글(1)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]