Angel-CUP テスターとか募集

ども。小夜です。

この度、http://angel-cup.ch2.cc/ というものを作成してみました。
見ていただけると判ると思いますが、MMD杯や他のMMDイベントなどの集計に便利なシステムを目指しています。
基本 PHP+MySQL です。自宅鯖な ubuntuあたりで動くと思います。 PHP + MySQLが使えるレンタル鯖でもいけるかと。
もう少し仕様が確定してソースの整理が出来たところで、オープンソースとして公開の予定。
※公開中…配布パッケージ ver 0.16th
まだ未完成で作業途中でもありますが、これを試しに使ってデバッグや負荷確認等に協力して頂ける人柱を募集します。 おそらく MMD杯の時に、この鯖ひとつだと過負荷で死にそうな悪寒がするので、ミラーをしてくれる有志の募集でもあります。

募集① 人柱型
1) Linux鯖の設定とかできる人。
2) php+MySQLなサイトの構築できる人。
3) 自宅鯖、レンタル鯖などで、ミラー作りたい人。
  (ミラーについては、一般公開する必要はありません。自分とお友達などだけで楽しむ、という使い方でOKです。少しでも負荷分散になればいいので)

募集② Windowsでも
 PHP+MySQL なので、Windowsでも動かせるかも、と思ってます。
 が、あたしは WindowsでPHPとかに疎いので、Windowsでこいつを動かす手順をマニュアル化してくれる猛者も募集します。各自が自分の家のPCで見れるようになると、負荷分散はもっと進むと思うのです。

