def synFeed(savedb,feed,saveas):# funcion de sincronizacion de feeds full_path = os.path.realpath(__file__) #Se averigua la ruta a manager.py filehandler = FH.XMLfileHandler() dirname = os.path.dirname(full_path) #se obtiene el directorio ####Carga de la configuracion#### config = configuration.configuration(dirname + '/Resources/timantti.conf') options = config.configSection('Database') #se obtienen los valores del archivo de configuracion managementDB = DB.databaseHandlerTable(options.get('host'),options.get('user'),options.get('pass'),options.get('db'),options.get('table')) #crea la conexion a la base de datos leyendo los datos desde el archivo de configuracion managementDB.updateStatistics(savedb) #managementDB = DB.databaseHandlerTable() #managementDB.insertCron(savedb) #no es necesario insertar cron aca try: feed_downloader = FD.feeddownloader() feed_downloader.downloadfeed(feed,saveas) except: writeLog(dirname + '/Resources/events.log','Error en la descarga de ' + str(feed)) ##Solucionar el problema del directorio relativo para los crones exit if os.system('python ' + dirname + '/setup_newDB.py ' + dirname + '/Resources/generic-handler.xml') !=0: log = open(dirname + '/Resources/events.log','python ' + dirname + '/setup_newDB.py ' + dirname + '/Resources/generic-handler.xml failed to update generic-handler file') if os.system('python ' + dirname + '/synchronize_generic.py') !=0: #Sincronizamos las tablas con el archivo generic-handler.xml writeLog(dirname + '/Resources/events.log','python ' + dirname + '/synchronize_generic.py' + ' fail to sync generic feed') if os.system('python ' + dirname + '/synchronize_xml.py ' + str(savedb) ) !=0: #sincronizamos la tabla nueva writeLog(dirname + '/Resources/events.log','python ' + dirname + '/synchronize_xml.py ' + str(savedb) + ' failed to sync feed') ##corregir el error porque sino siempre da error cuando hay entradas duplicadas
def delFeed( savedb, deletedb): #Borra el cron de la base de datos y lo elimina del sistema full_path = os.path.realpath(__file__) #Se averigua la ruta a manager.py dirname = os.path.dirname(full_path) #se obtiene el directorio ####Carga de la configuracion#### config = configuration.configuration(dirname + '/Resources/timantti.conf') options = config.configSection( 'Database') #se obtienen los valores del archivo de configuracion managementDB = DB.databaseHandlerTable( options.get('host'), options.get('user'), options.get('pass'), options.get('db'), options.get('table') ) #crea la conexion a la base de datos leyendo los datos desde el archivo de configuracion managementDB.deleteStatistics(savedb) #managementDB = DB.databaseHandlerTable() cron_id = managementDB.getCronID(savedb) filehandler = FH.XMLfileHandler() saveas_field = managementDB.readSaveas( savedb) #Se obtiene el campo saveas para eliminar el archivo xml deletecronFile( cron_id) ##Borra la entrada correspondiente del archivo de cron managementDB.deleteCron( savedb) ##Elimina la entrada de la tabla cron_management try: feed_downloader = FD.feeddownloader() feed_downloader.removefeed(str(saveas_field[0][0])) except: writeLog(dirname + '/Resources/events.log', 'Error en el borrado de ' + str(saveas_field[0][0])) exit filehandler.deletefromGenericXML( savedb) #se borra la entrada del archivo generic-handler.xml save_name = managementDB.readName(savedb) print "save_name:" + ' ' + save_name[0][0] if deletedb == 'y': #Si el usuario lo indica, borramos tambien la base de datos del feed, caso contrario queda a su disposicion managementDB.dropTableFeed(savedb) managementDB.deleteDescription(savedb) else: managementDB.insertOldFeed(save_name[0][0], savedb) if os.system('python ' + dirname + '/setup_newDB.py ' + dirname + '/Resources/generic-handler.xml') != 0: log = open('Resources/events.log', 'a+') log.write( 'python ' + dirname + '/setup_newDB.py ' + dirname + '/Resources/generic-handler.xml failed to update generic-handler file\n' ) log.close()
def addFeed(savedb,mins,hours,dayofmonth,month,dayofweek,name,url,feed,saveas,root,primary_id,tag): #agrega un cron a la base de datos y lo crea en el sistema filehandler = FH.XMLfileHandler() full_path = os.path.realpath(__file__) #Se averigua la ruta a manager.py dirname = os.path.dirname(full_path) #se obtiene el directorio ####Carga de la configuracion#### config = configuration.configuration(dirname + '/Resources/timantti.conf') options = config.configSection('Database') #se obtienen los valores del archivo de configuracion managementDB = DB.databaseHandlerTable(options.get('host'),options.get('user'),options.get('pass'),options.get('db'),options.get('table')) #crea la conexion a la base de datos leyendo los datos desde el archivo de configuracion #managementDB = DB.databaseHandlerTable() managementDB.insertCron(savedb) #inserta el cron en la base de datos managementDB.insertStatisticsFirstTime(savedb) hours = '*' if hours=='0' else hours if (mins =='0' and hours == '*'): mins = '*' dayofmonth = '*' if dayofmonth=='0' else dayofmonth month = '*' if month=='0' else month dayofweek = '*' if dayofweek=='0' else dayofweek try: feed_downloader = FD.feeddownloader() feed_downloader.downloadfeed(feed,saveas) except: writeLog(dirname + '/Resources/events.log','Error en la descarga de ' + str(feed)) exit filehandler.writeGenericXML(name,url,feed,saveas,savedb,root,primary_id,tag) #Agrega las entradas del feed a generic-handler.xml if os.system('python ' + dirname + '/setup_newDB.py ' + dirname + '/Resources/generic-handler.xml') !=0: #anda siempre porque ./setup_newDB usa por default generic-handler.xml log = open('Resources/events.log','python ' + dirname + '/setup_newDB.py ' + dirname + '/Resources/generic-handler.xml failed to update generic-handler file') if os.system('python ' + dirname + '/synchronize_generic.py') !=0: #Sincronizamos las tablas con el archivo generic-handler.xml writeLog('Resources/events.log','python ' + dirname + '/synchronize_generic.py' + ' fail to sync generic feed') if os.system('python ' + dirname + '/synchronize_xml.py ' + str(savedb) ) !=0: #sincronizamos la tabla nueva writeLog('Resources/events.log','python ' + dirname + '/synchronize_xml.py ' + str(savedb) + ' failed to sync feed') ##########################Crea el cron correspondiente. Habilitar cuando este la parte grafica terminada######################################################## cron_id = managementDB.getCronID(savedb) output = open(dirname + '/Resources/cron_feeds','a+') output.write("#cron_id: " + str(cron_id) + '\n') output.write(str(mins) + ' ' + str(hours) + ' ' + str(dayofmonth) + ' ' + str(month) + ' ' + str(dayofweek) + ' python ' + dirname + '/manager.py syn ' + str(savedb) + ' ' + str(feed) + ' ' + str(saveas) + ' \n') output.close()
def synFeed(savedb, feed, saveas): # funcion de sincronizacion de feeds full_path = os.path.realpath(__file__) #Se averigua la ruta a manager.py filehandler = FH.XMLfileHandler() dirname = os.path.dirname(full_path) #se obtiene el directorio ####Carga de la configuracion#### config = configuration.configuration(dirname + '/Resources/timantti.conf') options = config.configSection( 'Database') #se obtienen los valores del archivo de configuracion managementDB = DB.databaseHandlerTable( options.get('host'), options.get('user'), options.get('pass'), options.get('db'), options.get('table') ) #crea la conexion a la base de datos leyendo los datos desde el archivo de configuracion managementDB.updateStatistics(savedb) #managementDB = DB.databaseHandlerTable() #managementDB.insertCron(savedb) #no es necesario insertar cron aca try: feed_downloader = FD.feeddownloader() feed_downloader.downloadfeed(feed, saveas) except: writeLog( dirname + '/Resources/events.log', 'Error en la descarga de ' + str(feed) ) ##Solucionar el problema del directorio relativo para los crones exit if os.system('python ' + dirname + '/setup_newDB.py ' + dirname + '/Resources/generic-handler.xml') != 0: log = open( dirname + '/Resources/events.log', 'python ' + dirname + '/setup_newDB.py ' + dirname + '/Resources/generic-handler.xml failed to update generic-handler file' ) if os.system( 'python ' + dirname + '/synchronize_generic.py' ) != 0: #Sincronizamos las tablas con el archivo generic-handler.xml writeLog( dirname + '/Resources/events.log', 'python ' + dirname + '/synchronize_generic.py' + ' fail to sync generic feed') if os.system('python ' + dirname + '/synchronize_xml.py ' + str(savedb)) != 0: #sincronizamos la tabla nueva writeLog( dirname + '/Resources/events.log', 'python ' + dirname + '/synchronize_xml.py ' + str(savedb) + ' failed to sync feed' ) ##corregir el error porque sino siempre da error cuando hay entradas duplicadas
def delFeed(savedb,deletedb): #Borra el cron de la base de datos y lo elimina del sistema full_path = os.path.realpath(__file__) #Se averigua la ruta a manager.py dirname = os.path.dirname(full_path) #se obtiene el directorio ####Carga de la configuracion#### config = configuration.configuration(dirname + '/Resources/timantti.conf') options = config.configSection('Database') #se obtienen los valores del archivo de configuracion managementDB = DB.databaseHandlerTable(options.get('host'),options.get('user'),options.get('pass'),options.get('db'),options.get('table')) #crea la conexion a la base de datos leyendo los datos desde el archivo de configuracion managementDB.deleteStatistics(savedb) #managementDB = DB.databaseHandlerTable() cron_id = managementDB.getCronID(savedb) filehandler = FH.XMLfileHandler() saveas_field = managementDB.readSaveas(savedb) #Se obtiene el campo saveas para eliminar el archivo xml deletecronFile(cron_id) ##Borra la entrada correspondiente del archivo de cron managementDB.deleteCron(savedb)##Elimina la entrada de la tabla cron_management try: feed_downloader = FD.feeddownloader() feed_downloader.removefeed(str(saveas_field[0][0])) except: writeLog(dirname + '/Resources/events.log','Error en el borrado de ' + str(saveas_field[0][0])) exit filehandler.deletefromGenericXML(savedb) #se borra la entrada del archivo generic-handler.xml save_name = managementDB.readName(savedb) print "save_name:" + ' ' + save_name[0][0] if deletedb == 'y': #Si el usuario lo indica, borramos tambien la base de datos del feed, caso contrario queda a su disposicion managementDB.dropTableFeed(savedb) managementDB.deleteDescription(savedb) else: managementDB.insertOldFeed(save_name[0][0],savedb) if os.system('python ' + dirname + '/setup_newDB.py ' + dirname + '/Resources/generic-handler.xml') !=0: log = open('Resources/events.log','a+') log.write('python ' + dirname + '/setup_newDB.py ' + dirname + '/Resources/generic-handler.xml failed to update generic-handler file\n') log.close()
def addFeed(savedb, mins, hours, dayofmonth, month, dayofweek, name, url, feed, saveas, root, primary_id, tag): #agrega un cron a la base de datos y lo crea en el sistema filehandler = FH.XMLfileHandler() full_path = os.path.realpath(__file__) #Se averigua la ruta a manager.py dirname = os.path.dirname(full_path) #se obtiene el directorio ####Carga de la configuracion#### config = configuration.configuration(dirname + '/Resources/timantti.conf') options = config.configSection( 'Database') #se obtienen los valores del archivo de configuracion managementDB = DB.databaseHandlerTable( options.get('host'), options.get('user'), options.get('pass'), options.get('db'), options.get('table') ) #crea la conexion a la base de datos leyendo los datos desde el archivo de configuracion #managementDB = DB.databaseHandlerTable() managementDB.insertCron(savedb) #inserta el cron en la base de datos managementDB.insertStatisticsFirstTime(savedb) hours = '*' if hours == '0' else hours if (mins == '0' and hours == '*'): mins = '*' dayofmonth = '*' if dayofmonth == '0' else dayofmonth month = '*' if month == '0' else month dayofweek = '*' if dayofweek == '0' else dayofweek try: feed_downloader = FD.feeddownloader() feed_downloader.downloadfeed(feed, saveas) except: writeLog(dirname + '/Resources/events.log', 'Error en la descarga de ' + str(feed)) exit filehandler.writeGenericXML( name, url, feed, saveas, savedb, root, primary_id, tag) #Agrega las entradas del feed a generic-handler.xml if os.system( 'python ' + dirname + '/setup_newDB.py ' + dirname + '/Resources/generic-handler.xml' ) != 0: #anda siempre porque ./setup_newDB usa por default generic-handler.xml log = open( 'Resources/events.log', 'python ' + dirname + '/setup_newDB.py ' + dirname + '/Resources/generic-handler.xml failed to update generic-handler file' ) if os.system( 'python ' + dirname + '/synchronize_generic.py' ) != 0: #Sincronizamos las tablas con el archivo generic-handler.xml writeLog( 'Resources/events.log', 'python ' + dirname + '/synchronize_generic.py' + ' fail to sync generic feed') if os.system('python ' + dirname + '/synchronize_xml.py ' + str(savedb)) != 0: #sincronizamos la tabla nueva writeLog( 'Resources/events.log', 'python ' + dirname + '/synchronize_xml.py ' + str(savedb) + ' failed to sync feed') ##########################Crea el cron correspondiente. Habilitar cuando este la parte grafica terminada######################################################## cron_id = managementDB.getCronID(savedb) output = open(dirname + '/Resources/cron_feeds', 'a+') output.write("#cron_id: " + str(cron_id) + '\n') output.write( str(mins) + ' ' + str(hours) + ' ' + str(dayofmonth) + ' ' + str(month) + ' ' + str(dayofweek) + ' python ' + dirname + '/manager.py syn ' + str(savedb) + ' ' + str(feed) + ' ' + str(saveas) + ' \n') output.close()