自由に生きるために奔走する毎日

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Webアプリ「PSO2ショップ検索補助App」

PSO2のマイショップ。
PSUでイルミナス以降に実装されたアイテム名の部分一致検索がありません。

それを補うため「PSO2マイショップ検索補助β」というのが早い段階から有志により提供されています。ただ、アイテム名データの更新が昨年8月末で止まっています。

更新再開予定はあるとのことですが、まだ先のようなので代用品を作成してみました。

PSO2ショップ検索補助Webアプリ
http://matome.naver.jp/odai/2136122831389477501

12/9/12のアップデートで"正規化"と"アイテム名コピー"が実装され、レアアイテム(★10以上)は取引禁止となった今となってはあまり需要がないのかもしれませんが
 「持ってないし名前をぼんやりとしか覚えていないアイテムを検索したい」
といったレアなケースで使用していただければ幸いです。

ビジフォン戦士全盛期が懐かしい。今や昔。
しかしこれだけ制限かけるなら、なんのために用意されてるんでしょうね取引機能。
マイショップとトレードの価値下がったらプレミアム買わずに倉庫だけ買うわい。


さて、機能は「アイテム名の部分一致検索+コピペ」のみです。
使い方や検索ルールについては、前述のまとめに記載してあるのでご参照ください。

以下、開発時のあれやこれやについて。

今回の主題は「アイテム名データ自動生成
小規模データの検索処理自体は何一つ難しいことがない。文字列操作がそれなりに充実してる環境なら30分でできる。問題は日々増えていくアイテムをどう補完していくかだ。

個人レベルでの手動入力は無理がある。とても追いつかない。集合知を頼るに限る。
できれば自動化したい。手動更新は週1でも面倒くさい...といった諸々を勘案して「wikiから定期的に取得してくる」という方針で行くことにした。

htmlを自前でパースするのはシンドイし変更に弱いので今回はYahoo! Pipesを導入。はてブからのJリーグ記事取得では見送ったが、こういう用途には一番向いているだろう。

実際のpipeはこういう感じ

http://pipes.yahoo.com/pipes/pipe.info?_id=881646f58890ec7d67a56697c591e418

(GoogleかFBのアカウントがあれば"ViewSource"から構成を見られはず)

「XPath Fetch Page」でhtmlから必要な部分だけ切り出して1アイテム1エントリに変換している。tableからリンクを含むアイテム名(aタグ)とレアリティを取得して、RSS用にタグをRenameして終わり。簡単。こういう感じでpipeを全部で31個作った。












武器13カテゴリ単位
防具4カテゴリ単位
コスチューム1
パーツ2男女
装飾品4ヘアスタイル、ヘッドパーツ、アクセサリ、ボイス
回復・消耗品1
チケット1
マグデバイス1
ルームグッズ1
ディスク3tableごと


RSSフィードできるようになったら、それを受け取ってcsv出力するツールの作成。
今回はここが一番手間取った。嵌った点を列挙すると...

・受け取ったフィードの中身が腐ってる

 pipeからのRSS生成は正しくできているのにフィードが空だったりエラーになったり。
 最初Google Ajax Feed APIを使用していたのだがこれが間違い。
 詳細はこっちに書いた通りで、jFeed(jquery.jfeed.js)に乗せ換えて解決した。
 これだけで2日かかった...


・ブラウザからのcsv出力がうまくいかない

 ブラウザからローカルファイルを書き出すのがこんなに面倒だとは思わなかった。
 (簡単にできたらセキュリティ的にまずいよね)
 Google先生に聞いていろいろ試したのだがFirefoxではどれもダメで
 結局「Google Chromeをインストール+File System API」で解決。1日消費。


・出力ファイルの名前問題

 なんとか出力はできるようになったが出力パスとファイル名は一切変更できない。
 AppDataフォルダに00000000から始まる連番のファイルが出力されるのみ。
 この命名ルールが最初は良くわからず、実行するたびにファイル名が変わって困った。
 どんどんファイルが増えていってどうしたものかと。
 使われはしないが、Open時のファイル名をきちんと付けてやれば
 二回目以降同じファイル名で出力されるようになるようだ。ここで1日消費。

