Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim-plugins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Leboulanger <asterix@lagaule.org>2011-11-15 22:46:47 +0400
committerYann Leboulanger <asterix@lagaule.org>2011-11-15 22:46:47 +0400
commit44434e0a6947e38599f69bbe79fb7d8ac1eb0593 (patch)
treee71f22ec57274d5b4c76d6bca5f4d050e61d1b74 /url_image_preview
parentd280220071e75f0836846a3bdc87769571571655 (diff)
use proxy in url_preview plugin. Fixes #15
Diffstat (limited to 'url_image_preview')
-rw-r--r--url_image_preview/manifest.ini3
-rw-r--r--url_image_preview/url_image_preview.py54
2 files changed, 26 insertions, 31 deletions
diff --git a/url_image_preview/manifest.ini b/url_image_preview/manifest.ini
index 714aa68..5ab1fdb 100644
--- a/url_image_preview/manifest.ini
+++ b/url_image_preview/manifest.ini
@@ -1,9 +1,10 @@
[info]
name: Url image preview
short_name: url_image_preview
-version: 0.2
+version: 0.3
description: Url image preview in chatbox.
Based on patch in ticket #5300:
http://trac.gajim.org/attachment/ticket/5300.
authors = Denis Fomin <fominde@gmail.com>
+ Yann Leboulanger <asterix@lagaule.org>
homepage = http://trac-plugins.gajim.org/wiki/UrlImagePreviewPlugin
diff --git a/url_image_preview/url_image_preview.py b/url_image_preview/url_image_preview.py
index fc408e5..3ffe702 100644
--- a/url_image_preview/url_image_preview.py
+++ b/url_image_preview/url_image_preview.py
@@ -6,6 +6,7 @@ import os
import urllib
from common import gajim
+from common import helpers
from plugins import GajimPlugin
from plugins.helpers import log_calls
from plugins.gui import GajimPluginConfigDialog
@@ -81,36 +82,29 @@ class Base(object):
buffer_ = self.textview.tv.get_buffer()
iter_ = buffer_.get_end_iter()
mark = buffer_.create_mark(None, iter_, True)
- gajim.thread_interface(self.insert_pic_preview, [mark, special_text,
- special_text])
-
- def insert_pic_preview(self, mark, special_text, url):
- pixbuf = self.get_pixbuf_from_url( url, self.plugin.config[
- 'PREVIEW_SIZE'])
- if pixbuf:
- # insert image
- buffer_ = mark.get_buffer()
- end_iter = buffer_.get_iter_at_mark(mark)
- anchor = buffer_.create_child_anchor(end_iter)
- img = TextViewImage(anchor, special_text)
- img.set_from_pixbuf(pixbuf)
- img.show()
- self.textview.tv.add_child_at_anchor(img, anchor)
-
-
- def get_pixbuf_from_url(self, url, size):
- # download image and resize
- # Returns pixbuf or False if broken image or not connected
- try:
- data = urllib.urlopen(url).read()
- pix = gtk.gdk.PixbufLoader()
- pix.write(data)
- pix.close()
- pixbuf = pix.get_pixbuf()
- pixbuf, w, h = self.get_pixbuf_of_size(pixbuf, size)
- except:
- return False
- return pixbuf
+ # start downloading image
+ gajim.thread_interface(helpers.download_image, [
+ self.textview.account, {'src': url}], self._update_img, [mark])
+
+ def _update_img(self, (mem, alt), mark):
+ if mem:
+ try:
+ loader = gtk.gdk.PixbufLoader()
+ loader.write(mem)
+ loader.close()
+ pixbuf = loader.get_pixbuf()
+ pixbuf.save('qwe.jpg', 'jpeg', {"quality":"100"})
+ pixbuf, w, h = self.get_pixbuf_of_size(pixbuf,
+ self.plugin.config['PREVIEW_SIZE'])
+ buffer_ = mark.get_buffer()
+ end_iter = buffer_.get_iter_at_mark(mark)
+ anchor = buffer_.create_child_anchor(end_iter)
+ img = TextViewImage(anchor, alt)
+ img.set_from_pixbuf(pixbuf)
+ img.show()
+ self.textview.tv.add_child_at_anchor(img, anchor)
+ except Exception:
+ pass
def get_pixbuf_of_size(self, pixbuf, size):
# Creates a pixbuf that fits in the specified square of sizexsize