Jump to content
Korean Random
baka01998

Как хукнуть @async @process

Recommended Posts

Пробую хукнуть код
  class BrowserController(IBrowserController):
        @async
        @process
        def load(self, url=None, title=None, showActionBtn=True, showWaiting=True, ......):
               ..............

 

Когда сюда хукаюсь пишет что url unexpected
Или если хукаюсь этим кодом то умирает половина интерфейса, видимо вызов до func(*args) не доходит, ошибки в логе идут потом от того что много None обьектов(браузер и т.д не создались)

Хочу получить все аргументы load/ self объект 
Вызов load найти не смог 

Мой код:

 

from gui.mods.mod_mods_gui import g_gui, inject

from gui.game_control.browsercontroller import BrowserController

@inject.hook(BrowserController, 'load')
def load(func, *args):
    func(*args)
    print('load')
    print(args)


Что бы лучше разобраться получить бы исходник inject с  gui.mods.mod_mods_gui  =)))))

kor_rand.py

Share this post


Link to post

Short link
Share on other sites

В каждом хук-модуле есть вот такая штука

    def __override(self, cls, method, new_method):
        orig = getattr(cls, method)
        if type(orig) is property:
            setattr(cls, method, property(new_method))
        else:
            setattr(cls, method, new_method) 

И она как бы ломает декораторы, кроме декоратора property. Его она учитывает. Код взять из исходников XVM, в их репо можно найти модуль с хуками.

Share this post


Link to post

Short link
Share on other sites

хукайте не:

  class BrowserController(IBrowserController):
        @async
        @process
        def load(self, url=None, title=None, showActionBtn=True, showWaiting=True, ......):

а функции из которых этот процесс вызывается.

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...