File: //usr/share/i360-php/python-proto/message_reader_old.py
import io
import struct
import sendmessage_pb2
import subprocess
def readDataFromStream(stream_data):
proto_size_rd = stream_data.read(2)
if len(proto_size_rd)==0:
return ""
proto_size, = struct.unpack('>H', proto_size_rd)
data = stream_data.read(proto_size)
item = sendmessage_pb2.SendInfo()
item.ParseFromString(data)
return item
def translateQueueItem(item, php_dict):
result = ""
packed = list(struct.pack('<L', item))
b1=int(packed[0].encode('hex'), 16)
b2=int(packed[1].encode('hex'), 16)
b3=int(packed[2].encode('hex'), 16)
b4=int(packed[3].encode('hex'), 16)
if b1==1:
result = "ANYOP(%d,%d)"%(b3, b4)
elif b4>0:
result = "%s(%s)"%(php_dict[b1], php_dict[b4])
else:
result = "%s"%(php_dict[b1])
return result
def fillDictionary():
php_dict = {}
counter = 0
proc = subprocess.Popen(['dict_util'],stdout=subprocess.PIPE)
while True:
line = proc.stdout.readline()
if line != '':
if counter>1:
res = line.rstrip().split()
if len(res)>1:
php_dict[int(res[0])]=res[1].rstrip()
else:
break
counter=counter+1
return php_dict