def test_contar_noticias(self): k = Kiosco() notis = k.noticias(diario='clarin') #fecha = datetime.datetime(year = 2020, month = 8, day = 25) fecha = { 'desde': datetime.datetime(year=2020, month=8, day=22), 'hasta': datetime.datetime(year=2020, month=8, day=24) } seccion = ['economia', 'internacional'] conteo = k.contar_noticias(fecha=fecha, diario='test_todos', secciones=seccion) conteo
def resultados_editoriales(): resultados = Resultados() freqs = Frecuencias() k = Kiosco() total = 0 agregados = 0 diario='diariodeleuco' seccion='editorial' editoriales = k.noticias(diario=diario, secciones=seccion) buffer_resultado = [] for e in editoriales: f_ter_tit, f_ver_tit, f_per_tit, f_ter_txt, f_ver_txt, f_per_txt = freqs.tituloytexto2freqs(e.titulo,e.texto) buffer_resultado.append({'diario':diario, 'seccion': seccion, 'fecha': e.fecha.strftime('%Y%m%d%H%M%S'), 'url':e.url, 'f_ter_tit': f_ter_tit, 'f_ver_tit': f_ver_tit, 'f_per_tit': f_per_tit, 'f_ter_txt': f_ter_txt, 'f_ver_txt': f_ver_txt, 'f_per_txt': f_per_txt}) resultados.bd.frecuencias.insert_many(buffer_resultado)
def postear_en_discursoshistoricos(self, cuenta, fecha=None): resultados = Resultados() kiosco = Kiosco() visu = Visualizador() tolkien = Escritor() presidente, subfijopng, hashtag = self.info_cuenta(cuenta) # recupero frecuencias al azar freqs = resultados.bd.frecuencias_discursos.aggregate([{ '$match': { 'presidente': presidente } }, { '$sample': { 'size': 1 } }]) if not bool(freqs): return cm = CM() for freq in freqs: # recupero texto del discurso discurso = kiosco.noticias(diario='casarosada', url=freq['url'])[0] # armo tweet con el discurso en imagenes texto = " ".join( re.split("\s+", discurso['texto'], flags=re.UNICODE)) paths_imagenes = visu.texto_en_imagenes( texto, 'calibri.ttf', 17, 800, 600, os.getcwd() + "/imagenes/intro" + subfijopng) # TODO: la fecha esta MAL. pasar de date a string. tw_intro = { 'texto': "Discurso del " + tolkien.separar_fecha(fecha=freq['fecha']) + " de " + hashtag + ". Hilo 👇", 'media': paths_imagenes } # armo textos del tweet txt_sustantivos = tolkien.texto_tweet_sustantivos_discurso( freq['sustxt']) txt_adjetivos = tolkien.texto_tweet_adjetivos_discurso( freq['adjtxt']) # armo tweet con top 15 de terminos path_imagen_sustantivos = os.getcwd( ) + '/imagenes/sustantivos_discurso' + subfijopng + '.png' etiquetas_sustantivos = [ nombre for nombre, m in freq['sustxt'].items() ][:15] data_sustantivos = [m for nombre, m in freq['sustxt'].items()][:15] visu.lollipop(path=path_imagen_sustantivos, colormap=visu.cmap_del_dia(), titulo="Frecuencia de sustantivos", etiquetas=etiquetas_sustantivos, unidad="cantidad de apariciones", valfmt="{x:.0f}", data=data_sustantivos) tw_terminos = { 'texto': txt_sustantivos, 'media': [path_imagen_sustantivos] } # armo tweet con top 15 de verbos path_imagen_adjetivos = os.getcwd( ) + '/imagenes/adjetivos_discurso' + subfijopng + '.png' etiquetas_adjetivos = [ nombre for nombre, m in freq['adjtxt'].items() ][:15] data_adjetivos = [m for nombre, m in freq['adjtxt'].items()][:15] visu.lollipop(path=path_imagen_adjetivos, colormap=visu.cmap_del_dia(), titulo="Frecuencia de adjetivos", etiquetas=etiquetas_adjetivos, unidad="cantidad de apariciones", valfmt="{x:.0f}", data=data_adjetivos) tw_verbos = { 'texto': txt_adjetivos, 'media': [path_imagen_adjetivos] } # el CM twittea cm.twittear_hilo(cuenta, [tw_intro, tw_terminos, tw_verbos])
def postear_en_discursosdeaf(self, fecha): resultados = Resultados() kiosco = Kiosco() visu = Visualizador() tolkien = Escritor() # recupero frecuencias del discurso freqs = resultados.bd.frecuencias_discursos.aggregate([{ '$match': { 'presidente': 'alberto', 'fecha': fecha } }]) if not bool(freqs): return cm = CM() for freq in freqs: # recupero texto del discurso discurso = kiosco.noticias(diario='casarosada', url=freq['url'])[0] # armo tweet con el discurso en imagenes texto = " ".join( re.split("\s+", discurso['texto'], flags=re.UNICODE)) paths_imagenes = visu.texto_en_imagenes( texto, 'calibri.ttf', 17, 800, 600, os.getcwd() + "/imagenes/introaf") tw_intro = { 'texto': "Discurso del " + tolkien.separar_fecha(fecha=freq['fecha']) + " de #AlbertoFernández. Hilo 👇", 'media': paths_imagenes } # armo textos del tweet txt_sustantivos = tolkien.texto_tweet_sustantivos_discurso( freq['sustxt']) txt_adjetivos = tolkien.texto_tweet_adjetivos_discurso( freq['adjtxt']) # armo tweet con top 15 de terminos path_imagen_sustantivos = os.getcwd( ) + '/imagenes/sustantivos_discursoaf.png' etiquetas_sustantivos = [ nombre for nombre, m in freq['sustxt'].items() ][:15] data_sustantivos = [m for nombre, m in freq['sustxt'].items()][:15] visu.lollipop(path=path_imagen_sustantivos, colormap=visu.cmap_del_dia(), titulo="Frecuencia de sustantivos", etiquetas=etiquetas_sustantivos, unidad="cantidad de apariciones", valfmt="{x:.0f}", data=data_sustantivos) tw_terminos = { 'texto': txt_sustantivos, 'media': [path_imagen_sustantivos] } # armo tweet con top 15 de verbos path_imagen_adjetivos = os.getcwd( ) + '/imagenes/adjetivos_discursoaf.png' etiquetas_adjetivos = [ nombre for nombre, m in freq['adjtxt'].items() ][:15] data_adjetivos = [m for nombre, m in freq['adjtxt'].items()][:15] visu.lollipop(path=path_imagen_adjetivos, colormap=visu.cmap_del_dia(), titulo="Frecuencia de adjetivos", etiquetas=etiquetas_adjetivos, unidad="cantidad de apariciones", valfmt="{x:.0f}", data=data_adjetivos) tw_verbos = { 'texto': txt_adjetivos, 'media': [path_imagen_adjetivos] } # el CM twittea cm.twittear_hilo('discursosdeaf', [tw_intro, tw_terminos, tw_verbos])