Jan 17

今天写了近两个小时的代码,是关于鼠标滑轮滚动调整歌词的功能,进展非常之不顺利……太不顺利了……

一开始先goooooogle了一番鼠标event,找到了一个叫scroll-event的,ms相当好用,具体用法可以参考这个:http://zuosa.net/9nha.u

最初设想把event挂到window上就可以了,但是写出代码后发现并不成功,当鼠标是在label上滚动滑轮时,没有任何反应……

也不知道是为什么,就开始盲目处理,处理了好半天,都是原地踏步了……没有任何进展,后来想起了,这是因为label并不能发event的缘故……具体情况可参见pygtk教程,必须要配合eventbox使用

费了老半天去修改界面文件,把所有的label都换成eventbox,然后再在eventbox上加label,够麻烦的

完成了这步,又有了新问题——接到事件后该如何响应……迷茫了,最后马马虎虎写了一段不上去,算是能用了

本来是想通过调歌词来调时间的,可是这样不能实现,因为歌词是精确到毫秒的,可是exaile的seek功能只能精确到秒……无奈

所有只能是通过调时间来调歌词,可这样效果就大减了,不管怎么样,总算又写了一些代码……

Jan 16

一直想写个这样的程序,可苦于自己对于这个GAE一窍不通……所以一直也没下手写,今天终于写了一个,其实也十分简单,参照了一下网上的一个些用pyfetion收天气的方法

最关键的是这一部分(虽然很短)

monitor.py

#! /usr/bin/python
#coding=utf-8

import re
from google.appengine.api import mail
from google.appengine.api import urlfetch

wap = urlfetch.fetch('http://m.baidu.com/tq?area=%E5%9E%A6%E5%88%A9').content
Tomorrow = re.findall(r'明\:.*?<',wap)[0][:-1]

mail.send_mail(sender="******@gmail.com", to="******@139.com", subject="Weather", body=Tomorrow)

最初,因为不了解gae的详细用法,先写了一个通用版

 

#! /usr/bin/python

import urllib,re
import email,smtplib,time

wap = urllib.urlopen('http://m.baidu.com/tq?area=%E5%9E%A6%E5%88%A9').read().decode('utf-8') #网页视情况而定
Tomorrow = re.findall(r'明\:.*?<'.decode('gbk'),wap)[0][:-1]

msg = email.Message.Message()
msg['to']='billnowar@139.com'
msg['from']='billnowar@163.com'
msg['date']=time.ctime()
msg['subject']=email.Header.Header('weather','gb2312')
body=email.MIMEText.MIMEText(Tomorrow.encode('gb2312'),_subtype='plain',_charset='gb2312')

server=smtplib.SMTP('smtp server')
server.login('username','password')
server.sendmail(msg['from'],msg['to'],msg.as_string()[:-1]+body.as_string())

这上面这个是用python自带的库写的,学习了以下email和smtplib后很快就告成的版本

接下来就不容易了,我把email和smtplib、urllib改成了from google.appengine.api import mail和from google.appengine.api import urlfetch这两个……(因为不知到email和smtplib、urllib能不能用……)

然后又出现了编码问题……我不知道gae上到底该用utf-8还是别的什么,而且我也不清楚我手机是用什么编码(这个最麻烦)……

经过实验,发现根本不用改编码,全部都用utf8即可,百度天气是utf-8,所以省去了很多不必要的代码

忙活了两个多小时,终于还是让我搞成了!

通过写这个程序,初步了解了一下gae的机制:

1.GAE貌似可以使用所有的python自带库,既然re可以,那么其他的库理应也可以,这个没有实验,但是猜想应该是可以

2.GAE的cron,掌握了cron的基本写法,先写间隔 再写周期 再写具体时间

3.GAE编码用utf-8,这个实际有点废话……

4.GAE的google.appengine.api.mail.send_mail的sender参数应该添你的gmail邮箱,负责无法使用……