From 21c33fa1d27b57e833760ba98823ce0a219bff49 Mon Sep 17 00:00:00 2001
From: Denis Fomin <fominde@gmail.com>
Date: Fri, 1 Jun 2012 16:03:57 +0400
Subject: [PATCH] clients_icons. Detect libpurple clients by resource(roster
 only)

---
 clients_icons/clients_icons.py      |  29 ++++++++++++++++++++++++++--
 clients_icons/icons/instantbird.png | Bin 0 -> 1668 bytes
 clients_icons/icons/palm.png        | Bin 0 -> 1239 bytes
 clients_icons/icons/spectrum.png    | Bin 0 -> 1108 bytes
 clients_icons/manifest.ini          |   3 +--
 5 files changed, 28 insertions(+), 4 deletions(-)
 create mode 100644 clients_icons/icons/instantbird.png
 create mode 100644 clients_icons/icons/palm.png
 create mode 100644 clients_icons/icons/spectrum.png

diff --git a/clients_icons/clients_icons.py b/clients_icons/clients_icons.py
index 6785deda..126f1f77 100644
--- a/clients_icons/clients_icons.py
+++ b/clients_icons/clients_icons.py
@@ -32,7 +32,7 @@ clients = {
     'http://talkgadget.google.com/client/caps': 'google.png',
     'http://oneteam.im/caps': 'oneteamiphone.png',
     'http://tkabber.jabber.ru/': 'tkabber.png',
-    'http://pidgin.im/': 'libpurple.png',
+    'http://pidgin.im/': 'pidgin.png',
     'http://pidgin.im/caps': 'pidgin.png',
     'http://qutim.org': 'qutim.png',
     'http://qutim.org/': 'qutim.png',
@@ -137,8 +137,25 @@ clients = {
     'http://www.igniterealtime.org/projects/smack/': 'xabber.png',
     'http://megafonvolga.ru/': 'megafon.png',
     'rss@isida-bot.com': 'osiris.png',
+    'libpurple': 'libpurple.png',
+    'http://www.adium.im/': 'adium.png',
+    'http://eqo.com/': 'libpurple.png',
+    'http://instantbird.com/': 'instantbird.png',
+    'https://www.meebo.com/': 'meebo.png',
+    'http://opensource.palm.com/packages.html': 'palm.png',
+    'http://spectrum.im/': 'spectrum.png'
+}
+libpurple_clients ={
+    'adium': 'http://www.adium.im/',
+    'eqo': 'http://eqo.com/',
+    'finch': 'http://pidgin.im/',
+    'instantbird': 'http://instantbird.com/',
+    'meebo': 'https://www.meebo.com/',
+    'palm': 'http://opensource.palm.com/packages.html',
+    'pidgin': 'http://pidgin.im/',
+    'spectrum': 'http://spectrum.im/',
+    'telepathy-haze': 'http://pidgin.im/'
 }
-
 
 class ClientsIconsPlugin(GajimPlugin):
 
@@ -321,6 +338,7 @@ class ClientsIconsPlugin(GajimPlugin):
             iq_obj.conn.name, iq_obj.jid)
         if not contact:
             return
+
         iter_ = roster._get_contact_iter(iq_obj.jid, iq_obj.conn.name, contact,
             roster.model)[0]
         if contact != iq_obj.contact:
@@ -334,6 +352,11 @@ class ClientsIconsPlugin(GajimPlugin):
         tag = iq_obj.stanza.getTags('c')
         if tag:
             caps = tag[0].getAttr('node')
+            if 'pidgin.im' in caps:
+                caps = 'libpurple'
+                for client in libpurple_clients:
+                    if client in contact.resouce.lower():
+                        caps = libpurple_clients[client]
         if 'facebook.com' in iq_obj.jid and self.config['show_facebook']:
             caps = 'facebook.com'
         if not caps:
@@ -356,6 +379,8 @@ class ClientsIconsPlugin(GajimPlugin):
         tag = iq_obj.stanza.getTags('c')
         if tag:
             caps = tag[0].getAttr('node')
+            if 'pidgin.im' in caps:
+                caps = 'libpurple'
         iter_ = iq_obj.gc_control.get_contact_iter(iq_obj.nick.decode('utf-8'))
         model = iq_obj.gc_control.model
         if model[iter_][self.muc_renderer_num] is not None:
diff --git a/clients_icons/icons/instantbird.png b/clients_icons/icons/instantbird.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f6481074b7e23301a440708ed96cf9457ae5aff
GIT binary patch
literal 1668
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
O0000<MNUMnLSTYadM~vA

