--- /dev/null
+--- emesene-1.6/misc/emesene.desktop~ 2009-09-12 00:49:01.000000000 +0300
++++ emesene-1.6/misc/emesene.desktop 2010-03-21 10:40:40.795856950 +0200
+@@ -1,7 +1,115 @@
+ [Desktop Entry]
+-Name=Emesene
+-GenericName=Emesene
+-Comment=MSN Messenger client
++Name=Emesene Internet for the WLMTM network
++GenericName=Instant Messenger
++GenericName[ar]=المرسال الفوري
++GenericName[be]=Праграма імгненных паведамленняў
++GenericName[bg]=Съобщения в реално време
++GenericName[bn]=তাত্ক্ষণিক বার্তাবাহক
++GenericName[br]=Posteler a-benn-kaer
++GenericName[bs]=Instant poruke
++GenericName[ca]=Missatger a l'instant
++GenericName[cs]=Komunikátor
++GenericName[cy]=Negesydd Chwim
++GenericName[el]=Στιγμιαίος αποστολέας μηνυμάτων
++GenericName[eo]=Rapidmesaĝilo
++GenericName[es]=Mensajería instantánea
++GenericName[et]=Kiirsuhtlemisrakendus
++GenericName[eu]=Berehalako mezularitza
++GenericName[fa]=پیامرسان فوری
++GenericName[fi]=Pikaviestinohjelma
++GenericName[fr]=Messagerie instantanée
++GenericName[ga]=Clár teachtaireachtaí meandaracha
++GenericName[gl]=Mensaxería Instantánea
++GenericName[he]=תוכנת מסרים מידיים
++GenericName[hi]=इंसटैंट मैसेंजर
++GenericName[hr]=Instant poruke
++GenericName[hu]=Internetes csevegő
++GenericName[is]=Spjallforrit
++GenericName[it]=Messaggistica istantanea
++GenericName[ja]=インスタントメッセンジャー
++GenericName[kk]=Жедел хабарласу
++GenericName[km]=កម្មវិធីផ្ញើសារបន្ទាន់
++GenericName[lt]=Momentinių žinučių klientas
++GenericName[mk]=Инстант гласник
++GenericName[nb]=Hurtigmelding
++GenericName[nds]=Kortnarichtenprogramm
++GenericName[ne]=तत्काल मेसेन्जर
++GenericName[nl]=Instant messenger
++GenericName[nn]=Lynmeldingsprogram
++GenericName[pa]=ਮੌਕਾ ਸੁਨੇਹਾਕਾਰ
++GenericName[pl]=Komunikator internetowy
++GenericName[pt]=Mensageiro Instantâneo
++GenericName[pt_BR]=Mensageiro Instantâneo
++GenericName[ru]=Программа обмена сообщениями
++GenericName[rw]=Intumwa y'Akokanya
++GenericName[se]=Šleađgadiehtoprográmma
++GenericName[sl]=Takojšni sporočilnik
++GenericName[sr]=Брзи гласник
++GenericName[sr@Latn]=Brzi glasnik
++GenericName[sv]=Direktmeddelandeklient
++GenericName[ta]=உடனடி தூதர்
++GenericName[tg]=Пайёмбари Фаврӣ
++GenericName[tr]=Anında Haberleşme Hizmeti
++GenericName[uk]=Програма для миттєвого зв'язку
++GenericName[uz]=Xabar almashish vositasi
++GenericName[uz@cyrillic]=Хабар алмашиш воситаси
++GenericName[zh_CN]=即时通讯客户程序
++GenericName[zh_HK]=即時通訊程式
++GenericName[zh_TW]=即時訊息客戶端程式
++Comment=Instant Messenger
++Comment[ar]=المرسال الفوري
++Comment[be]=Праграма імгненных паведамленняў
++Comment[bg]=Съобщения в реално време
++Comment[bn]=তাত্ক্ষণিক বার্তাবাহক
++Comment[br]=Posteler a-benn-kaer
++Comment[bs]=Instant poruke
++Comment[ca]=Missatger a l'instant
++Comment[cs]=Komunikátor
++Comment[cy]=Negesydd Chwim
++Comment[el]=Στιγμιαίος αποστολέας μηνυμάτων
++Comment[eo]=Rapidmesaĝilo
++Comment[es]=Mensajería instantánea
++Comment[et]=Kiirsuhtlusrakendus
++Comment[eu]=Berehalako mezularitza
++Comment[fa]=پیامرسان فوری
++Comment[fi]=Pikaviestinohjelma
++Comment[fr]=Messagerie instantanée
++Comment[gl]=Mensaxería Instantánea
++Comment[he]=תוכנת מסרים מידיים
++Comment[hi]=इंस्टैंट मैसेंजर
++Comment[hr]=Instant poruke
++Comment[hu]=Azonnali üzenetküldő
++Comment[is]=Spjallforrit
++Comment[it]=Messaggistica istantanea
++Comment[ja]=インスタントメッセンジャー
++Comment[kk]=Жедел хабарласу бағдарламасы
++Comment[km]=កម្មវិធីផ្ញើសារបន្ទាន់
++Comment[lt]=Momentinių žinučių klientas
++Comment[mk]=Инстант гласник
++Comment[nb]=hurtigmeldingssystem
++Comment[nds]=Kortnarichtenprogramm
++Comment[ne]=तत्काल मेसेन्जर
++Comment[nl]=Instant messenger
++Comment[nn]=Lynmeldingsprogram
++Comment[pl]=Komunikator
++Comment[pt]=Mensageiro Instantâneo
++Comment[pt_BR]=Mensageiro Instantâneo
++Comment[ro]=Mesaje instantanee
++Comment[ru]=Программа обмена сообщениями
++Comment[se]=Instant Messenger-klienta
++Comment[sl]=Takojšni sporočilnik
++Comment[sr]=Брзи гласник
++Comment[sr@Latn]=Brzi glasnik
++Comment[sv]=Direktmeddelandeklient
++Comment[ta]=உடனடி தூதர்
++Comment[tg]=Пайёмбари Фаврӣ
++Comment[tr]=Anında Haberleşme Hizmeti
++Comment[uk]=Програма для миттєвого зв'язку
++Comment[uz]=Xabar almashish vositasi
++Comment[uz@cyrillic]=Хабар алмашиш воситаси
++Comment[zh_CN]=即时通讯客户程序
++Comment[zh_HK]=即時通訊程式
++Comment[zh_TW]=即時訊息客戶端程式
+ Exec=emesene
+ Icon=emesene
+ Terminal=false
+++ /dev/null
-[Desktop Entry]
-Type=Application
-Name=Emesene Internet for the WLMTM network
-Exec=emesene
-Icon=emesene
-Terminal=false
-Categories=Network;InstantMessaging;
-GenericName=Instant Messenger
-GenericName[ar]=المرسال الفوري
-GenericName[be]=Праграма імгненных паведамленняў
-GenericName[bg]=Съобщения в реално време
-GenericName[bn]=তাত্ক্ষণিক বার্তাবাহক
-GenericName[br]=Posteler a-benn-kaer
-GenericName[bs]=Instant poruke
-GenericName[ca]=Missatger a l'instant
-GenericName[cs]=Komunikátor
-GenericName[cy]=Negesydd Chwim
-GenericName[el]=Στιγμιαίος αποστολέας μηνυμάτων
-GenericName[eo]=Rapidmesaĝilo
-GenericName[es]=Mensajería instantánea
-GenericName[et]=Kiirsuhtlemisrakendus
-GenericName[eu]=Berehalako mezularitza
-GenericName[fa]=پیامرسان فوری
-GenericName[fi]=Pikaviestinohjelma
-GenericName[fr]=Messagerie instantanée
-GenericName[ga]=Clár teachtaireachtaí meandaracha
-GenericName[gl]=Mensaxería Instantánea
-GenericName[he]=תוכנת מסרים מידיים
-GenericName[hi]=इंसटैंट मैसेंजर
-GenericName[hr]=Instant poruke
-GenericName[hu]=Internetes csevegő
-GenericName[is]=Spjallforrit
-GenericName[it]=Messaggistica istantanea
-GenericName[ja]=インスタントメッセンジャー
-GenericName[kk]=Жедел хабарласу
-GenericName[km]=កម្មវិធីផ្ញើសារបន្ទាន់
-GenericName[lt]=Momentinių žinučių klientas
-GenericName[mk]=Инстант гласник
-GenericName[nb]=Hurtigmelding
-GenericName[nds]=Kortnarichtenprogramm
-GenericName[ne]=तत्काल मेसेन्जर
-GenericName[nl]=Instant messenger
-GenericName[nn]=Lynmeldingsprogram
-GenericName[pa]=ਮੌਕਾ ਸੁਨੇਹਾਕਾਰ
-GenericName[pl]=Komunikator internetowy
-GenericName[pt]=Mensageiro Instantâneo
-GenericName[pt_BR]=Mensageiro Instantâneo
-GenericName[ru]=Программа обмена сообщениями
-GenericName[rw]=Intumwa y'Akokanya
-GenericName[se]=Šleađgadiehtoprográmma
-GenericName[sl]=Takojšni sporočilnik
-GenericName[sr]=Брзи гласник
-GenericName[sr@Latn]=Brzi glasnik
-GenericName[sv]=Direktmeddelandeklient
-GenericName[ta]=உடனடி தூதர்
-GenericName[tg]=Пайёмбари Фаврӣ
-GenericName[tr]=Anında Haberleşme Hizmeti
-GenericName[uk]=Програма для миттєвого зв'язку
-GenericName[uz]=Xabar almashish vositasi
-GenericName[uz@cyrillic]=Хабар алмашиш воситаси
-GenericName[zh_CN]=即时通讯客户程序
-GenericName[zh_HK]=即時通訊程式
-GenericName[zh_TW]=即時訊息客戶端程式
-Comment=Instant Messenger
-Comment[ar]=المرسال الفوري
-Comment[be]=Праграма імгненных паведамленняў
-Comment[bg]=Съобщения в реално време
-Comment[bn]=তাত্ক্ষণিক বার্তাবাহক
-Comment[br]=Posteler a-benn-kaer
-Comment[bs]=Instant poruke
-Comment[ca]=Missatger a l'instant
-Comment[cs]=Komunikátor
-Comment[cy]=Negesydd Chwim
-Comment[el]=Στιγμιαίος αποστολέας μηνυμάτων
-Comment[eo]=Rapidmesaĝilo
-Comment[es]=Mensajería instantánea
-Comment[et]=Kiirsuhtlusrakendus
-Comment[eu]=Berehalako mezularitza
-Comment[fa]=پیامرسان فوری
-Comment[fi]=Pikaviestinohjelma
-Comment[fr]=Messagerie instantanée
-Comment[gl]=Mensaxería Instantánea
-Comment[he]=תוכנת מסרים מידיים
-Comment[hi]=इंस्टैंट मैसेंजर
-Comment[hr]=Instant poruke
-Comment[hu]=Azonnali üzenetküldő
-Comment[is]=Spjallforrit
-Comment[it]=Messaggistica istantanea
-Comment[ja]=インスタントメッセンジャー
-Comment[kk]=Жедел хабарласу бағдарламасы
-Comment[km]=កម្មវិធីផ្ញើសារបន្ទាន់
-Comment[lt]=Momentinių žinučių klientas
-Comment[mk]=Инстант гласник
-Comment[nb]=hurtigmeldingssystem
-Comment[nds]=Kortnarichtenprogramm
-Comment[ne]=तत्काल मेसेन्जर
-Comment[nl]=Instant messenger
-Comment[nn]=Lynmeldingsprogram
-Comment[pl]=Komunikator
-Comment[pt]=Mensageiro Instantâneo
-Comment[pt_BR]=Mensageiro Instantâneo
-Comment[ro]=Mesaje instantanee
-Comment[ru]=Программа обмена сообщениями
-Comment[se]=Instant Messenger-klienta
-Comment[sl]=Takojšni sporočilnik
-Comment[sr]=Брзи гласник
-Comment[sr@Latn]=Brzi glasnik
-Comment[sv]=Direktmeddelandeklient
-Comment[ta]=உடனடி தூதர்
-Comment[tg]=Пайёмбари Фаврӣ
-Comment[tr]=Anında Haberleşme Hizmeti
-Comment[uk]=Програма для миттєвого зв'язку
-Comment[uz]=Xabar almashish vositasi
-Comment[uz@cyrillic]=Хабар алмашиш воситаси
-Comment[zh_CN]=即时通讯客户程序
-Comment[zh_HK]=即時通訊程式
-Comment[zh_TW]=即時訊息客戶端程式
# TODO
# - locales to glibc dirs
+# - make py[co] and install to python dir
Summary: Instant messaging client for Windows Live Messenger (tm) network
Name: emesene
-Version: 1.0.1
-Release: 1
+Version: 1.6
+Release: 0.8
License: GPL v2+
Group: Applications/Networking
URL: http://www.emesene.org/
-Source0: http://dl.sourceforge.net/emesene/%{name}-%{version}.tar.gz
-# Source0-md5: 49f77e190b8c991c32a07ac07cf88d13
+Source0: http://downloads.sourceforge.net/project/emesene/%{name}-%{version}/emesene-%{version}.tar.gz
+# Source0-md5: ea4d3f4097265daac6823d8288979d02
Source1: %{name}.desktop
-Patch0: python2.6.patch
+BuildRequires: desktop-file-utils
+BuildRequires: gettext
+BuildRequires: python-devel
+Requires: alsa-utils
Requires: gtk+2
Requires: python
+Requires: python
+Requires: python-dbus
Requires: python-gnome-extras
-BuildArch: noarch
+Requires: python-pygtk-gtk
+Requires: python-pynotify
+Suggests: python-gnome-extras-gtkspell
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
-emesene is an instant messaging client for Windows Live Messenger (tm)
-network.
+Emesene is a MSN Messenger client written in Python and GTK. The main
+idea is to make a client similar to the official MSN Messenger client
+but keeping it simple and with a nice GUI.
+
+Emesene is a Python/GTK MSN messenger clone, it uses msnlib (MSNP9)
+and try to be a nice looking and simple MSN client.
+
+You can login, send formatted messages, smilies, use autoreply, change
+status, change nick, send nudges and all the stuff you can do in a
+normal MSN client except, file transfers, custom emoticons and display
+picture.
%prep
%setup -q
-%patch0 -p1
cat <<'EOF' > emesene.sh
#!/bin/sh
exec %{__python} %{_datadir}/%{name}/%{name} "$@"
EOF
-# fix #!/usr/bin/env python -> #!/usr/bin/python:
+# fix #!%{_bindir}/env python -> #!%{__python}:
%{__sed} -i -e '1s,^#!.*python,#!%{__python},' emesene Controller.py
+%build
+%{__python} setup.py build_ext -i
+
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_datadir}/%{name},%{_desktopdir},%{_pixmapsdir}}
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1,%{_libdir}/%{name},%{_datadir}/%{name},%{_desktopdir},%{_pixmapsdir}}
-cp -a . $RPM_BUILD_ROOT%{_datadir}/%{name}
-rm $RPM_BUILD_ROOT%{_datadir}/%{name}/emesene.sh
-install emesene.sh $RPM_BUILD_ROOT%{_bindir}/emesene
-ln $RPM_BUILD_ROOT{%{_datadir}/%{name}/themes/default/trayicon.png,%{_pixmapsdir}/emesene.png}
-cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
+cp -a *.py hotmlog.htm *.png $RPM_BUILD_ROOT%{_datadir}/%{name}
+cp -a abstract conversation_themes emesenelib plugins_base po smilies sound_themes themes $RPM_BUILD_ROOT%{_datadir}/%{name}
-# handling locale files
-#%find_lang %{name}
+cp -a misc/%{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1/%{name}.1
+cp -a misc/%{name}.png $RPM_BUILD_ROOT%{_pixmapsdir}/%{name}.png
+cp -a misc/%{name}.desktop $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
+install -p emesene.sh $RPM_BUILD_ROOT%{_bindir}/emesene
+install -p libmimic.so $RPM_BUILD_ROOT%{_libdir}/%{name}
+
+> %{name}.lang
+for file in po/*; do
+ dir=${file##*/}
+ echo "%lang($dir) %{_datadir}/%{name}/po/$dir" >> %{name}.lang
+done
%clean
rm -rf $RPM_BUILD_ROOT
-%files
+%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc docs
%attr(755,root,root) %{_bindir}/emesene
+%dir %{_libdir}/%{name}
+%attr(755,root,root) %{_libdir}/%{name}/libmimic.so
%dir %{_datadir}/%{name}
-%dir %{_datadir}/%{name}/po
-%lang(ar) %{_datadir}/%{name}/po/ar
-%lang(ca) %{_datadir}/%{name}/po/ca
-%lang(de) %{_datadir}/%{name}/po/de
-%lang(es) %{_datadir}/%{name}/po/es
-%lang(et) %{_datadir}/%{name}/po/et
-%lang(fi) %{_datadir}/%{name}/po/fi
-%lang(fr) %{_datadir}/%{name}/po/fr
-%lang(hu) %{_datadir}/%{name}/po/hu
-%lang(it) %{_datadir}/%{name}/po/it
-%lang(nb_NO) %{_datadir}/%{name}/po/nb_NO
-%lang(nl) %{_datadir}/%{name}/po/nl
-%lang(pt) %{_datadir}/%{name}/po/pt
-%lang(pt_BR) %{_datadir}/%{name}/po/pt_BR
-%lang(sv) %{_datadir}/%{name}/po/sv
-%lang(tr) %{_datadir}/%{name}/po/tr
-%lang(zh_CN) %{_datadir}/%{name}/po/zh_CN
-%lang(zh_TW) %{_datadir}/%{name}/po/zh_TW
-%lang(da) %{_datadir}/%{name}/po/da
-%lang(el) %{_datadir}/%{name}/po/el
-%lang(en_GB) %{_datadir}/%{name}/po/en_GB
-%lang(eu) %{_datadir}/%{name}/po/eu
-%lang(ga) %{_datadir}/%{name}/po/ga
-%lang(gl) %{_datadir}/%{name}/po/gl
-%lang(he) %{_datadir}/%{name}/po/he
-%lang(hr) %{_datadir}/%{name}/po/hr
-%lang(is) %{_datadir}/%{name}/po/is
-%lang(ja) %{_datadir}/%{name}/po/ja
-%lang(lv) %{_datadir}/%{name}/po/lv
-%lang(nds) %{_datadir}/%{name}/po/nds
-%lang(nn) %{_datadir}/%{name}/po/nn
-%lang(sl) %{_datadir}/%{name}/po/sl
-%lang(sq) %{_datadir}/%{name}/po/sq
-%lang(sr) %{_datadir}/%{name}/po/sr
-%lang(th) %{_datadir}/%{name}/po/th
-%lang(nb) %{_datadir}/%{name}/po/nb
-%{_datadir}/%{name}/[A-Za-oq-z_]*
+%{_datadir}/%{name}/*.py
+%{_datadir}/%{name}/emesene-logo.png
+%{_datadir}/%{name}/hotmlog.htm
%{_datadir}/%{name}/plugins_base
-%{_datadir}/%{name}/pygif
+%{_datadir}/%{name}/abstract
+%{_datadir}/%{name}/emesenelib
+%dir %{_datadir}/%{name}/conversation_themes
+%{_datadir}/%{name}/conversation_themes/default
+%{_datadir}/%{name}/conversation_themes/gtalk
+%{_datadir}/%{name}/conversation_themes/irc
+%{_datadir}/%{name}/conversation_themes/messenger
+%{_datadir}/%{name}/conversation_themes/pidgin
+%dir %{_datadir}/%{name}/smilies
+%{_datadir}/%{name}/smilies/default
+%dir %{_datadir}/%{name}/sound_themes
+%{_datadir}/%{name}/sound_themes/default
+%{_datadir}/%{name}/sound_themes/freedesktop
+%dir %{_datadir}/%{name}/themes
+%{_datadir}/%{name}/themes/default
+%{_datadir}/%{name}/themes/gnomecolors
+%{_datadir}/%{name}/themes/inthemargins
+%{_datadir}/%{name}/themes/tango
+%dir %{_datadir}/%{name}/po
+%{_mandir}/man1/emesene.1*
%{_desktopdir}/emesene.desktop
%{_pixmapsdir}/emesene.png
+++ /dev/null
---- emesene/Avatar.py 2008-02-27 22:08:45.000000000 +0200
-+++ emesene/Avatar.py 2009-07-17 10:42:08.000000000 +0300
-@@ -18,7 +18,10 @@
-
- import os
- import gc
--import sha
-+try:
-+ from hashlib import sha1 as sha
-+except ImportError:
-+ from sha import sha
- import gtk
- import ImageAreaSelector
-
-@@ -58,7 +61,7 @@
- self.thumb.save( thumbPath, 'png' )
-
- f = file(imagePath, 'rb')
-- hash = sha.new(f.read())
-+ hash = sha(f.read())
- f.close()
- self.imagePath = avatarsPath + os.sep + hash.hexdigest() + '.png'
- self.thumbPath = avatarsPath + os.sep + hash.hexdigest() + '_thumb.png'
---- emesene/CustomEmoticons.py 2008-02-14 03:41:57.000000000 +0200
-+++ emesene/CustomEmoticons.py 2009-07-17 10:42:00.000000000 +0300
-@@ -18,7 +18,10 @@
-
- import os
- import gtk
--import sha
-+try:
-+ from hashlib import sha1 as sha
-+except ImportError:
-+ from sha import sha
- import shutil
- import urllib
-
-@@ -79,7 +82,7 @@
- pixbuf = Theme.resizePixbuf( pixbuf, size_tab[size], size_tab[size] )
-
- f = open(filename, 'rb')
-- hash = sha.new(f.read()).hexdigest()
-+ hash = sha(f.read()).hexdigest()
- f.close()
-
- dest = self.CEPath + PATH.DIR_SEP + pathquote(shortcut) + '.' + \
---- emesene/emesenelib/ContactData.py 2008-03-15 15:05:53.000000000 +0200
-+++ emesene/emesenelib/ContactData.py 2009-07-17 10:41:20.000000000 +0300
-@@ -18,7 +18,10 @@
-
- import common
- import os
--import sha
-+try:
-+ from hashlib import sha1 as sha
-+except ImportError:
-+ from sha import sha
-
- class Contact(object):
- '''class describing a contact'''
-@@ -73,7 +76,7 @@
- elif self.msnobj is None:
- return ''
-
-- sha1d = sha.sha(self.msnobj.sha1d).hexdigest()
-+ sha1d = sha(self.msnobj.sha1d).hexdigest()
- return self.email.split('@')[0] + "_" + sha1d
-
- def _setPath(self, value):
---- emesene/emesenelib/Hotmail.py 2008-03-24 08:25:48.000000000 +0200
-+++ emesene/emesenelib/Hotmail.py 2009-07-17 10:42:39.000000000 +0300
-@@ -17,7 +17,10 @@
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- import os
--import md5
-+try:
-+ from hashlib import md5
-+except ImportError:
-+ from md5 import md5
- import common
- from time import time
-
-@@ -38,7 +41,7 @@
- sl = str( int ( time() ) - int( self.dg['LoginTime'] ) )
- auth = self.MSPAuth
- sid = self.dg['sid']
-- cred = md5.new( auth + sl + self.password ).hexdigest()
-+ cred = md5( auth + sl + self.password ).hexdigest()
-
- templateData = {
- 'id':id,
---- emesene/emesenelib/Msnobj.py 2008-03-15 15:05:53.000000000 +0200
-+++ emesene/emesenelib/Msnobj.py 2009-07-17 10:40:04.000000000 +0300
-@@ -18,7 +18,10 @@
-
- import urllib
- import base64
--import sha
-+try:
-+ from hashlib import sha1 as sha
-+except ImportError:
-+ from sha import sha
- import os
-
- class MsnObjectsManager(object):
-@@ -146,7 +149,7 @@
- return string
-
- def makeSha1d( self ):
-- return base64.b64encode( sha.new( self.data ).digest() )
-+ return base64.b64encode( sha( self.data ).digest() )
-
- def makeSha1c( self ):
- string = 'Creator' + self.creator
-@@ -155,7 +158,7 @@
- string += 'Friendly' + self.friendly
- string += 'SHA1D' + self.sha1d
-
-- return base64.b64encode( sha.new( string ).digest() )
-+ return base64.b64encode( sha( string ).digest() )
-
- def quote( self ):
- return urllib.quote( self.__repr__() )
---- emesene/emesenelib/SignalHandler.py 2008-03-14 21:44:53.000000000 +0200
-+++ emesene/emesenelib/SignalHandler.py 2009-07-17 10:31:50.000000000 +0300
-@@ -18,7 +18,10 @@
-
- import struct
- import urllib
--import md5
-+try:
-+ from hashlib import md5
-+except ImportError:
-+ from md5 import md5
-
- import Msnobj
- import Switchboard
-@@ -33,7 +36,7 @@
- MSNP11_MAGIC_NUM = 0x0E79A9C1
-
- def doChallenge(chlData):
-- md5digest = md5.md5(chlData + _PRODUCT_KEY).digest()
-+ md5digest = md5(chlData + _PRODUCT_KEY).digest()
-
- # Make array of md5 string ints
- md5Ints = struct.unpack("<llll", md5digest)
---- emesene/plugins_base/lastfm.py 2008-03-01 00:13:32.000000000 +0200
-+++ emesene/plugins_base/lastfm.py 2009-07-17 14:11:24.000000000 +0300
-@@ -24,7 +24,10 @@
- import Plugin
- import urllib
- import datetime
--import md5
-+try:
-+ from hashlib import md5
-+except ImportError:
-+ from md5 import md5
- import re
- import time
- import urllib2
-@@ -106,7 +109,7 @@
- # First we test the best and most likely case
- if response[0].startswith('UPTODATE'):
- ask = response[1].strip()
-- answer = md5.md5(md5.md5(password).hexdigest() + ask).hexdigest()
-+ answer = md5(md5(password).hexdigest() + ask).hexdigest()
- self.auth_details['u'] = urllib.quote_plus(username.encode('utf8'))
- self.auth_details['s'] = answer
- self.posturl = response[2].strip()
-@@ -115,7 +118,7 @@
- # Next we test the least significant failure.
- elif response[0].startswith('UPDATE'):
- ask = response[1].strip()
-- answer = md5.md5(md5.md5(password).hexdigest() + ask).hexdigest()
-+ answer = md5(md5(password).hexdigest() + ask).hexdigest()
-
- self.auth_details['u'] = urllib.quote_plus(username.encode('utf8'))
- self.auth_details['s'] = answer