fixed temp directory cleaning problem on exit

This commit is contained in:
k4yt3x 2019-12-11 22:20:01 -05:00
parent 19e17b1a8f
commit 332055a4e5
3 changed files with 92 additions and 78 deletions

View File

@ -4,7 +4,7 @@
Name: Video2X Upscaler
Author: K4YT3X
Date Created: December 10, 2018
Last Modified: October 6, 2019
Last Modified: December 11, 2019
Dev: SAT3LL
@ -82,7 +82,7 @@ class Upscaler:
"""delete temp directories when done
"""
if not self.preserve_frames:
for directory in [self.extracted_frames, self.upscaled_frames]:
for directory in [self.extracted_frames, self.upscaled_frames, self.video2x_cache_directory]:
try:
# avalon framework cannot be used if python is shutting down
# therefore, plain print is used

View File

@ -13,7 +13,7 @@ __ __ _ _ ___ __ __
Name: Video2X Controller
Creator: K4YT3X
Date Created: Feb 24, 2018
Last Modified: November 15, 2019
Last Modified: December 11, 2019
Editor: BrianPetkovsek
Editor: SAT3LL
@ -438,6 +438,10 @@ except Exception:
Avalon.error('An exception has occurred')
traceback.print_exc()
# try cleaning up temp directories
with contextlib.suppress(Exception):
upscaler.cleanup_temp_directories()
finally:
# remove Video2X cache directory
with contextlib.suppress(FileNotFoundError):

View File

@ -18,6 +18,7 @@ from tkinter import *
from tkinter import messagebox
from tkinter import ttk
from tkinter.filedialog import *
import contextlib
import pathlib
import sys
import tempfile
@ -204,7 +205,7 @@ class Video2xGui():
# preserve frames
self.preserve_frames = BooleanVar(self.options_left)
self.preserve_frames.set(True)
self.preserve_frames.set(False)
Label(self.options_right, text='Preserve Frames', relief=RIDGE, width=15).grid(row=3, column=0, padx=2, pady=3)
preserve_frames_menu = OptionMenu(self.options_right, self.preserve_frames, *{True, False})
preserve_frames_menu.grid(row=3, column=1, padx=2, pady=3, sticky=W)
@ -267,6 +268,7 @@ class Video2xGui():
def _upscale(self):
try:
# start timer
begin_time = time.time()
@ -357,6 +359,14 @@ class Video2xGui():
self.running = False
self.start_button_text.set('Start')
except Exception as e:
messagebox.showerror('Error', f'Upscaler ran into an error:\n{e}')
# try cleaning up temp directories
with contextlib.suppress(Exception):
self.upscaler.cleanup_temp_directories()
def _progress_bar(self):
""" This method prints a progress bar