快速上传截图到flickr并发送twitter

Linux下也许没有很好的截图工具,但是你可以打造最符合你需求的工具。本文将介绍如何用Python写一个上传图片到flickr的脚本,并编写相应bash脚本使其更易于使用。
以下代码在Arch Linux下测试通过。

准备工作

你需要安装一些软件:
sudo pacman -S python-pip xsel scrot
sudo easy_install-2.7 flickrapi

其中python-pip就是安装easy_install命令。

程序代码

以下是upload2flickr的源代码

01 #!/usr/bin/env /usr/bin/python2.7
02
03 import flickrapi
04 import flickrapi.shorturl
05 import sys
06
07 api_key = '2f219f9746e87b68dfe4eec9c695d6e9'
08 api_secret = '3e635cb917644339'
09
10 if len(sys.argv) >= 2:
11     flickr = flickrapi.FlickrAPI(api_key, api_secret)
12     (token, frob) = flickr.get_token_part_one(perms='write')
13     if not token: raw_input("Press ENTER after you authorized this program")
14     flickr.get_token_part_two((token, frob))
15    
16     if len(sys.argv)==2:
17         result = flickr.upload(filename=sys.argv[1],tags='Quick_Screenshot')
18     elif len(sys.argv)==3:
19         result = flickr.upload(filename=sys.argv[1],title=sys.argv[2],tags='Quick_Screenshot')
20
21     print flickrapi.shorturl.url(result.find('photoid').text)
22 else :
23     print "Error Parameter"

以下是sshot脚本

01 #!/bin/bash
02
03 FPATH="/tmp/Quick_Screenshot.png"
04
05 scrot -bs $FPATH
06
07 if [ $# == 0 ]
08 then
09     URL=$(upload2flickr $FPATH)
10 else
11     URL=$(upload2flickr $FPATH "$1")
12 fi
13
14 if [ $# == 2 ]
15 then
16     if [ $2 == "-t" ]
17     then
18         tweet "$1 $URL"
19     fi
20 fi
21
22 echo $URL | xsel -b -i
23
24 notify-send '<span color="green" size=”18000″>The screenshot is uploaded to '$URL'</span>'

用如下命令完成以上两个命令的安装工作
sudo wget http://micbase.com/wp-content/uploads/2011/04/upload2flickr -P /usr/bin
sudo wget http://micbase.com/wp-content/uploads/2011/04/sshot -P /usr/bin
sudo chmod +x /usr/bin/upload2flickr
sudo chmod +x /usr/bin/sshot

其中tweet命令也是自建命令,请参考用Python实现从命令行发twitter;upload2flickr中的API KEY是我自建的一个app,你也可以用自己的替换。

使用方法

sshot截图,运行该命令后,用鼠标拖选一个区域后,程序就会自动截图并上传,并在桌面提示结果,而且复制图片URL至剪切板。
sshot
sshot截图并添加标题
sshot title
sshot截图并添加标题,同时在twitter中发送
sshot title -t

实际上upload2flickr命令也可以单独使用
upload2flickr快速上传图片
upload2flickr path-of-file

upload2flickr上传图片并添加标题
upload2flickr path-of-file title

另外,如果使用awesome的话,在rc.lua中添加一个快捷键绑定,实现快捷键截图,非常方便。

参考资料

Python Flickr API kit

Linux , , , , , ,

1 comment


Leave a Reply

Your email address will not be published. Required fields are marked *