2016-04-20 6 views
0

Меня пытаюсь Yowsup2 с демо EchoClient:yowsup2 получает неполные сообщения и странные символы

yowsup-cli demos -c config.example -e 

Я получаю сообщение, но они являются неполными и содержать странные символы в конце каждого текста.

Например: Я посылаю «Как вас зовут?». от моего мобильного телефона до номера Yowsup2 и Yowsup2 (и распечатать в терминале): Эхо-шляпа - ваше имя?

Любая идея ?

ответ

0

Я работал над проектом, используя эту библиотеку, и я застрял в этом вопросе, я ждал кого-то, чтобы исправить это, и так как не имеет я попробовал и получил мое работать, это то, что я сделал

клонировать репозиторий из GitHub

тестировался на python3.5

в yowsup/layers/axolotl/layer.py

заменить line 192, который

191    padded.extend(self.encodeInt7bit(len(plaintext))) 
192    padded.extend(plaintext) # this is the line. replace it 
193    padded.append(ord("\x01")) 

с этим

padded.extend(plaintext.encode() if isinstance(plaintext,str) else plaintext) 

оных @jlguardi исправить в этом thread, но я должен был изменить его немного, чтобы работать для меня

def decodeInt7bit(self, string): 
    idx = 0 
    while string[idx] >= 128: 
     idx += 1 
    consumedBytes = idx + 1 
    value = 0 
    while idx >= 0: 
     value <<= 7 
     value += string[idx] % 128 
     idx -= 1 
    return value, consumedBytes 

def unpadV2Plaintext(self, v2plaintext): 
    print(v2plaintext) 
    v2plaintext=bytearray(v2plaintext,'utf8') if isinstance(v2plaintext,str) else v2plaintext 
    end = (-(v2plaintext[-1])) # length of the left padding 
    length,consumed = self.decodeInt7bit(v2plaintext[1:]) 
    return v2plaintext[1+consumed:end] 
кажется чистым на стороне клиента

2016-05-11-11-27-07

Извращенный текст, хотя все еще на сервере появляется

snapshot2

не

установить setup.py install

Надеюсь, что это работает для вас