■
はてなブログ1周年おめでとう! id:hatenablog
ニコニコエコー引越ししました。
とは言え、5/18と2週間ほど前のことだったんですけどね。
事の経緯は公開スペースとして利用させてもらってる友人の自宅サーバーを廃止するとの旨の連絡が来たこと。
Xephy「おー了解。で、サイトの閲覧もできなくなるのはいつ?」
友「ん〜、1ヶ月後くらいを予定してるかな。」
Xephy「あー、なら時間はだいぶ余裕あるな。引越し済んだら連絡するし閉鎖も早めてもらってもいいよ」
友「おk。」
確かこんな感じのやり取りで翌日早速作業にとりかかることに。
- とりあえずまずはサーバー上のファイルをローカルに持ってくる。(バージョン管理なんて存在も知らなかった時の制作物なのでリポジトリも無く。)
- そんでMysqlのダンプ。
- サーバー用意して、
- とりあえずMysqlが絡まない部分を部分的に公開。
- 更にドメイン取って、
- ダンプしたデータを引越し先のサーバーに流しこんで、
- mysqlが絡む部分も随時公開準備。
- TwitterBotも再設定。(bot用だからあんま意味ないけど)
- オリジナルランキングも復活させました。(間一年分ぽっかり空いてしまった期間の補填どうしよう。。。)
- アクセスも殆ど無いリンク(ヘッダ上部)のリンクも撤廃。
- faviconも作り直しました。
- cronの設定も終え、最終動作確認。
…多分大丈夫だ!多分問題ない!
後はサーバー廃止されるまでの間、旧サイトの全ページにリダイレクトを仕込んでと。
動画再生ページなら移転先のその動画再生ページヘ。
マイリストページなら移転先のマイリスト閲覧ページヘ。
それ以外ならTOPページへ飛ぶように。
Twitterでの移転通知はgoogle先生が「ニコニコエコー」で検索した時に移転先のサイトに差し替わった時!
…1週間あれば差し替わるかなと思ってたんですけど、3日と案外早くにあっさり差し替わりました。
旧URLのまま掲載してる場所ニコニコまとめwikiとかTwitterのDescriptionとかも全部書き換え。
移転によってphpのバージョンも5.1.xから5.3.xになりました。
これらの作業をだいたい1日半で。これで当分はニコエコも安泰だな。。。
何よりの新鮮味はURLがものすごいすっきりしたこと。
旧サイト:http://ddhost.no-ip.info/deltacolors/
新サイト:http://nicoecho.com/
うわ!わかりやすくて短い!
便乗
噂を聞いて自分も応募してみるか
ニコエコでの合計動画再生回数が10万を超えました。
RSS配信スクリプト書き換えました
色々なミスを乗り越えてオリジナルランキングRSS配信スクリプト改良。
改良って言っても現行サービスに流すわけじゃありません。
サイトの引越し先で使います。
URL公開はサイト完成まで待ってね。
前置き
DBに放り込む値の生成クラス。
動画レベル等の算出メソッドの実引数にAPIの値使ってるんですが一部キャスト忘れで
こんなことになってた。
<?php //$xmlはsimple_xml_file()で取得したXMLオブジェクト// $view = $xml->channel->view; //7桁の数値 $comment $xml->channel->comment; //8桁の数値 print var_dump($view>=$comment); //True ?>
何で7桁の数値と8桁の数値比較して7桁の方が大きいって出るんだよ!って思ったら
$xmlに入ってるXMLオブジェクトをint型にキャストしてなかった。オブジェクト同士比較してたからTrueになっちゃったのかー。
とは言われてもなんか腑に落ちないですけどね。 ==なら納得しますけど。
以下改良点
URL指定を分かりやすく。
もう現行のURL文字列意味わかんね。
-
- cf_mvr→hot
- p_cf_mvr→pickup
- mrd→mlst_rate
- rand→random
他は変化なし。
今旬の動画であるcf_mvr・・・なんかの頭文字1文字ずつとったんだと思う。
もう俺にもわからんです。
処理はええ
キャッシュのおかげ。
現行みたいに似非キャッシュじゃなくてSmartyのキャッシュ使ってる。
RSS全種毎時更新
これもキャッシュのおかげね。ランダム取得も毎時更新。
gdgdと駄弁り
現行スクリプトは全て1ファイルでやってるからDB倒れたらエラー吐かれてアウト。
RSSはリアルタイム更新。無駄にね。
オリジナルランキングは似非キャッシュで多少負荷と表示速度考慮してるけどランダム表示はそう柔軟にはいかないですね。
時間が来たらCronから生成スクリプト動かしてXML生成して、ランキング表示には生成したXMLファイル読み込む。
原始的なやり方です。
あと、feedcreator.class.php使おうかなぁとか思ったけどニコニコのRSS2.0って少しフォーマットが特殊なんですよね。
それで残念ながら現行フォーマットでは再現できず結局自作。
PEAR::MDB2とSmarty使えばRSS配信スクリプトなんか簡単に作れますよ。
.phpと.tpl合わせても100行ちょっと。
配信するRSSの種類が1種類なら80行程度で済むんじゃないかな?
時間があれば簡単にチュートリアル記事でも書いてみようかな。
若干眠い中書いた記事。多分もう色々とひどいです。