募集③ 清書 (^^;
 n88Basicプログラマなあたしが、十数年ぶりにプログラム書きました。phpの文法とかググりながら。
なので、現在ソースは非常に汚い上に、効率も悪いと思います。こう書いたほうがいいよ、この書き方は酷過ぎる!など指摘していただける phpの師匠居ませんか?

上記①②③希望の方は、MMD杯運営のtwitterアカウントhttps://twitter.com/#!/mmdcupまでご連絡を。
※追記
杯運営宛でなくて、このブログへのコメントでも、小夜個人宛のtwitter (@sayokoneko)でも構いません。
本選近くなって運営さん忙しいみたいなので。


コメント

Angel-CUP テスターとか募集 — 27件のコメント

  1. はじめまして。
    このシステムに興味もちましたので設置してみました。
    設置は簡単でしたけれど設定に難儀しました。

  2. ありがとうございます。
    どの辺の設定が判りにくかったとか、教えて頂けると今後の参考になります。
    現在予選進行中ですが、進行中でもコソコソとスクリプト書き直してたりしますので、
    一段落したら、またまとめてソース公開する予定です。

  3. そうですね、思い出しながら書き出してみます。

    ・readmeに、動作に必要な環境のバージョンがかかれていませんでした。
    ・readmeのファイル配置にgdgdlogs、thumb、images、setting.phpが抜けている気がします。
    ・ml.css、cronkologsテーブルのsqlが同梱されていませんでした。
    ・bbs.phpはただの掲示板と思いsm○○とカキコすることで動画が登録されることに気づくまで数日かかりました。
    ・eventcode varchar(9)だったのでsetting.phpの$event_codeにmmdcup9pre(10文字)と設定してしまいはまりました。
    ・bbs.phpの225行目あたりに$thumbdir_localがあり最初ここをデフォルトのまま動画を登録してしまいサムネの保存ができませんでした。
    ・php.iniにdate.timezone = “Asia/Tokyo”の設定がないとcronko.phpの実行に失敗するようです。
    ・ルートディレクトリ設置前提のようです。

    気分を害してしまったらごめんなさいです……

    設置した環境
    MySQL 5.5.25a
    PHP 5.3.14
    Apache 2.2.15 php-cgiモード suEXEC

  4. ありがとうございます。
    やっぱりいろいろと抜けてるみたいですねー
    次回配布セット作成時の参考にさせていただきます。
    タイムゾーンの件はこちらでは発生しなかったので勉強になります。

    現在 cronko.php で取得した数値を別のtableに放り込んでて、
    後で伸び率のグラフにしようとか、もう予選はじまってるのに、未だに
    ゴソゴソ改良とか修正やってます。
    一段落したらまた配布セット作りますねー

    n88basicプログラマーが phpの文法をググりながら書いたプログラムなので
    とても見苦しかったと思います。ごめんなさい。

  5. はじめまして
    いつもMMDの作品を楽しませて頂いていますので、ミラーサイトの構築ならお手伝いできるかと思い、「スクリプト公開」の記事から、ダウンロードして設定してみました。
    しかし、cronko.phpをまともに動く様にするのは大変そうです。
    最新のスクリプトを頂ければ、何とかなるかもしれません。

  6. K240様、はじめまして。小夜です。
    6月の版と今の版だとかなり変わっているところもあるので、
    現在の版を待って頂くのが良いかもしれません。
    お急ぎなら、skypeのテキストチャットかメールでご連絡頂ければと思います。

  7. うつろ様、
     ・ミラーサイト、angel-cup.ch.ccの TOPとかで紹介させてもらってよろしいでしょうか?
     ・MMD杯運営が twitterなどでミラーもあります、と紹介させて貰うのはどうでしょうか?
    ご検討くださいませ。
    期間限定とか身内優先とかでしたら無理は言いませんです。

  8. ミラー紹介ありがとうございます。
    どちらもよろしくお願いします。
    私のコミュのほうでもお知らせしますね。
    悠悠閑閑前途遼遠

    (そういえば最初運営さんのツイッターにリプライしたんですけど反応なくてこちらにカキコ)

  9. 初めまして。
    毎回すごく楽しませて頂いてるMMD CUPに微力ながらも力になりたいと思い、
    MMDの公式twitterアカウントの方に
    ミラー鯖作成許可をお願いするリプライ入れてました。(@seri_kで)
    そちらの方、お気づきになりましたらご連絡頂けますと幸いです。

    因みに、サーバはVPSなのであまり強固なサーバではありませんが
    そこそこのアクセスであれば緊急時用のミラーサーバーとして使えるかと思います。

    ※因みにangelcup-0722a.tar.gz落として中見てみましたが、
     index.phpのサイトデザイン等でちょいちょい違う所があるので
     ミラー鯖作成の許可いただけたら、別途最新版頂ける感じでしょうか?

    また、当方仕事でPHP使ったり鯖運用したりしてますので、
    ソースの修正やテストでも多少はお役に立てるかなと思います。

  10. seri様、初めまして。
    最新版、用意しますので少々お待ちくださいませ。
    自由にアレンジとか改変とか改良して頂いて構いません。
    便利な機能とか出来たら公開して頂けるととっても嬉しいです。
    よろしくお願いします♪

  11. ご回答ありがとうございます。
    早速ですが第9回MMD杯用のミラー鯖を用意しました。
    特にチューニングはしてませんが、負荷テストをしてみたところ
    大体20リクエスト/秒ぐらいは大丈夫そうです。

    http://www12024u.sakura.ne.jp/mmdcup9yosen/

    内容は負荷対策でjQueryのプラグイン入れたりと
    少し修正してますが、見た目はほぼオリジナルと同じです。

    こちらに関しては一般公開OKのサーバーですので、
    問題なければ公式サイトにミラー先としてURLを貼って頂いても大丈夫です。

  12. seri様、ミラー構築、ありがとうございます。
    杯運営にも連絡して杯HPからリンクしてもらいました。
    ご協力感謝します。

  13. ご連絡ありがとうございます。リンクの件了解です。

    ソース読んでバッチ(cronco.php)の仕様調べてましたが
    「新規動画の登録が手動」なのは何とかならんかなと思って改造中です。
    update文打つ代わりにinsert ~ on duplicate key updateすれば
    マイリストに新しく追加された動画は追加、登録済み動画は必要な項目だけ更新になるかなと。

    あと
    ・setting.phpで正規表現のパターンで//で囲まれてないのでwarningが出ているのがある
    ・cronco.phpでmysqli_free_resultで渡してる引数が違ってwarningが出ている
    のがあったのでここも直しておきました。

    諸々、魔改造版できたら公開させていただこうかなと思います。
    多少は人手が減って運営がラクになるはず・・

    あと今回ミラーサーバを立てるにあたって
    サムネ画像を一括でDLするためにシェルスクリプト書いたので、
    これももし需要ありそうだったら公開させて頂ければと思います。

  14. seri様、どうもです。
    ソース見ると、どんだけ初心者が無理して書いたかというのが判って頂けるかと (^^;
    POST,GET等で受け取ったのを mysqlに渡す際のサニタライズとか、その辺よくわかってないまま
    書いているので、危険なとことかチェックして頂けると涙を流して喜びます。
    魔改造版、お待ちしてます。

  15. bbs.phpとcronko.phpを継ぎ接ぎして、なんとか自動登録が動くようになりました。
    まだ、削除は手動です。

  16. 魔改造して、RSSフィードとAPIを両方使ってデータをマージしていく
    「ハイブリットモード」を追加したバージョンのcronko.phpができましたので、
    cronkoの部分のみになりますが一式公開します。

    ※このバージョンを使うに当たっては画面の方は特に改修不要です

    内容確認してもらって、良さ気だったら本家様に
    取り込んでもらえればと思います。

    http://www12024u.sakura.ne.jp/AngelCUP_crawler_20120811.zip

    <変更点>
    「公式マイリスモード」「API使用モード」に加え、「ハイブリット動作モードを追加

    <概要>
    ・新規動画データの自動判別、追加
    ・新規動画データのサムネDL
    ・既存動画データの更新
    ・不正動画(ok = 0)の強制ポイント0化

    をまとめて実行します。

    処理順は下記の通りです

    1 公式マイリスから登録動画のIDのみを取得(RSSフィードXMLのitem->linkから正規表現でぶっこ抜く

    2 1で取得した動画IDそれぞれに対し、getthumbinfoAPIを使用して動画情報を取得する

    3 2で取得したデータをマージする。新規動画の場合はinsert, 既存動画の場合はupdateになる
    ※その際、ok列が0になっている不正動画と同じ動画IDであれば、ポイントは強制的に0にして更新する

    4 もし新規動画が含まれていたらサムネ画像をcurlでDLしに行く
     ※curl使ってるのでcurl入れてないlinuxや、phpコンパイル時に with-curlオプションつけてない鯖だと動作しません。
     普通に最初からphp使ってるような環境であれば大丈夫です。

    <使い方>
    DBの設定マスタテーブルの「mlconfig」において
    cronko_modeの行の値を3にセットします。

    ↓この状態
    mysql> select * from mlconfig;
    +————–+——-+
    | name | value |
    +————–+——-+
    | cronko_mode | 3 |
    | cronko_start | |
    | cronko_end | |
    +————–+——-+

  17. 補足ですが、現在のところ魔改造バージョンで新規追加を行う場合
    ユーザー名のniconameはNULLの状態でinsertされます。

    これはuseridをキーにusernameを取ってこれそうな公開APIが無かったからなのですが、
    やっぱり手動で更新するしかないでしょうか?

    もしAPI使ってユーザー名取ってくる方法をご存知でしたら
    ご教示いただきたければ幸いです

  18. 小夜様

    なるほど。ユーザーがニコレポを非公開にしてると取れないんですね。
    ここは手動で頑張るしかないですねぇ。仕方ないです(´・ω・`)。

    すみません、あとお忙しい中申し訳ありませんが、
    本選にあたって、3点確認させてもらってよろしいでしょうか。

    1.本選用のミラーサイトも手伝わせていただこうと思うんですが、
    ミラーサイトで使う集計データは、各ミラーサイトのサーバ上で集計したものを
    使う感じでよろしいですか?

    2.本選スタートした後に、運営側ジャッジで「ダメだこりゃ」ってなった動画リストの
    共有とかもさせて頂けると良いと重うんですが、その辺の情報は今小夜さんの方で作成中の
    新IFで対応さしてもらえる感じでしょうか。

    3.ついでにMMD運営関係者とかが集まってるIRCとかskypeのグループとか、
    運営に関する情報共有ができる場所があればできれば
    混ぜて頂ければ・・と思うんですが、可能でしょうか?

    できれば「本家とーサイトで出ている情報が違う」という状態は
    極力避けられればなぁと・・思いまして。

    将来的には集計サーバは1台マスターとなるサーバを立てて、
    そこのDBを各種ミラーサイトからWAN越しに参照する(或いは定期的にdumpして同期する)形を
    つくる必要があるかとは思いますが、今回は人力なので出来るだけ
    新鮮な情報を得て、参加者の方や観戦する人に不快な思いはさせたくないなぁと。

  19. 連投になってすみません。
    魔改造cronko.phpバージョンアップしました。
    http://www12024u.sakura.ne.jp/AngelCUP_crawler_20120815.zip

    変更点(crm=3モードのみ更新)
    ・タグの仕様を勘違いしてたので修正。ロックされているタグのみ★をつけてDBに格納するようにした
    ・公式マイリストから削除された動画を検出して自動でDBから削除するようにした
    ・APIを使用してニコ動のユーザー名を自動で取得してDBに格納するようにした。
     非公開の場合は「非公開ユーザー」として格納する。
    ・videolistにデータをinsertする際はokのカラムを1の固定値で格納するようにした
    ※key重複時の更新はされません

    余談ですが、thumbinfo APIで取得したXMLから
    タグのロック状況を取得する方法として

    $xml = simplexml_load_file( $thumbinfoURL . $videoId );
    $xml->thumb->tags->tag[$i]->attributes()->lock;
    ※$iはtag配列の添字

    こんな感じで個々のタグのlock要素の値を拾えました。ご参考までに

  20. seri様、ありがとうございます。
    ■連絡チャンネルですが、skypeのテキストチャットでやりたいと思っています。
    skypeアカウントございましたら、sayoko_neko までコンタクトくださいませ。
     他のミラーサイト運営の方もお願いいたします。

    ■タグについては、現状 bbs.php の方では、全部のタグを取得しています。
    (ロックされているものは★を付けて)
    これはニコニコランキングメーカーの出力する形式に合わせてるだけの理由なのですが、
    CSVやXMLで出力したのを使い回す用途もあると思うので、
    ロックされていないものも格納して頂けると助かります。

  21. 小夜様

    タグの件については私の書き方がわかりづらかったですね。。

    小夜様のご指摘通り、タグロックしてあるやつだけ★をつけて
    それ以外のタグについてもDB登録をする仕様になっております。

  22. 澪姉様
     ホントだ。前に試した時はログイン状態でないと出来なかった記憶があるんだけども
     なんかあたいの記憶が混乱してるみたいだ…

  23. 魔改造cronko.phpですが、key重複時に更新するデータの項目が足りなかったので足したり
    あと細かい調整を少し入れました。

    毎回ファイルをzipでうpるのもめんどいのでgistに上げました。
    https://gist.github.com/3383478

    以後こちらで更新します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です