diff options
Diffstat (limited to 'skype')
| -rw-r--r-- | skype/HACKING | 4 | ||||
| -rw-r--r-- | skype/NEWS | 1 | ||||
| -rw-r--r-- | skype/README | 2 | ||||
| -rw-r--r-- | skype/skyped.py | 64 | 
4 files changed, 63 insertions, 8 deletions
| diff --git a/skype/HACKING b/skype/HACKING index e98d9165..037be98f 100644 --- a/skype/HACKING +++ b/skype/HACKING @@ -1,8 +1,8 @@  I use the following commands to debug bitlbee itself: -gdb bitlbee +gdb ./bitlbee  run -v -n -D  For skyped: -python skyped.py -d +python skyped.py -n -d @@ -1,5 +1,6 @@  VERSION         DESCRIPTION  ----------------------------------------------------------------------------- +              - skyped now runs as daemon in the background by default                - skyped now automatically reconnects on Skype restarts  0.1.0         - initial release                - see README for major features diff --git a/skype/README b/skype/README index 7fc2efe6..0b62113d 100644 --- a/skype/README +++ b/skype/README @@ -121,8 +121,6 @@ NOTE: the <pass> option is not used currently.  == What needs to be done (aka. TODO) -- `--daemon` option for `skyped` -  - document how do I run skype on a server using vnc  == I would like to have support for ... diff --git a/skype/skyped.py b/skype/skyped.py index 12767bdc..6cf542e0 100644 --- a/skype/skyped.py +++ b/skype/skyped.py @@ -24,9 +24,8 @@  #   USA.  # -# makepkg configuration -""" GPL """  import sys +import os  import signal  import locale  import time @@ -35,7 +34,9 @@ import dbus.service  import dbus.mainloop.glib  import gobject  import socket +import getopt +__version__ = "0.1.1"  SKYPE_SERVICE = 'com.Skype.API'  CLIENT_NAME = 'SkypeApiPythonShell' @@ -69,7 +70,9 @@ def listener(sock, *args):  	return True  def dprint(msg): -	if len(sys.argv) > 1 and sys.argv[1] == "-d": +	global options + +	if options.debug:  		print msg  class SkypeApi(dbus.service.Object): @@ -113,11 +116,64 @@ class SkypeApi(dbus.service.Object):  		dprint('<< ' + reply)  		return reply +class Options: +	def __init__(self): +		self.daemon = True +		self.debug = False +		self.help = False +		self.port = 2727 +		self.version = False + +	def usage(self, ret): +		print """Usage: skyped [OPTION]... + +skyped is a daemon that acts as a tcp server on top of a Skype instance. + +Options: +	-d	--debug		enable debug messages +	-h	--help		this help +	-n	--nofork	don't run as daemon in the background +	-p	--port		set the tcp port (default: %d) +	-v	--version	display version information""" % self.port +		sys.exit(ret) +  if __name__=='__main__': +	options = Options() +	try: +		opts, args = getopt.getopt(sys.argv[1:], "dhnp:v", ["daemon", "help", "nofork", "port=", "version"]) +	except getopt.GetoptError: +		options.usage(1) +	for opt, arg in opts: +		if opt in ("-d", "--debug"): +			options.debug = True +		elif opt in ("-h", "--help"): +			options.help = True +		elif opt in ("-n", "--nofork"): +			options.daemon = False +		elif opt in ("-p", "--port"): +			options.port = arg +		elif opt in ("-v", "--version"): +			options.version = True +	if options.help: +		options.usage(0) +	elif options.version: +		print "skyped %s" % __version__ +		sys.exit(0) +	elif options.daemon: +		pid = os.fork() +		if pid == 0: +			nullin = file('/dev/null', 'r') +			nullout = file('/dev/null', 'w') +			os.dup2(nullin.fileno(), sys.stdin.fileno()) +			os.dup2(nullout.fileno(), sys.stdout.fileno()) +			os.dup2(nullout.fileno(), sys.stderr.fileno()) +		else: +			print 'skyped is started on port %s, pid: %d' % (options.port, pid) +			sys.exit(0)  	dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)  	signal.signal(signal.SIGINT, sig_handler)  	mainloop = gobject.MainLoop() -	server('localhost', 2727) +	server('localhost', options.port)  	while True:  		skype = SkypeApi()  		mainloop.run() | 
