Jump to content
Korean Random
dimank26

Ошибка при отправке сообщения в общий чат

Recommended Posts

21 минуту назад, ktulho сказал:

Импортируете MessengerEntry, а вызываете messenger.

from messenger import MessengerEntry

Ну я же импортировал

Share this post


Link to post

Short link
Share on other sites
12 минут назад, dimank26 сказал:

Ну я же импортировал

Что импортировали?

Share this post


Link to post

Short link
Share on other sites
4 минуты назад, ktulho сказал:

Что импортировали?

MessengerEntry

15 минут назад, ktulho сказал:

Что импортировали?


Код:
 

import BigWorld
from gui import SystemMessages
from messenger import MessengerEntry
from constants import PREBATTLE_TYPE
from messenger.m_constants import PROTO_TYPE

message = u'Hello World'

class CommonChannelCriteria(object):
  def filter(self, channel):
    return channel.getName() == messenger.m_constants.LAZY_CHANNEL.COMMON

ctrl = messenger.MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria())
ctrl.sendMessage(message.encode('utf-8'))

 

Share this post


Link to post

Short link
Share on other sites
28 минут назад, dimank26 сказал:

MessengerEntry

Правильно. А в коде обращаетесь  к объекту messenger, которого нет:

ctrl = messenger.MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria())

Попробуйте:

ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria())

 

PS Хотя посмотрел еще раз код. Попробуйте так:

from gui import SystemMessages
from messenger import MessengerEntry
from constants import PREBATTLE_TYPE
from messenger.m_constants import PROTO_TYPE, LAZY_CHANNEL

message = u'Hello World'

class CommonChannelCriteria(object):
  def filter(self, channel):
    return channel.getName() == LAZY_CHANNEL.COMMON

ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria())
ctrl.sendMessage(message.encode('utf-8'))

 

Share this post


Link to post

Short link
Share on other sites
10 минут назад, ktulho сказал:

Правильно. А в коде обращаетесь  к объекту messenger, которого нет:


ctrl = messenger.MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria())

Попробуйте:


ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria())

 


Тогда перекидывает ошибку ( NameError: global name 'messenger' is not defined )
На данную строку:

return channel.getName() == messenger.m_constants.LAZY_CHANNEL.COMMON

Пробовал заменить на:
 

return channel.getName() == MessengerEntry.m_constants.LAZY_CHANNEL.COMMON

Тогда выдаёт ошибку ( AttributeError: 'module' object has no attribute 'm_constants' )

Share this post


Link to post

Short link
Share on other sites
9 минут назад, dimank26 сказал:

На данную строку:

Смотрите выше, я поправил.

Share this post


Link to post

Short link
Share on other sites
3 минуты назад, ktulho сказал:

Смотрите выше, я поправил.

Оооо, работает, спасибо большое, но русские символы так и не хотят почему-то)
spacer.png

Share this post


Link to post

Short link
Share on other sites

@dimank26 попробуйте так:

import locale
from gui import SystemMessages
from messenger import MessengerEntry
from constants import PREBATTLE_TYPE
from messenger.m_constants import PROTO_TYPE, LAZY_CHANNEL

message = u'Hello World'

class CommonChannelCriteria(object):
  def filter(self, channel):
    return channel.getName() == LAZY_CHANNEL.COMMON

ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria())
ctrl.sendMessage(message.decode(locale.getdefaultlocale()[1]).encode('utf-8'))

 

Share this post


Link to post

Short link
Share on other sites
2 минуты назад, ktulho сказал:

@dimank26 попробуйте так:


import locale
from gui import SystemMessages
from messenger import MessengerEntry
from constants import PREBATTLE_TYPE
from messenger.m_constants import PROTO_TYPE, LAZY_CHANNEL

message = u'Hello World'

class CommonChannelCriteria(object):
  def filter(self, channel):
    return channel.getName() == LAZY_CHANNEL.COMMON

ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria())
ctrl.sendMessage(message.decode(locale.getdefaultlocale()[1]).encode('utf-8'))

 

spacer.png

Share this post


Link to post

Short link
Share on other sites

Еще такой вариант:

ctrl.sendMessage(message.decode('ascii').encode('utf-8'))

 

Share this post


Link to post

Short link
Share on other sites
4 минуты назад, ktulho сказал:

Еще такой вариант:


ctrl.sendMessage(message.decode('ascii').encode('utf-8'))

 

spacer.png
Пробовал кстати этот вариант, может передавать в unicode как-то?
просто если отправлять уже в unicode, то символы русские

 

Share this post


Link to post

Short link
Share on other sites
from gui import SystemMessages
from messenger import MessengerEntry
from constants import PREBATTLE_TYPE
from messenger.m_constants import PROTO_TYPE, LAZY_CHANNEL

message = 'Привет мир'

class CommonChannelCriteria(object):
  def filter(self, channel):
    return channel.getName() == LAZY_CHANNEL.COMMON

ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria())
ctrl.sendMessage(message)

 

Share this post


Link to post

Short link
Share on other sites
11 минут назад, ktulho сказал:

from gui import SystemMessages
from messenger import MessengerEntry
from constants import PREBATTLE_TYPE
from messenger.m_constants import PROTO_TYPE, LAZY_CHANNEL

message = 'Привет мир'

class CommonChannelCriteria(object):
  def filter(self, channel):
    return channel.getName() == LAZY_CHANNEL.COMMON

ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria())
ctrl.sendMessage(message)

 

spacer.png

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...