icons.py

来自「Ubuntu packages of security software。 相」· Python 代码 · 共 149 行

PY
149
字号
#!/usr/bin/env python# -*- coding: utf-8 -*-# Copyright (C) 2005 Insecure.Com LLC.## Author: Adriano Monteiro Marques <py.adriano@gmail.com>#         Cleber Rodrigues <cleber.gnu@gmail.com>## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAimport gtkimport gobjectimport reimport sysimport os.pathfrom zenmapCore.Paths import Pathfrom zenmapCore.UmitConf import is_maemofrom zenmapCore.UmitLogging import logicon_names = (# Operating Systems    'default',    'freebsd',    'irix',    'linux',    'macosx',    'openbsd',    'redhat',    'shadow_man',    'solaris',    'ubuntu',    'unknown',    'win',# Vulnerability Levels    'vl_1',    'vl_2',    'vl_3',    'vl_4',    'vl_5')pixmap_path = Path.pixmaps_dirif pixmap_path:    # This is a generator that returns file names for pixmaps in the order they    # should be tried.    def get_pixmap_file_names(icon_name, size):        yield '%s.svg' % icon_name        yield '%s_%s.png' % (icon_name, size)    iconfactory = gtk.IconFactory()    for icon_name in icon_names:        for type, size in (('icon', '32'), ('logo', '75')):            key = '%s_%s' % (icon_name, type)            # Look for a usable image file.            for file_name in get_pixmap_file_names(icon_name, size):                file_path = os.path.join(pixmap_path, file_name)                try:                    pixbuf = gtk.gdk.pixbuf_new_from_file(file_path)                    break                except gobject.GError:                    # Try again.                    pass            else:                log.warn('Could not find the icon for %s at any of (%s) in %s' % (icon_name, ', '.join(get_pixmap_file_names(icon_name, size)), pixmap_path))                continue            iconset = gtk.IconSet(pixbuf)            iconfactory.add(key, iconset)            log.debug('Register %s icon name for file %s' % (key, file_path))    iconfactory.add_default()def get_os_icon(os_match):    return get_os(os_match, 'icon')def get_os_logo(os_match):    return get_os(os_match, 'logo')def get_os(os_match, type):    if os_match:        if re.findall('[rR][eE][dD][ ]+[hH][aA][tT]', os_match):            # Linux icon            return 'redhat_%s'%type        elif re.findall('[uU][bB][uU][nN][tT][uU]', os_match):            # Linux icon            return 'ubuntu_%s'%type        elif re.findall('[lL][iI][nN][uU][xX]', os_match):            # Linux icon            return 'linux_%s'%type        elif re.findall('[wW][iI][nN][dD][oO][wW][sS]', os_match):            #print '>>> Match windows!'            # Windows icon            return 'win_%s'%type        elif re.findall('[oO][pP][eE][nN][bB][sS][dD]', os_match):            # OpenBSD icon            return 'openbsd_%s'%type        elif re.findall('[fF][rR][eE][eE][bB][sS][dD]', os_match):            # FreeBSD icon            return 'freebsd_%s'%type        elif re.findall('[nN][eE][tT][bB][sS][dD]', os_match):            # NetBSD icon            return 'default_%s'%type        elif re.findall('[sS][oO][lL][aA][rR][iI][sS]',os_match):            # Solaris icon            return 'solaris_%s'%type        elif re.findall('[oO][pP][eE][nN].*[sS][oO][lL][aA][rR][iI][sS]',\                        os_match):            # OpenSolaris icon            return 'solaris_%s'%type        elif re.findall('[iI][rR][iI][xX]',os_match):            # Irix icon            return 'irix_%s'%type        elif re.findall('[mM][aA][cC].*[oO][sS].*[xX]',os_match):            # Mac OS X icon            return 'macosx_%s'%type        elif re.findall('[mM][aA][cC].*[oO][sS]',os_match):            # Mac OS icon            return 'macosx_%s'%type        else:            # Default OS icon            return 'default_%s'%type    else:        # This is the icon for unkown OS        # Can't be a scary icon, like stop, cancel, etc.        return 'unknown_%s'%typedef get_vulnerability_logo(open_ports):    open_ports = int(open_ports)    if open_ports < 3:        return 'vl_1_logo'    elif open_ports < 5:        return 'vl_2_logo'    elif open_ports < 7:        return 'vl_3_logo'    elif open_ports < 9:        return 'vl_4_logo'    else:        return 'vl_5_logo'

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?