Exemple #1
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])
Exemple #2
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])