def OnInit(self): global client_id utils.assert_folders() utils.migrate_from_tmp() try: setup_log() except: wx.MessageBox('Another instance of Assembly is running', 'Unable to start',wx.OK | wx.ICON_ERROR) sys.exit(0) platform = utils.get_platform() auto_upgrade = utils.string2bool(platform['autoupgrade']) if len(sys.argv) > 1: utils.add_user_attribute('show_info_popup','True') utils.delete_folder_async('%s/upgrade' %os.getcwd()) wx.MessageBox('Congratulations! Assembly64 was upgraded from version %s to %s.' %(sys.argv[1], version), 'Assembly64 upgraded!',wx.OK | wx.ICON_INFORMATION) try: utils.update_server_db() newer_available,force,available_version = utils.check_version(version) if newer_available and force: update_dia = UpdateDialog(None,"New version available", "New version available. Upgrade is vital!",auto_upgrade, True) update_dia.ShowModal() if update_dia.is_app_upgrade(): upgrade = UpgradeSplash() upgrade.Show() utils.do_upgrade(upgrade,version,platform) os._exit(1) elif newer_available and not force: update_dia = UpdateDialog(None,"New version available", "New version available, but you can stay with this one.. For now!", auto_upgrade, False) update_dia.ShowModal() if update_dia.is_app_upgrade(): upgrade = UpgradeSplash() upgrade.Show() utils.do_upgrade(upgrade,version,platform) os._exit(1) except FtpOverloadedException: wx.MessageBox('Too many users right now, please try later', 'Assembly Error',wx.OK | wx.ICON_WARNING) sys.exit(0) except ftplib.all_errors as a: wx.MessageBox('Unable to communicate with Assembly64 server.', 'Assembly Error',wx.OK | wx.ICON_WARNING) sys.exit(0) except: wx.MessageBox('Unable to communicate with assembly64 server.', 'Assembly Error',wx.OK | wx.ICON_WARNING) sys.exit(0) if not utils.has_attribute('uid'): client_id = str(uuid.uuid1()) utils.add_user_attribute('uid',client_id) post_ga_event('application','startup_new_user') else: client_id = utils.get_user_attribute('uid') post_ga_event('application','startup_existing_user') if not utils.has_attribute('show_info_popup'): utils.add_user_attribute('show_info_popup','true') if utils.has_attribute(delete_files_after_install) is False: utils.add_user_attribute(delete_files_after_install,'true') thread = Thread(target = update_db,args = (10, )) thread.start() AssemblySplash().Show() return 1
def __init__(self, parent, title): reload(sys) sys.setdefaultencoding('utf8') log_info('Assembly v.%s started' % version) Thread(target=login_user, args=(self,client_id)).start() if not initial_db_refresh_done: wx.MessageBox('Unable to communicate with server.', 'Assembly Error',wx.OK | wx.ICON_ERROR) sys.exit(0) width = 300 height = 600 wx.Frame.__init__(self, parent, pos=get_pos(width,height), title=title, size=(width,height)) favicon = wx.Icon('images/bigicon2.ico',wx.BITMAP_TYPE_ICO) wx.Frame.SetIcon(self,favicon) menu_bar = wx.MenuBar() menu = wx.Menu() m_open = menu.Append(wx.ID_FILE1, "S&elect SDCard location", "Select the location where your SD card or such is located") self.Bind(wx.EVT_MENU, self.on_open, m_open) m_refresh_local_db = menu.Append(wx.ID_FILE3, "R&efresh db from server", "") self.Bind(wx.EVT_MENU, self.on_refresh_db, m_refresh_local_db) self.Bind(wx.EVT_MENU, self.on_exit,menu.Append(wx.ID_FILE8, "Exit", "")) menu_bar.Append(menu, "&File") artifactsMenu = wx.Menu() m_restorehidden = artifactsMenu.Append(wx.ID_FILE6, "Restore view") self.Bind(wx.EVT_MENU, self.restore_hidden, m_restorehidden) menu_bar.Append(artifactsMenu, "Artifacts") m_delta_artifacts = artifactsMenu.Append(wx.ID_FILE2, "Delete artifacts cache", "") self.Bind(wx.EVT_MENU, self.on_delete_artifacts, m_delta_artifacts) settingsMenu = wx.Menu() m_settings = settingsMenu.Append(wx.ID_FILE7, "Settings") self.Bind(wx.EVT_MENU, self.view_settings, m_settings) menu_bar.Append(settingsMenu, "Misc") m_log = settingsMenu.Append(wx.ID_FILE5, "View log", "") self.Bind(wx.EVT_MENU, self.on_show_log, m_log) m_about = settingsMenu.Append(wx.ID_FILE4, "About", "") self.Bind(wx.EVT_MENU, self.on_about, m_about) self.SetMenuBar(menu_bar) self.tree = wx.TreeCtrl(self, style=wx.TR_DEFAULT_STYLE | wx.TR_FULL_ROW_HIGHLIGHT | wx.TR_EDIT_LABELS) self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.on_drag, self.tree) if utils.has_attribute(work_dir_key): work_dir = utils.get_user_attribute(work_dir_key) if os.path.exists(work_dir): global dir_name dir_name = work_dir update_tree_view(self) self.Show() if utils.get_bool_attribute('show_info_popup') : Thread(target=show_info, args=(self,)).start()