diff -Nru unity-lens-pidgin-0.1/debian/bzr-builder.manifest unity-lens-pidgin-0.2/debian/bzr-builder.manifest --- unity-lens-pidgin-0.1/debian/bzr-builder.manifest 2012-05-10 00:55:19.000000000 +0000 +++ unity-lens-pidgin-0.2/debian/bzr-builder.manifest 2012-05-14 23:53:13.000000000 +0000 @@ -1,2 +1,2 @@ -# bzr-builder format 0.3 deb-version {debupstream}-0~8 -lp:~sdague/onehundredscopes/unity-lens-pidgin revid:sean@dague.net-20120510002219-73zwd2b56i1ol06f +# bzr-builder format 0.3 deb-version {debupstream}-0~10 +lp:~sdague/onehundredscopes/unity-lens-pidgin revid:sean@dague.net-20120514233934-93fwb6kqwnvpngoj diff -Nru unity-lens-pidgin-0.1/debian/changelog unity-lens-pidgin-0.2/debian/changelog --- unity-lens-pidgin-0.1/debian/changelog 2012-05-10 00:55:19.000000000 +0000 +++ unity-lens-pidgin-0.2/debian/changelog 2012-05-14 23:53:13.000000000 +0000 @@ -1,12 +1,18 @@ -unity-lens-pidgin (0.1-0~8~precise1) precise; urgency=low +unity-lens-pidgin (0.2-0~10~precise1) precise; urgency=low * Auto build. - -- Sean Dague Thu, 10 May 2012 00:55:19 +0000 + -- Sean Dague Mon, 14 May 2012 23:53:13 +0000 -unity-lens-wikipedia (0.1) precise; urgency=low +unity-lens-pidgin (0.2) precise; urgency=low - [ David Callé ] - * First release of a Wikipedia lens. + * Make sorting better - -- David Callé Tue, 25 Apr 2012 00:35:14 +0200 + -- Sean Dague Mon, 14 May 2012 19:37:15 -0400 + +unity-lens-pidgin (0.1) precise; urgency=low + + [ Sean Dague ] + * First release of a Pidgin lens. + + -- Sean Dague Tue, 25 Apr 2012 00:35:14 +0200 diff -Nru unity-lens-pidgin-0.1/debian/copyright unity-lens-pidgin-0.2/debian/copyright --- unity-lens-pidgin-0.1/debian/copyright 2012-05-10 00:55:19.000000000 +0000 +++ unity-lens-pidgin-0.2/debian/copyright 2012-05-14 23:53:13.000000000 +0000 @@ -1,15 +1,18 @@ Format: http://dep.debian.net/deps/dep5 -Name: unity-lens-wikipedia +Name: unity-lens-pidgin Source: http://launchpad.net/onehundredscopes -Maintainer: David Calle +Maintainer: Sean Dague Files: * Copyright: 2011 David Calle - + 2012 Sean Dague + License: GPL-3.0+ Files: debian/* Copyright: 2011 David Calle + 2012 Sean Dague + License: GPL-3.0+ License: GPL-3.0+ diff -Nru unity-lens-pidgin-0.1/src/unity-lens-pidgin unity-lens-pidgin-0.2/src/unity-lens-pidgin --- unity-lens-pidgin-0.1/src/unity-lens-pidgin 2012-05-10 00:55:19.000000000 +0000 +++ unity-lens-pidgin-0.2/src/unity-lens-pidgin 2012-05-14 23:53:13.000000000 +0000 @@ -28,6 +28,8 @@ import datetime import urlparse +from operator import attrgetter + import pprint import xml.etree.ElementTree @@ -108,6 +110,7 @@ class Buddy: icon = None + score = 1000 def __init__(self, bid, account, name, alias): self.id = bid @@ -144,7 +147,16 @@ return self._buddies def new_message(self, account, buddy): - self._purple.PurpleConversationNew(1, int(account), buddy) + current = None + for window in self._purple.PurpleGetIms(): + if buddy == self._purple.PurpleConversationGetName(window): + current = window + break + + if current: + self._purple.PurpleConversationPresent(window) + else: + self._purple.PurpleConversationNew(1, int(account), buddy) def fill(self, buddy): icon = self._purple.PurpleBuddyGetIcon(buddy.id) @@ -162,20 +174,27 @@ def search(self, string): buddies = self._gather_buddies() results = [] - active = [] - rest = [] + for buddy in buddies: - if ((buddy.name.lower().find(string) >=0) or - (buddy.alias.lower().find(string) >=0) ): + scorename = buddy.name.split('@')[0].lower().find(string) + scorealias = buddy.alias.lower().find(string) + if ((scorename >= 0) or (scorealias >= 0)): + if scorename < 0: + scorename = 100 + if scorealias < 0: + scorealias = 100 + self.fill(buddy) if self.is_active(buddy): - active.append(buddy) + buddy.score = 0 else: - rest.append(buddy) + buddy.score = 100 + + buddy.score += min(scorename, scorealias) + results.append(buddy) - active.extend(rest) - return active + return sorted(results, key=attrgetter('score')) if __name__ == "__main__":