From 5adaee4fcce628a969db55367b5160e2de3e87da Mon Sep 17 00:00:00 2001 From: PhunkyBob Date: Wed, 20 Apr 2022 21:47:28 +0200 Subject: [PATCH] Initial commit --- .gitignore | 2 + README.md | 70 ++++++++++++++++++++ doc/interface.png | Bin 0 -> 78027 bytes ics_to_csv.ico | Bin 0 -> 3464 bytes ics_to_csv.py | 139 ++++++++++++++++++++++++++++++++++++++++ images/config_icon.png | Bin 0 -> 6642 bytes images/program_icon.png | Bin 0 -> 6642 bytes images/running_icon.png | Bin 0 -> 6642 bytes requirements.txt | 1 + 9 files changed, 212 insertions(+) create mode 100644 README.md create mode 100644 doc/interface.png create mode 100644 ics_to_csv.ico create mode 100644 ics_to_csv.py create mode 100644 images/config_icon.png create mode 100644 images/program_icon.png create mode 100644 images/running_icon.png create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore index b6e4761..f347387 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,5 @@ dmypy.json # Pyre type checker .pyre/ + +.vscode/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..cf927b5 --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# ICS to CSV + +Ce script permet de convertir un fichier ICS (format d'export du calendrier Google Agenda) en fichier CSV (fichier texte délimité). + +## Utilisation +`python ics_to_csv.py` + +Cela ouvrira une interface graphique (générée par [Gooey](https://github.com/chriskiehl/Gooey)). +![interface](./doc/interface.png) + +### Arguments obligatoires +- Fichier d'entrée : un fichier CSV généré par Google Agenda. +### Arguments optionnels +- Fichier de sortie : le chemin du fichier à sauvegarder. Par défaut : le même nom que le fichier d'entrée, mais avec l'extension CSV. +- Avec lieu uniquement : permet de ne sauvegarder que les enregistrements pour lesquels un lieu a été renseigné. +- Date de début : permet de fitrer les évènements postérieurs à cette date (format `AAAA-MM-JJ`). +- Date de fin : permet de filtrer les évènements antérieurs à cette date (format `AAAA-MM-JJ`) + + +## Utilisation en ligne de commande +Vous pouvez commenter la ligne de décorateur `@Gooey(...)` qui se trouve jsute au dessus de la fonction `main()` et le programme fonctionnera en ligne de commande : +``` +usage: ics_to_csv.py [-h] [--output-file Fichier de sortie] [--location-only] [--from-date Date de début] + [--to-date Date de fin] + Fichier d'entrée + +Script qui transforme un fichier ICS en fichier CSV. + +positional arguments: + Fichier d'entrée chemin du fichier ICS à convertir + +optional arguments: + -h, --help show this help message and exit + --output-file Fichier de sortie, -o Fichier de sortie + chemin du fichier CSV à créer + --location-only, -l si on ne souhaite que les évènements avec un lieu renseigné + --from-date Date de début, -f Date de début + date de début de la période à convertir + --to-date Date de fin, -t Date de fin + date de fin de la période à convertir +``` + + +## Installation +Nécessite Python 3.9+. +- Dans une ligne de commande, allez dans le répertoire de votre choix. +Exemple : +``` +cd c:\Python +``` +- Clonez le repo : +``` +git clone https://github.com/PhunkyBob/ics_to_csv.git +``` +- Allez dans le répertoire qui vient d'être créé : +``` +cd ics_to_csv +``` +- (optionnel, mais conseillé) Créez un environnement virtuel et activez le : +``` +python -m venv venv +.\env\Script\activate +``` +- Installez les librairies nécessaires : +``` +pip install -r requirements.txt +``` + +### Exécutable +Vous pouvez essayer d'utiliser directement [la version binaire](https://github.com/PhunkyBob/ics_to_csv/releases) (expérimental). \ No newline at end of file diff --git a/doc/interface.png b/doc/interface.png new file mode 100644 index 0000000000000000000000000000000000000000..d387f939edb07630bcb58ca6b6f5712d3ea9a329 GIT binary patch literal 78027 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 literal 0 HcmV?d00001 diff --git a/ics_to_csv.py b/ics_to_csv.py new file mode 100644 index 0000000..3533e4a --- /dev/null +++ b/ics_to_csv.py @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- +""" +Ce script permet de convertir un fichier ICS en un fichier CSV, tout en filtrant les évènements +- selon une date de début et une date de fin +- selon la présence d'un lieu +""" +import re +import csv +from datetime import datetime +import argparse +import os +from gooey import Gooey, GooeyParser +import codecs +import sys + +VERSION = "1.0" + +def valid_date(s): + """ Fonction de validation de date : soit vide, soit au format YYYY-MM-DD. """ + if not s: + return None + try: + return datetime.strptime(s, "%Y-%m-%d") + except ValueError: + msg = "ce n'est pas une date valide: {0!r}".format(s) + raise argparse.ArgumentTypeError(msg) + +@Gooey(program_name=f"ICS to CSV {VERSION}", default_size=(700, 600), language='french', image_dir='images') +def main(): + # Patch parce que Gooey ne sait pas gérer les entrées / sorties utf-8. + if sys.stdout.encoding != 'UTF-8': + sys.stdout = codecs.getwriter('utf-8')(sys.stdout.buffer, 'strict') + if sys.stderr.encoding != 'UTF-8': + sys.stderr = codecs.getwriter('utf-8')(sys.stderr.buffer, 'strict') + + # Définition des arguments de la ligne de commande par Gooey. + parser = GooeyParser( + description="""Script qui transforme un fichier ICS en fichier CSV.""" + ) + parser.add_argument( + "from_file", + type=str, + metavar="Fichier d'entrée", + help="chemin du fichier ICS à convertir", + widget='FileChooser', + ) + parser.add_argument( + "--output-file", + "-o", + default="", + # nargs='?', + type=str, + metavar="Fichier de sortie", + help="chemin du fichier CSV à créer", + widget='FileSaver', + ) + parser.add_argument( + "--location-only", + "-l", + default=False, + action='store_true', + metavar="Avec lieu uniquement", + help="si on ne souhaite que les évènements avec un lieu renseigné", + ) + parser.add_argument( + "--from-date", + "-f", + default=None, + type=valid_date, + metavar="Date de début", + help="date de début de la période à convertir", + widget='DateChooser', + ) + parser.add_argument( + "--to-date", + "-t", + default=None, + type=valid_date, + metavar="Date de fin", + help="date de fin de la période à convertir", + widget='DateChooser', + ) + + args = parser.parse_args() + from_file = args.from_file + to_file = args.output_file + from_date = args.from_date + to_date = args.to_date + location_only = args.location_only + + if not to_file: + to_file = from_file.replace(".ics", ".csv") + + # Vérification de l'existance du fichier ICS. + if not os.path.isfile(from_file): + print(f"ERREUR : Impossible de trouver le fichier \"{from_file}\".") + exit(1) + + with open(from_file, 'r', encoding='utf-8') as f: + lines = f.readlines() + + # On récupère les évènements. + res = re.findall(r"BEGIN:VEVENT(.+?)END:VEVENT", "".join(lines), re.DOTALL) + to_csv = [] + for elem in res: + elem = elem.replace("\n ", "") + current_item = {item.split(':')[0].split(";")[0]: item.split(':')[-1] for item in elem.split("\n") if item} + if 'DTSTART' in current_item: + # On transforme la date en datetime. + if re.match(r"^\d{8}$", current_item['DTSTART']): + start_date = datetime.strptime(current_item['DTSTART'], "%Y%m%d") + if re.match(r"^\d{8}T\d{6}Z$", current_item['DTSTART']): + start_date = datetime.strptime(current_item['DTSTART'], "%Y%m%dT%H%M%SZ") + # On stocke en plus la date au format "YYYY-MM-DD HH:mm:SS". + current_item['DTSTART_2'] = start_date + # On vérifier que la date est dans la période souhaitée et qu'il y a un lieu de défini. + if (not from_date or start_date >= from_date) and (not to_date or start_date <= to_date): + if not location_only or ('LOCATION' in current_item and current_item['LOCATION'].strip()): + to_csv.append(current_item) + + if not to_csv: + print("Aucun évènement à convertir.") + exit(0) + + # On récupère toutes les clés. + keys = to_csv[0].keys() + for line in to_csv: + keys |= line.keys() + + # On écrit le fichier CSV. + with open(to_file, 'w', encoding='utf-8', newline='') as output_file: + dict_writer = csv.DictWriter(output_file, keys) + dict_writer.writeheader() + dict_writer.writerows(to_csv) + print(f"Fichier \"{to_file}\" créé avec succès ({len(to_csv)} éléments).") + +if __name__ == '__main__': + main() + \ No newline at end of file diff --git a/images/config_icon.png b/images/config_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..503355d24321c42ab68ca34f140a983de2ca6cbb GIT binary patch literal 6642 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 YEeMN9+gA)A8*=Jd$_2A1>>2mk;8 literal 0 HcmV?d00001 diff --git a/images/program_icon.png b/images/program_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..503355d24321c42ab68ca34f140a983de2ca6cbb GIT binary patch literal 6642 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 YEeMN9+gA)A8*=Jd$_2A1>>2mk;8 literal 0 HcmV?d00001 diff --git a/images/running_icon.png b/images/running_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..503355d24321c42ab68ca34f140a983de2ca6cbb GIT binary patch literal 6642 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 YEeMN9+gA)A8*=Jd$_2A1>>2mk;8 literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..ce19b66 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +Gooey==1.0.8.1