简单屏蔽爱奇艺广告

如果不是付费会员,爱奇艺的网站和客户端每次播放视频都会先展现60秒的广告,而暂停播放后,还会出现悬浮广告框。

简单屏蔽这些广告,只需要在Host文件中屏蔽几个域名,我用wireShark抓了下包。

打开Hosts文件

(Windows下类似C:\Windows\System32\drivers\etc\hosts,Linux下类似/etc/hosts)

在尾部添加:

127.0.0.1	ubmcmm.baidustatic.com
127.0.0.1	cpro.baidu.com
127.0.0.1	msg.video.qiyi.com
127.0.0.1	track.cupid.qiyi.com
127.0.0.1	show.cupid.qiyi.com
127.0.0.1	pic1.qiyipic.com
127.0.0.1	msg.iqiyi.com
127.0.0.1	mixer.cupid.iqiyi.com

之后,使用桌面客户端播放视频就可以跳过60秒广告了。

(如果是在网站上播放,则倒计时60秒依然存在,并提示广告不能播放)

而暂停播放,也将不再出现任何悬浮广告。

版权很贵,播广告可以理解。 🙂   这里只是讨论一个简单的实现。  🙂

使用PyInstaller打包之前写的PostTool

我用pyinstaller把之前写的PostTool在Win和Linux下打包,说起来,是没有必要在Linux下再打个包的,默认都有安装python。

就当做是练习吧。 🙂      PostTool(win32/i386)  PostTool(Linux/i386) 

下载并安装pyinstaller: http://www.pyinstaller.org/

为了启用压缩,windows下还需要下载upx: http://upx.sourceforge.net/

我把upx.exe放在了python Scripts文件夹下的,比如: D:\Python27\Scripts

如果D:\Python27\Scripts不存在于用户的环境变量中,请记得添加。

pyinstaller是不支持把gif打包进exe作为图标的,我把Tkinter使用的gif图标首先转换成了64 x 64的ico。

首先生成spec文件(specification),执行:

E:\PythonAPP\Tkinter\TkPostTool>pyi-makespec –windowed –icon=icon.ico PostTool.py

–windowed参数指定这是一个GUI程序,不需要console来进行std input & output。

–icon参数指定生成的exe文件图标,它在Windows下有效。

打开生成的PostTool.spec文件,添加Post Tool用到的一个gif图片: 继续阅读使用PyInstaller打包之前写的PostTool

做了一个非常惊悚的梦

最近几夜,我连续在做同样的一个梦:关于人脑芯片的病毒。

这个病毒叫LATIUlace,感染人脑后,可以把人转化成人狼,也就是兽。

(后来我查询了一下LATIUlace这个名称,发现它是毫无意义的,Google上甚至不存在记录。)

在梦里,我自己也感染了LATIUlace,

而恐怖的是,我和其他被感染者遭遇了警察的猎杀(为了控制病毒传播,警察们选择了直接杀死病毒宿主)。

我们不停地奔波逃亡,也不断目睹身边的人狼被杀。

在刚被发现感染的初期,自己甚至同时遭遇人狼和警察的双重捕杀,因为他们都觉得我会成为一个新的威胁。

但就在昨晚,仍旧是紧张的逃亡途中,我和其他两个人狼躲避在菜地里,逃避追杀。

看着外面刚刚死去的人狼同伴,我猛然意识到自己患有人格分裂,而LATIUlace这个病毒,也正是由我自己编写的!

(我无法解释这个猛然意识到是怎么发生的,可能因为本身就在梦里,高度紧张的逃亡之后,意识到再无法寻求生机,必然面对跟其他所有人狼一样被猎杀的命运。于是潜意识自动创造了人格分裂的假象。其实按照我的理解,这个梦之所以能朝这个方向发展,也完全是为了符合我自己的利益,满足我求生的本能。)

梦到这里我的精神就崩溃了:

我紧张,因为刚刚还在被追杀。 我自责,因为造成了太多人的死亡。 我也欣喜,因为自己仿佛发现了生的希望。

人格分裂这个重大异常让我意识到自己可能不是在现实世界中,我开始强迫自己苏醒,

结果醒来后发现自己头痛欲裂,心脏还在狂跳!

