sabato 17 novembre 2007

no time for developing

I'm sorry but these months i had no further time for working on limsn, but i hope this december to continue with development.

______________

Mi spiace ma ultimamente non ho avuto un momento di respiro, tra studio , lavoro, complotti di stato e tricche e ballacche...
Spero entro dicembre di riprendere lo sviluppo.

Nel frattempo se qualcuno volesse unirsi allo sviluppo...........

j.

domenica 16 settembre 2007

some fixes :)





I had a problem. When a dialog box is shown and the gui changes due to protocol events of course, my app crashes. So i replaced each dialog box with other ones made by me.
So, my dialog boxes are a little different, it's like a quiz :P

Anyway, now limsn doesnt' crash anymore when a d.b. is shown.

And you can really change this time the background picture.
I get how make bitmaps transparent, so i reinsert the contactlispanel background (scoobedoo :)

I also replaced the emoticons with the wlm ones. enjoy.

u can test it on svn code
svn co https://limousine.svn.sourceforge.net/
svnroot/limousine
bye
_________________________________________________-
Italian:

Allora, ho sistemato alcune cose...
Avevo un problema secondo il quale, quando una dialog box era mostrata, se arrivava un evento dal protocollo, per esempio se qualcuno cambiava nick, mi crashava.
Ho risolto rifacendo le dialog box con un po' di fantasia....:)

Ora cmq non crasha piu', o meglio non crasha per quel motivo...

Ora si puo' davvero cambiare lo sfondo! Con Ctrl+B si apre box per scegliere il file,
senno', da menu Options->quick preferences->change background
E siccome sono riuscito a fare le bitmap trasparenti, ho rimesso anche l'immagine di sfondo
della contact list.

Ho anche sostituito le emoticons, stavolta ci ho messo quelle del live ufficiale,
quelle che avevo messo prima erano di prova.

se volete potete scaricare l'aggiornamento nel solito modo.
svn co https://limousine.svn.sourceforge.net/
svnroot/limousine

ciao, a presto

giovedì 13 settembre 2007

db qb qp qd bd - working on display pictures -



I figure out how retrieving and showing display pictures (tnx to pymsn team)...
but actually it's hardly unstable....
i dont' know if i get the right way...i'm going to work on it.

i tried to retrieve the d.p. each time i get a 'change capabilities signal',
creating a new instance of a p2p_session and connect the transfer-completed signal to my cb function.


ps. is there someone who knows how to make transparent the white colour of a bitmap in wxpython? :)
______________________________


Italian:
Sto facendo delle prove a recuperare le immagini dei contatti, ma e' fortemente instabile,
quindi ancora ci lavoro un bel po' su, prima di postare il codice.
Sto anche inserendo le azioni per i menu.
:)

ps. c'e' qualcuno bravo con le immagini e con wxpython che sa come rendere trasparente
il bianco di una bitmap? :)

lunedì 10 settembre 2007

Eat my code

LiMSN works (once finished) only on Linux (for now), it doesnt' work on ms-Windows

Dependences: Limsn is written in python with the wxWidgets graphic toolkit. Limsn
requires the wxPython-2.8 to get it working! Before trying limsn, u have to check wxpython version. In order to get limsn working, you have to check also the pymsn dependences (as in the readme file):
python-gobject (>=2.10)
ElementTree (>=1.2.0) or cElementTree (>=1.0.5) or python (>= 2.5)
pyOpenSSL (>=0.6)
pyCrypto (>=2.0.0)


If you really want to try it out, u can obtain the testing code using svn:

svn co https://limousine.svn.sourceforge.net/
svnroot/limousine



WARNING! This is a test version! It's not completely working, this svn is only for examining code :P and maybe give me some suggestions....

So, when i added the custom contact widget i have to forget to fix some bug in the switchboard, anyway, i have to get the code clean and rewrite contactlistpanel and the switchboardpanel by making a contact object, we'll see...

It works on my linux box, i hope it works on your too...Actually i tryed limsn succesfully in several virtual box (Fedora, Suse,Ubuntu) and a friend of mine will try it on FreeBSD, but i know it works in italy...if you are not italian u can check if it works in ur country (argh@#! my english is bad)

p.s. the mplagger plugin included as example plays video only if you drag&drop on the panel :)


