示例#1
0
class SystemInfo(Plugin):
    def start(self, reader):
        self.reader = reader

        self.sysinfo = Core().get_need(self.reader, 'SystemInfo')

        if not self.sysinfo:
            msg = "Cannot use SystemInfo"
        else:
            msg = "Info for %s\n\nRoutes:\n%s\nIfaces:\n%s\n" % (
                self.sysinfo.get_name(),
                self.sysinfo.get_routes(),
                self.sysinfo.get_ifaces()
            )

        dialog = HIGAlertDialog(
            None,
            gtk.DIALOG_MODAL,
            gtk.MESSAGE_INFO,
            message_format="SystemInfo-Consumer",
            secondary_text=msg
        )
        dialog.run()
        dialog.destroy()


    def stop(self):
        pass
    def start(self, reader):
        self.id = Core().connect('NmapScanNotebookPage-created', self.__on_created)

        for page in Core().get_main_scan_notebook():
            if isinstance(page, NmapScanNotebookPage):
                self.__on_created(Core(), page)
                page.emit('scan-finished')
    def __on_activate(self, widget):
        mainwnd = Core().mainwindow

        if mainwnd.flags() & gtk.VISIBLE:
            self.wndpos = mainwnd.get_position()
            mainwnd.hide()
        else:
            mainwnd.move(*self.wndpos)
            mainwnd.show()
示例#4
0
    def start(self, reader):
        self.reader = reader

        self.id = Core().connect('ScanHostsView-created',
                                 self.__on_created_hosts)

        for page in Core().get_main_scan_notebook():
            if isinstance(page, NmapScanNotebookPage):
                self.__on_created_hosts( \
                    Core(), page.scan_result.scan_host_view)
示例#5
0
    def stop(self):
        Core().disconnect(self.id)

        for page in Core().get_main_scan_notebook():
            if not isinstance(page, NmapScanNotebookPage):
                continue

            for child in page.scan_result.scan_host_view:
                if isinstance(child, MyWidget):
                    page.scan_result.scan_host_view.remove(child)
                    child.hide()
                    child.destroy()
示例#6
0
    def __on_activate(self, widget):
        mainwnd = Core().mainwindow

        if mainwnd.flags() & gtk.VISIBLE:
            self.wndpos = mainwnd.get_position()
            mainwnd.hide()
        else:
            mainwnd.move(*self.wndpos)
            mainwnd.show()
示例#7
0
    def show_about(self, pkg):
        """
        Show an about dialog for plugin.

        We use a field __about__
        """

        about_func = None
        
        try:
            module = self.__cache_import(pkg)
            about_func = module.__about__
        except Exception:
            pass
        
        # Instead using types
        def t(): pass
        
        if isinstance(about_func, type(t)):
            about_func()
        else:
            d = Core().about_dialog(pkg)
            
            d.run()
            d.hide()
            d.destroy()
    def stop(self):
        Core().disconnect(self.id)

        for page in Core().get_main_scan_notebook():
            if not isinstance(page, NmapScanNotebookPage):
                continue

            for child in page.scan_result.scan_result_notebook:
                if not isinstance(child, FlowContainer):
                    continue

                idx = page.scan_result.scan_result_notebook.page_num(child)
                page.scan_result.scan_result_notebook.remove_page(idx)

                child.hide()
                child.destroy()
示例#9
0
    def start(self, reader):
        self.reader = reader
        self.tray = Core().get_need(self.reader, 'tray')

        if not self.tray:
            d = HIGAlertDialog(
                Core().mainwindow,
                gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                message_format='Error - Notifier',
                secondary_text=
                'Unable to get the instance of tray module. The plugin cannot operate correctly.'
            )
            d.run()
            d.destroy()
        else:
            self.__connect_signals()
示例#10
0
 def __connect_signals(self):
     # Here we're going to connect various signals.
     Core().connect('NmapScanNotebookPage-created',
         lambda core, page, obj: \
             page.connect('scan-finished', obj.__on_scan_finished),
         self
     )
    def __on_close_page(self, widget, page):
        nb = Core().get_main_scan_notebook()
        idx = gtk.Notebook.page_num(nb, page)

        if idx > 0:
            page.hide()
            gtk.Notebook.remove_page(nb, idx)
