Electron_i_k 0 Posted June 27, 2016 Гору питона подскажите ошибку. В ЦУ есть кнопка, при нажатии на которую должен браузер в клиенте открываться (game_control.g_instance.browser.load). Но ничего не происходит, логи пусты. import re import json import sys import BigWorld from urllib import urlopen from notification.NotificationListView import NotificationListView from gui.SystemMessages import SM_TYPE from notification.settings import NOTIFICATION_TYPE from notification.actions_handlers import NotificationsActionsHandlers # Константы MOD_NAME = 'mod_a_wotext' MOD_VERSION = '0.9.15.0.1 #4' DEV_NICK = 'Electron_i_k' MOD_IMAGE = '' USERGET_URL = '' SITE_URL = '' MOD_FORUM = '' # Запоминаем старое заполнение Центра Уведомлений (ЦУ) old_populate = NotificationListView._populate # Запоминаем старый обработчик ссылок (ЦУ) old_handleAction = NotificationsActionsHandlers.handleAction # Добавление сообщения в ЦУ def new_populate(self): global nickname global accountId # Ник игрока и его ид nickname = BigWorld.player().name accountId = BigWorld.player().databaseID textHtml = "blabla" # Формируем сообщение message = { 'typeID': 1, 'message': { 'bgIcon': '', 'defaultIcon': '', 'savedData': 0, 'timestamp': -1, 'filters': [], 'message': textHtml, 'type': 'black', 'icon': '', 'buttonsLayout': [{ 'action': 'go_wotext_map', 'type': 'submit', 'label': 'КПД городов' }, { 'action': 'go_wotext', 'type': 'submit', 'label': 'Мой КПД' }]}, 'entityID': 27011989, 'auxData': ['GameGreeting'] } # Базовое заполнение ЦУ old_populate(self) # Добавить новое сообщение в ЦУ self.as_appendMessageS(message) # Обрабатываем внешние ссылки def new_handleAction(self, model, typeID, entityID, actionName): if typeID == NOTIFICATION_TYPE.MESSAGE and re.match('https?://', actionName, re.I): BigWorld.wg_openWebBrowser(actionName) else: old_handleAction(self, model, typeID, entityID, actionName) # Обработка нажатия кнопок в ЦУ def new_onClickAction(self, typeID, entityID, action): from gui import game_control # Открыть карту городов if (action == 'go_wotext_map'): game_control.g_instance.browser.load("http://wotext.ru/map", "Карта городов", showActionBtn = False, browserSize=[800, 600]) # Открыть статистику игрока elif (action == 'go_wotext'): game_control.g_instance.browser.load("http://wotext.ru/?nickname={0}".format(nickname), "Игрок", showActionBtn = False, browserSize=[800, 600]) # Обработать базовый экшен else: old_onClickAction(self, typeID, entityID, action) # Новый обработчик заполнения ЦУ NotificationListView._populate = new_populate # Запоминаем старые обработчики кнопок в ЦУ old_onClickAction = NotificationListView.onClickAction # Новый обработчик NotificationsActionsHandlers.handleAction = new_handleAction # Навешиваем новый обработчик кнопок в ЦУ NotificationListView.onClickAction = new_onClickAction Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #334676 Posted June 27, 2016 я же тебе показал как нужно from adisp import process @process def openBrowserWindow(url, title): from gui import game_control width = 800 # ширина height = 600 # высота browserSize = [width, height] yield game_control.g_instance.browser.load(url=url, title=title, showActionBtn=True, browserSize=browserSize, showCloseBtn=True) if (action == 'go_wotext_map'): openBrowserWindow("http://wotext.ru/map", "Карта городов") # Открыть статистику игрока elif (action == 'go_wotext'): openBrowserWindow("http://wotext.ru/?nickname={0}".format(nickname), "Игрок",) 1 Quote Share this post Link to post Short link Share on other sites
Electron_i_k 0 #334678 Posted June 27, 2016 я же тебе показал как нужно from adisp import process @process def openBrowserWindow(url, title): from gui import game_control width = 800 # ширина height = 600 # высота browserSize = [width, height] yield game_control.g_instance.browser.load(url=url, title=title, showActionBtn=True, browserSize=browserSize, showCloseBtn=True) if (action == 'go_wotext_map'): openBrowserWindow("http://wotext.ru/map", "Карта городов") # Открыть статистику игрока elif (action == 'go_wotext'): openBrowserWindow("http://wotext.ru/?nickname={0}".format(nickname), "Игрок",) Спасибо. Так работает. В питоне как слон в посудной лавке )) Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #334810 Posted June 28, 2016 @Electron_i_k, если в тексте нет у тебя url то можешь удалить код на кликабельность, для кнопок это не нужно 1 Quote Share this post Link to post Short link Share on other sites
Electron_i_k 0 #334890 Posted June 29, 2016 @Electron_i_k, если в тексте нет у тебя url то можешь удалить код на кликабельность, для кнопок это не нужно Да, это знаю. Quote Share this post Link to post Short link Share on other sites
sergey spb 4 #394085 Posted June 6, 2017 Добрый день! Парни не поможите, что не так? # Embedded file name: mod_clikimport BigWorldfrom notification.NotificationListView import NotificationListViewfrom notification.settings import NOTIFICATION_BUTTON_STATEfrom gui.SystemMessages import SM_TYPEfrom adisp import process@processdef openBrowserWindow(url, title):from gui import game_controlwidth = 990height = 550browserSize = [width, height]yield game_control.g_instance.browser.load(url=url, title=title, showActionBtn=True, browserSize=browserSize, showCloseBtn=True)old_populate = NotificationListView._populatedef new_populate(self):message = {'typeID': 1,'message': {'bgIcon': '','defaultIcon': '','savedData': 0,'timestamp': -1,'filters': [],'buttonsStates': {'cancel': NOTIFICATION_BUTTON_STATE.HIDDEN},'buttonsLayout': [{'action': 'action_1','type': 'submit','label': '\xd0\x9e\xd1\x82\xd0\xba\xd1\x80\xd1\x8b\xd1\x82\xd1\x8c','width': 100}, {'action': 'action_2','type': 'cancel','label': 'Button 2','width': 100}],'message': '\xd0\x98\xd0\xbd\xd1\x84\xd0\xbe\xd1\x80\xd0\xbc\xd0\xb0\xd1\x86\xd0\xb8\xd1\x8f ModPackSG','type': 'black','icon': 'img://../icons/SG.png'},'entityID': 99999,'auxData': ['GameGreeting']}old_populate(self)self.as_appendMessageS(message)NotificationListView._populate = new_populateold_onClickAction = NotificationListView.onClickActiondef new_onClickAction(self, typeID, entityID, action):if action == 'action_1':openBrowserWindow('https://docviewer.yandex.ru/?url=ya-disk-public%3A%2F%2FzQ%2BixpkQPkBLxjSdk%2B5hLdC1vUIYT%2FnITuvj7140U9A%3D&name=%20information.docx&c=579508c0090d''\xd0\x98\xd0\xbd\xd1\x84\xd0\xbe\xd1\x80\xd0\xbc\xd0\xb0\xd1\x86\xd0\xb8\xd1\x8f') elif action == 'action_2':print 'action_2'else:old_onClickAction(self, typeID, entityID, action)NotificationListView.onClickAction = new_onClickAction Работало до версии 0.9.15 (примерно). Спасибо. Quote Share this post Link to post Short link Share on other sites