Esempio n. 1
0
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
Esempio n. 2
0
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()
Esempio n. 3
0
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()
Esempio n. 4
0
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
Esempio n. 5
0
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()
Esempio n. 6
0
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()