Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 def insert_pic_preview(self, mark, special_text, url, tag):
     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)
     buffer_ = mark.get_buffer()
     end_iter = buffer_.get_iter_at_mark(mark)
     buffer_.insert_with_tags(end_iter, special_text, tag)
Exemplo n.º 5
0
 def print_special_text(self, special_text, other_tags, graphics=True,
 iter__=None):
     if gajim.interface.pointim_sharp_slash_re.match(special_text):
         # insert post num #123456//
         buffer_, iter_, tag = self.get_iter_and_tag('pointim_sharp_slash')
         buffer_.insert_with_tags(iter__, special_text, tag)
         self.last_pointim_num = special_text
         self.textview.plugin_modified = True
         return
     if gajim.interface.pointim_nick_re.match(special_text):
         # insert pointim nick @nickname////
         buffer_, iter_, tag = self.get_iter_and_tag('pointim_nick')
         mark = buffer_.create_mark(None, iter__, True)
         nick = special_text[1:].rstrip(':')
         buffer_.insert_with_tags(iter__, special_text, tag)
         # insert avatars
         if not self.plugin.config['SHOW_AVATARS']:
             self.textview.plugin_modified = True
             return
         b_nick = buffer_.get_text(buffer_.get_start_iter(),
             buffer_.get_iter_at_mark(mark),False)
         if self.plugin.config['ONLY_AUTHOR_AVATAR'] and not \
         special_text.endswith(':') and b_nick[-9:] not in ('Subscribed to '
         ):
             self.textview.plugin_modified = True
             return
         if self.plugin.config['ONLY_FIRST_AVATAR']:
             if b_nick[-9:] not in ('Reply by ', 'message from ', 'ended by ',
             'Subscribed to '):
                 if b_nick[-2] != gajim.config.get('after_nickname'):
                     self.textview.plugin_modified = True
                     return
                 elif b_nick[-1] == '\n':
                     self.textview.plugin_modified = True
                     return
         conn = gajim.connections[self.chat_control.account]
         if not conn.connected:
             self.textview.plugin_modified = True
             return
         # search id in the db
         query = "select nick, id from person where nick = :nick"
         self.plugin.cursor.execute(query, {'nick':nick})
         db_item = self.plugin.cursor.fetchone()
         if db_item:
             # nick in the db
             pixbuf = self.get_avatar(db_item[1], nick, True)
             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)
             self.textview.plugin_modified = True
             return
         else:
             # nick not in the db
             gobject.idle_add(self.get_new_avatar, mark, nick)
             return
     if gajim.interface.pointim_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)
         uid = special_text.split('/')[-1]
         url = "http://i.pointim.com/photos-512/%s" % uid
         gajim.thread_interface(self.insert_pic_preview, [mark, special_text,
             url])
         self.textview.plugin_modified = True
         return