标签存档: Python

wordpress图片搬家脚本

历经几次换域名,以及从GAE-wordpress造成不少历史遗留的图片分布在不同域名或gae目录下。

主要分布
http://oldres.fengsage.com
http://www.fengsage.com
http://fensageblog.appspot.com

原来使用代码实现图片代理访问。但自己越看越不爽。索性写个脚本一次性把原来的图片下载到wordpress本地。并且更新数据库。主要是圣诞节闲的蛋疼。

代码有不少问题:

  1. 不用php,因为懒得看wordpress插件制作。
  2. 因为是python脚本,所以必须是有执行python的权限
  3. 没有生成wordpress media记录。不能后台编辑多媒体

wordpress插件实现:

http://wordpress.org/extend/plugins/velvet-blues-update-urls/  等发现的时候脚本已经写好了。悲哀~~

脚本笔记简单。分享下。

一段自动登录淘宝接口Python代码

新公司这边客服流动频繁,为防止密码泄露,写了个小脚本.可以让用户在不知道密码的情况下自动登录淘宝

主要代码:

使用PAMIE,可以轻松控制IE做任何操作~~

I love Python~

一段linux启动脚本(python版)

公司项目用到需要开机自动执行相关程序,奈何shell不是很精通,老大给了段python版的,我也分享下,供大家参考

比较简单~

前文介绍过,放在/etc/rc3.d 目录下即可,linux启动后会自动执行这个目录里面的脚本,默认使用start参数启动

博客重构完毕(Reconstruct Blog)

花了2个月时间,终于把博客从micolog完全转到自己的构架上来

 

放弃micolog的原因很多,但不可否认micolog是一款在GAE上出色的Blog.但也因为GAE因为GWF作怪,活跃度不是很高.导致micolog的发展一直不是很快

考虑到micolog自身因设计时候造成代码的冗余以及体积的庞大,自己就重造了一会轮子. ╮(╯▽╰)╭ 上天原谅我吧.

博客重构后,重点考虑到了性能问题,因此在次方面进行了优化,网速正常情况下

访问http://i-studio.appspot.com只需要2s

访问http://www.fengsage.com 由于反向代理的关系,一般在5s-10s内打开

http://fengsageblog.appspot.com 访问都会自动跳转到相应的http://i-studio.appspot.com页面上来

目前运行已经一周,尚运行稳定.

 

————————Exercise English—————————–

Take me two months, I reconstruct my blog on GoogleAppEngine.

Micolog is very good blog on GoogleAppEngine. everyone can download the srouce from http://code.google.com/p/micolog/

But i also have some reason give up it.

1. The blog develop very slow. the author long time update. i think the GWF is important reason that it also closed the connection when chinese person visted GAE.

2. The blog code not beautiful. ok, because author using python.  me too. i like the code more simple and beautifule.

╮(╯▽╰)╭

I take long time optimizing the connection spped when chinese person visited it.

if visted http://i-studio.appspot.com only need 2s

if vised http://www.fengsage.com may be need 5-10s

older person can connection the old url. all request will auto skip the new url http://i-studio.appspot.com

 

以后有机会,写博文都加一篇英文的~  练习练习鸟语~

 

使用Google Captcha作网站的验证码(Python)

CAPTCHA 是Completely Automated Public Turing test to tell Computers and Humans Apart的缩写,够长吧!中文意思是:"全自动区分电脑与人类的图灵测试" 简单来说就是用于区分人类和电脑的验证码图片.

感谢伟大的Google提供了其实现和相应的API. 相关文档大家可自行参考:

http://www.google.com/recaptcha