なんやかんやで受け取りツールだけで5日かかっている。
本来はサーバーへのアップロードまでやりたかったが時間切れ。

最後は「csv形式のアイテム名データを読み込んで検索インターフェースを提供」するWebアプリ。半日くらい。マクドナルド計算機をベースにしたのもあってすぐできた。
テキストのコピペ処理が一番時間がかかっただろうか。クリップボードに直接コピーしたくてGoogle先生に聞いてみたのだけれども、見つけた手法はどれも今どきのブラウザでは塞がれていた。結局ブラウザ判別してIEだけ対応。他はtextareaにコピーしてそこからクリップボードへは手動でコピーしてもらうことにした。

トータルで6日くらい。結構かかった。

なお、Webアプリの公開にはGoogle Driveを使っている。
しかしGoogle Driveは古いファイルが上書きされずに残るのが不便だ。ここはDropbox仕様(上書きして履歴を生成する)にして欲しいな...自動化することを考えると削除もしなきゃいけないのは面倒。
あと、htmlやjsはたまに古い方を消した後しばらく404になるのも困る。
またキャッシュ?キャッシュの問題なの?

にほんブログ村 IT技術ブログへ

続・Yahoo!Pipes + Google AJAX Feed APIの謎挙動

一昨日の続き。

resultがtrueなのにentryが空になる症状はその後発生していないが、相変わらず挙動は不安定だ。
今日作った新しいpipe8個のうち7個が作成後10分たってもRSSフィードに反映されない。これはまあいつものこととしても、半日経過しても5個までしか反映されず、残り3個はいつまでたってもエラーを返してくる。これは困る。

他にも困ってる人が居ないものか探してみたところ見つけたのがこれ。

Google Ajax Feed APIでRSSを取得するとキャッシュが利用される件の解決法

Google AJAX FeedAPIってキャッシュを返すのか...それならば今までの症状も合点がいく。更新されなければいつまでもおかしな結果を返し続けるわけだ。

合点はいったが、しかし「解決法」の方は上手く行かなかった。記事が二年前のものなので今は実装が変わっているのかもしれない。まあ解決したとしても、今想定している使い方だと毎回キャッシュを作ることになるのであんまりありがたくない。仕方ないのでRSSフィードの取得方法を変更することに。

選択肢はいくつかあったが、結局jQueryのjFeedプラグイン(jquery.jfeed.js)に決めた。
もともとjQueryベースで作っていることだし、ここを見る限り組み込みも簡単そうだったので。

jQuery ( jFeed プラグイン)を使って RSS リーダー


実際、乗せ換えはトラブル一つなく完了し、今は全く問題なく動いている。
最初からjFeedにしておけばよかったね。あとYahoo!Pipesは無罪でした。

これであらかた問題は片付いたので、あとはpipeを量産すれば終わりかな。
明日にはとりあえず版を公開できそう。

にほんブログ村 IT技術ブログへ

Yahoo!Pipes + Google AJAX Feed APIの謎挙動

現在作成中のWebアプリで次のような処理を書いたのだが、どうにも挙動が不安定だ

1.Yahoo!PipesのXPath Fetch Pageで指定URLを部分的に取得するpipeを作成
2.Google AJAX Feed APIから(Yahoo!Pipesの_render=rssオプションで)feedを取得


処理はたったこれだけ。
にもかかわらず、resultが空で返ってくることがある。
エラーではなく、rssのtitleやlinkは有効な値が入っているのに、entryが0件になっている。

しかもURL違いで複数作ったpipeのうち、2件だけが空になるという不思議な症状。

昨晩、これがどうにもこうにも解消せず、こねくり回しているうちに治った。
feedのsetNumEntriesを-1(全取得指定)から適当な数に変えたタイミングだったが、これが原因とも思えない。

他所の似たような処理をしているサイトでもその時間帯は同じ症状が起きていたので
叩き方の問題というよりYahoo!Pipesの不具合だろうか...

でも、ブラウザから_rener=rssを付けて直接rssを参照した場合や、Thunderbirdで購読した場合の結果は正常になんだよね、これが。

