bianbian coding life

便便代码人生: 关注技术, 翻译文档, 偶尔动动手

[啊] 淘宝整天改版,自动发货又升级

Posted by bianbian on 2007-11-16 10:02


本文Tags: , ,

自动发货的又要改了。
现在淘宝的发货页面用了Yahoo UI Library,每个按钮都用了后期事件绑定,每个事件又和很多代码相关,于是分析起来比较困难。估计是故意的。
经过1个小时的代码分析。终于搞定。
其实偷偷告诉大家,不需要分析那些事件到底改动了哪些form里的数值。
因为我们的脚本能控制页面的所有元素,把form改成我们需要的样子submit上去就OK了。
帖主要代码:

  1. //发货
  2. gFrm["_fmu.g._0.goo"].value = gTips[gID];
  3. //先把页面里的几个发货单全删了
  4. $(d, "reComPartners").parentNode.removeChild($(d, "reComPartners"));
  5. $(d, "otherPartners").parentNode.removeChild($(d, "otherPartners"));
  6.  
  7. var div = d.createElement("DIV");
  8. var divHTML;
  9. if (gID <= 1) //邮政
  10. {
  11.     divHTML = '<input type="hidden" name="companyCode1"  value="POST"/>' +
  12.         '<input type="hidden" name="checked1" class="hidden logis:chooseCompanyId"   value="true"  />' +
  13.         '<input name="mailNo1" value="' + (gID > 0 ? hh : "POST") + '" />';
  14.     gFrm["methordId"].value = 0;
  15. }
  16. else if (gID == 4) //韵达
  17. {
  18.     divHTML = '<input name="orderType" type="hidden" value="2" />' +
  19.         '<input type="hidden" name="companyId"  value="102"/>' +
  20.         '<input type="hidden" name="companyCode"  value="YUNDA"/>' +
  21.         '<input type="hidden" name="checked" class="hidden logis:chooseCompanyId" value="true" />' +
  22.         '<input name="mailNo" value="' + hh + '" />';
  23.     gFrm["methordId"].value = 1;
  24. }
  25. else if (gID == 2) //南京100
  26. {
  27.     divHTML = '<input name="companyCode1" value="OTHER" />' +
  28.         '<input value="南京壹零零速递" name="companyName"/>' +
  29.         '<input name="checked1" value="true">' +
  30.         '<input name="mailNo1" value="' + hh + '" />';
  31.     gFrm["methordId"].value = 0;
  32. }
  33.    
  34. div.innerHTML = divHTML;
  35. gFrm.appendChild(div);
  36. gFrm.submit();
标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in JavaScript, Technology | No Comments »

[原] 淘宝(taobao.com)卖家自动好评工具

Posted by bianbian on 2007-08-01 02:23


本文Tags: , , ,

哈哈,每天点好评太郁闷了,这下爽了。写了一晚上,有什么问题请留言阿。
==================
taobao卖家自动好评工具 v1.1
==================
解压后运行Setup.exe来安装和卸载(第一次运行安装,下一次卸载,再下一次安装。。。。)

安装和卸载都要重新打开浏览器(IE和IE核心的)才有效。

使用的时候:右键点击“评价”链接,选择“taobao卖家自动好评”
淘宝卖家自动好评

因浏览器的关系,会弹出一个对话框,等待自动评价完成(否则浏览器立刻返回就不灵了)

评价的内容修改请用记事本或写字板打开“Haoping.html”第36行参照说明修改

有什么问题,请到我的blog留言:http://bianbian.org

最后做个广告:

欢迎光临必胜客优惠券打折卡专卖:http://shop34553802.taobao.com

保留作者信息下随意复制本程序

bianbian
http://bianbian.org
http://shop34553802.taobao.com

07.8.1

下载:淘宝卖家自动好评工具v1.1 (43K)

