Electron_i_k Posted June 27, 2016 Share 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 Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted June 27, 2016 Share 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 Link to comment Short link Share on other sites More sharing options...
Electron_i_k Posted June 27, 2016 Author Share 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 Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted June 28, 2016 Share Posted June 28, 2016 @Electron_i_k, если в тексте нет у тебя url то можешь удалить код на кликабельность, для кнопок это не нужно 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Electron_i_k Posted June 29, 2016 Author Share Posted June 29, 2016 @Electron_i_k, если в тексте нет у тебя url то можешь удалить код на кликабельность, для кнопок это не нужно Да, это знаю. @ Quote Link to comment Short link Share on other sites More sharing options...
sergey spb Posted June 6, 2017 Share 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 Link to comment Short link Share on other sites More sharing options...
Recommended Posts
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.