moviebarcode

http://moviebarcode.tumblr.com/ header中的图片就是用到上面的方法,写了段代码生成的EVA破剧场版的moviebarcode,效果还不错,不过方法和网站中所说的有点区别,校正一下。 整理完毕,效果有所提高。主要方法如下,使用mediainfo读取视频文件信息,主要读长宽和视频时长。然后使用mplayer截取图片,然后把图片压到1px宽,然后全叠起来。代码如下: #!/usr/bin/perl use strict; use warnings; use Image::Magick; my $movie_name = shift @ARGV; my @media_info = mediainfo $movie_name; my ($hours, $minus, $secs, $height, $width); my $image_width = 1000; my $image_height = 288; foreach (@media_info) { if(/Duration\s+:\s?(?:(\d+)h)?\s?(?:(\d+)mn)?\s?(?:(\d+)s)?/) { $hours = $1 ? $1 : 0; $minus = $2 ? $2 : 0; $secs =…

Continue reading →

travian找田工具

最近在玩travian部落战争,前段时间写了个挂机的,结果被封了好几个号,囧,这两天有空又写了个找田的工具,主要用perl写的,LWP写这些东西真的非常简单,travian的登录木有验证码,直接post用户名和密码就可以登录了,代码如下。 my $response = $browser->post($url.”dorf1.php”,[ ‘login’ => time() – 15, ‘name’  =>  “username”, ‘password’ => “password” ]);   然后就是取得地图上关于田的信息 $response = $browser->get($url.”ajax.php?”.”f=k7&x=$l_x&xx=$r_x&y=$l_y&yy=$r_y”);   返回的是一堆json数据,用firebug分析可以得到各数据的含义,在这不得不感叹一下firebug的强大,可以单步调试javascript代码,从javascript里面抽出田的含义,数据在下面给出。 my @T = (”,’3-3-3-9′,’3-4-5-6′,’4-4-4-6′,’4-5-3-6′,’5-3-4-6′, ‘1-1-1-15′,’4-4-3-7′,’3-4-4-7′,’4-3-4-7′,’3-5-4-6′,’4-3-5-6′,’5-4-3-6′); my @resource = (”,’+25%木’,’+25%木’,’+25%木粮’,’+25%泥’,’+25%泥’,’+25%泥粮’, ‘+25%铁’,’+25%铁’,’+25%铁粮’,’+25%粮’,’+25%粮’,’+50%粮’);   其中T代表这是几田,和其他资源的分布,其中第6个’1-1-1-15’就是15田咯,下面的resource表示绿洲的加成,可以用在找到15T之后再找该T的7×7范围内绿洲数量。整个工具其实并不复杂,就是在判断json上面花了点时间,其余都很容易。 这是已经做好了的,可以直接使用。国服S2资源侦察

Continue reading →

ThinkSNS@功能改进

最近一直在进行ThinkSNS二次开发,ThinkSNS的@功能暂时没有像新浪微博一样输入@之后出现可能存在的用户提示,选中某用户之后自动补齐名字和加上空格。第一想法,直接抠代码,围脖首页源码里翻了半天,实在找不出来…转而求其次,网上搜代码,一开始的想法是用Autocomplete来实现,但试用后发现并不合适,Autocomplete从输入内容的第一个字符开始识别,然后对比后端数据查找是否有匹配的,所以到最后发现,只能自己重新发开一下了。 使用jQuery和php实现,思路如下,前端使用jQuery捕获输入事件,把所有的输入内容用正则进行匹配,标记从后端开始往前匹配@,中间只匹配中文字母和下划线,如此就能捕抓到用户@的keyword,每多输入一个字符,触发一次事件,进行一次新的捕抓,使用Ajax向后端发送捕抓到的keyword。后端接收到前端发送过来的keyword,在数据库中对所有关注的用户进行搜索,把找到的结果用json返回到前端来,前端根据接收到的数据作出用户提示,用户选择相应的@对象后,自动补齐加空格。主要jQuery代码如下,自动向后端发送keyword,等待返回json。 $(“#content_publish”).keyup(function(){ var reg = /@([a-zA-Z0-9_\u4e00-\u9fa5]+?)$/; var result = reg.exec($(this).attr(“value”)); $.getJSON(“{:U(‘home/User/keyword’)}”,{ ‘keyword’: result[1] },function(json) { if(json.status == “successful”) { $(“#previewer”).empty(); $(“#previewer”).append(“<ul>”); for (i in json.data) { $(“#previewer”).append(“<li>”+json.data[i].uname+”</li>”); } $(“#previewer”).append(“</ul>”); } else { $(“#previewer”).empty(); $(“#previewer”).append(“<ul>”); $(“#previewer”).append(“<li>”+result[1]+”</li>”); $(“#previewer”).append(“</ul>”); } }); }); $(“#previewer li”).live(“click”, function(){ var reg = /^(.*)@([a-zA-Z0-9_\u4e00-\u9fa5]+?)$/; var result = reg.exec($(“#content_publish”).attr(“value”)); $(“#content_publish”).empty(); $(“#previewer”).empty(); $(“#content_publish”).val(result[1]+”@”+$(this).text()+” “);…

Continue reading →

Hello, world!

作为第一篇文章,就用经典的“Hello, world!”为题吧。 VPS的购买过程相当烦,淘宝逛了几家店,挑了个价格适中的店,惯例性的问了些无关痛痒的问题,然后准备买的时候,卖家开始查户口一样问我买来干嘛用的,还禁止以下行为: 钓鱼网站、仿牌网站、黑客网站、黄色网站、私服网站、广告联盟 VOIP 以及一切违反中国及美国法律的网站 垃圾邮件,木马病毒 扫描IP,攻击其他服务器 疯狂挂QQ,挂ET语音聊天软件, 开启多个采集软件疯狂采集  等等滥用行为 然后我就比较老实的告诉了卖家,买来做个人blog和一个小的站点,可能会有少量的数据处理,结果卖家听到有数据处理一说,直接就54我的存在了…木有办法,只能继续找,第二家也聊合适了,最后准备买的时候才突然发现,这家的机器只支持win木有lin的,又悲剧收场,接陆续还问了不少,发现有淘宝有些VPS是国内个人租用国外主机自己开设的。最后找了个PhotonVPS的代理卖家才把空间定下来。 PhotonVPS比上次的BurstNet速度好很多,延时185左右,操作还算流畅。 lemontv@Gaea:www$ ping -c 5 lemontv.me PING lemontv.me (173.224.222.254) 56(84) bytes of data. 64 bytes from unassigned.psychz.net (173.224.222.254): icmp_req=1 ttl=54 time=185 ms 64 bytes from unassigned.psychz.net (173.224.222.254): icmp_req=2 ttl=54 time=185 ms 64 bytes from unassigned.psychz.net (173.224.222.254): icmp_req=3 ttl=54 time=186 ms 64 bytes from…

Continue reading →