Fix Yowsup stack and env
This commit is contained in:
parent
c66d492707
commit
118d65cbd8
|
@ -26,7 +26,7 @@ import logging
|
||||||
import urllib
|
import urllib
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from PIL import Image
|
# from PIL import Image
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from yowsup import env
|
from yowsup import env
|
||||||
|
from yowsup.env import S40YowsupEnv
|
||||||
from yowsup.stacks import YowStack
|
from yowsup.stacks import YowStack
|
||||||
from yowsup.common import YowConstants
|
from yowsup.common import YowConstants
|
||||||
from yowsup.layers import YowLayerEvent, YowParallelLayer
|
from yowsup.layers import YowLayerEvent, YowParallelLayer
|
||||||
from yowsup.layers.auth import AuthError
|
from yowsup.layers.auth import AuthError
|
||||||
|
|
||||||
# Layers
|
# Layers
|
||||||
from yowsup.layers.axolotl import YowAxolotlLayer
|
# from yowsup.layers.axolotl import YowAxolotlLayer
|
||||||
from yowsup.layers.auth import YowCryptLayer, YowAuthenticationProtocolLayer
|
from yowsup.layers.auth import YowCryptLayer, YowAuthenticationProtocolLayer
|
||||||
from yowsup.layers.coder import YowCoderLayer
|
from yowsup.layers.coder import YowCoderLayer
|
||||||
from yowsup.layers.logger import YowLoggerLayer
|
from yowsup.layers.logger import YowLoggerLayer
|
||||||
|
@ -46,62 +47,47 @@ from functools import partial
|
||||||
#from session import MsgIDs
|
#from session import MsgIDs
|
||||||
|
|
||||||
# Temporarily work around yowsup padding bugs with new protocol
|
# Temporarily work around yowsup padding bugs with new protocol
|
||||||
class UpdatedYowAxolotlLayer(YowAxolotlLayer):
|
# class UpdatedYowAxolotlLayer(YowAxolotlLayer):
|
||||||
def decodeInt7bit(self, string):
|
# def decodeInt7bit(self, string):
|
||||||
idx = 0
|
# idx = 0
|
||||||
while ord(string[idx]) >= 128:
|
# while ord(string[idx]) >= 128:
|
||||||
idx += 1
|
# idx += 1
|
||||||
consumedBytes = idx + 1
|
# consumedBytes = idx + 1
|
||||||
value = 0
|
# value = 0
|
||||||
while idx >= 0:
|
# while idx >= 0:
|
||||||
value <<= 7
|
# value <<= 7
|
||||||
value += ord(string[idx]) % 128
|
# value += ord(string[idx]) % 128
|
||||||
idx -= 1
|
# idx -= 1
|
||||||
return value, consumedBytes
|
# return value, consumedBytes
|
||||||
|
#
|
||||||
def unpadV2Plaintext(self, v2plaintext):
|
# def unpadV2Plaintext(self, v2plaintext):
|
||||||
end = -ord(v2plaintext[-1]) # length of the left padding
|
# end = -ord(v2plaintext[-1]) # length of the left padding
|
||||||
length,consumed = self.decodeInt7bit(v2plaintext[1:])
|
# length,consumed = self.decodeInt7bit(v2plaintext[1:])
|
||||||
return v2plaintext[1+consumed:end]
|
# return v2plaintext[1+consumed:end]
|
||||||
|
|
||||||
# Temporary env until yowsup updates
|
# Temporary env until yowsup updates
|
||||||
class UpdatedS40YowsupEnv(env.S40YowsupEnv):
|
# class UpdatedS40YowsupEnv(env.S40YowsupEnv):
|
||||||
_VERSION = "2.13.39"
|
# _VERSION = "2.13.39"
|
||||||
_OS_NAME= "S40"
|
# _OS_NAME= "S40"
|
||||||
_OS_VERSION = "14.26"
|
# _OS_VERSION = "14.26"
|
||||||
_DEVICE_NAME = "302"
|
# _DEVICE_NAME = "302"
|
||||||
_MANUFACTURER = "Nokia"
|
# _MANUFACTURER = "Nokia"
|
||||||
_TOKEN_STRING = "PdA2DJyKoUrwLw1Bg6EIhzh502dF9noR9uFCllGk{phone}"
|
# _TOKEN_STRING = "PdA2DJyKoUrwLw1Bg6EIhzh502dF9noR9uFCllGk{phone}"
|
||||||
_AXOLOTL = True
|
# _AXOLOTL = True
|
||||||
|
from yowsup.stacks import YowStackBuilder
|
||||||
|
|
||||||
|
|
||||||
class YowsupApp(object):
|
class YowsupApp(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
env.CURRENT_ENV = UpdatedS40YowsupEnv()
|
env.CURRENT_ENV = env.S40YowsupEnv()
|
||||||
|
|
||||||
layers = (YowsupAppLayer,
|
|
||||||
YowParallelLayer((YowAuthenticationProtocolLayer,
|
|
||||||
YowMessagesProtocolLayer,
|
|
||||||
YowReceiptProtocolLayer,
|
|
||||||
YowAckProtocolLayer,
|
|
||||||
YowMediaProtocolLayer,
|
|
||||||
YowIbProtocolLayer,
|
|
||||||
YowIqProtocolLayer,
|
|
||||||
YowNotificationsProtocolLayer,
|
|
||||||
YowContactsIqProtocolLayer,
|
|
||||||
YowChatstateProtocolLayer,
|
|
||||||
YowCallsProtocolLayer,
|
|
||||||
YowPrivacyProtocolLayer,
|
|
||||||
YowProfilesProtocolLayer,
|
|
||||||
YowGroupsProtocolLayer,
|
|
||||||
YowPresenceProtocolLayer)),
|
|
||||||
UpdatedYowAxolotlLayer,
|
|
||||||
YowCoderLayer,
|
|
||||||
YowCryptLayer,
|
|
||||||
YowStanzaRegulator,
|
|
||||||
YowNetworkLayer
|
|
||||||
)
|
|
||||||
self.logger = logging.getLogger(self.__class__.__name__)
|
self.logger = logging.getLogger(self.__class__.__name__)
|
||||||
self.stack = YowStack(layers)
|
stackBuilder = YowStackBuilder()
|
||||||
|
|
||||||
|
self.stack = stackBuilder \
|
||||||
|
.pushDefaultLayers(True) \
|
||||||
|
.push(YowsupAppLayer) \
|
||||||
|
.build()
|
||||||
self.stack.broadcastEvent(
|
self.stack.broadcastEvent(
|
||||||
YowLayerEvent(YowsupAppLayer.EVENT_START, caller = self)
|
YowLayerEvent(YowsupAppLayer.EVENT_START, caller = self)
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue