Daten empfangen mit msnlib

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
lordmyder

Donnerstag 7. September 2006, 12:19

Hallo,
ich habe ein Problem, und zwar habe ich ein Script, mit dem man sich mit seinem MSN-Account Namen einloggen kann. Das funktioniert auch, ich kann sogar Nachrichten verschicken, den Status ändern usw.
Wärend das Script läuft bekomme ich in der Konsole angezeigt ob mir geschrieben wird jemand tippt etc. Ich weiß nun leider weder wo diese Ausgaben überhaupt herkommen, ich kann dies dem Script nicht entnehmen, noch weiß ich was ich machen muss um gezielt die empfangen Daten zu Speichern und so weiter zuverarbeiten.
Würde mich freuen, wenn mir jemand sagen kann was ich machen muss um dies zu bewerkstelligen.
Helfen würde zum Beispiel eine kurze Funktion, die die Inhalte der Konsole ausliest...wenn da jemand ne idee zu hat..
Danke schon mal im Voraus...

und hier ist das Script:

Code: Alles auswählen

#!/usr/bin/env python

# time, for sleeping (see last line)
import time

# select to wait for events
import select

# socket, to catch errors
import socket

import msnlib
import msncb

m = msnlib.msnd()
m.cb = msncb.cb()

m.email = "testmail@hotmail.com"
m.pwd = "123456"

print "Logging In"
m.login()

print "Sync"
# this makes the server send you the contact list, and it's recommended that
# you do it because you can get in trouble when getting certain events from
# people that are not on your list; and it's not that expensive anyway
m.sync()

print "Changing Status to online"
# any non-offline status will do, otherwise we'll get an error from msn when
# sending a message
m.change_status("away")

print "Sending:",
# send a message
print m.sendmsg("tester@hotmail.com", "Hello World - take two")

# we loop over the network socket to get events
print "Loop"
x=0
while 1:
	# we get pollable fds
	t = m.pollable()
	infd = t[0]
	outfd = t[1]
	
	# we select, waiting for events
	fds = select.select(infd, outfd, [], 0)
	for i in fds[0] + fds[1]:	# see msnlib.msnd.pollable.__doc__
		try:
			m.read(i)
		except ('SocketError', socket.error), err:
			if i != m:
				# user closed a connection
				# note that messages can be lost here
				m.close(i)
			else:
				# main socket closed
				quit(1)
	
	# sleep a bit so we don't take over the cpu
	time.sleep(0.01)
Antworten