Jump to content
Korean Random

OrchidMantis

Newbie
  • Content Count

    4
  • Joined

  • Last visited

Posts posted by OrchidMantis


  1. from gui.game_control.browsercontroller import BrowserController

    def hookedCreateBrowser(self, ctx):
        print 'test newcreateBrowser', self, ctx
        if browserID in self._BrowserController__browsers:
            _logger.info('CTRL: Deleting a werwebrowser: %s', browserID)
            browser = self._BrowserController__browsers.pop(browserID)
            self._BrowserController__clearCallbacks(browserID, browser, True)
            browser.destroy()
            print 'deleted'
            if self._BrowserController__creatingBrowserID == browserID:
                self._BrowserController__creatingBrowserID = None
                self._BrowserController__tryCreateNextPendingBrowser()
            if browserID in self._BrowserController__pendingBrowsers:
                del self._BrowserController__pendingBrowsers[browserID]
        self.onBrowserDeleted(browserID)
        return hookCreateBrowser(self, ctx)

    def hookedDelBrowser(self, browserID):
        #выводишь вменяемое сообщение в лог
        print 'test newDelBrowser', self, browserID
        #возвращаешь обратно оригинальную функцию
        browserID = ctx['browserID']
        _logger.info('CTRL: Creating a browserwer: %r - %s', browserID, ctx['url'])
        self._BrowserController__creatingBrowserID = browserID
        browser = self._BrowserController__browsers[browserID]
        if browser.create():
            self.onBrowserAdded(browserID)

            def createNextBrowser():
                _logger.info('CTRL: Triggering werwercreate of next browser from: %s', browserID)
                creation = self._BrowserController__browserCreationCallbacks.pop(browserID, None)
                if creation is not None:
                    self._BrowserController__browsers[browserID].onCanCreateNewBrowser = self._BrowserController__browsers[
                                                                                             browserID].onCanCreateNewBrowser - creation
                BigWorld.callback(1.0, self._BrowserController__tryCreateNextPendingBrowser)

            def failedCreationCallback(url):
                _logger.info('CTRL: Failed awerwer creation: %r - %s', browserID, url)
                self._BrowserController__clearCallbacks(browserID, self._BrowserController__browsers[browserID], False)
                self.delBrowser(browserID)

            def successfulCreationCallback(url, isLoaded, httpStatusCode=None):
                _logger.info('CTRL: Ready towerwer show: %r - %r - %s', browserID, isLoaded, url)
                self._BrowserController__clearCallbacks(browserID, self._BrowserController__browsers[browserID], False)
                if isLoaded:
                    self._BrowserController__showBrowser(browserID, ctx)
                else:
                    _logger.warning('Browser requestwerwer url %s was not loaded!', url)
                g_eventBus.handleEvent(BrowserEvent(BrowserEvent.BROWSER_CREATED, ctx=ctx))
                self._BrowserController__createDone(ctx)

            def titleUpdateCallback(title):
                ctx['title'] = title

            browser.onCanCreateNewBrowser = browser.onCanCreateNewBrowser + createNextBrowser
            self._BrowserController__browserCreationCallbacks[browserID] = createNextBrowser
            browser.onFailedCreation = browser.onFailedCreation + failedCreationCallback
            browser.onTitleChange = browser.onTitleChange + titleUpdateCallback
            if ctx['isAsync']:
                self._BrowserController__browsersCallbacks[browserID] = (
                None, successfulCreationCallback, failedCreationCallback, titleUpdateCallback)
                browser.onLoadEnd = browser.onLoadEnd + successfulCreationCallback
            else:
                self._BrowserController__browsersCallbacks[browserID] = (
                successfulCreationCallback, None, failedCreationCallback, titleUpdateCallback)
                browser.onReady = browser.onReady + successfulCreationCallback
            return
        else:
            _logger.info('CTRL: Failed the create step erwer: %r', browserID)
            self.delBrowser(browserID)
            self._BrowserController__tryCreateNextPendingBrowser()
            return
        return hookDelBrowser(self, browserID)

    # Хукаешь функцию, сохраняя старую в переменную
    print dir(BrowserController)
    hookDelBrowser = BrowserController.delBrowser
    hookCreateBrowser = BrowserController._BrowserController__createBrowser

    #Вместо оригинала сохраняешь свою версию хукнутой функции
    BrowserController.delBrowser = hookedCreateBrowser
    BrowserController._BrowserController__createBrowser = hookedDelBrowser

    print 'hooked'

     

    p.s. Часть кода принадлежит spoter'у

    Кто поможет, подарю акк в овертвотче с привязкой почты и телефона

×
×
  • Create New...