⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 082-instamese.py

📁 this code is used for edit on os of s60
💻 PY
字号:
import appuifw, e32, camera, thread, socket, json, graphicsSERVER = ("192.168.0.2", 9000)def send_message(msg):    global to_server    try:        to_server.write(json.write(msg))        to_server.flush()        thread_handle_message({"note": u"Message sent!"})    except Exception, ex:        print "Connection error", ex        to_server = Nonedef read_message():    global to_server    try:        msg = json.read_stream(to_server)        thread_handle_message(msg)    except Exception:        print "Broken connection"        to_server = None    def connect():    global to_server, keep_talking, conn    conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    conn.connect(SERVER)    to_server = conn.makefile("rw", 8192)    send_message({"!name": me})    ret = json.read_stream(to_server)    if "err" in ret:        thread_handle_message({"note": u"Login failed"})        thread_show_note(u"Login failed: %s" % ret["err"], "error")        keep_talking = False        raise "Login failed"    else:        thread_handle_message({"note": u"Login ok"})        def communicate():    global to_server, keep_talking, thread_send_message, app_lock    thread_send_message = e32.ao_callgate(send_message)    to_server = None    while keep_talking:        if to_server:            read_message()        else:            try:                connect()                            thread_handle_message(\                        {"note": u"Waiting for messages..."})            except:                print "Could not connect to server"                to_server = None                if keep_talking:                        e32.ao_sleep(10)    if conn: conn.close()    if to_server: to_server.close()def show_photo(jpeg_data):    global img    f = file("E:\\Images\\msg.jpg", "w")    f.write(jpeg_data)    f.close()    img = graphics.Image.open("E:\\Images\\msg.jpg")    def handle_message(msg):    global text, note    if "photo" in msg:        show_photo(msg["photo"])        text = {"from": msg["from"], "txt": ""}    elif "txt" in msg:        text = msg    elif "note" in msg:        note = msg["note"]    redraw(None)def send_photo():    handle_message({"note": u"Taking photo..."})    dst = appuifw.query(u"To", "text")    img = camera.take_photo(size = (640, 480))    img = img.resize((320, 240))    img.save("E:\\Images\\temp.jpg")    jpeg = file("E:\\Images\\temp.jpg").read()    handle_message({"note": u"Sending photo..."})    thread_send_message({"!dst": dst, "photo": jpeg, "from": me})def send_text():    resp = appuifw.multi_query(u"To", u"Message")    if resp:            dst, txt = resp            thread_send_message({"!dst": dst, "txt": txt, "from": me})def quit():    global keep_talking, to_server, conn    keep_talking = False    thread_send_message({"!close": True})    app_lock.signal()def redraw(rect):        RED = (255, 0, 0)        GREEN = (0, 255, 0)        BLUE = (0, 0, 255)        canvas.clear((255, 255, 255))        if img:                canvas.blit(img, scale = 1)        if note:                canvas.text((10, canvas.size[1] - 30), note,\                        fill = RED, font = "title")        if text:                canvas.text((10, 80), u"From: %s" % text["from"],\                        fill = GREEN, font = "title")                canvas.text((10, 110), unicode(text["txt"]),\                        fill = BLUE, font = "title")img = text = note = Nonekeep_talking = Truethread_handle_message = e32.ao_callgate(handle_message)appuifw.app.exit_key_handler = quitappuifw.app.title = u"Instant Messenger"appuifw.app.menu = [(u"Send Photo", send_photo),\                    (u"Send Text", send_text)]canvas = appuifw.Canvas(redraw_callback = redraw)appuifw.app.body = canvasme = appuifw.query(u"Login name", "text")handle_message({"note": u"Contacting server..."})if me:        app_lock = e32.Ao_lock()        thread.start_new_thread(communicate, ())        if keep_talking:                app_lock.wait()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -