GithubHelp home page GithubHelp logo

goznalo-git / thunderbird-to-csv Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 20.52 MB

Short program sorting emails stored locally by Thunderbird to an .csv file so that it can be used later for other purposes.

Jupyter Notebook 0.10% Python 97.13% PowerShell 0.06% Shell 0.02% C++ 1.05% C 1.18% Fortran 0.06% Roff 0.41%

thunderbird-to-csv's Introduction

Thunderbird to .csv

Introducción

Cada día llegan miles de emails procedentes de las máquinas del CCC-UAM al servidor de correo. Cada uno está programado con un fin específico. En concreto, hay unos ~300 correos que llegan a diario de las máquinas, producto del crontab de cada una de ellas, en el que se establece una ejecución diaria (y en algunos casos a ciertas horas) de yum update, para mantener el software al día.

Objetivo

Los correos diarios de yum update han de ser clasificados en una hoja de cálculo, en base a

  1. No ha llegado un correo de una máquina -> escribir "x" en la casilla correspondiente a la fila de la máquina y la columna del día
  2. Sí ha llegado un correo de una máquina:
    1. El correo contiene un mensaje de error a la hora del update -> escribir "x"
    2. El correo contiene un "Listo!", "No packages marked for an update", o "No ha seleccionado paquetes para la actualización" -> escribir "ok"

Esta tarea acaba siendo bastante repetitiva y monótona, aun con trucos como ordenar los semails. ¿Y a quién se le dan bien las tareas monótonas y repetitivas? A los ordenadores. Por tanto vamos a implementar un programilla para automatizar este proceso.

Requisitos previos

Software

  • Python 3.x. Los requisitos respecto a módulos están especificados en el archivo requirements.txt, y la carpeta del virtual enviroment correspondiente en la carpeta thunderyum.
  • Thunderbird. Evidentemente.
  • Procesador de hojas de cálculo: La hoja de cálculo usada como input está en formato .ods, por tanto es preferible tener instalado LibreOffice/OpenOffice Calc, o Microsoft Excel con la extensión apropiada. Otras alternativas (como Softmaker Planmaker) pueden no soportar este formato.

Estructura de los directorios

  • Mensajes de Thunderbird: Estos han de ser localizados inicialmente en el ordenador de cada uno. En mi caso están rebuscando en el directorio ~/.thunderbird, encontrados rebuscando un poco dentro de esa carpeta.
  • Hoja de cálculo de origen: ver disclaimer al final.

Uso

Se recomienda el uso del ejecutable script.py, mediante línea de comandos. El script requiere dos argumento posicionales, siendo el primero de estos el día del mes del que se quiere el procesamiento, y el segundo el mes en formato numérico de dos dígitos (mm). Ejemplo:

python script.py 18 08 [--show]

La ejecución acaba mostrando por pantalla aquellos servidores cuyos mensajes son posibles errores. Este output es suprimido por el programa en el caso de ser demasiado grande (> 10 servidores), junto con un mensaje avisando de ello. Para forzar la salida del output es necesario usar "--show" como tercer argumento posicional.

Contenido

El repositorio es muy simple: contiene el presente README, el archivo .csv resultante, un Jupyter Notebook con el programa detallado paso a paso, y finalmente un ejecutable de Python para realizar la tarea de forma automática a través de la shell.

Disclaimer: archivos necesarios

Por temas de privacidad del CCC-UAM, no es posible mostrar la información de los servidores (por ejemplo sus nombres), por tanto tanto los mensajes como la lista con servidores serán archivos ajenos al repositorio, llamados por el programa solo localmente. En cualquier caso, no es difícil adaptar el programa para usarlo en el ordenador de cada uno, con sus respectivos mensajes y servidores.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.