summaryrefslogtreecommitdiff
path: root/Redim/config.py
blob: d618bd19c9b4f7ad94b963b1abbc2ea4898e0e6f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
"""Contient la gestion de l'enregistrement des choix de l'utilisateur
ainsi que la gestion de la supression des fichiers anciennement décompressés
par pyinstaller"""

from sys import platform
from os import mkdir, listdir, environ, getenv, system
from os.path import isdir, join, getmtime, isfile
from time import time
from shutil import rmtree
import json


class Config():
    """Gestion de l'enregistrement des choix de l'utilisateur"""
    def __init__(self):
        self.base_configuration = {
            "dimensions": [[500, 350], [900, 900]],
            "background": [255, 255, 255],
            "format_final": ".webp",
            "formats_acceptes": (
                "jpg",
                "jpeg",
                "png",
                "bmp",
                "gif",
                "webp"
            )
        }
        self.user_profile = getenv("USERPROFILE")
        if platform != "linux":
            self.json_path = join(
                self.user_profile,
                "AppData",
                "Local",
                "Redim"
            )
        else:
            self.json_path = "."
        if platform != "linux":
            self.nettoyage_pyinstaller()

    def sauvegarde(self, configuration):
        """Création du dossier de sauvegarde pour le fichier de configuration
        et enregistrement des préférence de l'utilisateur
        """
        if not isdir(self.json_path):
            mkdir(self.json_path)
        with open(join(self.json_path, "config"), "w") as file_config:
            json.dump(configuration, file_config)
        print("\n[-] Modification enregistree.")

    def lecture(self):
        """Return le contenu du fichier de configuration, si aucun fichier
        n'éxiste, création d'un avec les valeurs par défaut
        """
        if not isfile(join(self.json_path, "config")):
            self.sauvegarde(self.base_configuration)
            return self.base_configuration
        with open(join(self.json_path, "config"), "r") as file_config:
            configuration = json.load(file_config)
        return configuration

    @staticmethod
    def nettoyage_pyinstaller():
        """Supression des fichiers anciennement décompressés par pyinstaller"""
        for i in listdir(environ["TMP"]):
            if i.startswith("_MEI")\
                and isdir(i)\
                    and (
                            int(getmtime(join(environ["TMP"], i)))
                            < (time() - 86400)):
                rmtree(join(environ["TMP"], i))

    @staticmethod
    def redimensionnement_fenetre():
        """Redimensionne la fenetre du CMD sous windows"""
        if platform != "linux":
            system("mode con: cols=70 lines=35")