機能
- セッションIDの自動更新
サンシャイン牧場で独自のセッションIDがあって1時間?ごとに更新がされるみたい。その値を自動で取得します。 - 自分の畑、畜産の収穫
収穫時間から0~30秒くらいの間で収穫してくれるはず。 - 種まき、放牧
種、動物の購入をした後、種まきは金魚草、放牧はやぎをやってくれる - 種、動物の購入
除去、引退をした後、金魚草、ヤギを自動で購入します。 - 枯れた作物の除去、動物の引退
収穫後、もう生産できないならやってくれる。 - マイミクの巡回
30分ごとに自動でマイミク全員の畑、畜産広場を巡回して、
収穫、虫駆除、治療、水やりをやります。
1操作ごと、移動ごとにスリープして重み付けしてる。
使い方。
- jdkが必要なのでない人はインストール。パスの設定。
- jsonicをダウンロードして。
c:\program files\java\sdk******\jre\lib\ext
もしくはc:\program files\java\jre\lib\extにコピー - 自動化のソースをダウンロード(下にリンクあり。)
- コンパイル:javac *.java
- 起動:java AutoSanboku < email> < password> (mixiアカウント)
以上です。windows でやる場合は文字コードをSJISに変更してやるかコンパイル時に-encoding UTF-8をつけてやってください。
エラー処理をかなりサボってるのでサン牧のサーバーが落ちてたりするとこちらのプログラムも止まります。時々みてやってください。
サン牧運営側がハッキング?に対して制裁を行うと言ってるみたいです。
一応
マイミクの巡回時には重み付けする、サン牧側に送信するデータを元データと同じにする
ってことをやってますが
このプログラムがもとで起こったことに関してなんも責任は負えないのでよろしくお願いします。自己責任で使ってくださーい。
かなりきたないソースコードですが・・・ソースで配布するんで修正、追加機能等大歓迎です。できれば連絡ください。
もし修正版、追加機能版を公開するなら絶対にソースコードを公開してください。
ダウンロード:http://kimson.name/sanboku/sanboku.tar.gz
何か要望とかあればコメントにどうぞー。
===============================================
追記:2009/11/19
とりあえず文字コードの問題は
AutoSanboku.javaの315行あたりの
BufferedReader reader =
new BufferedReader(new InputStreamReader(urlconn.getInputStream()));
を
BufferedReader reader =
new BufferedReader(new InputStreamReader(urlconn.getInputStream(), "UTF-8"));
でいけます、試してみてください。
で、最近になってPOSTするデータが変更されてるみたいで「naruto」とかいうパラメータが追加されてます。
これがなんなのかよくわかってないので再現できないです。
この値がなくても(適当な値でも)レスポンスは返ってくるんで一応使えるんですが、向こうにはツール使ってるのばれるんでお気をつけて。
================================================
追記:2009/12/07
みなさんコメントありがとうございます。
さすがにせっかくコメントもらってるのにほったらかしはダメだと思って少し更新。
たぶん動くようになったと思う。
ダウンロード:http://kimson.name/sanboku/sanboku.tar.gz
変更点。
1、conf.txtでアカウントなどの管理をするようにしました。
中身はこんな感じ
email=xxxxx@xxxx.xxx.xxx#mixiアカウントのemailsleep1timeは収穫とか虫駆除をしたあとにスリープする時間。
password=xxxxxxxxxx#mixiアカウントのpassword
sleep1time=3#操作間のスリープ時間(秒)
sleep2time=3#マイミク移動間のスリープ時間(秒)
sleep3time=30#マイミク巡回間のスリープ時間(分)
crawl=1#0ならマイミク巡回しない。1なら巡回する。
sleep2timeはマイミク巡回の時にマイミクからマイミクに移動する間にスリープする時間。
sleep3timeは巡回と巡回の間にスリープする時間。*この時間はセッションIDの更新にも関係してるので1時間以上にしないほうがいいです。
crawlはマイミクの巡回をするかどうかです。
スペースとか入れるとうまく読み込めなくなるんでお気をつけて。(手抜きですいません。)
2、マイミク巡回時に虫を置くようにしました。
適当に置きますw増産量80%以下の場合10分の1の確率で置くみたいな感じ。
詳しくはソース見てください。
3、narutoのパラメータについて
対応してません!!!
でも適当な値を入れて送ってますw
narutoの値についてコメントくれた方がいて解析はできてる用ですがそれを実装する気力がありませんw
だれが実装してくれないかな・・・
CtlParam.javaのgetNaruto()メソッドに書いてくれるとOKなのだけど・・・
たぶん以上です。こちらの環境では動作確認はできました。
あんまり時間使ってないので変な動作したらごめんなさい。
あとソースに俺のIDとかまずいものがあったらみなかったことにして消してくださいw
C:\sanboku__>javac *.java -Xlint:unchecked -encoding UTF-8
返信削除TikusanRobo.java:74: 警告:[unchecked] 無検査変換です
検出値 : java.util.List
期待値 : java.util.List java.lang.String
harvest = (List)(((Map)t
mp_map.get(key)).get("auto_harvest"));
^
TikusanRobo.java:91: 警告:[unchecked] 無検査変換です
検出値 : java.util.List
期待値 : java.util.List java.lang.String
harvest = (List)(((Map)t
mp_map.get(key)).get("auto_harvest"));
^
警告 2 個
と怒られました.
auto_harvestまわりをコメントアウトして実行したところ,今度は
C:\sanboku__>java AutoSanboku
Exception in thread "main" java.lang.NoClassDefFoundError: AutoSanboku
Caused by: java.lang.ClassNotFoundException: AutoSanboku
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: AutoSanboku. Program will exit.
と怒られました.
うーむ,JAVAはちょっとわかりませぬ.お助けを.
環境はjdk1.6.0_17+jsonic1.1.1+WinXPSP2(コマンドプロンプト)です.
タグ使えませんと怒られましたので外しました.
コメントありがとうございます!
返信削除警告は無視してそのまま実行でうまくいきませんか?
一応動作が確認できた環境です。
jdk1.6.0_16+jsonic1.1.1+Win7
jdk-1.6.0_11-fcs+jsonic1.1.1+centos5.3
ありがとうございます。
返信削除どうやら余計なオプションをつけたの(xlint:unchecked)がよくなかったようで警告が出たまま実行したらできました。
大変失礼しました。
自分も上記のような状況に陥りました。(エラーは全く同じ)
返信削除警告は無視してそのまま実行・・・というのがよくわかりません。どうやるのでしょうか?
自分も全く同じ状況に陥りました。
返信削除警告を無視してそのまま実行・・・というのがよくわかりません
どうやるのでしょうか?
コメントありがとうございます。
返信削除警告の場合はコンパイル出来てますんで、
javac *.cを打ったあとに
java AutoSanboku <email> <password>
を打ってください。
以下のエラーで止まってしまいます。
返信削除ID関連は伏せさせていただきました。
nicknameは文字化けした物が取得されていました。もしかしたらそのせいかも?ちょっとソース読んできます。
若しくはWindowsのコマンドプロンプトで実行してるのが良くないかも。
ちょっとlinux引っ張り出してみようかな。
C:\miniapp\sanbokukojo>java AutoSanboku ****@***.*** ***
レスポンスヘッダ:
null: [HTTP/1.1 200 OK]
X-Dealer: [034046]
Date: [Tue, 17 Nov 2009 23:01:37 GMT]
Vary: [Accept-Encoding]
Transfer-Encoding: [chunked]
Set-Cookie: [BF_STAMP=********************************; path=/, BF_SESSION=*******_********************************_0; path=/]
Content-Type: [text/html; charset=ISO-8859-1]
Connection: [close]
Server: [Apache]
レスポンスコード[200] レスポンスメッセージ[OK]
---- ボディ ----
<html><head><meta http-equiv="refresh" content="0;url=/check.pl?n=%2Frun_appli.pl_id%3D7157"></head></html>
[BF_STAMP=********************************;
path=/,
BF_SESSION=*******_********************************;
path=/]
BF_STAMP=********************************;
BF_SESSION=*******_********************************;
レスポンスヘッダ:
http://****************************************.app0.mixi-platform.com/gadgets/m
akeRequest
st=85nFt58P8aVw0z1CDefZq8PI7olkF39ITlbuub3yszASKIJ1ib0Cbx%2BWAy3EUz%2F9GmtHQMikOajGSiPAymoD27O%2FA6K%2F78CKJPtis7EMyXDG%2FIFlRaQsJ0kHaRTf%2F6HkNujNFKlDIx7NsAC0swF0y3Ct2LkWH3CNkArmf5Pa0IgCgWL3
v=1258470855
v%3D1258470855
Exception in thread "main" net.arnx.jsonic.JSONException: 1: 予期しない文字'i'が見つかりました。
{"link":null,"entry":[{"thumbnailUrl":"http://profile.img.mixi.jp/photo/member/54/18/********_*********s.jpg","nickname":"******","id":"********","updated":"2009-11-17T23:01:38Z","hasApp":"true"},{"thumbnailUrl":"http://profile.img.mixi.jp/photo/member/59/52/********_**********s.jpg","nickname":"******","id":"********","updated":"2009-11-17T23:01:38Z","hasApp":"true"},{"thumbnailUrl":"http://profile.img.mixi.jp/photo/member/64/55/********_**********s.jpg","nickname":"*******,"i <- ?
at net.arnx.jsonic.JSON.createParseException(JSON.java:1511)
at net.arnx.jsonic.JSON.parseObject(JSON.java:1117)
at net.arnx.jsonic.JSON.parseArray(JSON.java:1187)
at net.arnx.jsonic.JSON.parseObject(JSON.java:1086)
at net.arnx.jsonic.JSON.parse(JSON.java:996)
at net.arnx.jsonic.JSON.parse(JSON.java:965)
at net.arnx.jsonic.JSON.parse(JSON.java:931)
at net.arnx.jsonic.JSON.parse(JSON.java:925)
at net.arnx.jsonic.JSON.decode(JSON.java:304)
at AutoSanboku.main(AutoSanboku.java:185)
C:\miniapp\sanbokukojo>
コメントありがとうございます。
返信削除>nicknameは文字化けした物が取得されていました。もしかしたらそのせいかも?
すいません・・・WinXPで試したときに同じ症状が出たんですが
自宅のサーバー(centos5.3)で動かすつもりでそっちでうまくいってたんで、まーいっかと思ってほったらかしにしてました。
>ちょっとソース読んできます。
付け足し付け足しで汚いコードですがよかったら見てやってください。
えーつまりよく原因がわかってないので時間をくださいってことでw
警告を無視してそのまま実行・・・に関して質問した者です。お恥ずかしいことですが、ファイル名の大小判別に気がつかず、そのまま小文字で打っていました。
返信削除とりあえず実行はできたんですが、2009/11/18/8:13と同じエラーが出ました。
環境はjdk1.6.0_17+jsonic1.1.1+WinXPです。
対処をお待ちしております
初めまして。早速自動化ツール使わせていただいていただこうと思います。
返信削除ところで、これはまだ金魚草、やぎを購入できない場合はどうなってしまうのでしょうか?
また、種、仔動物の種類を変更することは出来ないでしょうか?
SanbokuMethodクラスのL47で「金魚草」を指定している引数(おそらくはname=jinで指定していると思うのですが)にセロリ、竹、チャンチンを指定してあげるように変更したいと思っております。とりあえず「take」などと指定してみようと思いますが、私の環境では確認するためにはあと3日ほど掛かってしまう状況です。
恐縮ですが、引数の対応表等の資料をお教えいただければ幸いです。
コメントありがとうございます。
返信削除畑のデータ
http://spreadsheets.google.com/pub?key=txq8veFwgnLETg7bBy-PUfw&output=html
畜産のデータ
http://spreadsheets.google.com/pub?key=t07asj8bhEzKd_3R0R0MQcA&output=html
向こうから送られてくるJSONデータのそれらしいところをcsv形式にしてインポートしたんでたぶんあってると思います。
なんか間違いがあったら教えてください!
興味を持ったのでテストさせて頂いています。
返信削除どのjavacを使うかによってjsonicのインストール先を変えなくてはいけないという初歩的なところにつまづいたりしながら、なんとか動かせるところまで持って行きました(笑)
ところで、誕生日は公開状態で誕生年を非公開にしていると、データを読みにいったところで、
Exception in thread "main" java.lang.NullPointerException
at AutoSanboku.main(AutoSanboku.java:224)
でコケます。
一度公開状態にして起動して、その後非公開に戻せばとりあえず大丈夫のようですが、一応レポートしておきます。
ご参考まで。
ターミナルから実行出きるので大変ありがたく使わせていただいております。
返信削除マイミクさんの巡回なのですが、全員ではなく一部のマイミクさんしか巡回されないのですが、なにか実効の仕方の問題があるのでしょうか。
気のせいなのかもしれないですが、mixiネームに漢字が含まれている方が巡回対象に入っていないように思います。
また実行中に次のようなエラーが出てしまいます。
Exception in thread "Thread-2" java.lang.NullPointerException
at Crawl.startCrawl(Crawl.java:27)
at RefreshSessionId.run(RefreshSessionId.java:18)
at java.lang.Thread.run(Thread.java:636)
エラーが出ても収穫スレッドは動作しているようですが。
よければ対策など教えていただければ幸いです。
なお、私の環境はUbuntu9.10です。なお、Windows7で実行した時でも同様でした。
コメントありがとうございます。
返信削除>一部のマイミクさんしか巡回されない・・・
ほんとだ・・・収穫、虫駆除などの操作がうまくいってないユーザーがいますねorz
基本的にマイミクの情報を扱うときはIDを指定するだけなんで漢字は関係ないと思うんですが・・・
調べてみます!
>また実行中に次のようなエラーが出てしまいます。
実行すると常に例外がでますか?
常に出なければサン牧側のサーバーからレスポンスが返ってきてないせいだと思います。これはしっかり例外処理をしてないせいなんで対策しないとですね・・・
Sjis版があるとうれしいです。
返信削除ホルスタインを飼育したときなんだか処理がうまくいってないようで、なんども自分も畜産広場を調べます。
ちょっとソースを読んでみたのですが、原因らしきものは発見できませんでした。
次の段階までかなりの時間があると発生するようです。
>hirokiさん
返信削除いろんな時間帯で試したりしましたが、どのタイミングでもエラーは出るようです。
その後実行を続けると、
Exception in thread "Thread-3" java.lang.NullPointerException
at TikusanRobo.run(TikusanRobo.java:53)
at java.lang.Thread.run(Thread.java:636)
Exception in thread "Thread-1" java.lang.NullPointerException
at SyuukakuRobo.run(SyuukakuRobo.java:34)
at java.lang.Thread.run(Thread.java:636)
というメッセージが表示されプログラムが停止してしまいました。
以前の投稿で報告させていただいた、Thread-2のエラーはマイミク巡回に関するエラーでmそのためマイミク全員に巡回できなかったのだと思われます。
漢字は無関係でしたか。素人考えで大変失礼しました。
動かなくなってしまいました…
返信削除>動かなくなってしまいました...
返信削除うわ。。。
こっちで確認できたのは、マイミク巡回の収穫が500が返ってきてダメっぽいですね。
それ以外は問題なく動いてるみたい。
narutoの正体がわからないのでなんとも・・・
各機能のON/OFFとマイミクの巡回のスピード設定
返信削除はできるようになりませんか
&
naruto については
http://pc12.2ch.net/test/read.cgi/sns/1257678007/
この辺参考になされてはいかがでしょうか^^
上のほうにあるコメントにも関係してるんですが
返信削除生年月日や性別の取得は必要なんでしょうか?
なんとなく気になるもんで
とりあえず、収穫だけしないようにして動かしています。
返信削除やはり、ホルスタインを飼うと不具合発生のようですね。(特に問題が起きるわけではないですが…)
StoreInfoデータの最新版をもらえませんか?
>生年月日や性別の取得は必要なんでしょうか?
返信削除必要ではないと思いますが試してないので何とも。
>StoreInfoデータの最新版
ソースを紛失したみたいで・・・
いずれきっと。
今更ですが最新のデータを乗っけときます!
返信削除畜産のデータ
http://spreadsheets.google.com/pub?key=tntr9nTgJDaGBCcZWWi600Q&output=html
畑データ
http://spreadsheets.google.com/pub?key=tbPbJA8FOiCiSujiytaalXg&output=html
これで初めてjavaを触った者です。初歩的な事でしたら申し訳ありません。
返信削除使い方 4コンパイル:javac *.java のところで警告とエラーが出てしまいます。
警告は上記の方と同じ物です。
エラーが「パッケージ net.arnx.jsonic は存在しません。」というものと「シンボルを見つけられません。」というものです。
わからないなりに色々調べたのですがやはりわかりません…。
お力添えを頂けませんでしょうか。
コメントありがとうございます。
返信削除jsonicのライブラリをダウンロードして
jsonic-x.x.x.jarを
c:\program files\java\sdk******\jre\lib\ext
もしくはc:\program files\java\jre\lib\extにコピー
してください。たぶんこれでいけると思います。
「jsonic-x.x.x.jarを」ってのを書き忘れてた・・・
ありがとうございます。上の質問を書いた者です。
返信削除ご教授頂いた通りやってみてできた様です。
試行錯誤したので出来た際は正直嬉しかったです。
教えていただき有難うございました。
連続すいません…。
返信削除2009年11月18日8:13 さんと同じようなエラーで動きませんでした…。
自分もXPなのでそれが原因でしょうか…。
環境はjdk1.6.0_17+jsonic1.1.1+WinXPです。
初めてだらけの事だったので、これまでの事ができただけでも満足してしまっていますが(苦笑)
コメントありがとうございます。
返信削除あ、すいません。修正してなかったです。
追記のとこに書いたんですが、
AutoSanboku.javaの330行くらいの
BufferedReader reader =
new BufferedReader(new InputStreamReader(urlconn.getInputStream()));
を
BufferedReader reader =
new BufferedReader(new InputStreamReader(urlconn.getInputStream(), "UTF-8"));
でいけるのではと思います。
よくわからなかったら修正しとくんでもう一度DLしてくださーい。
StoreInfoデータの最新版お願いします。
返信削除そばを植えたいです^^
ありがとうございます。スゴすぎです。
返信削除蕎麦(liangmian)と孔雀(lukongque)で楽しんでます。
蕎麦が無くなったら香椿(xiangchun)ですね。
>StoreInfoデータの最新版お願いします。
返信削除すいません、StoreInfoを取得するプログラムをそのうち公開しようかなと思ってます。
ありがとうございます。(ピンインを調べれば良かったのですね)
返信削除ソバの種?を1000個ほど買ってしまったので、しばらくソバ祭りをしたいと思います^^
上の方で質問のあった次のエラーですが、
返信削除C:\sanboku__>java AutoSanboku
Exception in thread "main" java.lang.NoClassDefFoundError: AutoSanboku
システム環境変数で CLASSPASS が(QuickTime関係で)変な風に設定されてて上記のエラーが出たことがありました。誤ったCLASSPASSの設定をなおすか、あるいは削除すれば問題なくなりました。
なんかダウンロードファイルがなくなってます?
返信削除http://kimson.name/sanboku/sanboku.tar.gz
ダウンロードリンクの再開してくれないかな・・・
返信削除