强迫自己从梦里苏醒这个能力,是需要锻炼的,需要很大的毅力,

因为那个时候无论身体还是意识,都处于混沌状态。

如果成功醒来,第一件事应该是立刻记录梦境。

补充一点资料:

  1. 这个梦醒来是在凌晨4点多
  2. 最近一段时间饮食不太规律,身体处于疲劳状态
  3. 在梦里还有个非常惊悚的细节,每当我遭遇捕杀,总会有一个小女孩出现在我的视线内,对我诡异地一笑,然后又很快消失

Python Tkinter写的一个POST工具[源代码]

昨天想复习一下使用Tkinter开发GUI程序,练手写了一个简单的POST工具。    源代码

必须的package有:

前者用于在linux下显示GIF窗口图标,后者用于检查文本编码,以便完成自动解码unicode。

写代码过程中遇到的问题有:

  1.  linux和mac下的图标问题
  2.  窗口屏幕居中的问题
  3.  Tkinter不支持多线程

对于第三个问题,因为Tkinter是单线程的,因此捕获到按钮点击后,需要创建另一个线程完成post动作。

自然,也可以在command对应的函数中完成HTTP请求了,但会面临窗口不能及时响应的问题。

也就是说,在HTTP请求结束前的一两秒内,窗口是无响应的。

另外,也正因为Tkinter不支持多线程。

错误提示将以红色的文本显示在Response相应的文本框中,而不是消息框提示。

在另一个线程改变文本框的内容是安全的,但创建MessageBox就不是这么回事了。

TkPostTool

Tkinter窗口在屏幕居中的问题

为了让程序窗口在不同的平台和计算机上都能良好的显示,需要考虑:

1. 窗口的大小

2. 窗口的位置

对于第一点,因为默认字体不同,应该尽量避免固定长宽,而让geometry manager(图形管理器)自己去计算所需的大小。但可以设置各个部件之间的间隙大小。

对于这一点,我还想提一下tkinter中的entry和text这两个widget,他们的height和width都是表示可以输入的英文字数,而不是像素值。只有这样,同样的文本内容,才可以在windows、linux下展现一致。而不会windows下在A处换行了,而ubuntu却在B处换行。

Tkinter的窗口屏幕居中有点烦人,没有现成的method,但我找到了一种可行的方法。简单说明:

1. 屏幕的分辨率是非常容易获取到的,直接通过root.winfo_screenwidth()、root.winfo_screenheight() 继续阅读Tkinter窗口在屏幕居中的问题

Tkinter在Ubuntu设置窗口图标遇到的问题

使用Tkinter Package来开发Python GUI程序是非常迅速的,但是它的一些细节不太完美。

在windows环境,设置窗口图标只需要一行代码:

root.iconbitmap(default='myicon.ico')

但这行代码在Ubuntu上无法正常工作,提示myicon.ico not defined。

实际上,我在ubuntu上将图标换成一个x bitmap,依然无法正常工作。

解决在Ubuntu和Mac上出现的这个问题:

1. 安装PIL(python imaging library),支持更多的图像格式,建议制作gif格式64×64做为图标

2. iconbitmap函数封装了tk的iconbitmap窗口消息,我们换成使用Tkinter一个未封装的iconphoto消息

3. windows和linux可以使用同样的代码,也可以根据os.name分支

 

安装PIL

PIL的地址是:http://www.pythonware.com/products/pil/,我选择的是最新的1.17

下载解压之后,还不能立即安装,执行:

apt-get install python-dev

apt-get install libjpeg-dev

前者提供需要的头文件,后者安装了所需的jpeg decoder。

然后,在setup.py中跳到214行

add_directory(library_dirs, "/usr/lib")

在它前面添加:

add_directory(library_dirs, "/usr/lib/i386-linux-gnu")

参考: http://stackoverflow.com/questions/8479344/pil-encoder-jpeg-not-available

随后即可正确安装:

./setup.py build

./setup.py install

我们的python代码可以这样写:

from ImageTk import PhotoImage
icon = PhotoImage(file='icon.gif')
root.tk.call('wm', 'iconphoto', root._w, icon)

可以看到这里是发送的window message iconphoto。

windows下效果:

tkinter-icon-windows

Ubuntu VPS上截图:

tkinter-icon-ubuntu