def send_video(): b = basic.Basic() access_token = b.get_access_token() data = ''' { "touser": "******", "template_id": "tHhpwDmV_rMwVZX-gs2rbHgj7YwnBxd0UEIawSI-w2s", "url": "http://www.bilibili.com/video/av30721042/?share_source=weixin&ts=1540128921&share_medium=iphone&bbid=90deae9844a6b7c2fe415db03dc1fa15", "data": { "first": { "value": "你好同学,新的教学视频发布了,请及时观看预习!", "color": "#173177" }, "keyword1": { "value": "翻转课堂导论", "color": "#173177" }, "keyword2": { "value": "2018-10-08", "color": "#173177" }, "Remark": { "value": "点击详情观看", "color": "#173177" } } } ''' postUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%s" % access_token if isinstance(data, unicode): data = data.encode('utf-8') urlResp = urllib.urlopen(url=postUrl, data=data) print(urlResp.read())
def change_mode(self, mode): if mode == 0: self.root.destroy() calculator = basic.Basic() else: self.root.destroy() calculator = Scientific()
def generate_binary(outputfname, format_, progname=''): """ Outputs the memory binary to the output filename using one of the given formats: tap, tzx or bin """ global AUTORUN_ADDR org, binary = MEMORY.dump() if gl.has_errors: return if AUTORUN_ADDR is None: AUTORUN_ADDR = org if not progname: progname = os.path.basename(outputfname)[:10] if OPTIONS.use_loader.value: import basic # Minimalist basic tokenizer program = basic.Basic() if org > 16383: # Only for zx48k: CLEAR if below 16383 program.add_line([['CLEAR', org - 1]]) program.add_line([['LOAD', '""', program.token('CODE')]]) if OPTIONS.autorun.value: program.add_line( [['RANDOMIZE', program.token('USR'), AUTORUN_ADDR]]) else: program.add_line( [['REM'], ['RANDOMIZE', program.token('USR'), AUTORUN_ADDR]]) if format_ == 'tzx': import outfmt t = outfmt.TZX() if OPTIONS.use_loader.value: t.save_program('loader', program.bytes, line=1) # Put line 0 to protect against MERGE t.save_code(progname, org, binary) t.dump(outputfname) elif format_ == 'tap': import outfmt t = outfmt.TAP() if OPTIONS.use_loader.value: t.save_program('loader', program.bytes, line=1) # Put line 0 to protect against MERGE t.save_code(progname, org, binary) t.dump(outputfname) else: with open(outputfname, 'wb') as f: f.write(bytearray(binary))
def POST(self): try: webData = web.data() print "Handle Post webdata is ", webData #后台打日志 recMsg = receive.parse_xml(webData) if isinstance(recMsg, receive.Msg): toUser = recMsg.FromUserName fromUser = recMsg.ToUserName if recMsg.MsgType == 'text': content = "test" replyMsg = reply.TextMsg(toUser, fromUser, content) return replyMsg.send() if recMsg.MsgType == 'image': mediaId = recMsg.MediaId replyMsg = reply.ImageMsg(toUser, fromUser, mediaId) return replyMsg.send() else: return reply.Msg().send() if isinstance(recMsg, receive.EventMsg): print("event") if recMsg.Event == 'CLICK': if recMsg.Eventkey == 'mpGuide': toUser = recMsg.FromUserName data = """ { "touser":"******", "template_id":"GVnSlVUMHDAr6uNtd7dJhnUr_Y0qEopR7SGwzyGVpto", "url":"http://www.mej.cn", "data":{ } } """ % toUser token = basic.Basic().get_access_token() reply_template = template.Template().send(data, token) return data else: print "暂且不处理" return "success" except Exception, Argment: print(Argment) return Argment
def send_ppt(): b = basic.Basic() access_token = b.get_access_token() data = ''' { "touser": "******", "template_id": "CO8ABJrb3UJ3Foqx_uN1dJQXRXAP9IhiUdGeo5sxpZA", "url": "http://www.wechatshop.mobi:8080/counter/static/PPT.html", "data": { "first": { "value": "新的课件发布", "color": "#173177" }, "keyword1": { "value": "翻转课堂", "color": "#173177" }, "keyword2": { "value": "王老师", "color": "#173177" }, "keyword3": { "value": "东9-201", "color": "#173177" }, "keyword4": { "value": "2018-8-22", "color": "#173177" }, "Remark": { "value": "点击详情下载", "color": "#173177" } } } ''' postUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%s" % access_token if isinstance(data, unicode): data = data.encode('utf-8') urlResp = urllib.urlopen(url=postUrl, data=data) print(urlResp.read())
def create(): myMenu = Menu() postJson = """ { "button": [ { "type": "click", "name": "查看进展", "key": "mpGuide" }, { "type": "click", "name": "立即排队", "key": "mpGuide" }, { "name": "我的", "sub_button": [ { "type": "view", "name": "个人中心", "url": "http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1418702138&token=&lang=zh_CN" }, { "type": "view", "name": "意见反馈", "url": "http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1418702138&token=&lang=zh_CN" } ] } ] } """ accessToken = basic.Basic().get_access_token() #myMenu.delete(accessToken) myMenu.create(postJson, accessToken)
import Constant import basic b = basic.Basic() print isinstance(b, basic.Basic) basic.Basic().__real_get_access_token(b) print b.get_access_token() print Constant.APPID
def main(): calculator = basic.Basic()
def generate_binary(outputfname, format_, progname='', binary_files=None, headless_binary_files=None): """ Outputs the memory binary to the output filename using one of the given formats: tap, tzx or bin """ global AUTORUN_ADDR org, binary = MEMORY.dump() if gl.has_errors: return if binary_files is None: binary_files = [] if headless_binary_files is None: headless_binary_files = [] bin_blocks = [] for fname in binary_files: with api.utils.open_file(fname) as f: bin_blocks.append((os.path.basename(fname), f.read())) headless_bin_blocks = [] for fname in headless_binary_files: with api.utils.open_file(fname) as f: headless_bin_blocks.append(f.read()) if AUTORUN_ADDR is None: AUTORUN_ADDR = org if not progname: progname = os.path.basename(outputfname)[:10] if OPTIONS.use_loader.value: import basic # Minimalist basic tokenizer program = basic.Basic() if org > 16383: # Only for zx48k: CLEAR if below 16383 program.add_line([['CLEAR', org - 1]]) program.add_line([['LOAD', '""', program.token('CODE')]]) if OPTIONS.autorun.value: program.add_line([['RANDOMIZE', program.token('USR'), AUTORUN_ADDR]]) else: program.add_line([['REM'], ['RANDOMIZE', program.token('USR'), AUTORUN_ADDR]]) if format_ in ('tap', 'tzx'): t = {'tap': outfmt.TAP, 'tzx': outfmt.TZX}[format_]() if OPTIONS.use_loader.value: t.save_program('loader', program.bytes, line=1) # Put line 0 to protect against MERGE t.save_code(progname, org, binary) for name, block in bin_blocks: t.save_code(name, 0, block) for block in headless_bin_blocks: t.standard_block(block) t.dump(outputfname) else: with open(outputfname, 'wb') as f: f.write(bytearray(binary))
# -*- coding: utf-8 -*- # filename: __init__.py from apscheduler.schedulers.background import BackgroundScheduler import threading import datetime import basic import menu __q = threading.Lock() # create a lock object __token = basic.Basic() scheduler = BackgroundScheduler() @scheduler.scheduled_job('interval', id='job_id_wx_token', seconds=2) def job_get_token(): __q.acquire() # acquire the lock __token.run(2) __q.release() # release the lock @scheduler.scheduled_job('date', run_date=datetime.datetime.now() + datetime.timedelta(seconds=5)) def job_create_menu(): create_menu() scheduler.start() def get_access_token_for_wx():
def post(self): try: webData = self.request.body # 后台打日志 recMsg = receive.parse_xml(webData) if isinstance(recMsg, receive.Msg) and recMsg.MsgType == 'text': if recMsg.Content == '#SCAPK': toUser = recMsg.FromUserName fromUser = recMsg.ToUserName content = "http://www.zoujingyi.cn/app-release.apk" qrcodePath = "imgs/release_apk_qrcode.png" img = qrcode.make(content) img.save(qrcodePath) myMedia = media.Media() accessToken = basic.Basic().get_access_token() path = "/home/zou/WechatDetector/" + qrcodePath mediaType = "image" back = myMedia.uplaod(accessToken, path, mediaType) back_json = json.loads(back) media_id = back_json["media_id"] replyMsg = reply.ImageMsg(toUser, fromUser, media_id) self.write(replyMsg.send()) elif recMsg.Content == '#OPENID': toUser = recMsg.FromUserName fromUser = recMsg.ToUserName content = toUser qrcodePath = "imgs/" + toUser + "_qrcode.png" img = qrcode.make(content) img.save(qrcodePath) myMedia = media.Media() accessToken = basic.Basic().get_access_token() path = "/home/zou/WechatDetector/" + qrcodePath mediaType = "image" back = myMedia.uplaod(accessToken, path, mediaType) back_json = json.loads(back) media_id = back_json["media_id"] replyMsg = reply.ImageMsg(toUser, fromUser, media_id) self.write(replyMsg.send()) elif recMsg.Content == '#DEVICE': toUser = recMsg.FromUserName fromUser = recMsg.ToUserName content = "" deviceIds = db.select_user(toUser)[2] if deviceIds is not None: for id in deviceIds.split(","): deviceName = db.select_deviceName(deviceId=id)[1] content = content + deviceName + " " + id + "\n" replyMsg = reply.TextMsg(toUser, fromUser, content) self.write(replyMsg.send()) elif tool.fullmatch(r"(\d{4}-\d{1,2}-\d{1,2}\|\d+)", recMsg.Content): # 日期|deviceId toUser = recMsg.FromUserName fromUser = recMsg.ToUserName balance = int(db.select_user(user_name=toUser)[1]) if balance < price: content = "余额不足,请充值,您的余额为" + str(balance) + "元" replyMsg = reply.TextMsg(toUser, fromUser, content) self.write(replyMsg.send()) else: handleDate(recMsg=recMsg, handler=self, balance=balance) else: print("暂且不处理") self.write("success") except Exception as e: print(e)