75 lines
2.6 KiB
Python
75 lines
2.6 KiB
Python
import os
|
|
import sys
|
|
from controller.HomeController import HomeController
|
|
from controller.InfoController import InfoController
|
|
from controller.MainController import MainController
|
|
from controller.Frames import Frames
|
|
from model.WebPicDownloader import WebPicDownloader
|
|
from view.HomeView import HomeView
|
|
from view.InfoView import InfoView
|
|
from view.MainWindow import MainWindow
|
|
|
|
|
|
def get_sys_directory() -> str:
|
|
"""
|
|
Recover the path of the application's resources.
|
|
"""
|
|
try:
|
|
directory = sys._MEIPASS
|
|
except Exception:
|
|
directory = os.getcwd()
|
|
return directory
|
|
|
|
def get_config() -> dict:
|
|
"""
|
|
Retrieve the application configuration
|
|
"""
|
|
return {
|
|
'app_name': 'WebPicDownloader',
|
|
'app_folder': os.getcwd(),
|
|
'app_version': '1.0.0', # This version must match with the version.txt at root
|
|
'app_version_date': '2022-09-05',
|
|
|
|
'sys_directory': get_sys_directory(),
|
|
|
|
'about_title': 'About WebPicDownloader',
|
|
'about_content': "This scraping software has been developed by EndMove\nand is fully open-source. The source code is available\nhere: https://git.endmove.eu/EndMove/WebPicDownloader\nEndMove is available at the following address for any\nrequest contact@endmove.eu. In case of problemsplease\nopen an issue on the repository.\n\nThe logo of the software was made by Gashila"
|
|
}
|
|
|
|
if __name__ == '__main__':
|
|
"""
|
|
WebPicDownloader is a program developed and maintened by EndMove under Apache 2.0 License. Stealing code is a crime !
|
|
Disclamer : The developer of this application can in no way be held responsible if his application is used for illegal purposes.
|
|
|
|
@author Jérémi Nihart / EndMove
|
|
@link https://git.endmove.eu/EndMove/WebPicDownloader
|
|
@version 1.0.0
|
|
@since 2022-08-30
|
|
"""
|
|
# configuration
|
|
config = get_config()
|
|
|
|
# Create utli/model
|
|
webpic = WebPicDownloader(path=config.get('app_folder'))
|
|
|
|
# Create app controllers
|
|
main_controller = MainController(config)
|
|
home_controller = HomeController(main_controller, webpic)
|
|
info_controller = InfoController(main_controller)
|
|
|
|
# Create app views
|
|
main_window = MainWindow(main_controller)
|
|
home_view = HomeView(main_window, home_controller)
|
|
info_controller = InfoView(main_window, info_controller)
|
|
|
|
# Add views to main window
|
|
main_window.add_view(Frames.HOME, home_view)
|
|
main_window.add_view(Frames.INFO, info_controller)
|
|
|
|
# Choose the launching view
|
|
main_window.show_frame(Frames.HOME)
|
|
|
|
# Start main windows looping (launch program)
|
|
|
|
main_window.mainloop()
|