|
1 | 1 | import configparser
|
2 | 2 | from Logger import Logger
|
| 3 | +import glib |
3 | 4 | from os import path
|
| 5 | +import datetime |
4 | 6 |
|
5 | 7 |
|
6 | 8 | class Setup:
|
@@ -67,15 +69,129 @@ def create_config(self):
|
67 | 69 |
|
68 | 70 | self.log.debug(f"{self.config_dir} file created successfully.")
|
69 | 71 |
|
| 72 | + def get_stats(self): |
| 73 | + """ |
| 74 | + Gets the current usage stats from the config file. |
| 75 | + """ |
| 76 | + |
| 77 | + try: |
| 78 | + |
| 79 | + self.config.read(self.config_dir) |
| 80 | + |
| 81 | + shortcuts_used = self.config['HISTORY']['shortcutsused'] |
| 82 | + shortcut_chars = self.config['HISTORY']['shortcutchars'] |
| 83 | + textblock_chars = self.config['HISTORY']['textblockchars'] |
| 84 | + |
| 85 | + self.print_stats(shortcuts_used, shortcut_chars, textblock_chars) |
| 86 | + |
| 87 | + except: |
| 88 | + |
| 89 | + self.log.exception("Unable to get stats from config file.") |
| 90 | + raise |
| 91 | + |
| 92 | + @staticmethod |
| 93 | + def print_stats(shortcuts_used, shortcut_chars, textblock_chars): |
| 94 | + """ |
| 95 | + Prints the usage stats to console. |
| 96 | + """ |
| 97 | + |
| 98 | + saved_keystrokes = str(int(textblock_chars) - int(shortcut_chars)) |
| 99 | + seconds_to_paste = 5 |
| 100 | + saved_seconds = int(shortcuts_used) * seconds_to_paste |
| 101 | + time_saved = datetime.timedelta(seconds=saved_seconds) |
| 102 | + |
| 103 | + print(f"""Your stats: |
| 104 | +
|
| 105 | +- Shortcuts used: {shortcuts_used} |
| 106 | +- You typed a total of {shortcut_chars} characters |
| 107 | +- Text-Script pasted a total of {textblock_chars} characters |
| 108 | +- You saved {saved_keystrokes} keystrokes |
| 109 | +- If it takes {seconds_to_paste} seconds to copt & paste an item, you saved {time_saved}""") |
| 110 | + |
| 111 | + def shortcut_setup(self, directories): |
| 112 | + """ |
| 113 | + Extends shortcut_list and file_dir_list from the shortcuts and file_dirs lists. |
| 114 | + """ |
| 115 | + |
| 116 | + shortcut_list = [] |
| 117 | + file_dir_list = [] |
| 118 | + |
| 119 | + # For each directory in directories |
| 120 | + for directory in directories: |
| 121 | + |
| 122 | + # Appends shortcuts only if directory is not None |
| 123 | + if directory is not None: |
| 124 | + |
| 125 | + # Get shortcuts and file_dirs |
| 126 | + shortcuts, file_dirs = self.append_directories(directory) |
| 127 | + |
| 128 | + # Print shortcut title |
| 129 | + if directory is directories[0]: |
| 130 | + print("\nDefault Directory: \n") |
| 131 | + self.log.debug("Appending shortcuts from default directory.") |
| 132 | + elif directory is directories[1]: |
| 133 | + print(f"\nLocal Directory: {directory}\n") |
| 134 | + self.log.debug(f"Appending shortcuts from {directory} directory.") |
| 135 | + elif directory is directories[2]: |
| 136 | + print(f"\nRemote Directory: {directory}\n") |
| 137 | + self.log.debug(f"Appending shortcuts from {directory} directory.") |
| 138 | + |
| 139 | + # Print shortcuts |
| 140 | + glib.print_shortcuts(file_dirs, shortcuts) |
| 141 | + |
| 142 | + # extends shortcut_list with values in shortcuts |
| 143 | + try: |
| 144 | + shortcut_list.extend(shortcuts) |
| 145 | + except: |
| 146 | + self.log.exception("Failed to extend shortcut_list.") |
| 147 | + raise |
| 148 | + else: |
| 149 | + self.log.debug("Successfully extended shortcut_list") |
| 150 | + |
| 151 | + # append file_dirs to file_dir_list |
| 152 | + file_dir_list.extend(file_dirs) |
| 153 | + |
| 154 | + self.log.debug("Successfully appended shortcuts and file_dirs.") |
| 155 | + |
| 156 | + return shortcut_list, file_dir_list |
| 157 | + |
70 | 158 | def find_directories(self):
|
71 | 159 | """
|
72 | 160 | Finds the directories in the config file
|
73 | 161 | """
|
74 | 162 |
|
75 | 163 | self.config.read(self.config_dir)
|
76 | 164 | default_directory = self.config['DIRECTORIES']['defaultdirectory']
|
| 165 | + local_directory = self.config['DIRECTORIES']['localdirectory'] |
| 166 | + remote_directory = self.config['DIRECTORIES']['remotedirectory'] |
| 167 | + |
| 168 | + if default_directory == "None" or default_directory == "": |
| 169 | + default_directory = None |
| 170 | + self.log.debug("Default directory is set to None.") |
| 171 | + if local_directory == "None" or local_directory == "": |
| 172 | + local_directory = None |
| 173 | + self.log.debug("Local directory is set to None.") |
| 174 | + if remote_directory == "None" or remote_directory == "": |
| 175 | + remote_directory = None |
| 176 | + self.log.debug("Remote directory is set to None.") |
| 177 | + |
| 178 | + directories = [default_directory, local_directory, remote_directory] |
| 179 | + self.log.debug(f"Retrieved the following directories from config: {directories}") |
| 180 | + |
| 181 | + return directories |
| 182 | + |
| 183 | + @staticmethod |
| 184 | + def append_directories(directory): |
| 185 | + """ |
| 186 | + Creates shortcuts and file_dirs |
| 187 | + """ |
| 188 | + |
| 189 | + files, file_dirs = glib.list_files(directory) |
| 190 | + |
| 191 | + # Creates shortcut list with the same index |
| 192 | + shortcuts = glib.list_shortcuts(files) |
77 | 193 |
|
78 |
| - return default_directory |
| 194 | + return shortcuts, file_dirs |
79 | 195 |
|
80 | 196 |
|
81 | 197 | class UpdateConfig:
|
|
0 commit comments