示例#12
0
class Notifier(Plugin):
    def start(self, reader):
        self.reader = reader
        self.tray = Core().get_need(self.reader, 'tray')

        if not self.tray:
            d = HIGAlertDialog(
                Core().mainwindow,
                gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                message_format='Error - Notifier',
                secondary_text=
                'Unable to get the instance of tray module. The plugin cannot operate correctly.'
            )
            d.run()
            d.destroy()
        else:
            self.__connect_signals()

    def stop(self):
        pass

    def __connect_signals(self):
        # Here we're going to connect various signals.
        Core().connect('NmapScanNotebookPage-created',
            lambda core, page, obj: \
                page.connect('scan-finished', obj.__on_scan_finished),
            self
        )

    # Signals handlers
    def __on_scan_finished(self, page):
        if not self.tray:
            log.debug('Cannot procede: self.tray == None')
            return

        title = page.get_tab_label()
        if page.status.get_scan_failed():
            msg = 'The scan failed. (%s)' % page.command_execution.get_error()
            icon = gtk.STOCK_DIALOG_ERROR
        else:
            msg = 'Scan finished.'
            icon = gtk.STOCK_DIALOG_INFO

        log.debug('Showing notification (%s, %s)' % (title, msg))
        self.tray.show_notification(msg, title, stock=icon, timeout=2000)
    def __on_create_page(self, widget):
        nb = Core().get_main_scan_notebook()

        widget = TerminalPage()
        widget.show_all()

        label = HIGAnimatedTabLabel("Terminal")
        label.connect('close-clicked', self.__on_close_page, widget)

        gtk.Notebook.append_page(nb, widget, label)
    def start(self, reader):
        self.reader = reader

        self.sysinfo = Core().get_need(self.reader, 'SystemInfo')

        if not self.sysinfo:
            msg = "Cannot use SystemInfo"
        else:
            msg = "Info for %s\n\nRoutes:\n%s\nIfaces:\n%s\n" % (
                self.sysinfo.get_name(), self.sysinfo.get_routes(),
                self.sysinfo.get_ifaces())

        dialog = HIGAlertDialog(None,
                                gtk.DIALOG_MODAL,
                                gtk.MESSAGE_INFO,
                                message_format="SystemInfo-Consumer",
                                secondary_text=msg)
        dialog.run()
        dialog.destroy()
示例#15
0
class Notifier(Plugin):
    def start(self, reader):
        self.reader = reader
        self.tray = Core().get_need(self.reader, 'tray')

        if not self.tray:
            d = HIGAlertDialog(
                Core().mainwindow,
                gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                message_format='Error - Notifier',
                secondary_text='Unable to get the instance of tray module. The plugin cannot operate correctly.')
            d.run()
            d.destroy()
        else:
            self.__connect_signals()

    def stop(self):
        pass

    def __connect_signals(self):
        # Here we're going to connect various signals.
        Core().connect('NmapScanNotebookPage-created',
            lambda core, page, obj: \
                page.connect('scan-finished', obj.__on_scan_finished),
            self
        )
   
    # Signals handlers
    def __on_scan_finished(self, page):
        if not self.tray:
            log.debug('Cannot procede: self.tray == None')
            return

        title = page.get_tab_label()
        if page.status.get_scan_failed():
            msg = 'The scan failed. (%s)' % page.command_execution.get_error()
            icon = gtk.STOCK_DIALOG_ERROR
        else:
            msg = 'Scan finished.'
            icon = gtk.STOCK_DIALOG_INFO

        log.debug('Showing notification (%s, %s)' % (title, msg))
        self.tray.show_notification(msg, title, stock=icon, timeout=2000)
    def start(self, reader):
        self.reader = reader

        self._paned = paned.UmitPaned()

        main = Core().mainwindow
        main.vbox.remove(main.scan_notebook)
        main.vbox.pack_start(self._paned)

        self._paned.add_view(paned.PANE_CENTER, main.scan_notebook)
        self._paned.show_all()
示例#17
0
    def update_existing_tab_labels(self, klass):
        # We're going to do a foreach on every notebook page and change the tab
        # label of every child.
        
        log.debug('Applying %s to every page in notebook.' % str(klass))

        notebook = Core().get_main_scan_notebook()

        for page in notebook:
            # Just create a new tab label widget.
            old_label = notebook.get_tab_label(page)

            tab_label = klass(old_label.get_text())
            tab_label.get_animated_label().connect('title-edited', \
                                                   notebook.title_edited_cb, \
                                                   page)
            tab_label.connect('close-clicked', notebook.close_scan_cb)

            # Setting up
            notebook.set_tab_label(page, tab_label)

            log.debug('New tab-label class applied to page %s' % str(page))
    def update_existing_tab_labels(self, klass):
        # We're going to do a foreach on every notebook page and change the tab
        # label of every child.

        log.debug('Applying %s to every page in notebook.' % str(klass))

        notebook = Core().get_main_scan_notebook()

        for page in notebook:
            # Just create a new tab label widget.
            old_label = notebook.get_tab_label(page)

            tab_label = klass(old_label.get_text())
            tab_label.get_animated_label().connect('title-edited', \
                                                   notebook.title_edited_cb, \
                                                   page)
            tab_label.connect('close-clicked', notebook.close_scan_cb)

            # Setting up
            notebook.set_tab_label(page, tab_label)

            log.debug('New tab-label class applied to page %s' % str(page))
