2014年11月13日

差益さん EVEAPIアクセスへの道3 〜EVEAPIライブラリ試行錯誤編2〜

小話

おやじギャグが許される優しい世界っていいよね
昔、おっぱいちゃん(仮称)がいまして
おやじギャグ好きなわたくし、まあここでちょっと洒落た親父ギャグで
つかみにいこう(物理的にではありません)と思ったわけです
ですがその子、「親父?(親父ギャグはちょっと・・・・の意)」とか切り返してきます
なんて哀しいこというんだ

ここで2択ですよ
1:その子に合わせて親父ギャグを封印して接する
2:自然体。信念を曲げずに親父ギャグを普段通り貫き通す
当然1を選択しましたねえ、若さ故
でもつまんねえんだこれが、やはり我慢は良くない、オチ無し


本題

前回は、pythonのバニラ状態でアクセスできてるんだから
rubyでEVEAPIにアクセスしてデータをいただいてしまおうというところまででした

さて、長い間ブログをお留守してたのは問題が発生したからでございます
簡単にまとめると
生pythonでeveapiにアクセス可能だよ

じゃあrubyでもできるんじゃん、素直にrubyで書こう

書いた

アクセスできねえw

原因不明

普段なら諦めはいってるところなんですが慣れの問題でどーーーしてもrubyでやりたい
じゃあ何があかんのか
これまた一言でいいますと「rubyのバージョンが低かった(たぶん)」
早速2.1に入れ直して同じコードを実行

eveapimarket.jpg
キタァー!・・・何に時間食ってたのか
幅広すぎて重要な価格のところが見切れてるけど
evecentralでの突き合わせ作業に必要なデータであるトコの
・アイテムのID
・売買価格
・ステーション・・・・ID?
はいまためんどくさいの来たこれ。ここはスッとぐぐり
http://biotronics.basicaware.de/eve/download/StationID2Name.txt
リンク踏むのも手間だと思うので冒頭部分を引用
>stationID stationName
>60000001
>60014668 - House of Records
>60014862 0 G straight outta syndicate yo
>60014885 0 Wn Everything Rape
>60014338 0G-A25 VI - Moon 20 - True Power Mining Outpost
>60013636 0IRK-R IX - Jove Navy Testing Facilities
これ出ました、星系名も付いてステーション名というなんかすげー冗長な感じですけど
ステーションIDをこのリストにつきあわせて名前に戻してあげりゃ
evecentralでいただくことの出来るステーション名と突き合わせできることを確認、ひひひ

んでまー、同じ価格で入れられてるときのことを考えてみる
同価格で競合した場合、後からきた注文が後回しなはず(じゃないと不公平だよね)なんだけど
検証してないっす。暇なとき同アイテム同価格で重複するように注文いれてみよー。一応
・数量
で自分の注文かどうかを見わけたほうがいいはず
さらにこの場合は日付っぽいものも必要

ロジックとしては
1:apiから自分のマーケットオーダーをいただく
-----ここから注文単位でループ------
2:evecentralからアイテムIDで情報をゲット
3:アイテムの市場情報を売りの場合は価格で昇順にソート(買いは降順)
4:ステーション単位で情報を分割
5:自分のステーションの注文と4番の該当するステーション情報を照らし合わせ
6:注文が一件であれば競合無しの判断なので異常無し、9番へ
 ※自前で出した同ステーション同アイテムの注文が一件であることが前提
7:価格順にならんでるので最初に抽出した注文が自分の注文であれば問題なし、9番へ
 同価格で出されてる注文が複数出たら8へ
8:ここまで到達したらevecentralの注文情報を精査
 他人の注文が優先状態であることが確定したら警告表示
9:2に戻る(1の注文を全て検査してたらアプリ終了)
-----------------------------------

ここまで書いて売り注文の時はいいけど
買い注文だったとき範囲指定で蹴落とされてるときどうすんのとか気づいた、どうすんの!
このロジックだと同ステーションでの競合しか見れないw
でもこの遠隔買い付け注文、いわゆる最大範囲がリージョン全体ってやつじゃあリージョンでわけりゃいいのかーって一瞬思ったけど
リージョンのはじっこで10Jまで買い付けるとかいったらリージョン外でもOKなんかなどうなんかな
でもEVEの注文検索ってリージョン単位だからリージョンをまたぐ買い付けはできないと思いたい

初手からここまで考慮したものを作るのはテストがめんどくさいので(基本めんどくさい人です)
上に書いたようなロジックでやってみましょー
つづく
posted by Misonikomin at 15:26| Comment(0) | TrackBack(0) | EVE開発 | このブログの読者になる | 更新情報をチェックする

2014年11月08日

差益さん EVEAPIアクセスへの道2 〜EVEAPIライブラリ試行錯誤編〜

戦時中なのでお外に出れない味噌です、こんにちは

こんにちわとこんにちはの「わ」と「は」はどっち使うのが正しいのか
これちょっと調べました、正解は「は」みたい
「今日は、お日柄もよく〜」などの省略形ってことで「は」
音が同じなんで「わ」が生まれたみたいですな、うん、どうでもいいね〜

