1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-28 00:25:21 +01:00
pywb/pywb/rewrite/rewrite_amf.py

49 lines
1.4 KiB
Python

from io import BytesIO
from six.moves import zip
from pywb.rewrite.content_rewriter import BufferedRewriter
# ============================================================================
# Experimental: not fully tested
class RewriteAMF(BufferedRewriter): #pragma: no cover
def rewrite_stream(self, stream, rwinfo):
try:
from pyamf import remoting
iobuff = BytesIO()
while True:
buff = stream.read()
if not buff:
break
iobuff.write(buff)
iobuff.seek(0)
res = remoting.decode(iobuff)
# TODO: revisit this
inputdata = rwinfo.url_rewriter.rewrite_opts.get('pywb.inputdata')
if inputdata:
new_list = []
for src, target in zip(inputdata.bodies, res.bodies):
#print(target[0] + ' = ' + src[0])
#print('messageId => corrId ' + target[1].body.correlationId + ' => ' + src[1].body[0].messageId)
target[1].body.correlationId = src[1].body[0].messageId
new_list.append((src[0], target[1]))
res.bodies = new_list
return BytesIO(remoting.encode(res).getvalue())
except Exception as e:
import traceback
traceback.print_exc()
print(e)
return stream