なんとも謎である。

Yahoo!Pipesはcloneして変更を入れても元の結果がしばらく残ったり、微妙に嫌な挙動をすることがある。
便利なのに後一歩おしい感じだ。

続く

にほんブログ村 IT技術ブログへ

Google DriveでWebアプリやゲームの公開が可能に

FC2ブログのファイルアップロードの不具合を回避するため、Dropboxを導入してsite44経由で公開することにしたのが前回のお話

Dropboxは更新がお手軽ですぐ反映されるので非常に重宝している。しかしsite44の無料コースが100MB/月制限なのが気にかかっていた。
実際問題、Webアプリを一つ公開して17日間で1.6MBなので今のところは全く問題ないのだが、将来的にゲームを置こうと考えるとちょっと危ない気がする。

そんな中、今日見かけた記事がこれ

Google Driveで静的なWebページの公開が可能に

はてぶのコメントを見ると、「Share link」導入以前のDropboxのようにストレージ上に置いたファイルをフォルダ単位で公開できるようになったそうだ。これは非常に使い勝手が良さそう。

ということで早速導入してみた

1.ゲーム「C力検査」
 ※操作方法など
2.Webアプリ「Hatena::Bookmark - J.League」
 ※使い方など
3.Webアプリ「マクドナルド計算機」

Dropboxと基本的には同じなので特に戸惑うことはなくスムーズに導入できた。

2013/02/11追記
https/http混在を許可しない設定・ブラウザ(GoogleGhrome)で正常動作していななかったのを修正しました。
(1,3のみ。2は手間が掛かりそうなので放置で...)
----追記終わり

1点問題なのは「別フォルダのファイルを参照する方法」がよくわからないこと。
jquery.csv.jsをライブラリフォルダに置いて各コンテンツから参照、といった構成がうまくいかない。
フォルダ間の相対参照がNG。htmlとjsを同じフォルダに置けば問題ないのだが...

ここがクリアできればGoogleDriveは相当便利だ。
レンタルサーバを借りる必要は完全になくなる。

にほんブログ村 IT技術ブログへ

NTT東日本のWeb明細その後

NTT東日本のお粗末なWeb明細事情」の後日談。

1週間ほどでWebビリングのIDとパスワードを書いたはがきが届いた。
まずはIDとパスワードの変更から。
郵送されてきたものは(セキュリティ的な意味で)どうにも不安だ。

ID、パスワードとも、セキュリティを意識して入力内容や文字数に制限がかかっている。辞書チェックまでしてくれたらさらに良かったが、他に比べたらまともなセキュリティポリシーだ。
ただ、それならばなおのこと郵送はやめてほしかった...そこが一番の脆弱性だし。

料金明細は「過去3ヶ月まで保存」となっていて、PDFかcsv形式でファイル保存できる。保存の流れは

1.「ファイル保存」を選択
2.注意事項ページへ飛ばされる
3.注意事項の下にある「ダウンロード」を選択

というガッチリした構成。
トラブルや問い合わせが多そうなところなので仕方がないところか。
ただ、ダウンロードした後、明細リストに戻れない(戻ると有効期限切れエラーになる)のは少し不親切な作りだ。

まあ普通のWeb明細サイトです。
なぜ@ビリングと別システムで両運営してるのか、謎は深まるばかり。
前回、Webビリングに電話連絡した際、聞いてみたが「管轄外なので@ビリングのことは知らない」と言われてしまったし。
ランキング
ブログランキング・にほんブログ村へ
PR広告
FC2動画
プロフィール

ykhmfst

Author:ykhmfst
プログラムとその周辺技術、Web技術、ゲーム、4コマ漫画、サッカーと横浜FC、そして自由のために奔走する日々を徒然と


最新記事
過去の書庫
メールフォーム

名前:
メール:
件名:
本文:

おすすめ
J2白書〈2013〉
J2白書〈2013〉
J’s GOAL J2ライター班
東邦出版 2014-01-23
カテゴリ
カレンダー
08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
検索フォーム
RSSリンクの表示
リンク
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。