Esempio n. 1
0
    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)
Esempio n. 2
0
    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()
Esempio n. 3
0
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)
Esempio n. 4
0
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)