原理就是JS控制页面元素啦,还是比较有意思的。
源码:

  1. //***************************************************************
  2. //   Function   : 淘宝卖家自动好评
  3. //   File name  : Haoping.html
  4. //   Author     : bianbian (bianbian.org#gmail.com)
  5. //   Blog       : http://bianbian.org
  6. //   Shop       : http://shop34553802.taobao.com
  7. //   Copyright  : 保留作者信息下随意复制
  8. //   Version    : 1.0  created,      bianbian @ 07-7-31 18:46
  9. //                1.1  解决跨域问题, bianbian @ 07-8-1 1:43
  10. //***************************************************************
  11.  
  12. /*
  13. 在下一行修改你的好评内容,注意如果多行要用"\n"隔开,如:
  14.  
  15. content = "欢迎再次\n光临\n必胜客优惠券打折卡\n专卖\n shop34553802.taobao.com";
  16.  
  17. 也可以写成这样:
  18.  
  19. content = "欢迎再次\n" +
  20. "光临\n" +
  21. "必胜客优惠券打折卡\n" +
  22. "专卖\n" +
  23. " shop34553802.taobao.com";
  24.  
  25. 也可以这样:
  26.  
  27. content = "欢迎再次\n\
  28. 光临\n\
  29. 必胜客优惠券打折卡\n\
  30. 专卖\n\
  31. shop34553802.taobao.com\
  32. ";
  33. */
  34. content = "欢迎再次光临必胜客优惠券打折卡专卖~ shop34553802.taobao.com";
  35.  
  36.  
  37. //
  38. // 下面不需要修改 ***********************************************
  39. //
  40. try
  41. {
  42.     haoping();
  43. }
  44. catch(e)
  45. {
  46.     alert("出错了噢~ 请和 yuelinniao 联系");
  47. }
  48.  
  49. function haoping()
  50. {
  51.     var d = external.menuArguments.document;
  52.     var e = external.menuArguments.event;
  53.     var a = d.elementFromPoint(e.clientX, e.clientY);
  54.     var p = a.parentElement;
  55.     var done = 0;
  56.    
  57.     if (a.innerText != "评价")
  58.     {
  59.         alert("你点错了吧~~~");
  60.         return;
  61.     }
  62.     a.innerText = "好评中..";
  63.     var fr = d.createElement("IFRAME");
  64.     fr.width = 1;
  65.     fr.height = 1;
  66.     //bianbian: 这里涉及iframe的跨域问题,暂时先改成同个域解决
  67.     fr.src = a.href.replace("http:\/\/my\.taobao\.com", "");
  68.     fr.onreadystatechange = function ()
  69.     {
  70.         if (fr.readyState == "complete")
  71.         {
  72.             if (done == 0) //submit form
  73.             {
  74.                 if (submitfrm(fr.contentWindow.document.forms))
  75.                 {
  76.                     done = 1;
  77.                     return;
  78.                 }
  79.                 else //failed, roll back
  80.                 {
  81.                     p.removeChild(fr);
  82.                     a.innerText = "评价";
  83.                 }
  84.             }
  85.             else if (done == 1) //submited, clear
  86.             {
  87.                 p.removeChild(fr);
  88.                 p.removeChild(a);
  89.                 var span = d.createElement("SPAN");
  90.                 span.innerText = "好评OK!";
  91.                 p.appendChild(span);               
  92.             }
  93.             done = 99;
  94.         }
  95.     };
  96.     p.appendChild(fr);
  97.     //bianbian: 这里必须弹出个对话框,否则IE会清空资源直接返回,onreadystatechange就失效了
  98.     alert('好评进行中,完成才能点击"确定"关闭本对话框噢~');
  99.     if (!done)
  100.     {
  101.         p.removeChild(fr);
  102.         a.innerText = "评价";
  103.         alert("提早关闭对话框,无法取得结果,请重试");
  104.     }
  105. }
  106.  
  107. function submitfrm(fms)
  108. {
  109.     for (var i = 0; i < fms.length; i++)
  110.     {
  111.         var f = fms[i];
  112.         if (f.name == "addfeedback")
  113.         {
  114.             f["_fmmy.r._0.r"][0].checked = true;
  115.             f["_fmmy.r._0.c"][0].checked = true;
  116.             f["_fmmy.r._0.t"][0].checked = true;
  117.             f["_fmmy.r._0.f"].value = content;
  118.             f.submit();
  119.             return true;
  120.         }
  121.     }
  122.     return false;
  123. }
标签: , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in JavaScript, Technology | 2 Comments »

[原]用perl写了个自动配置脚本

Posted by bianbian on 2007-04-08 11:26


本文Tags: , ,

经常要安装各种包,而且每个包的configure参数千差万别;而且以后升级版本或者换个机器装的话又记不得加哪些参数,实在不方便。于是写了个自动配置的脚本。
升级包的版本的时候要把旧版本的目录删除。
我自己用觉得很方便,主要是为了记录configure的参数,省得用到的时候又得找。

配置:
在@list里面第1行写好包的前缀名(省去版本,能grep出唯一结果即可);紧接一行是configure的参数

使用:
./autoConfigure.pl <参数>
<参数>:make(每个目录调用make);install(每个目录调用make install);其他(每个目录configure)