literal 0
HcmV?d00001

diff --git a/clients_icons/icons/palm.png b/clients_icons/icons/palm.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca3b63ec8a7e9d80fd770a0c95ad7ac4d9de6d1d
GIT binary patch
literal 1239
zcmV;|1StE7P)<h;3K|Lk000e1NJLTq000&M000&U0ssI2OV;~r00009a7bBm000fw
z000fw0YWI7cmMzdiAh93RCwBbkZWvHWf*`zB*f@%68{+EB_Sqc@t2A4V=4qA34+YI
zA#7}9zx-iH3|k-(!-67lTx9BC7@RY^uy$QbZ>-(cv##yBm9{&*t=DruJ*VfiTQ}H+
z+4g*XYu$vz_~iTE^Pcy8pL6nkAossy%WNmlvRwpd%d%XFqA1XUoDvraAxos?^2(Az
zj+OGl!ee=HDJx5|B+6wf3Id=lNfPR1B$=RD+GP?<-8^=mb87i%9a?Gk1JPs525gH-
z9Eq7+UJ?bQR73>GWHO>C${8V@$<C8}w&!cuwx@XIK;iO%VtaM*QgyNY{lD6)H?DoM
zrv4`HHA@^NO0p<Pn_3xwwjc-@f#*ayOr@n?nqVVPnqE>416U2<2LOHu6qFp_p`3ra
zaQ)yi_J^2X5u_|K(&;pE0eWy8CvYqyNFjm~yUr-bfKmfCIvUsee_XrMy4KyccJJcG
z<>N}j%kb2$r`-+NR1m2g&vPux^E_Z#mSGs4p=n+WBpKmOi*jU#Qn%wtXetY#yu2ho
zew-=6oX5KU)n4UOP;7s9$)!mnDJ`-zg>*pEG(}M?MGy=>7pKMBXW%gaPlDwcLwW-;
zM3Ny>l$7Ui*V4_}QUfSms9K&J<dMV+G)W*G5CoA*rKnUQK{CE5DRwoZPbeor-lb)q
z6o_b;h((fIhVoA>bk-M7gVOn`JT}0PM2caFWCH0Rkx0bj@l-q-O_GlyDdE>9coe{T
zu;9{@s}Pmru~?YS#69-xtrLZooy7}Pi<TZL8IO}pA{IqDn4h1IL?W?BC=^Y&12O*R
zMpy%s=3VlXI+<IE1?Qq6JP=F8+?IUT$<irMXniM#sn9Ry<EdyQ9F0anFc`#fJcRrG
z!HB~j=5EwMbl|qvCGAzxZKlTh$gu$e8_7JpRk-<)@-bLHe<+;{N8^b=01x1JAP@jP
zpU>;{&Url^e_+ysvmKwoCZL?%y>_l@<=lI#t@~D5_pi3?FSNV{kAPC+p8UY|B+bl)
z!d}m;uMC(e<C&SB_V~u9y-Y_fJOSVr=q#@&EpI6;ZzwHqD$TE!YIi?9y*J<UJ&k+t
zU~py@8SdFK!0B{491fSmZg<UC93J|{=bLv?^TNtcUoL2FXYXB-d%ny4_N}byWFOhl
z;r(;CdwLo<&Mg3jVK$o$8y_3PrVKV0alH;62c`O*X~XZK1m(9`eD(?7<ha-6n4QBN
z9`B^Xu_<hUbYQhwEf&kz=tHx0LOY5juGJyG*z_VfKIA0iF`LagX}8*)RvTs=9krNE
zC|b*mZY98EG8v6Vvr(@%Th!)><dvi7+F&gp^!Kn}(yY@M^*WP5Z!#D*=Zr>E8RIiK
z(CKtqtyZTQ*67Vcrg7rpVYm;#gCMTHYYD_2XjCI38twCpY_TcobU>|Et5hnrYDhJ#
zxj&+_-~AzW^(@hO!EMqS#<Ahe=FmSgTd1A^y@LJ<0|Nsn^!N2^jcU8w;P&ZE=Al7U
z9jr9_`ufTv|57QU1pN6ty}i9CqFyDhuwDPp;@=T?C+S%V3%mdT002ovPDHLkV1lNM
BPtX7W

literal 0
HcmV?d00001

diff --git a/clients_icons/icons/spectrum.png b/clients_icons/icons/spectrum.png
new file mode 100644
index 0000000000000000000000000000000000000000..3240a5948444b3e38a712ecbe3b3341d8d8d0a78
GIT binary patch
literal 1108
zcmV-a1grarP)<h;3K|Lk000e1NJLTq000&M000&U1^@s6#I$TX00009a7bBm000fw
z000fw0YWI7cmMzd21!IgRCwC8Rc&ljWfXqHHpWL#2s(9OG&ui&ks&iqXM*@qO<edR
z2~nbAmMn;27;T(CAfhH@7$8#;v#4QPD<f`+Mq5AzC?hDf_dT~?TR+#kvetRq!X_JK
z;-bg%zP+vOV9uEM<H>z<d(Ly7_c`a>GWF6RyABs45+Kg$FjG?@rX~%DGrfac+>P=H
z*S!EEIR6~e7))GXaAi1)@fd^AXuh~QLxCcdkUJYHAx#O1ex?Q-%nfJWal86-SIEg!
zJ&+|6afW&*ER-XLg32HWuf!S8#Gm9>6RU%-Z%6H(m8h*Su(BHc@9jeVyUyTptR5zY
zv-V6=UTgsc@M}8re)54Q@a*~tep$2o546~amQ`W&z6VfSwFb52Rp|NNh7kFwKKNAK
zq{nV;<5S73paSx&${cAXQR!=aR~sy27-bCo&(|ZweZJ`0T8!Ox7seJ>VrcVb<Rb%{
zg0<B$CQ@+|dcJB$%FQbmd|7`|L3w>wZ_kU7aw09Igr)OjqUY27J{R<%_nRZ={ql2!
zA$QNfmgmMK>8<55CR}v~sslf?$)*b5^B#+9jK@}~Q^{@K_Et}1`BItCZ{9iy$&iPW
zk1+W&<C6*DD^r7x?*bdv%b3vp_oDl(O@pbVou+3Aq{4>cU;GSy8)3@ZJ9K5^22B|R
zs|u(0_V0cJDWIPJI+VR)DmTwTDlkHma=vX~djmqk>*J2zR_D4pJMaAXoSLD=Q=C))
z5yh-j+=2=zkZ9h4kV%-JV4QMIk=7A8j9*|p;bYEco<L4HP6B_p25HtSKo61?_y<#V
zna%Qt1@lpvGY9#jwMYb#Sdtem0)dNnLXhtqQ|`VKmC{mFN=l?C-qWrN)eNp(VsPjq
zR3597RRxqiJA2{Ji)2&a@1>cxoj^+hILeflHf8h5=OTalafD-E=wd^eGvYKWW11N<
z@xAKt?tN-gV~YQHyjNVcNbPiTVF%4TKiFbYcfN@($BBK^z_m&`Y$lH%WM99q5iJWB
zV9z5DrA}Gf^s~0EDVmZcV9Yn%fH?mfot0s4d7rK8%!z|7`jM&?x^?l*sKk9{c9@#h
zNmuD0d`7U&pNHybw0S1d9Hh@QF%JKElgK}0aENE0?JzP6nQozmS*QV>bIY*1W;KdQ
z;l`lP1X-9C!a3|QbyePuma;P9D8UZmvNts%>o6+is&&^?qbf!z9iCmWup;g=Sr;wL
zD{hw@YmlA%a1S2c)__M}Yd~A$%Xsp@`>2X<@IR0iei6AIG#z`Z3GG|ANDlj}ui&@4
zn~}M$CYYNxF9#RR;B2Ht|1|V;(YhCL5T_g|x!)3@?1&Y9qi0bpy-pjs1swlQ*?++Q
aM*J7ch{6G^`!%2d0000<MNUMnLSTYBiw?~I

literal 0
HcmV?d00001

diff --git a/clients_icons/manifest.ini b/clients_icons/manifest.ini
index f0c1becb..95c59f4a 100644
--- a/clients_icons/manifest.ini
+++ b/clients_icons/manifest.ini
@@ -1,10 +1,9 @@
 [info]
 name: Clients icons
 short_name: clients_icons
-version: 1.8
+version: 1.9
 description: Shows the client icons in the roster
  and in groupchats.
- Depends: Gajim > r12506
 authors = Denis Fomin <fominde@gmail.com>
  Artem Klyop <art.klyop@gmail.com>
 homepage = http://trac-plugins.gajim.org/wiki/ClientsIconsPlugin
-- 
GitLab