2014-10-27 23:29:04 +01:00
|
|
|
# -*- coding: utf-8 -*-
|
2015-04-04 00:57:08 +02:00
|
|
|
import platform
|
|
|
|
""" there are lots of things not implemented for Gtk+ yet.
|
|
|
|
We've started this effort 1 Apr 2015 so it isn't fully functional. We will remove the ifs statements when are no needed"""
|
|
|
|
|
|
|
|
system = platform.system()
|
|
|
|
if system == "Windows":
|
|
|
|
import sys
|
|
|
|
import os
|
|
|
|
#redirect the original stdout and stderr
|
|
|
|
stdout=sys.stdout
|
|
|
|
stderr=sys.stderr
|
|
|
|
sys.stdout = open(os.path.join(os.getenv("temp"), "stdout.log"), "w")
|
|
|
|
sys.stderr = open(os.path.join(os.getenv("temp"), "stderr.log"), "w")
|
2014-11-13 03:41:29 +01:00
|
|
|
import languageHandler
|
2014-10-27 23:29:04 +01:00
|
|
|
import paths
|
2016-01-20 09:18:27 +01:00
|
|
|
#check if TWBlue is installed (Windows only)
|
|
|
|
if os.path.exists(paths.app_path(u"Uninstall.exe")):
|
|
|
|
paths.mode="installed"
|
2014-10-27 23:29:04 +01:00
|
|
|
import commandline
|
2014-11-13 03:41:29 +01:00
|
|
|
import config
|
|
|
|
import output
|
2015-01-19 19:15:57 +01:00
|
|
|
import logging
|
|
|
|
import application
|
2015-02-05 00:00:03 +01:00
|
|
|
import keys
|
2015-01-28 00:09:28 +01:00
|
|
|
from mysc.thread_utils import call_threaded
|
2015-02-23 01:45:26 +01:00
|
|
|
import fixes
|
2015-04-04 00:57:08 +02:00
|
|
|
import widgetUtils
|
2015-07-29 21:05:26 +02:00
|
|
|
import webbrowser
|
|
|
|
from wxUI import commonMessageDialogs
|
2015-04-04 00:57:08 +02:00
|
|
|
if system == "Windows":
|
|
|
|
from logger import logger
|
|
|
|
from update import updater
|
|
|
|
stdout_temp=sys.stdout
|
|
|
|
stderr_temp=sys.stderr
|
2015-02-28 15:31:19 +01:00
|
|
|
#if it's a binary version
|
2015-04-04 00:57:08 +02:00
|
|
|
if hasattr(sys, 'frozen'):
|
|
|
|
sys.stderr = open(paths.logs_path("stderr.log"), 'w')
|
|
|
|
sys.stdout = open(paths.logs_path("stdout.log"), 'w')
|
|
|
|
else:
|
|
|
|
sys.stdout=stdout
|
|
|
|
sys.stderr=stderr
|
2018-08-12 12:35:43 +02:00
|
|
|
# We are running from source, let's prepare vlc module for that situation
|
|
|
|
if system=="Windows":
|
|
|
|
arch="x86"
|
|
|
|
if platform.architecture()[0][:2] == "64":
|
|
|
|
arch="x64"
|
2018-08-12 23:19:15 +02:00
|
|
|
os.environ['PYTHON_VLC_MODULE_PATH']=str(os.path.abspath(paths.app_path("..", "windows-dependencies", arch)))
|
|
|
|
os.environ['PYTHON_VLC_LIB_PATH']=str(os.path.abspath(paths.app_path("..", "windows-dependencies", arch, "libvlc.dll")))
|
2018-08-12 12:35:43 +02:00
|
|
|
#the final log files have been opened succesfully, let's close the temporary files
|
2015-04-04 00:57:08 +02:00
|
|
|
stdout_temp.close()
|
|
|
|
stderr_temp.close()
|
2018-08-12 13:38:39 +02:00
|
|
|
#finally, remove the temporary files. TW Blue doesn't need them anymore, and we will get more free space on the harddrive
|
2015-04-04 00:57:08 +02:00
|
|
|
os.remove(stdout_temp.name)
|
|
|
|
os.remove(stderr_temp.name)
|
2018-08-12 13:38:39 +02:00
|
|
|
import sound
|
2015-04-04 00:57:08 +02:00
|
|
|
if system == "Linux":
|
|
|
|
from gi.repository import Gdk, GObject, GLib
|
|
|
|
|
2015-01-19 19:15:57 +01:00
|
|
|
log = logging.getLogger("main")
|
2014-11-13 03:41:29 +01:00
|
|
|
|
|
|
|
def setup():
|
2015-04-20 01:10:34 +02:00
|
|
|
log.debug("Starting " + application.name + " %s" % (application.version,))
|
2014-11-13 03:41:29 +01:00
|
|
|
config.setup()
|
2015-01-19 19:15:57 +01:00
|
|
|
log.debug("Using %s %s" % (platform.system(), platform.architecture()[0]))
|
|
|
|
log.debug("Application path is %s" % (paths.app_path(),))
|
2015-02-22 18:38:22 +01:00
|
|
|
log.debug("config path is %s" % (paths.config_path(),))
|
2014-11-13 03:41:29 +01:00
|
|
|
sound.setup()
|
|
|
|
output.setup()
|
|
|
|
languageHandler.setLanguage(config.app["app-settings"]["language"])
|
2015-10-18 12:19:43 +02:00
|
|
|
fixes.setup()
|
2015-02-05 00:00:03 +01:00
|
|
|
keys.setup()
|
2014-11-13 03:41:29 +01:00
|
|
|
from controller import mainController
|
|
|
|
from sessionmanager import sessionManager
|
2015-04-04 00:57:08 +02:00
|
|
|
app = widgetUtils.mainLoopObject()
|
|
|
|
if system == "Windows":
|
2015-07-29 21:05:26 +02:00
|
|
|
if config.app["app-settings"]["donation_dialog_displayed"] == False:
|
|
|
|
donation()
|
2016-04-16 00:04:03 +02:00
|
|
|
if config.app['app-settings']['check_for_updates']:
|
|
|
|
updater.do_update()
|
2014-11-13 03:41:29 +01:00
|
|
|
sm = sessionManager.sessionManagerController()
|
|
|
|
sm.fill_list()
|
|
|
|
if len(sm.sessions) == 0: sm.show()
|
|
|
|
else:
|
|
|
|
sm.do_ok()
|
2015-04-04 00:57:08 +02:00
|
|
|
if hasattr(sm.view, "destroy"):
|
|
|
|
sm.view.destroy()
|
2014-11-13 03:41:29 +01:00
|
|
|
del sm
|
|
|
|
r = mainController.Controller()
|
2015-04-04 00:57:08 +02:00
|
|
|
r.view.show()
|
2015-01-28 00:09:28 +01:00
|
|
|
r.do_work()
|
2015-03-09 22:55:34 +01:00
|
|
|
r.check_invisible_at_startup()
|
2015-04-04 00:57:08 +02:00
|
|
|
if system == "Windows":
|
|
|
|
call_threaded(r.start)
|
|
|
|
elif system == "Linux":
|
|
|
|
GLib.idle_add(r.start)
|
|
|
|
app.run()
|
2014-11-13 03:41:29 +01:00
|
|
|
|
2015-07-29 21:05:26 +02:00
|
|
|
def donation():
|
|
|
|
dlg = commonMessageDialogs.donation()
|
|
|
|
if dlg == widgetUtils.YES:
|
2017-05-06 21:34:50 +02:00
|
|
|
webbrowser.open_new_tab(_("https://twblue.es/donate"))
|
2015-07-29 21:05:26 +02:00
|
|
|
config.app["app-settings"]["donation_dialog_displayed"] = True
|
|
|
|
|
2015-04-04 00:57:08 +02:00
|
|
|
setup()
|