示例#19
0
    def start(self, reader):
        self.reader = reader
        self.tray = Core().get_need(self.reader, 'tray')

        if not self.tray:
            d = HIGAlertDialog(
                Core().mainwindow,
                gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                message_format='Error - Notifier',
                secondary_text='Unable to get the instance of tray module. The plugin cannot operate correctly.')
            d.run()
            d.destroy()
        else:
            self.__connect_signals()
    def start(self, reader):
        self.reader = reader

        # Create a ToolItem
        self.item = gtk.ToolButton(None, "Terminal")

        image = gtk.image_new_from_stock(gtk.STOCK_ABOUT, \
                                         gtk.ICON_SIZE_LARGE_TOOLBAR)
        image.show()
        self.item.set_icon_widget(image)

        # Append our item
        Core().get_main_toolbar().insert(self.item, -1)
        self.item.connect('clicked', self.__on_create_page)
        self.item.show_all()
    def start(self, reader):
        global global_animation

        log.info('We\'re going to hook a class man. Pay attention.')

        Core().connect('NmapScanNotebookPage-created', self.__on_new_nb_page)

        path = reader.extract_file('data/throbber-16.gif')

        global_animation = gtk.gdk.PixbufAnimation(path)

        ScanNotebook.HIGAnimatedTabLabel = MyHIGClosableTabLabel
        sys.modules['higwidgets.hignotebooks'].HIGClosableTabLabel = \
                                           MyHIGClosableTabLabel
        sys.modules['higwidgets.hignotebooks'].HIGAnimatedTabLabel = \
                                           MyHIGClosableTabLabel

        self.update_existing_tab_labels(MyHIGClosableTabLabel)
    def __init__(self):
        """
        Initialize the engine with the paths were plugins are located

        @type paths tuple
        @param paths a tuple containing various directory where the plugins are located
        """

        log.debug(">>> Initializing Plugin Engine")

        # Initialize our objects
        self.plugins = Plugins()
        self.tree = PluginsTree()
        self.core = Core()

        self.available_plugins = None
        self.paths = None

        self.apply_updates()
        self.recache()
示例#23
0
    def start(self, reader):
        testcase = TestAutoGen()
        passed, msg = testcase.run(reader)

        if passed:
            type = gtk.MESSAGE_INFO
        else:
            type = gtk.MESSAGE_ERROR

        if passed:
            title = "Test passed"
        else:
            title = "Test not passed"

        dialog = HIGAlertDialog(
            Core().mainwindow,
            gtk.DIALOG_DESTROY_WITH_PARENT | gtk.DIALOG_MODAL,
            type, message_format=title,
            secondary_text=msg
        )
        dialog.run()
        dialog.destroy()
    def __init__(self):
        gtk.Dialog.__init__(self, "UMIT - Tray Icon Preferences",
                            Core().mainwindow,
                            gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                            (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
                             gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))

        self.typenot = gtk.RadioButton(None, 'Use LibNotify for notifications')
        self.typehig = gtk.RadioButton(self.typenot, \
                                             'Use HIGTooltip for notifications')

        vbox = gtk.VBox(False, 2)
        vbox.pack_start(self.typenot, False, False, 0)
        vbox.pack_start(self.typehig, False, False, 0)

        frame = gtk.Frame('Type of notifications')
        frame.set_shadow_type(gtk.SHADOW_ETCHED_IN)
        frame.add(vbox)

        self.vbox.pack_start(frame)
        self.set_size_request(300, 150)

        self.connect('response', self.__on_response)
        self.show_all()
 def stop(self):
     Core().get_main_toolbar().remove(self.item)
示例#26
0
    def __start_scan(self, widget, page):
        if page.status.get_scanning():
            lbl = Core().get_main_scan_notebook().get_tab_label(page)

            if isinstance(lbl, MyHIGClosableTabLabel):
                lbl.start_animation()
    def start(self, reader):
        self.reader = reader
        self.view = ConsoleView()

        tabber = Core().get_need(self.reader, 'Tabber')
        tabber.paned.add_view(paned.PANE_BOTTOM, self.view)
 def __on_quit(self, action):
     # Ask to the main window to exit
     Core().mainwindow.emit('delete-event', None)
 def stop(self):
     tabber = Core().get_need(self.reader, 'Tabber')
     tabber.paned.remove_view(self.view)
    def __stop_scan(self, page):
        lbl = Core().get_main_scan_notebook().get_tab_label(page)

        if isinstance(lbl, MyHIGClosableTabLabel):
            lbl.stop_animation()
示例#31
0
 def __on_row_homepage(self, widget, row):
     "Homepage menu callback"
     Core().open_url(row.reader.url)
示例#32
0
    def __on_restart(self, widget):
        "Called when the user click on the restart button"

        Core().mainwindow.emit('delete-event', None)
 def stop(self):
     main = Core().mainwindow
     self._paned.hide()
     self._paned.remove_child()
     main.vbox.remove(self._paned)
     main.vbox.pack_start(main.scan_notebook)
    def __start_scan(self, widget, page):
        if page.status.get_scanning():
            lbl = Core().get_main_scan_notebook().get_tab_label(page)

            if isinstance(lbl, MyHIGClosableTabLabel):
                lbl.start_animation()
示例#35
0
    def __stop_scan(self, page):
        lbl = Core().get_main_scan_notebook().get_tab_label(page)

        if isinstance(lbl, MyHIGClosableTabLabel):
            lbl.stop_animation()