ではEVE APIアクセスネタ
今まではRUBYを使ってEVE CENTRALサンのWEB APIにアクセスしてマーケットデータを拝借してました
この勢いで公式のEVE APIにアクセスできるんちゃいますのと意気込んでやってみた結果

アクセスできぬのだ


とまあ、結論からいうと大失敗
eaalっていう
RUBY用のEVE APIアクセスライブラリーを使ったんですがなぜかアクセスできない、なぜだ(☍ω⁰)
途方に暮れた味噌であった。

EVE ONLINE WIKIのAPIアクセス事始め
『選択肢は次の3つだ、好きなのを選べ』
・python
・PHP
・C#/.NET
選択肢にRUBYのRの字もないw
細かなところではRUBYとperlのライブラリーあるみたいなんですけどもねえ
どうしたもんか、コード量みるとpythonが一番楽そう
触ったことがあるという点ではC#(サンプルのコード量おおいな・・・・)

とりあえず・・・
1:何も考えずvisual studioを立ち上げる
2:EVE LIBというライブラリーをnugetでぶちこむ、これワンアクション、らくちん
3:サンプルコードをコピペ
4:メインからサンプルコード呼び出し
↓ハイ
console.png
APIキーとvCodeからキャラ名と所属企業の名前を取り出すだけだけど
おお、すげえできたど( ゚Д゚)

ここで冷静になる。
pythonのコードみてるとただhtmlでgetメソッドでアクセスしてるだけ
RUBYでWEBアクセスライブラリー使えば普通にできるんちゃいますの? 真理に気づく
eaalというライブラリー、これつかうと楽々EVEAPIアクセスとかいう宣伝文句にだまされていたのだ!
(本当のところはそんなことはないとおもうけど)
じゃフツーにpythonのサンプルコードをRUBYでやってみよう(つづく)
posted by Misonikomin at 13:12| Comment(0) | TrackBack(0) | EVE日記 | このブログの読者になる | 更新情報をチェックする

2014年11月04日

ネタがない!

今回、grepについて書いてみたいとおもいまふ
よくeve内チャットで重要なことを聞いたときに自分がメモメモぉとか言ってるところ
みた方いるのではないでしょーか
いわゆるこれ、メモしてるアピールなんだろ?どうせメモしてないんだろプギャー
と誤解されがちな発言でもありますw
しかしEVEのチャットはテキストのエキスポートがデフォルトでされるようになっちょります

今日はそこらへんにスポットを当ててみたいかなと
evelog.jpg
↑早速画像これ、エロい名前のファイルはないね、よし、windows8ですけんどもが
大抵ドキュメントフォルダ→EVE→logs っていうところまで行くと
チャットログフォルダに行き着くことが出来るはずデス

4つフォルダあります
chatlogs→チャットログ、まんま
fleetlogs→フリートログ、フリートのアクションがここに(たぶん)
gamelogs→ゲームシステムメッセージ
marketlogsとかその他、これたぶんエクスポートしたやつしか出ないのかな、それぞれのジャンルで
フォルダが出来・・・る、たぶん(やまかんで話をするスタンス

さらにこれ↓
evechatlog.jpg
チャットログフォルダの中、ゲーム内の発言もろもろここに集結
うちのはぱっと見↓これらで構成されとります
ローカル・日本語ch・ヘルプ・コーポ・コーポpublic・そして個人会話

で、ツールの話になっちゃうんですがここは秀丸先生においでいただきましょう
秀丸とはテキストエディタの一種です(有料)
1:まずおもむろに適当なテキストファイルを秀丸で開く
2:altおしっぱなしてS→Gの順にキーボード押す
3:検索するファイルが*.txtになってなければそう修正する
4:検索する文字列には検索したい文字列を入力

これでEVEに生きてきた全てのチャットログから検索したいワードをみつけることができまーす
evechatgrep.jpg
こんなかんじ、タイトルでgrep "メモ"ってあるように
メモという語を全チャットログから検索して列挙された結果が表示されまーす

そして、ここからが秀丸のすごいところ
ただのgrep(っていう検索方法)結果じゃろーと思うことなかれ
検索してひっかかった行はでるけど前後がしりたい、前後を知るにはそのファイルを開きたい。

秀丸のデフォルト設定だとF10キーにはタグジャンプという機能がついてて
コーポ_20141010_221213.txt(132)という行にカーソルしてF10を押すと
コーポ_20141010_221213.txt(132)のファイルを開き132行目に自動的にジャンプしてくれます

使用例としては次のとおり
1:ゲーム内で重要だとおもった話がでたら検索タグとなりうるような検索ワードを自前で発言する
たとえば「メモ」とか「重要」とかまあそんなかんじ
2:grep検索で↑のタグワードで検索をかける
3:タグジャンプして実際の重要話を吟味する
(4):これでまたひとつカプセラとしてのスキルが向上する
パーフェクト

EVEをサンプルとしてアゲたんですがほぼほぼ一般ネタっすなこれ
会社でテキストを扱うかたにもオススメ!

今回は秀丸社員かよっていわれるほど秀丸話だったわけですがステマでもなんでもないです
複数ファイルのgrepが出来るツールであれば同じようなことが出来るかもしれませんので
もし興味があったらひとつお試しあれ
posted by Misonikomin at 12:37| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。