module.py
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 ini={}
00012 cm_kernel=None
00013
00014
00015 import string
00016 import os
00017 import sys
00018 import tempfile
00019 import StringIO
00020
00021
00022 def init(i):
00023 return {'cm_return':0}
00024
00025
00026 def generate(i):
00027
00028 """
00029 Generate qr-code
00030
00031 Input: {
00032 cm_string - string to convert to qr-code
00033 qr_level - qr_level (4,5,etc)
00034 image_size - picture size
00035 }
00036
00037 Output: {
00038 cm_return - return code >0 if error
00039 cm_full_filename - file with image
00040 }
00041 """
00042
00043 if 'cm_string' not in i: return {'cm_return':1, 'cm_error':'"cm_string" is not set'}
00044 if 'qr_level' not in i: return {'cm_return':1, 'cm_error':'"qr_level" is not set'}
00045 if 'image_size' not in i: return {'cm_return':1, 'cm_error':'"image_size" is not set'}
00046
00047
00048 r=cm_kernel.load_code({'cm_path':ini['path'], 'cm_code_name':'PyQRNative'})
00049 if r['cm_return']>0: return r
00050
00051 qrm=r['code']
00052
00053
00054 qr = qrm.QRCode(int(i['qr_level']), qrm.QRErrorCorrectLevel.L)
00055 qr.addData(i['cm_string'])
00056 qr.make()
00057 im = qr.makeImage()
00058 im1=im.resize((int(i['image_size']), int(i['image_size'])))
00059
00060
00061 r=cm_kernel.gen_cm_tmp_file({})
00062 if r['cm_return']>0: return r
00063 tf=r['cm_path']
00064 uid=r['cm_uid']
00065
00066
00067 im1.save(tf, 'PNG')
00068
00069 ii={}
00070 ii['cm_full_filename']=tf
00071
00072 if i.get('cm_console','')=='txt':
00073 cm_kernel.print_for_con(tf)
00074 else:
00075 ii['cm_web_download']='yes'
00076 ii['cm_web_set_headers']='yes'
00077
00078
00079 ii1={'cm_run_module_uoa':ini['cfg']['cm_modules']['cm-web'],
00080 'cm_action':'prepare_content_header',
00081 'cm_web_content':'.png',
00082 'cm_filename':tf}
00083
00084 r=cm_kernel.access(ii1)
00085 if r['cm_return']>0: return r
00086
00087
00088 wh=[]
00089 for x in r['cm_web_headers']:
00090 wh.append(x.replace(cm_kernel.convert_str_to_special('filename'), tf))
00091
00092 ii['cm_web_headers']=wh
00093
00094 ii['cm_web_postprocess']='no'
00095 ii['cm_return']=0
00096
00097 ii['cm_delete_file_after_view']='yes'
00098
00099 return ii