Example #1
0
    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
Example #2
0
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)
Example #3
0
    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])
Example #4
0
    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])