From 5063966772a7892261479a5e9af1541512eab4a3 Mon Sep 17 00:00:00 2001 From: git-o-bot Date: Tue, 19 Apr 2016 21:10:05 +0200 Subject: [PATCH] separated axolotol layers, use android env --- yowsupwrapper.py | 36 ++++-------------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/yowsupwrapper.py b/yowsupwrapper.py index 2f5c162..644c28d 100644 --- a/yowsupwrapper.py +++ b/yowsupwrapper.py @@ -10,7 +10,7 @@ from yowsup.layers import YowLayerEvent, YowParallelLayer from yowsup.layers.auth import AuthError # Layers -from yowsup.layers.axolotl import YowAxolotlLayer +from yowsup.layers.axolotl import AxolotlSendLayer, AxolotlControlLayer, AxolotlReceivelayer from yowsup.layers.auth import YowCryptLayer, YowAuthenticationProtocolLayer from yowsup.layers.coder import YowCoderLayer from yowsup.layers.logger import YowLoggerLayer @@ -58,38 +58,9 @@ from functools import partial #from session import MsgIDs -# Temporarily work around yowsup padding bugs with new protocol -class UpdatedYowAxolotlLayer(YowAxolotlLayer): - def decodeInt7bit(self, string): - idx = 0 - while ord(string[idx]) >= 128: - idx += 1 - consumedBytes = idx + 1 - value = 0 - while idx >= 0: - value <<= 7 - value += ord(string[idx]) % 128 - idx -= 1 - return value, consumedBytes - - def unpadV2Plaintext(self, v2plaintext): - end = -ord(v2plaintext[-1]) # length of the left padding - length,consumed = self.decodeInt7bit(v2plaintext[1:]) - return v2plaintext[1+consumed:end] - -# Temporary env until yowsup updates -class UpdatedS40YowsupEnv(env.S40YowsupEnv): - _VERSION = "2.13.39" - _OS_NAME= "S40" - _OS_VERSION = "14.26" - _DEVICE_NAME = "302" - _MANUFACTURER = "Nokia" - _TOKEN_STRING = "PdA2DJyKoUrwLw1Bg6EIhzh502dF9noR9uFCllGk{phone}" - _AXOLOTL = True - class YowsupApp(object): def __init__(self): - env.CURRENT_ENV = UpdatedS40YowsupEnv() + env.CURRENT_ENV = env.AndroidYowsupEnv() layers = (YowsupAppLayer, YowParallelLayer((YowAuthenticationProtocolLayer, @@ -107,7 +78,8 @@ class YowsupApp(object): YowProfilesProtocolLayer, YowGroupsProtocolLayer, YowPresenceProtocolLayer)), - UpdatedYowAxolotlLayer, + AxolotlControlLayer, + YowParallelLayer((AxolotlSendLayer, AxolotlReceivelayer)), YowCoderLayer, YowCryptLayer, YowStanzaRegulator,