Fix GetCatalog
This commit is contained in:
50
main.py
50
main.py
@@ -1,11 +1,15 @@
|
||||
import datetime
|
||||
from uuid import uuid4
|
||||
from xmlrpc.server import SimpleXMLRPCServer
|
||||
from xmlrpc.client import ServerProxy
|
||||
import logging
|
||||
import os
|
||||
import requests.graphql
|
||||
import os.path
|
||||
from requests.graphql import get_catalog
|
||||
from pygost import gost34112012256
|
||||
|
||||
import xml.etree.ElementTree as ET
|
||||
from requests.request_xml_service import RequestXmlService
|
||||
import zipfile
|
||||
|
||||
PASSWORD = 'gost_2012$a742ec53198ec2a5027086fba8814a89982a57112d1a72d02260161108f39b50'
|
||||
|
||||
@@ -29,25 +33,57 @@ def auth_response(challenge, server_id, is_server):
|
||||
|
||||
|
||||
def auth_challenge():
|
||||
logging.debug('get challenge')
|
||||
# logging.debug('get challenge')
|
||||
return uuid4().hex
|
||||
|
||||
|
||||
def accept(params, files, url):
|
||||
print(params, files, url)
|
||||
print('Accept')
|
||||
date = datetime.datetime.now()
|
||||
if params['query_type'] == 4:
|
||||
rxmls = RequestXmlService()
|
||||
req = ET.fromstring(params['query_data'])
|
||||
req_id = rxmls.get_request_uuid(req)
|
||||
res_id = uuid4().hex
|
||||
res = rxmls.get_request_document(res_id, req_id)
|
||||
rxmls.set_result(res, 0, '')
|
||||
response_params = {
|
||||
'from': params['to'],
|
||||
'to': params['from'],
|
||||
'ts_added': date.timestamp(),
|
||||
'user_id': '1',
|
||||
'user_id_to': '3302',
|
||||
'query_type': 1004,
|
||||
'query_data': ET.tostring(res, encoding='unicode', xml_declaration=True)
|
||||
}
|
||||
catalog = get_catalog()
|
||||
filename = uuid4().hex
|
||||
filepath = '/tmp/' + filename
|
||||
zipf = zipfile.ZipFile(filepath, "w")
|
||||
zipf.writestr('WF.CLL', catalog)
|
||||
zipf.close()
|
||||
response_files = [{'name': filename, 'url': filepath, 'size': os.path.getsize(filepath)}]
|
||||
proxy = ServerProxy(url)
|
||||
proxy.send(response_params, response_files, 'http://10.10.8.27:9000/')
|
||||
return True
|
||||
|
||||
|
||||
def onSent(params, files, callback_url):
|
||||
print('onSent')
|
||||
|
||||
|
||||
def main():
|
||||
print('Use Control-C to exit')
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
server = SimpleXMLRPCServer(('0.0.0.0', 9000), logRequests=True)
|
||||
server = SimpleXMLRPCServer(('0.0.0.0', 9000), logRequests=True, allow_none=True)
|
||||
server.register_function(list_contents)
|
||||
server.register_function(aud_add)
|
||||
server.register_function(auth_response)
|
||||
server.register_function(auth_challenge)
|
||||
server.register_function(accept)
|
||||
server.register_function(onSent)
|
||||
|
||||
try:
|
||||
server.serve_forever()
|
||||
except KeyboardInterrupt:
|
||||
@@ -55,8 +91,10 @@ def main():
|
||||
|
||||
|
||||
def test():
|
||||
print(requests.graphql.get_classifier())
|
||||
# print(requests.graphql.get_catalog())
|
||||
params = {'from': 'tcp://kptsp_vb', 'query_data': '<?xml version="1.0" encoding="utf-8"?><request><header parcel_id="1665c872f24e46589f36d264a75a72dd"/><getCatalog from="1675776233.21" withRef="NO"/></request>', 'query_type': 4, 'to': 'tcp://bnd127', 'user_id': '1', 'ts_added': 1679213998.282467}
|
||||
files = []
|
||||
url = 'http://127.0.0.1:7000/xmlrpc'
|
||||
accept(params, files, url)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user