免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: cdhigh

web.py+Jinja2开源kindle推送网站,全网络首发“在GAE上使用Python生成MOBI“ [复制链接]

论坛徽章:
0
发表于 2013-07-22 08:18 |显示全部楼层
你要求高了,之前的hack只是让idle自动保存新文件为utf-8格式而已,你现在的要求是从文件解码也要自动为utf-8,这就需要更多的hack了,反正在IOBinding.py文件中,需要读懂它的代码就行,反正就5百多行。

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
发表于 2013-07-22 09:51 来自手机 |显示全部楼层
cdhigh 发表于 2013-07-22 08:18:42
你要求高了,之前的hack只是让idle自动保存新文件为utf-8格式而已,你现在的要求是从文件解码也要自动为utf

打开的示例,只是为了说明文件的编码方式的,出错说明文件没有保存为utf8编码方式,不然你用什么方式验证编码方式?

论坛徽章:
0
发表于 2013-07-22 10:20 |显示全部楼层
用chardet吧

论坛徽章:
0
发表于 2013-07-22 10:26 |显示全部楼层
我说的hack是自动保存新的.py文件为utf-8,而不是在代码中使用open()新建的文件的编码自动为utf-8,可能有误会吧。
要直接变更使用open()新建文件的默认编码要重新编译python,
或者使用下面这两行语句(不确定)
reload(sys)
sys.setdefaultencoding('utf-8')

论坛徽章:
0
发表于 2013-07-22 13:50 |显示全部楼层
回复 9# cdhigh

谢谢lz的提示。
与楼主同好,现在已经将该服务安装在gae上了,可以定时发送糗事百科了,哈哈。

调试窗口提示
import  error: no module jinja2
jinja2已经在gae中安装了,可以看到目录。该怎么弄?

另:
1、有没有声称book的py脚本,也共享一下?
2、如果想把几个订阅合并成为一个mobi文件,给支个大招吧

论坛徽章:
0
发表于 2013-07-22 23:44 |显示全部楼层
回复 15# torvald

1.我也不知道什么情况,不过还是建议你再安装jinja2到python,不单单在gae目录里面。
2.如果想自己写书籍的py文件,请参考books/readme.txt,写完后直接放到此目录即可。
3.一个py文件一个推送mobi,多个文件合一就将多个文件里面的feeds列表合并到一个py文件。


   

论坛徽章:
0
发表于 2013-07-24 21:46 |显示全部楼层
回复 16# cdhigh

谢谢楼主的建议。

重新安装了jinja2和lxml后,可以进行挑调试了。
现在的问题是,在本机调试环境中,没有了google账户的OAuth环境,不能将生成的mobi文件发送出去。
楼主有其他的办法吗,比如将mobi文件保存到本地之类的?

   

论坛徽章:
0
发表于 2013-07-27 21:45 |显示全部楼层
如果要在本机发送邮件,GAE文档有说明,在启动dev_appserver.py是增加参数:
比如:
dev_appserver.py --smtp_host=smtp.gmail.com --smtp_user=xxx@gmail.com--smtp_password=xxxx myapp

但是即使这样,邮件还是发送不出去的,还需要hack一下:
打开文件
C:\Program Files\Google\google_appengine\google\appengine\api\mail_stub.py

在smtp.connect(self._smtp_host, self._smtp_port)行后增加三行:
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
然后你就可以发送邮件了。

论坛徽章:
0
发表于 2013-07-27 22:48 |显示全部楼层
回复 18# cdhigh


谢谢楼主周末的回复。

按照楼主的建议,在启动中增加了相应的参数,也修改了mail_stub.py文件。
但是在日志中还是下面的警告:
WARNING  2013-07-27 22:44:22,559 taskqueue_stub.py:1980] Task task1 failed to execute. This task will retry in 60.000 seconds

请问再该如何修改?

论坛徽章:
0
发表于 2013-07-28 01:18 |显示全部楼层
是因为其他错误吧,因为我的环境是可以发送邮件的。
taskqueue里面执行的代码出现异常不会提示具体的异常,只是显示执行失败,GAE的调试服务器这点做的不好。

你可以将失败的URL直接拷贝到浏览器执行看看,是什么异常就知道了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP