Changeset a316c4e


Ignore:
Timestamp:
2007-08-20T14:50:50Z (17 years ago)
Author:
VMiklos <vmiklos@…>
Branches:
master
Children:
ba20c39
Parents:
94bd28f
Message:

skyped: finish cleanup
hopefully no later cosmetics changes will be necessary now

File:
1 edited

Legend:

Unmodified
Added
Removed
  • skype/skyped.py

    r94bd28f ra316c4e  
    3535
    3636def sig_handler(signum, frame):
    37         print 'Caught signal %d, exiting.' % signum
    3837        mainloop.quit()
    3938
     
    4140        input = fd.recv(1024)
    4241        for i in input.split("\n"):
    43         if i:
    44                 fd.send(skype.send(i.strip()) + "\n")
     42                if i:
     43                        fd.send(skype.send(i.strip()) + "\n")
    4544        return True
     45
     46def server(host, port):
     47        sock = socket.socket()
     48        sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
     49        sock.bind((host, port))
     50        sock.listen(1)
     51        gobject.io_add_watch(sock, gobject.IO_IN, listener)
     52
     53def listener(sock, *args):
     54        global conn
     55        conn, addr = sock.accept()
     56        fileno = conn.fileno()
     57        gobject.io_add_watch(conn, gobject.IO_IN, input_handler)
     58        return True
     59
     60def dprint(msg):
     61        if len(sys.argv) > 1 and sys.argv[1] == "-d":
     62                print msg
    4663
    4764class SkypeApi(dbus.service.Object):
    4865        def __init__(self):
    4966                bus = dbus.SessionBus()
     67                try:
     68                        self.skype_api = bus.get_object(SKYPE_SERVICE, '/com/Skype')
     69                except dbus.exceptions.DBusException:
     70                        sys.exit("Can't find any Skype instance. Are you sure you have started Skype?")
    5071
    51         try:
    52                 self.skype_api = bus.get_object(SKYPE_SERVICE, '/com/Skype')
    53         except dbus.exceptions.DBusException:
    54                 sys.exit("Can't find any Skype instance. Are you sure you have started Skype?")
     72                reply = self.send('NAME ' + CLIENT_NAME)
     73                if reply != 'OK':
     74                        sys.exit('Could not bind to Skype client')
    5575
    56         reply = self.send('NAME ' + CLIENT_NAME)
    57         if reply != 'OK':
    58                 sys.exit('Could not bind to Skype client')
    59 
    60         reply = self.send('PROTOCOL 5')
    61         dbus.service.Object.__init__(self, bus, "/com/Skype/Client", bus_name='com.Skype.API')
    62 
     76                reply = self.send('PROTOCOL 5')
     77                dbus.service.Object.__init__(self, bus, "/com/Skype/Client", bus_name='com.Skype.API')
    6378
    6479        # skype -> client (async)
     
    6782                global conn
    6883                text = utf8_decode(msg_text)
    69                 print '<<', text
     84                dprint('<< ' + text)
    7085                if conn:
    7186                        conn.send(msg_text + "\n")
     
    7590                if not len(msg_text):
    7691                        return
    77                 print '>> ', msg_text
     92                dprint('>> ' + msg_text)
    7893                try:
    7994                        reply = utf8_decode(self.skype_api.Invoke(utf8_encode(msg_text)))
    8095                except dbus.exceptions.DBusException, s:
    8196                        reply = str(s)
    82                 print '<< ', reply
     97                dprint('<< ' + reply)
    8398                return reply
    8499
    85 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
    86 skype = SkypeApi()
    87 signal.signal(signal.SIGINT, sig_handler)
    88 
    89 mainloop = gobject.MainLoop()
    90 
    91 def server(host, port):
    92         '''Initialize server and start listening.'''
    93         sock = socket.socket()
    94         sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    95         sock.bind((host, port))
    96         sock.listen(1)
    97         gobject.io_add_watch(sock, gobject.IO_IN, listener)
    98 def listener(sock, *args):
    99         '''Asynchronous connection listener. Starts a handler for each connection.'''
    100         global conn
    101         conn, addr = sock.accept()
    102         fileno = conn.fileno()
    103         gobject.io_add_watch(conn, gobject.IO_IN, input_handler)
    104         return True
    105100if __name__=='__main__':
     101        dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
     102        skype = SkypeApi()
     103        signal.signal(signal.SIGINT, sig_handler)
     104        mainloop = gobject.MainLoop()
    106105        server('localhost', 2727)
    107106        mainloop.run()
Note: See TracChangeset for help on using the changeset viewer.