最近公司的一个项目要使用验证码防止恶意脚本批量注册或遍历破解密码. 传统的解决方式很多,比如IP记录,验证码…但最常见的还是验证码功能,但现在验证码也是有很多弱点的,很容易被破解. 敢兴趣的朋友可以参看相关文章(http://www.xklog.org/article/internet/python-verify-code-recognize-discuz.html) 其实最主要想使用Google Captacha的原因是想省力气,懒得写太复杂的算法.  囧~呵呵

Google Captacha有相应的python实现,但是我感觉默认库可定制性太差,所以只部分采用.

开始之前我先来说下Google Captacha的原理.

传统的验证码是网站先随即生成一个字符,然后保存字符串到session或数据库中.然后把这个字符串生成图片,输出到页面上去.

Google Captacha构架如下图:

 

步骤看上去比较多,其实对网站开发者来说重点是3步.即图上的1、3、4. 下面稍微解释下

第一步是用户从Google服务器上得到一个验证码图片

没错,是用户获取。对开发人员来说就是在页面加一个ajax调用,当用户加载页面的同时,加载一个Google Capatcha图片即可.

第二步是当用户把含验证码信息表单提到后台,也是web应用最常见的步骤.

第三步是网站后台把用户得到的验证码传递给Google Capatcha服务器验证用户输入的是否正确.

这里就是重点所在,Google服务器如何知道当前验证码输入是否和第一步用户请求到的图片一致,就需要一样东西,即一个随机码. 此外要确定是哪一个网站用户申请的图片和哪一个网站验证图片,需要另外一样东西,即私钥/公钥.

上面简单介绍了下原理,对开发人员来说读代码比看文章管用的多.下面直接开始

一、注册网站私/公钥.https://www.google.com/recaptcha/admin/create

Public Key:

6LcmCL8S*****JH2rJ5l9mgj9xIq63wM0Qeliafm

Private Key:

6LcmCL8S******DFxZh7GY-nWdklo9zWJpQ9Y0yY4

二、编写用户页面,公钥是用户向Google服务器请求一个Capatcha图片. 此步骤需要用户公钥

由于国内加载GoogleCapatcha图片比较慢,我用了异步请求.大致代码如下

HTML

Javascript

效果如下:

google_capatcha_tut1

解析这个图片的HTML.其中有2个字段很重要,它们会在用户提交表单后一起提交给后台,后台服务器必须接受并处理该值

  • recaptcha_challenge_field    //Google Capatcha随即生成的随机码
  • recaptcha_response_field   //即用户输入的验证码

三、处理用户提交的recaptcha_challenge_field  和 recaptcha_response_field  . 此步骤需要使用用户私钥.

Python

 

Over~~

分享一个Python数字分页工具

有点造轮子的嫌疑,感觉Django自带的分页工具不是很好用,部分重写了下

Python代码

使用方法很简单

模板使用

{{ pagination.page_html_format }}

效果如下(自己定义CSS)

免费手机天气预报

前段时间突然想研究飞信(fetion),因为觉得利用飞信发手机短信是个不错的方法.

于是就诞生了此程序,目前测试中 http://fengsms.appspot.com/ 大家可帮忙进行测试.

使用本程序用户需遵守2条原则

1. 必须是移动用户且绑定飞信,程序基于飞信,所以是免费的.具体可以参考飞信官网

2. 原则上只要是飞信好友,都可以通过此程序发送消息,建议不要乱加好友,否则会被移动认定垃圾短信导致封号(飞信号)

使用方法

1.注册   打开http://fengsms.appspot.com/ 左边即可注册.简单填写用户名和密码即可

2.登录   打开首页右边即可登录

3.输入手机号码和飞信口令. 这里声明,本程序的原理是模拟飞信登录,因此需要飞信口令,否则哪有免费短信一说,因此这里会记录用户的手机号码和飞信密码.本站不会想任何人透露.由于飞信是和手机绑定,因此只需要发送’新密码’到12520050即可重置密码.

4.输入后,请先点击’激活’按钮,如果担心密码输入错误,请点击旁边的’测试’按钮.如果有测试短信成功发送到手机,则口令正确

5.点上面导航条的’发送列表’.

6.在新增用户表单中输入带发送的手机号码和号码所在城市的拼音. 注意,系统默认不会给任何人发送天气预报包括自己,请把自己加入列表中.

7.可以点’立刻发送’按钮.测试是否收到当天天气情况.

 

注:程序测试中. 会出现不稳定情况,请各位海涵.

Linux(debian)下ffmpeg编译与运行

Why write this article?

   网上关于如何编译的文章很多,但有2个很明显的趋势

   1. 国内的大多东抄点西抄点,时间滞后不说,当你google的结果大部分都大同小异后就会有抓狂的感觉,究其原因还是国内站长们‘爬虫’太多.
   2. 国外优秀文章不错,很多,比如这篇 因此本文的目的主要是为了国内阅读英文较困难的同学服务,务必做到阅读完本文后,能自行编译ffmpeg.并简单操作.

Audience

    ffmpeg初学者,并对linux相关命令不了解

What is ffmpeg?

    简单来说就是一个跨平台、开源的流媒体处理工具.几乎集成了流媒体处理的所有功能,几乎’无所不能’.著名的’暴风影音’,’QQ影音’…都有’幸’加入了ffmpeg耻辱柱.

How to use?

    ffmpeg主要2种使用方式 1、命令行  2、使用lib库

    前者最方便,几乎不需要编程方面的知识,参考具体文档即可.

Compile

    因为ffmpeg是主要几乎linux开发且官方不提供现成的二进制文件,需要用户自行编译,这就大大增加了初学者入门的难度

    windows下有现成的编译库SDK,可以直接下载. 这里将如何在linux(debian)下编译ffmpeg.

    网上可以找到很多教程,在正式安装ffmpeg需要安装许多东西,其实那些都并不是必须的.比如lame

    Debian的确很强大,强大到不需要本文,只需要几个apt-get 命令即可实现整个过程.当然这里不是本文的重点,懒人可以直接用下面的代码直接安装二进制包,有兴趣的朋友继续看下文,我们来手动编译

    懒人方法::

    手动编译:

    如果前面设置过prefix的朋友看这里,使用默认的可以忽略,这段作用是把ffmpeg执行命令加入到环境变量中去

 

 

    到了这里,如果一切顺利的话,可以运行下面命令测试下

 

   如果打印出大量字符提示信息,那就说明安装正确了.

Example

    如果前面都没有问题,运行下面命令,这条命令作用是把flv转成mpg格式

 

写个百度搬家玩玩

今天下午实在无聊. 好几天都没事做~ 整天就收发邮件,都快成文秘了. 大笑

随便写了百度搬家工具打发下时间,这是从原来的python百度搬家工具改的. 希望越来越多的朋友”背叛”baidu.加入micolog阵营!

django邮件发送(支持模板)

项目里一个模块,重新封装了python的smtplib和django的template

主要功能:

  1. 支持多用户接受

  2. 支持模板

  3. 良好的处理了中文问题

代码如下:

使用方法: