예제 #1
0
class ItemsPickerDialog(wx.Dialog):
    def __init__(self,parent, style, log):
        wx.Dialog.__init__(self,parent)
        self.log = log
        sizer = wx.BoxSizer(wx.VERTICAL)
        b = wx.Button(self, -1, "Add Item")
        b.Bind(wx.EVT_BUTTON, self.OnAdd)
        sizer.Add(b, 0, wx.ALL, 5)
        self.ip = ItemsPicker(self,-1,
                          ['ThisIsItem3','ThisIsItem2','ThisIsItem1'],
                          'Stuff:', 'Selected stuff:',ipStyle = style)
        self.ip.Bind(EVT_IP_SELECTION_CHANGED, self.OnSelectionChange)
        self.ip._source.SetMinSize((-1,150))
        self.ip.bAdd.SetBitmap(_bp_btn2.GetBitmap(), dir=wx.RIGHT)
        self.ip.bAdd.SetLabel('Add')
        self.ip.bRemove.SetBitmap(_bp_btn1.GetBitmap(), dir=wx.LEFT)
        self.ip.bRemove.SetLabel('Remove')
        sizer.Add(self.ip, 0, wx.ALL, 10)
        self.SetSizer(sizer)
        self.itemCount = 3
        self.Fit()

    def OnAdd(self,e):
        items = self.ip.GetItems()
        self.itemCount += 1
        newItem = "item%d" % self.itemCount
        self.ip.SetItems(items + [newItem])

    def OnSelectionChange(self, e):
        self.log.write("EVT_IP_SELECTION_CHANGED %s\n" % \
                        ",".join(e.GetItems()))
예제 #2
0
class ItemsPickerDialog(wx.Dialog):
    def __init__(self,parent, style, log):
        wx.Dialog.__init__(self,parent)
        self.log = log
        sizer = wx.BoxSizer(wx.VERTICAL)
        b = wx.Button(self, -1, "Add Item")
        b.Bind(wx.EVT_BUTTON, self.OnAdd)
        sizer.Add(b, 0, wx.ALL, 5)
        self.ip = ItemsPicker(self,-1,
                          ['ThisIsItem3','ThisIsItem2','ThisIsItem1'],
                          'Stuff:', 'Selected stuff:',ipStyle = style)
        self.ip.Bind(EVT_IP_SELECTION_CHANGED, self.OnSelectionChange)
        self.ip._source.SetMinSize((-1,150))

        # Customize the buttons for this example.
        if 'wxMac' not in wx.PlatformInfo:
            # NOTE: wx.Button on OSX does not modify the button size when adding a
            # bitmap after the fact like this, and these bitmaps are a little too
            # large and look funny in OSX, so we won't do this customization there.
            self.ip.bAdd.SetBitmap(_bp_btn2.GetBitmap(), dir=wx.RIGHT)
            self.ip.bAdd.SetLabel('Add')
            self.ip.bRemove.SetBitmap(_bp_btn1.GetBitmap(), dir=wx.LEFT)
            self.ip.bRemove.SetLabel('Remove')

        sizer.Add(self.ip, 0, wx.ALL, 10)
        self.SetSizer(sizer)
        self.itemCount = 3
        self.Fit()


    def OnAdd(self,e):
        items = self.ip.GetItems()
        self.itemCount += 1
        newItem = "item%d" % self.itemCount
        self.ip.SetItems(items + [newItem])


    def OnSelectionChange(self, e):
        self.log.write("EVT_IP_SELECTION_CHANGED %s\n" % \
                        ",".join(e.GetItems()))
