Ставку вынужден снять по личным причинам, приношу извинения.
Пусть будет 340
Стартую, 300
Присоединяюсь, мне тоже билетик, пожалуйста.
Даю старт..
Шагну......
170$.......
шагну, 150$
Некоторые мои соображения.
проблема в строке 1458 файла pyicqt-0.8.1.5/src/tlib/oscar.py, в этой функции:
def oscar_01_10(self,snac): skip = struct.unpack('!H',snac[5][:2])[0] newLevel = struct.unpack('!H',snac[5][2+skip:4+skip])[0]/10 if len(snac[5])>4+skip: by = self.parseUser(snac[5][4+skip:]) else: by = None self.receiveWarning(newLevel, by)
Сама функция - один из методов класса BOSConnection.
Идем выше, на строчку 811 в функцию класса SNACBased, который является родителем класса BOSConnection.
Функция oscar_Data:
def oscar_Data(self,data): <...> func=getattr(self,'oscar_%02X_%02X'%(snac[0],snac[1]),None) if not func: self.oscar_unknown(snac) else: func(snac) return "Data"
И еще выше в класс OscarConnection в функцию dataReceived:
def dataReceived(self,data): <...> func=getattr(self,"oscar_%s"%self.state,None) if not func: log.msg("no func for state: %s" % self.state) return <...>
Т.о. в log.msg, которая является частью библиотеки twisted нужно передать сообщение "no func for state: %s". Но атрибут state связан с другими классами, так или иначе дело доходит до функции oscar_Data, в которой переменной func передается атрибут-функция, выбор которого определяет snac (некий параметр получаемый извне). Этот атрибут в нашем случае -- функция oscar_01_10. Т.о. вызов func(snac), который мы увидим позже -- и есть вызов функции oscar_01_10, в котором и произошла ошибка. А ошибка чисто структурная, из модуля struct. В результате - log.msg не может принять нужный параметр, поэтому в вершине иерархии трейса - библиотека twisted.
Как-то так. Если кто в чем поправит, буду благодарен.
Чтобы надежно пофиксить, нужно глубже повкуривать код.
Поймать ошибку можно с помощью
exception struct.error, err:
print str(err)
Мне тоже URL, будьте добры.