def __init__(self, parent): x = 570 y = 540 file = open(r'system/info.txt', 'r') data = file.read() wx.Dialog.__init__(self,parent,-1,title='Important!!!',pos=get_pos(x,y),size=(x,y),style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER) self.SetBackgroundColour(wx.WHITE) sizer = wx.GridBagSizer(5,5) header = wx.StaticText(self, -1, 'Welcome to Assembly64') header.SetFont(wx.Font(11, wx.DECORATIVE, wx.NORMAL, wx.NORMAL)) sizer.Add(header, pos=(1,1),flag=wx.LEFT|wx.RIGHT|wx.TOP, border=10) info = wx.StaticText(self,-1, data) info.SetFont(wx.Font(9, wx.DECORATIVE, wx.NORMAL, wx.NORMAL)) sizer.Add(info, pos=(2,1), span=(1,5), flag=wx.LEFT|wx.RIGHT|wx.TOP, border=10) hyper1 = hl.HyperLinkCtrl(self, -1, "Assembly64 home", URL = "http://freabesdreamnet.asuscomm.com:1337/assembly/index.html") sizer.Add(hyper1, pos=(5,1), flag=wx.LEFT|wx.RIGHT|wx.TOP, border=10) donate = hl.HyperLinkCtrl(self, -1, "Donate via paypal", URL = "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8D6YK9LXULYPE") sizer.Add(donate, pos=(5,2), flag=wx.LEFT|wx.RIGHT|wx.TOP, border=10) self.always_show = wx.CheckBox(self, -1, 'Show this message on startup', (10, 10)) if utils.get_boolean_user_setting('show_info_popup'): self.always_show.SetValue(True) sizer.Add(self.always_show, pos=(3,1), flag=wx.LEFT|wx.RIGHT|wx.TOP, border=10) img = wx.Image(name = "images/face2.jpg") imageCtrl = wx.StaticBitmap(self, wx.ID_ANY,wx.BitmapFromImage(img)) sizer.Add(imageCtrl, pos=(4,1),flag=wx.LEFT|wx.RIGHT|wx.TOP, border=10) okButton = wx.Button(self,id=-1,label='OK') okButton.Bind(wx.EVT_BUTTON,self.OnDone) sizer.Add(okButton, pos=(5,4),flag=wx.LEFT|wx.RIGHT|wx.TOP, border=10) self.SetSizer(sizer)
def __init__(self, parent, uid): super(SettingsDialog, self).__init__(parent, title='Settings', size=(390, 180)) self.uid = uid Thread(target=self.get_settings, args=()).start() panel = wx.Panel(self) vbox = wx.BoxSizer(wx.VERTICAL) hbox1 = wx.BoxSizer(wx.HORIZONTAL) st1 = wx.StaticText(panel, label='Mail address') hbox1.Add(st1, flag=wx.RIGHT, border=8) self.mail_field = wx.TextCtrl(panel) hbox1.Add(self.mail_field, proportion=1) vbox.Add(hbox1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10) vbox.Add((-1, 10)) hbox4 = wx.BoxSizer(wx.HORIZONTAL) self.notifications = wx.CheckBox(panel, label='Notify me when new content is available') hbox4.Add(self.notifications, flag=wx.RIGHT, border=10) vbox.Add(hbox4, flag=wx.LEFT, border=10) vbox.Add((-1, 10)) hbox41 = wx.BoxSizer(wx.HORIZONTAL) self.delete_after_unzip = wx.CheckBox(panel, label='Delete tmpfiles after install') if utils.get_boolean_user_setting(delete_files_after_install): self.delete_after_unzip.SetValue(True) hbox41.Add(self.delete_after_unzip, flag=wx.RIGHT, border=10) vbox.Add(hbox41, flag=wx.LEFT, border=10) vbox.Add((-1, 30)) hbox5 = wx.BoxSizer(wx.HORIZONTAL) btn1 = wx.Button(panel, label='Ok', size=(70, 30)) btn1.Bind(wx.EVT_BUTTON,self.saveandclose_dialog) hbox5.Add(btn1) btn2 = wx.Button(panel, label='Close', size=(70, 30)) btn2.Bind(wx.EVT_BUTTON,self.close_dialog) hbox5.Add(btn2, flag=wx.LEFT|wx.BOTTOM, border=5) vbox.Add(hbox5, flag=wx.ALIGN_RIGHT|wx.RIGHT, border=10) panel.SetSizer(vbox) post_ga_event('application_click','settings_dialog') self.Centre() self.ShowModal()
def update_item(self, item,dispose_dia = True): post_ga_event('update_item','artifact_%s' % item.name) try: if item.create_delta: for deltaitem in item.deltas: if not utils.check_if_already_updated_with_delta(dir_name, item.name, deltaitem.version): log_dia_info('Updating file %s' % deltaitem.file) retries = 0 nof_retries = 3 while retries < nof_retries: utils.get_file(utils.resolve_delta_dir(item),utils.get_storage_location(deltaitem.file),deltaitem.file,item.name) dia_tick() if was_dia_cancelled(): log_dia_info('Cancelling...') break if item.dynamic_import: utils.delete_folder(utils.user_file_cache_dyn) utils.create_dir(utils.user_file_cache_dyn) try: if was_dia_cancelled(): log_dia_info('Cancelling...') break utils.extract_file(utils.get_storage_location(deltaitem.file), utils.user_file_cache_dyn,item,True) if was_dia_cancelled(): log_dia_info('Cancelling...') break dynamic_import.move_in_place(utils.user_file_cache + 'dyn/%s/' % item.folder, '%s/%s/' % (dir_name, item.folder)) if was_dia_cancelled(): log_dia_info('Cancelling...') update_tree_view(self) break utils.update_db(dir_name, item.name, deltaitem.version) utils.delete_folder(utils.user_file_cache + 'dyn/%s/' % item.folder) item.needs_update = False update_tree_view(self) dia_tick() break except FtpOverloadedException: post_ga_event('update_item_ftp_overload','artifact_%s' % deltaitem.file) raise except InvalidZipFileException as e: post_ga_event('update_item_invalid_zip','artifact_%s' % deltaitem.file) utils.delete_file(utils.get_storage_location(deltaitem.file)) if retries == nof_retries-1: raise else: log_info('Unpacking %s into %s' % (item.name, dir_name)) try: if was_dia_cancelled(): log_dia_info('Cancelling...') break utils.extract_file(utils.get_storage_location(deltaitem.file), dir_name,item,False) if was_dia_cancelled(): log_dia_info('Cancelling...') update_tree_view(self) break utils.update_db(dir_name, item.name, deltaitem.version) target_folder = dir_name + '/' + item.folder log_dia_info('Updated %s with deltafile %s at location %s' % (item.name,deltaitem.file,target_folder)) item.needs_update = False update_tree_view(self) dia_tick() if utils.get_boolean_user_setting(delete_files_after_install): utils.delete_file(utils.get_storage_location(deltaitem.file)) break except FtpOverloadedException: post_ga_event('update_item_ftp_overload','artifact_%s' % deltaitem.file) raise except InvalidZipFileException: post_ga_event('update_item_invalid_zip','artifact_%s' % deltaitem.file) log_dia_info('Invalid deltazifile, delete and retry') utils.delete_file(utils.get_storage_location(deltaitem.file)) if retries == nof_retries-1: raise retries += 1 if dispose_dia: wx.CallAfter(dispose_dialog) except FtpOverloadedException: if dispose_dia: wx.CallAfter(dispose_dialog_fail,'Too many users right now, please try again later') except InvalidZipFileException as e: if dispose_dia: wx.CallAfter(dispose_dialog_fail,e.message) except: if dispose_dia: wx.CallAfter(dispose_dialog_fail,'Unknown error %s:' % sys.exc_info()[0]) finally: update_tree_view(self)
def install_item(self, current_item, dispose_dia = True): post_ga_event('install_item','artifact_%s' % current_item.name) folder = '%s/%s/' % (dir_name, current_item.folder) if not utils.check_if_already_updated_with_delta(dir_name, current_item.name, current_item.version) or not os.path.exists(folder): try: log_dia_info('Getting full entry %s' % current_item.name) retries = 0 nof_retries = 3 while retries < nof_retries: try: utils.get_file(current_item.basedir,utils.get_storage_location(current_item.file),current_item.file,current_item.name) if os.path.exists(folder): log_dia_info('Deleting current folder %s (this may take a while, please be patient)' % folder) utils.delete_folder('%s/%s/' % (dir_name, current_item.folder)) if was_dia_cancelled(): log_dia_info('Downloaded for %s was cancelled' % current_item.name) if dispose_dia: wx.CallAfter(dispose_dialog) return log_dia_info('Downloaded %s' % current_item.name) log_dia_info('Extracting files %s' %dir_name) dia_tick() utils.extract_file(utils.get_storage_location(current_item.file), dir_name,current_item,True) dia_tick() break; except InvalidZipFileException: post_ga_event('install_item_invalid_zip','artifact_%s' % current_item.name) log_info('Invalid zifile, delete and retry') utils.delete_file(utils.get_storage_location(current_item.file)) if retries == nof_retries-1: raise retries+=1 if utils.get_boolean_user_setting(delete_files_after_install): utils.delete_file(utils.get_storage_location(current_item.file)) if was_dia_cancelled(): if dispose_dia: wx.CallAfter(dispose_dialog) return log_dia_info('Update db') utils.update_db(dir_name, current_item.name, current_item.version) current_item.not_installed = False log_dia_info('Done extracting full entry %s at location %s' % (current_item.name, dir_name)) log_dia_info('Install done') if dispose_dia: wx.CallAfter(dispose_dialog) except InvalidZipFileException as e: utils.delete_folder('%s/%s/' % (dir_name, current_item.folder)) log_dia_info('Install failed du to error during fetch or unzip') if dispose_dia: wx.CallAfter(dispose_dialog_fail,e.message) except FtpOverloadedException as e: log_dia_info('Too many users, please try agin in a while') if dispose_dia: wx.CallAfter(dispose_dialog_fail,'Too many users, please try later') except: utils.delete_folder('%s/%s/' % (dir_name, current_item.folder)) log_dia_info('Install failed due to unknown error') if dispose_dia: wx.CallAfter(dispose_dialog_fail,'Unknown error %s:' % sys.exc_info()[0]) finally: update_tree_view(self) else: if dispose_dia: wx.CallAfter(dispose_dialog)