How it works:
go in the graphic console in the limsn folder and type:
"python limsn.py"
limsn creates a folder on your home directory called ".limsn" and store information in there, that's all. U can drag&drop avatar image but is not possible to publish it via pymsn yet.





_______________________________
Italian:

Limsn (una volta finito) funziona solo su Linux, non funzia su Winz!

Dipendenze:
- wxPython-2.8 (almeno, non funzia con le wxpython-2.6)
-python-gobject (>=2.10)
-ElementTree (>=1.2.0) or cElementTree (>=1.0.5) or python (>= 2.5)
-pyOpenSSL (>=0.6)
-pyCrypto (>=2.0.0)

Detto questo, se davvero volete provare limsn, potete usare svn (in un unica riga..):

svn co https://limousine.svn.sourceforge.net/
svnroot/limousine

ATTENZIONE! Questo e' un codice di test, non e' il programma finito, quindi non vi lamentate se non funziona qualcosa, non dovrebbero funzionare un bel po' di cose....Tuttavia, per quelle cose che funzionano, se volete, potete segnalarmi qualche malfunzionamento... O_O

Quando ho fatto il widget che disegna il contatto devo aver fatto qualche danno al codice del switchboard panel, ma potreste non accorgervene...

Limsn funziona nella mia linux box, spero che funzioni anche sulla vostra,
in realta' ho provato con successo limsn su diverse distribuzioni, Ubuntu, Suse 10.2 (mi sembra, ce l'ho in una virtual box...), Fedora 7, e ho chiesto a un mio amico di provarla su FreeBSD

Il plugin incluso "mplagger" funziona solo se ci trascinate sopra i video, (ps. potrebbe crasharvi tutto..., quindi fate questo a vostro rischio e pericolo, tuttavia avete il codice sotto gli occhi, se riuscite a migliorarlo fatemi un fischio...), l'mplagger e' solo un esempio su come fare i plugin.

Come funziona:
andate in una console grafica e entrate nella cartella di limsn e digitate il comando:
"python limsn.py"
e' tutto. Lui creera' una cartella nella vostra home, chiamata .limsn e dentro ci registra un po' di cose. Se volete cancellare limsn basta cancellare sta cartella e la cartella con i sorgenti, e amici come prima :)

sabato 8 settembre 2007

some emoticons tests

Almost finished the contact widget,
almost finished the plugin structure,
started the swithcboard panel.




_____________________________

Quasi finito il widget del contatto,
quasi finita la struttura a plugin,
appena iniziato lo switchboard panel

Ho deciso di prendermela con calma.....

venerdì 7 settembre 2007

Abemus plugins!!!

I've almost finished the plugins structure!
I've implemented three kind of plugins
1) the first is a tabbed pane in the contact list main treectrl
2) the secondo is situated as a toolbar bitmap button,
3) the third is a non-gui plugin that intercept the msn signal.

U can see in this screenshot, plugins working...



_________________________________________-
Italian:
Ho fatto 3 tipi di plugins.
1) il tab a sinistra
2) il bottone nella toolbar
3) integrato che intercetta i segnali di msn

martedì 4 settembre 2007

What i've done....

I think it's not very usefull what i've done this time....

I've added a tab in the messenger panel in which play videos.




I publish here the snippet of code to implement playing videos because i don't know otherwise
_____________ cut __________________________
# filename is the variable captured by drag&drop event
# scope is the panel in which is embedded mplayer...

self.process = wx.Process()
x,y = self.scope.pnl1.GetSize()
self.options = ' -nolirc -nocache -really-quiet -nojoystick -geometry ' + str(50)+'x'+str(50) +' -slave -wid '

self.command = self.scope.mpCommand + ' ' + self.options+ str(self.scope.pnl1.GetHandle())+ ' ' +'\"'+filename+'\"'

self.process.Redirect()
self.pid = wx.Execute(self.command, wx.EXEC_ASYNC , self.process)
print 'pid ' + str(self.pid)
self.outstream = self.process.GetOutputStream()
self.errorStream = self.process.GetErrorStream()
self.inpstream = self.process.GetInputStream()
__________________ cut __________________