示例#1
0
def main(options):
    # main program
    
    input = options['main']['csvinputfile']
    try:
        fd = toolbox.openReadAnything(input)
    except IOError as (errno, strerror):
        d = {'input': input, 'errno': errno, 'strerror': strerror }
        toolbox.die(_("Cannot open '%(input)s' for reading: I/O error (%(errno)s): %(strerror)s.") % d)
示例#2
0
	def connect (self):
		# check for config to be ok
		self.log (termcode("GREEN") + "================================================")
		try:
			ircServerPort = int (self.config['ircServerPort'])
		except ValueError:
			toolbox.die ("Error in congi file ("+self.configFileName+"): ircServerPort must be type of integer")
		# check if server is ok	
		self.log ("Checking for server...")
		ircServerIP = ""
		try:
			ircServerIP = socket.gethostbyname(self.config['ircServerHost'])
		except socket.error:
			toolbox.die ("Unable to connect to IRC server.\n>Make sure you spelled hostname/IP right.\n>Make sure internet is conected")
		except KeyError:
			toolbox.die ("Not enough parameters given in config file. [" + self.configFileName + "]")
		# open socket to irc Server
		self.log ("Semms Ok. Connecting: "+self.config['ircServerHost'] + " [" + self.config['ircServerPort'] + "]")
		self.log ( "================================================"  + termcode("ENDC"))
		self.config['ircServerIP'] = ircServerIP
		self.status = 1
		self.start() # will call run() in new thread
示例#3
0
	def __init__(self, config='', ircServerHost = '', ircServerPort='6667', ircServerPassword='', nickname='pygeobot', realname='pygeobot', username='******', debug=False, channels = [], log="log.txt", auth = "", twitter={'consumer':{'key': '', 'secret': ''}}, password="", autojoin_on_kick=True,ircColors=False):
		threading.Thread.__init__ (self)
		self.buffer = ""
		self._stop = threading.Event()
		# adding keyboardInterruptHandler
		for sig in (signal.SIGABRT, signal.SIGILL, signal.SIGINT, signal.SIGSEGV, signal.SIGTERM):
			signal.signal(sig, self.keyboardInterruptHandler)

		if not config:
			# config file is not defined
			if not ircServerHost:
				# not enough parameters
				toolbox.die("Non config file/ircServer is defined. Please define one of those")
			else:
				# got all information to connect, write all info to self
				if not password:
					toolbox.die ("Err. You have forgot to add password.")
				self.config = {
					'ircServerHost' : ircServerHost,
					'ircServerPassword' : ircServerPassword,
					'ircServerPort' : ircServerPort,
					'username' : username,
					'realname' : realname,
					'nickname' : nickname,
					'debug' : debug,
					'channels' : channels,
					'log' : log,
					'auth' : auth,
					'twitter' : twitter,
					'password' : password,
					"autojoin_on_kick" : autojoin_on_kick,
					"ircColors" : ircColors
				}
		else:
			# load configuration from config file
			try: 
				self.config = toolbox.loadJSON(config)
				self.configFileName = config
				# check for some fields
				try:
					if not (self.config['nickname'] and self.config['ircServerHost'] and self.config['password'] and self.config['realname'] ):
						toolbox.die ("Not enough parameters.")
				except KeyError:
					toolbox.die ("Not enough parameters.")

			except IOError:
				toolbox.die ("Unable to read config file.\n>Make sure there is file named: '"+config+"'")

		# open config file
		if self.config['log']:
			self.log_file = open (self.config['log'], "a")
			self.log_file.write ("Log started at %s.\n" % datetime.datetime.now().strftime("%H:%M:%S %p on %B %d, %Y"))
			self.log_file.flush()

		# get access_token from Twitter
		try:
			print termcode("AUQA") + "Getting Twitter access_token ..." + termcode("ENDC")
			tm = twitterModule.TwitterModule(data=self.config['twitter'])
			access_token = tm.get_access_token ()
			print termcode("AUQA") + "Done." + termcode("ENDC")
			self.config['twitter']['access_token'] = access_token
		except Exception:
			self.log( termcode("LIGHT_RED_BG") + "Some troubles with getting access_token."  + termcode("ENDC"))
			pass

		# check for IRC colors
		toolbox.IRC_COLOR_ENABLED = self.config['ircColors']

		# add admins array
		self.admins = []
示例#4
0
def main(options):
    # main program
    
    input = options['main']['csvinputfile']
    try:
        fd = toolbox.openReadAnything(input)
    except IOError as (errno, strerror):
        d = {'input': input, 'errno': errno, 'strerror': strerror }
        toolbox.die(_("Cannot open '%(input)s' for reading: I/O error (%(errno)s): %(strerror)s.") % d)
    
    output = options['main']['xmloutputfile']
    try:
        fdout = toolbox.openWriteAnything(output)
    except IOError as (errno, strerror):
        d = {'output': output, 'errno': errno, 'strerror': strerror }    
        toolbox.die(_("Cannot open '%(output)s' for writing: I/O error (%(errno)s): %(strerror)s.") % d)
    
    # Set up the XML Template
    template = options['main']['xmltemplate']
    try:
        sxmltemplate.SXMLTemplate.separatorKey = options['main']['separatorkey']
        sxmltemplate.SXMLTemplate.defaultValue = options['main']['defaultvalue']
        sxmltemplate.SXMLTemplate.deletetag = options['main']['deletetag']
        xmltemplate = sxmltemplate.SXMLTemplate(template)
        xmltemplate.setTemplates(options['main']['templatenodes'])
    except sxmltemplate.SXMLTemplateError as e:
        toolbox.die(_("Cannot parse XML template: %s.") % e)
    xmltemplate.setRootInfo(options['template'])
    
    d = { 'input': input, 'xmltemplate': template }
    msg(_("Processing input file '%(input)s' with XML template '%(xmltemplate)s' ... ") % d)