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)
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
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 = []
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)