changeset 76201ae6c611 in /home/hg/repos/gajim-plugins
author: Denis Fomin fominde@gmail.com branches: details:gajim-plugins?cmd=changeset;node=76201ae6c611 description: JuickPlugin.UrlImagePreviewPlugin. support latest gajim
diffstat:
juick/plugin.py | 31 ++++++++++++++++++------------- url_image_preview/url_image_preview.py | 2 +- 2 файлов изменено, 19 вставок(+), 14 удалений(-)
различия (91 строк):
diff -r 3c625f96aafb -r 76201ae6c611 juick/plugin.py --- a/juick/plugin.py Mon Sep 16 21:46:41 2013 +0400 +++ b/juick/plugin.py Tue Sep 17 12:51:59 2013 +0400 @@ -378,32 +378,36 @@ if not pixbuf: self.textview.plugin_modified = True return - end_iter = buffer_.get_iter_at_mark(mark) - anchor = buffer_.create_child_anchor(end_iter) - img = TextViewImage(anchor, nick) - img.set_from_pixbuf(pixbuf) - img.show() - self.textview.tv.add_child_at_anchor(img, anchor) + gobject.idle_add(self.set_avatar, mark, nick, pixbuf) self.textview.plugin_modified = True return else: # nick not in the db gobject.idle_add(self.get_new_avatar, mark, nick) + self.textview.plugin_modified = True return if gajim.interface.juick_pic_re.match(special_text) and \ self.plugin.config['SHOW_PREVIEW']: # show pics preview buffer_, iter_, tag = self.get_iter_and_tag('url') - mark = buffer_.create_mark(None, iter__, True) - buffer_.insert_with_tags(iter__, special_text, tag) + mark = buffer_.create_mark(None, buffer_.get_end_iter(), True) uid = special_text.split('/')[-1] url = "http://i.juick.com/photos-512/%s" % uid gajim.thread_interface(self.insert_pic_preview, [mark, special_text, - url]) + url, tag]) self.textview.plugin_modified = True return
- def insert_pic_preview(self, mark, special_text, url): + def set_avatar(self, mark, nick, pixbuf): + buffer_ = mark.get_buffer() + end_iter = buffer_.get_iter_at_mark(mark) + anchor = buffer_.create_child_anchor(end_iter) + img = TextViewImage(anchor, nick) + img.set_from_pixbuf(pixbuf) + img.show() + self.textview.tv.add_child_at_anchor(img, anchor) + + def insert_pic_preview(self, mark, special_text, url, tag): pixbuf = self.get_pixbuf_from_url( url, self.plugin.config[ 'PREVIEW_SIZE']) if pixbuf: @@ -415,6 +419,9 @@ img.set_from_pixbuf(pixbuf) img.show() self.textview.tv.add_child_at_anchor(img, anchor) + buffer_ = mark.get_buffer() + end_iter = buffer_.get_iter_at_mark(mark) + buffer_.insert_with_tags(end_iter, special_text, tag)
def get_iter_and_tag(self, tag_name): buffer_ = self.textview.tv.get_buffer() @@ -430,17 +437,15 @@ _id = str(j[0]['uid']) except urllib2.HTTPError, e: return + pixbuf = self.get_avatar(_id, nick) buffer_ = mark.get_buffer() end_iter = buffer_.get_iter_at_mark(mark) - pixbuf = self.get_avatar(_id, nick) anchor = buffer_.create_child_anchor(end_iter) img = TextViewImage(anchor, nick) img.set_from_pixbuf(pixbuf) img.show() self.textview.tv.add_child_at_anchor(img, anchor)
- - def get_avatar(self, uid, nick, need_check=None): # search avatar in cache or download from juick.com pic = uid + '.png' diff -r 3c625f96aafb -r 76201ae6c611 url_image_preview/url_image_preview.py --- a/url_image_preview/url_image_preview.py Mon Sep 16 21:46:41 2013 +0400 +++ b/url_image_preview/url_image_preview.py Tue Sep 17 12:51:59 2013 +0400 @@ -50,7 +50,7 @@ iter_=None)
def print_special_text1(self, chat_control, special_text, other_tags=None, - graphics=True): + graphics=True, iter_=None): for control in self.controls: if control.chat_control == chat_control: control.disconnect_from_chat_control()