黑松山资源网 Design By www.paidiu.com
引子
Linux下不支持QQ等功能丰富的IM,虽然可以通过wine运行QQ2012,但是还是喜欢在gtalk群中聊天,gtalk群不支持图片方式,这就要靠我们大家自己来解决了,eleven开放了一个Image上传和显示接口,提供了使用curl来解决,但是我们公司的网络使用squid禁止了curl的访问,所以整天看他们这么爽的分享图片我也不甘心阿,所以就使用Python写了一个分享图片的脚本
实现
使用scrot截图,然后使用urllib2库上传图片,如果存在PyQt4库则会将结果放到剪贴板上,如果不存在则输出,自行复制
代码
#!/usr/bin/env python # -*- coding:utf-8 -*- # # Author : cold # E-mail : wh_linux@126.com # Date : 13/01/21 09:54:39 # Desc : 贴代码和图片 # import urllib2, json import mimetools import mimetypes import itertools __host__ = "http://eleveni386.7axu.com" class Form(object): def __init__(self): self.form_fields = [] self.files = [] self.boundary = mimetools.choose_boundary() self.content_type = "application/x-www-form-urlencoded" return def get_content_type(self): return self.content_type def add_field(self, name, value): self.form_fields.append((name, value)) return def add_file(self, fieldname, filename, fileHandle, mimetype=None): body = fileHandle.read() if mimetype is None: mimetype = ( mimetypes.guess_type(filename)[0] or 'applicatioin/octet-stream') self.files.append((fieldname, filename, mimetype, body)) self.content_type = 'multipart/form-data; boundary=%s' % self.boundary return def __str__(self): parts = [] part_boundary = '--' + self.boundary parts.extend( [ part_boundary, 'Content-Disposition: form-data; name="%s"' % name, '', value, ] for name, value in self.form_fields) if self.files: parts.extend([ part_boundary, 'Content-Disposition: form-data; name="%s"; filename="%s"' % (field_name, filename), 'Content-Type: %s' % content_type, '', body, ] for field_name, filename, content_type, body in self.files) flattened = list(itertools.chain(*parts)) flattened.append('--' + self.boundary + '--') flattened.append('') return '\r\n'.join(flattened) class HttpHelper(object): def __init__(self, url = None, form = None, method = 'GET'): self._url = url self._form = form self._body = str(form) self._method = method self._dst_url = None if url: self.make_request() def make_request(self): url = self._url if not self._url.startswith('http://'): url = 'http://' + self._url self.request = urllib2.Request(url) if self._form: self.add_header("Content-Type", self._form.get_content_type()) self.add_header("Content-Length", len(self._body)) self.request.add_data(self._body) def add_header(self, key, val): self.request.add_header(key, val) def change(self, url, params = {}, method = 'GET'): self._url = url self._params = params self._method = method self.make_request() def open(self): response = urllib2.urlopen(self.request) content = response.read() self._dst_url = response.geturl() try: return json.loads(content) except: return content if __name__ == "__main__": import argparse import os parser = argparse.ArgumentParser() parser.add_argument(dest="path", nargs="") args = parser.parse_args() if args.path: path = args.path else: path = r"/tmp/tmpscrot.png" os.system("scrot -s {0}".format(path)) form = Form() filename = os.path.split(path)[-1] form.add_file(fieldname='mypic', filename=filename, fileHandle=open(path)) http = HttpHelper( __host__ + '/Image/', form) url = http.open() try: from PyQt4.QtGui import QApplication app = QApplication([]) cb = QApplication.clipboard() cb.setText(url) except: print url
安装
将上面代码保存一个文件,放在PATH路径里,赋予执行权限即可
使用
默认的不跟图片地址则会截图,截图完毕后自动分享,如安装了PyQt4库则会将结果放到剪贴板,如没有则输出结果.如果脚本给了图片路径参数则上传给定路径的图片
黑松山资源网 Design By www.paidiu.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
黑松山资源网 Design By www.paidiu.com
暂无评论...
更新日志
2024年10月09日
2024年10月09日
- 《原神》「星路拾忆」网页活动壁纸展示
- 群星.2024-祝你幸福!电影原声带【阿里巴巴】【FLAC分轨】
- 于台烟.2004-执着【乾坤唱片】【WAV+CUE】
- 黄品源.2004-感谢·情人(引进版)【滚石】【WAV+CUE】
- 《最终幻想16》评测:游、戏两难全的系列转折
- 《纸嫁衣》五部打包¥104,《鬼泣5》仅需¥44
- 《崩坏:星穹铁道》造物大赛卷出新高度
- 《王菲 菲常传奇 2CD》[WAV+CUE][950MB]
- 《王菲 空灵独味唱腔 非常传奇 紫水晶2CD》[WAV+CUE][860MB]
- 《车载专业测试王1号 极品音质》[WAV/分轨][980MB]
- 炉石传说的国服回归送什么奖励 炉石传说9.25回归最新消息介绍
- 云顶之弈最强阵容汇总2024 云顶之弈最强阵容搭配最新版本
- S14lol全球总决赛在哪观看 lol全球总决赛观赛直播地址汇总
- 黄思婷2011-感谢天[豪记唱片][WAV+CUE]
- 孙淑媚2013-太阳[台湾首版][WAV+CUE]