第二次用perl,写得烂不要见效。

  1. #!/usr/bin/perl
  2.  
  3. # AutoConfigure
  4. # first line:  name to match, like nginx-
  5. # second line: configure parameters
  6. @list = (
  7.   "nginx-",
  8.   "--prefix=/home/nginx --without-http_browser_module"
  9.   ,
  10.   "fcgi-",
  11.   "--prefix=/usr"
  12. );
  13.  
  14. # -------- below need not to modify --------
  15. for($i=0; $i < @list; $i += 2) {
  16.   $cmd = "ls -d */ | grep \"$list[$i]\" |";
  17.   open (PIPE, $cmd);
  18.   @out = <PIPE>;
  19.   chomp($out[0]); #chop \n
  20.   $cmd = "cd " . $out[0] . "; ";
  21.   if ($ARGV[0] eq "make") {
  22.     $cmd .= "make";
  23.   } elsif ($ARGV[0] eq "install") {
  24.     $cmd .= "make install";
  25.   } else {
  26.     $cmd .= "./configure " . $list[$i + 1];
  27.   }
  28.   close PIPE;
  29.   $cmd .= "; cd ..";
  30.   system($cmd);
  31. }
标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Linux, Technology | No Comments »

[原]ogame自动FS v2.2

Posted by bianbian on 2006-12-04 07:22


本文Tags: , ,

去年的这时候写的吧,当时一伙人玩ogame;历经多次改进和实践检验。不过后来玩得少了,月球FS还没有做。看反馈情况吧,如果实在需要,我就抽空完善一下。不过玩家donate一下哦。
解压后先把ogameFS.default.ini改名为ogameFS.ini,然后运行TermNewsPass.exe加密您的密码(填入配置文件的是加密后的密码)。详细说明就见ogameFS.ini吧,一般需要设定Host、ID、PW三个值。
下载ogameFS。下面是部分WhatsNew:
v2.2
====================================
内置浏览器可以响应回车键了

v2.1
====================================
修正导致假死状态的bug(倒计时为0)

v2.0
====================================
FS后检查是否FS成功,若失败则再次FS

v1.9
====================================
Happy New Year!
修正可能导致FS失败的bug

v1.8
====================================
屏蔽脚本错误,不再弹出脚本错误框
预定义任务取消Count参数,直接编写即可
加入直接“View Ini”功能

v1.7
====================================
修复一个严重bug:此bug可能导致FS失败
是否FS和预定义任务改为1分钟检查一次
预定义任务执行后加入日志

v1.6
====================================
解决程序失去响应的bug

v1.5
====================================
支持预定义操作,可自动升级建筑或研究

v1.4
====================================
一些bug修正
可设置读取系统事件的间隔时间

v1.3
====================================
断线自动重新登录
攻击结束后自动召回舰队

v1.2
====================================
一大堆bug修正
截取页面load完毕事件,取消延时设置
多波攻击按最早到达时间选择FS

v1.1
====================================
速度自动设为10%
按重氢、晶体、金属最多顺序装船
按同太阳系、同银河系顺序选择FS目的地
可以复制网页内容

v1.0
====================================
先改配置文件:ogameFS.ini

ID需要先登记才能用
密码需要用TermNewsPass.exe生成

bianbian
05.12.11

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Technology | 26 Comments »

[原]用AutoIt3写了个自动刻盘程序(调用Nero)

Posted by bianbian on 2006-10-23 01:14


本文Tags: , ,

由于我实验室的电脑每小时都要接收一百多兆的卫星数据,刻DVD成了我郁闷不勘的体力活。
前阵子用Delphi写了监听目录,一旦有卫星数据传送完毕,就自动调用RAR压缩,省下几天时间(数据嘛,压缩一下小很多的)。
不过还是挺麻烦,像我这种懒人,最烦体力活了。于是,用AutoIt3写了个自动调用Nero 6 Express刻盘的。原理是:上面说的那个Delphi监听目录程序过一段时间检查数据目录,一旦超过一张盘片的容量了,就调用Nero 6 Express,将目录里所有文件全选进来,然后从底部一个一个删除超过容量的,然后就可以刻录了。刻完以后盘片会弹出来,再将Nero 6关掉,等待下一次刻盘。
唯一的麻烦是虽然自动刻盘了,还得人工去换盘……
我想了几天,没想到什么可行的办法实现自动换盘,现在暂时是刻完一张盘就自动给小师弟发短信,让他来换盘……

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in AutoIt3, Technology | 8 Comments »