JOYSOUND リクエスト投票
いつも忘れるので、HTA にして 08:00 でタスク スケジューラに入れておくことにする。動作未確認。
動いた。おk。
あーダメ。tic すなわちセッション ID がころころ変わる。[あとで直す]
joy.hta
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <title>_</title> <script type="text/javascript" src="http://svn.coderepos.org/share/lang/javascript/jsdeferred/trunk/jsdeferred.mini.js"></script> <form method="post" action="https://joysound.com/ex/utasuki/forwardLogin.htm"> <input name="loginId" value="*******"> <input name="loginPass" value="****"> </form> <script type="text/javascript">// <![CDATA[ Deferred.define(); var vote = 10, num = '2007080288', tic = '********************************'; var sec = 4; target = 'joy', win = window.open('', target), form = document.forms[0]; next(function() { form.target = target; form.submit(); }). wait(sec). loop(vote + 1, function(i, o) { win.location.href = ['http://joysound.com/ex/utasuki/request/vote2/compentry.htm?requestNo=', num, '&tic=', tic].join(''); return o.last ? i : wait(sec); }). next(function() { win.close(); window.close(); }); // ]]></script>
いろいろ試したけど、結局 gdgd に落ち着いた。
joy.hta
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <title>_</title> <form method="post" action="https://joysound.com/ex/utasuki/forwardLogin.htm" target="_"> <input type="password" name="loginId" value="*******"> <input type="password" name="loginPass" value="****"> </form> <script type="text/javascript" src="jsdeferred.mini.js"></script> <script type="text/javascript" src="joy.js"></script>
joy.js
Deferred.define(); var sec = 4, vote = 10, num = '2007080288', tic = ''; var form = document.forms[0], win = window.open('', form.target); next(function() { form.submit(); }). wait(sec). next(function() { win.location.href = 'http://joysound.com/ex/utasuki/request/vote/index.htm?requestNo=' + num; }). wait(sec). next(function() { tic = (/\"(\w{32})\"/.exec(win.document.body.innerHTML) || [])[1]; }). loop(++vote, function(i, o) { win.location.href = ['http://joysound.com/ex/utasuki/request/vote2/compentry.htm?requestNo=', num, '&tic=', tic].join(''); return o.last ? i : wait(sec); }). next(function() { win.close(); window.close(); });
joy.wsf
サスペンドしないのもどうかと思う。動作未確認。
あっれーサスペンドしないな。[あとで直す]
直した。<?xml version="1.0" encoding="shift_jis"?> <job> <object id="$shell" progid="WScript.Shell"/> <script language="JScript"><![CDATA[ (function() { WSH.sleep(30 * 1000); $shell.run('joy.hta', 0, true); WSH.sleep(20 * 1000); $shell.run('rundll32.exe powrprof.dll, SetSuspendState'); })(); ]]></script> </job>あ、WSH だけじゃ20秒眠らせててもキャンセルできないじゃん。
joy.bat
@echo off setlocal cscript //nologo joy.wsf endlocal echo on