class ItemsPickerDialog(wx.Dialog):
    def __init__(self, parent, style, log):
        wx.Dialog.__init__(self, parent, title='Pick some items...',
                           style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
        self.log = log
        sizer = wx.BoxSizer(wx.VERTICAL)
        b = wx.Button(self, -1, "Add Item")
        b.Bind(wx.EVT_BUTTON, self.OnAdd)
        sizer.Add(b, 0, wx.ALL, 5)
        self.ip = ItemsPicker(self, -1, choices=['ThisIsItem3', 'ThisIsItem6',
                                                 'ThisIsItem2', 'ThisIsItem5',
                                                 'ThisIsItem1', 'ThisIsItem4'],
                              label='Stuff:', selectedLabel='Selected stuff:',
                              ipStyle=style)
        self.ip.Bind(EVT_IP_SELECTION_CHANGED, self.OnSelectionChange)
        self.ip._source.SetMinSize((-1, 150))
        bmp2 = wx.Bitmap(gBmpDir + os.sep + "bp_btn2.png", wx.BITMAP_TYPE_PNG)
        self.ip.bAdd.SetBitmap(bmp2, dir=wx.RIGHT)
        self.ip.bAdd.SetLabel('Add')
        bmp1 = wx.Bitmap(gBmpDir + os.sep + "bp_btn1.png", wx.BITMAP_TYPE_PNG)
        self.ip.bRemove.SetBitmap(bmp1, dir=wx.LEFT)
        self.ip.bRemove.SetLabel('Remove')
        sizer.Add(self.ip, 1, wx.EXPAND | wx.ALL, 10)
        self.SetSizer(sizer)
        self.itemCount = 3
        self.Fit()
        self.SetMinSize(self.GetSize())

    def OnAdd(self, event):
        items = self.ip.GetItems()
        self.itemCount += 1
        newItem = "item%d" % self.itemCount
        self.ip.SetItems(items + [newItem])

    def OnSelectionChange(self, event):
        self.log.WriteText("EVT_IP_SELECTION_CHANGED %s\n" % \
                           ",".join(event.GetItems()))
예제 #4
0
    def settings(self, event):
        dialog = wx.Dialog(parent=self,
                           title="Settings",
                           style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
        sizer = wx.BoxSizer(wx.VERTICAL)

        normal_domains = (
            'a-0001.a-msedge.net', 'a-0002.a-msedge.net',
            'a-0003.a-msedge.net', 'a-0004.a-msedge.net',
            'a-0005.a-msedge.net', 'a-0006.a-msedge.net',
            'a-0007.a-msedge.net', 'a-0008.a-msedge.net',
            'a-0009.a-msedge.net', 'a-msedge.net', 'a.ads1.msn.com',
            'a.ads2.msads.net', 'a.ads2.msn.com', 'a.rad.msn.com',
            'ac3.msn.com', 'ad.doubleclick.net', 'adnexus.net', 'adnxs.com',
            'ads.msn.com', 'ads1.msads.net', 'ads1.msn.com', 'aidps.atdmt.com',
            'aka-cdn-ns.adtech.de', 'az361816.vo.msecnd.net',
            'az512334.vo.msecnd.net', 'b.ads1.msn.com', 'b.ads2.msads.net',
            'b.rad.msn.com', 'bs.serving-sys.com', 'c.atdmt.com', 'c.msn.com',
            'cdn.atdmt.com', 'cds26.ams9.msecn.net', 'choice.microsoft.com',
            'choice.microsoft.com.nsatc.net', 'compatexchange.cloudapp.net',
            'corp.sts.microsoft.com', 'corpext.msitadfs.glbdns2.microsoft.com',
            'cs1.wpc.v0cdn.net', 'db3aqu.atdmt.com',
            'df.telemetry.microsoft.com', 'diagnostics.support.microsoft.com',
            'ec.atdmt.com', 'feedback.microsoft-hohm.com',
            'feedback.search.microsoft.com', 'feedback.windows.com',
            'flex.msn.com', 'g.msn.com', 'h1.msn.com',
            'i1.services.social.microsoft.com',
            'i1.services.social.microsoft.com.nsatc.net',
            'lb1.www.ms.akadns.net', 'live.rads.msn.com', 'm.adnxs.com',
            'msedge.net', 'msftncsi.com', 'msnbot-65-55-108-23.search.msn.com',
            'msntest.serving-sys.com', 'oca.telemetry.microsoft.com',
            'oca.telemetry.microsoft.com.nsatc.net',
            'pre.footprintpredict.com', 'preview.msn.com', 'rad.live.com',
            'rad.msn.com', 'redir.metaservices.microsoft.com',
            'reports.wes.df.telemetry.microsoft.com',
            'schemas.microsoft.akadns.net', 'secure.adnxs.com',
            'secure.flashtalking.com',
            'services.wes.df.telemetry.microsoft.com',
            'settings-sandbox.data.microsoft.com',
            'settings-win.data.microsoft.com',
            'sls.update.microsoft.com.akadns.net',
            'sqm.df.telemetry.microsoft.com', 'sqm.telemetry.microsoft.com',
            'sqm.telemetry.microsoft.com.nsatc.net', 'ssw.live.com',
            'static.2mdn.net', 'statsfe1.ws.microsoft.com',
            'statsfe2.ws.microsoft.com', 'telecommand.telemetry.microsoft.com',
            'telecommand.telemetry.microsoft.com.nsatc.net',
            'telemetry.appex.bing.net', 'telemetry.microsoft.com',
            'telemetry.urs.microsoft.com', 'v10.vortex-win.data.microsoft.com',
            'vortex-bn2.metron.live.com.nsatc.net',
            'vortex-cy2.metron.live.com.nsatc.net',
            'vortex-sandbox.data.microsoft.com',
            'vortex-win.data.metron.live.com.nsatc.net',
            'vortex-win.data.microsoft.com',
            'vortex.data.glbdns2.microsoft.com', 'vortex.data.microsoft.com',
            'watson.live.com', 'web.vortex.data.microsoft.com',
            'www.msftncsi.com')

        extra_domains = ('fe2.update.microsoft.com.akadns.net', 's0.2mdn.net',
                         'statsfe2.update.microsoft.com.akadns.net',
                         'survey.watson.microsoft.com', 'view.atdmt.com',
                         'watson.microsoft.com',
                         'watson.ppe.telemetry.microsoft.com',
                         'watson.telemetry.microsoft.com',
                         'watson.telemetry.microsoft.com.nsatc.net',
                         'wes.df.telemetry.microsoft.com', 'ui.skype.com',
                         'pricelist.skype.com', 'apps.skype.com',
                         'm.hotmail.com', 's.gateway.messenger.live.com')

        ip_addresses = ('2.22.61.43', '2.22.61.66', '65.39.117.230',
                        '65.55.108.23', '23.218.212.69', '134.170.30.202',
                        '137.116.81.24', '157.56.106.189', '204.79.197.200',
                        '65.52.108.33', '64.4.54.254')

        normal_domain_picker = ItemsPicker(
            dialog,
            choices=[],
            selectedLabel="Domains to be blocked",
            ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES
            | IP_REMOVE_FROM_CHOICES)
        if self.picked_normal:
            normal_domain_picker.SetSelections(self.picked_normal)
            normal_domain_picker.SetItems([
                domain for domain in normal_domains
                if domain not in self.picked_normal
            ])
        else:
            normal_domain_picker.SetSelections(normal_domains)

        extra_domain_picker = ItemsPicker(
            dialog,
            choices=[],
            selectedLabel="Extra domains to be blocked",
            ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES
            | IP_REMOVE_FROM_CHOICES)
        if self.picked_extra:
            extra_domain_picker.SetSelections(self.picked_extra)
            extra_domain_picker.SetItems([
                domain for domain in extra_domains
                if domain not in self.picked_extra
            ])
        else:
            extra_domain_picker.SetSelections(extra_domains)

        ip_picker = ItemsPicker(dialog,
                                choices=[],
                                selectedLabel="IP addresses to be blocked",
                                ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES
                                | IP_REMOVE_FROM_CHOICES)
        if self.picked_ips:
            ip_picker.SetSelections(self.picked_ips)
            ip_picker.SetItems(
                [ip for ip in ip_addresses if ip not in self.picked_ips])
        else:
            ip_picker.SetSelections(ip_addresses)

        sizer.Add(normal_domain_picker, 0, wx.EXPAND)
        sizer.Add(extra_domain_picker, 0, wx.EXPAND)
        sizer.Add(ip_picker, 0, wx.EXPAND)
        if event is not None:
            dialog.SetSizerAndFit(sizer)
            dialog.Center()
            dialog.ShowModal()
        dialog.Destroy()
        self.picked_normal = normal_domain_picker.GetSelections()
        self.picked_extra = extra_domain_picker.GetSelections()
        self.picked_ips = ip_picker.GetSelections()
예제 #5
0
class BackupRollBackUI(wx.Panel):
    def __init__(self, parent, style=IP_REMOVE_FROM_CHOICES):
        wx.Panel.__init__(self, parent, style=style)
        self.backupList = GL.backup_list
        self.radioList = [u'当前用户最近备份列表', u'载入当前用户备份列表', u'载入全局备份列表']
        self.backupRadio = wx.RadioBox(self, -1, "", (-1, -1), wx.DefaultSize,
                                       self.radioList, 3,
                                       wx.RA_SPECIFY_COLS | wx.NO_BORDER)
        #BtnRollBack = wx.Button(self,label=u"锟斤拷原",size=(80,50),id=GL.Publishing)
        self.BakRollText = ItemsPicker(self,
                                       -1,
                                       self.backupList,
                                       u"备份列表",
                                       u'确认还原文件:',
                                       ipStyle=style)
        self.BakRollText.add_button_label = u'添加=》'
        self.BakRollText.remove_button_label = u'《=移除'
        hsizer = wx.BoxSizer(wx.HORIZONTAL)
        vsizer = wx.BoxSizer(wx.VERTICAL)
        self.BakRollText._source.SetMinSize((-1, 150))

        self.BakRollText._dest.SetMinSize((-1, 150))
        vsizer.Add(self.backupRadio, 0, wx.ALL, 0)
        vsizer.Add(self.BakRollText, 1, wx.ALL | wx.EXPAND, 0)
        hsizer.Add(vsizer, 1, wx.ALL | wx.EXPAND, 10)
        self.SetSizerAndFit(hsizer)
        self.itemCount = 3
        self.Bind(wx.EVT_RADIOBOX, self.OnLoadBackupList, self.backupRadio)
        self.BakRollText.Bind(EVT_IP_SELECTION_CHANGED, self.OnSelectionChange)

    def OnLoadBackupList(self, event):
        if event.GetInt() == 0:
            self.BakRollText._source.SetItems([])
            self.BakRollText._source.SetItems(GL.backup_list)
            #self.BakRollText._dest.SetItems(GL.backup_list)
            #print self.BakRollText._dest.GetItems()
        elif event.GetInt() == 1:
            self.BakRollText._source.SetItems([])
            import codecs

            #data = self.GetUserLogList('f:\\backup\\Glogs\\global_backup.log')
            #print data
            #self.FileContentList = []
            self.FileContentList = self.GetUserLogList(
                GL.global_backup_logfile, isFilter=True)
            #with codecs.open('f:\\backup\\Glogs\\global_backup.log','r',"utf8") as FileObj:
            #    [self.FileContentList.append(line) for line in FileObj]
            #print self.FileContentList

            self.BakRollText._source.SetItems(self.FileContentList)
            #self.BakRollText._source.SetBackgroundColour('#FF0000')
            #print "load log2"
        elif event.GetInt() == 2:
            self.BakRollText._source.SetItems([])
            self.FileContentList = self.GetUserLogList(
                GL.global_backup_logfile, isFilter=False)
            self.BakRollText._source.SetItems(self.FileContentList)
        else:
            self.BakRollText._source.SetItems([])

    def GetUserLogList(self, filelog, isFilter):
        if not os.path.exists(filelog):
            msg = u"读取全局日志文件出错."
            LoadLog.LogMsg(GL.logger_sysLog.error, msg)
            wx.MessageBox(msg, u"错误", style=wx.OK | wx.ICON_ERROR)
            FileContentList = []
            return FileContentList
        FileContentList = []
        with open(filelog, 'r') as f:
            if isFilter is True:
                bad = 0
                import codecs, re
                goodline = re.compile(ur'#+?.*\[%s\].*#$' % GL.SvnUser)
                badline = re.compile(ur'#+?.*\[((?!%s).)*#$' % GL.SvnUser)
                for line in f:
                    line = unicode(line, "utf8")
                    if goodline.search(line) is not None:
                        #print line
                        bad = 1
                        FileContentList.append(line.strip())
                        continue
                    if bad and badline.search(line) is None:
                        #print line
                        FileContentList.append(line.strip())
                        continue
                    else:
                        bad = 0
            else:
                [FileContentList.append(unicode(line, "utf8")) for line in f]
        return FileContentList

    def OnAdd(self, e):
        items = self.BakRollText.GetItems()
        self.itemCount += 1
        newItem = "item%d" % self.itemCount
        self.BakRollText.SetItems(items + [newItem])

    #def OnSelectionChange(self, e):
    # self.log.write("EVT_IP_SELECTION_CHANGED %s\n" % \
    # ",".join(e.GetItems()))
    def OnSelectionChange(self, e):
        #self.log.write("EVT_IP_SELECTION_CHANGED %s\n" % ",".join(e.GetItems()))
        pass
예제 #6
0
    def settings(self, event, silent=False):
        if not silent:
            dialog = wx.Dialog(parent=self,
                               title="Settings",
                               style=wx.DEFAULT_DIALOG_STYLE
                               | wx.RESIZE_BORDER)
            sizer = wx.BoxSizer(wx.VERTICAL)

        normal_domain_picker = ItemsPicker(
            dialog,
            choices=[],
            selectedLabel="Domains to be blocked",
            ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES
            | IP_REMOVE_FROM_CHOICES)
        if self.picked_normal:
            normal_domain_picker.SetSelections(self.picked_normal)
            normal_domain_picker.SetItems([
                domain for domain in normal_domains
                if domain not in self.picked_normal
            ])
        else:
            normal_domain_picker.SetSelections(normal_domains)

        extra_domain_picker = ItemsPicker(
            dialog,
            choices=[],
            selectedLabel="Extra domains to be blocked",
            ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES
            | IP_REMOVE_FROM_CHOICES)
        if self.picked_extra:
            extra_domain_picker.SetSelections(self.picked_extra)
            extra_domain_picker.SetItems([
                domain for domain in extra_domains
                if domain not in self.picked_extra
            ])
        else:
            extra_domain_picker.SetSelections(extra_domains)

        ip_picker = ItemsPicker(dialog,
                                choices=[],
                                selectedLabel="IP addresses to be blocked",
                                ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES
                                | IP_REMOVE_FROM_CHOICES)
        if self.picked_ips:
            ip_picker.SetSelections(self.picked_ips)
            ip_picker.SetItems(
                [ip for ip in ip_addresses if ip not in self.picked_ips])
        else:
            ip_picker.SetSelections(ip_addresses)

        whitelist_picker = ItemsPicker(
            dialog,
            choices=[],
            selectedLabel="Domains to be whitelisted",
            ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES
            | IP_REMOVE_FROM_CHOICES)
        if self.unpicked_ads:
            whitelist_picker.SetSelections(self.unpicked_ads)
            whitelist_picker.SetItems([
                domain for domain in adblock_whitelist
                if domain not in self.unpicked_ads
            ])
        else:
            whitelist_picker.SetSelections(adblock_whitelist)

        if not silent:
            sizer.Add(normal_domain_picker, 0, wx.EXPAND)
            sizer.Add(whitelist_picker, 0, wx.EXPAND)
            sizer.Add(extra_domain_picker, 0, wx.EXPAND)
            sizer.Add(ip_picker, 0, wx.EXPAND)
            if event is not None:
                dialog.SetSizerAndFit(sizer)
                dialog.Center()
                dialog.ShowModal()
            dialog.Destroy()

        self.unpicked_ads = whitelist_picker.GetSelections()
        self.picked_normal = normal_domain_picker.GetSelections()
        self.picked_extra = extra_domain_picker.GetSelections()
        self.picked_ips = ip_picker.GetSelections()