1日1ニコ関連

2019年7月17日 (水) 11:56時点におけるIppei Suzuki (トーク | 投稿記録)による版

機能一覧

  1. WordPressを利用したブログ
  2. 投稿フォーム
  3. タグ検索RSSの拡張
  4. ニコニコ静画用RSS
  5. Jetpack by Wordpress.comを利用してTwitter/Facebookページと連携

投稿フォーム仕様

  1. 必要事項を入力してVue経由でAPIにPOST送信
  2. 見出しを付ける(ジャンルがh2、動画シリーズ名などがh3)
  3. 1番目の動画のサムネイルを取得、画像データを読み取り
  4. サムネイルをメディアファイルとしてアップロード、IDを取得
  5. 投稿データをREST APIに送信
  6. 送信が正常に完了したら、WordPressの投稿一覧ページを開く


旧サイトデータのコンバート

手順

  1. MovableTypeからエクスポート
  2. エクスポートしたデータをローカルで変換
  3. WordPressのテストデータを削除
  4. WordPressにインポート

1件でテストしたあと全体を実行

変更点

  1. 見出し h3 を h2 に変更 → テキストエディタだけで完了
  2. 見出し h4 を h3 に変更
  3. 独自の動画サムネイルを公式動画プレイヤーに切り替え
  4. カテゴリーを変更 → テキストエディタだけで完了
    1. 一般 → 動画紹介
    2. 東方 → 動画紹介(東方)
    3. この動画がすごい! → この動画がすごい!
    4. MMD杯 → 動画紹介(MMD杯)
    5. 東方ニコ童祭 → 動画紹介(東方)
    6. 考察 → その他
    7. about → その他
    8. Vocaloid → 動画紹介(Vocaloid)
  5. 旧タグは全て削除 → テキストエディタだけで完了
  6. 本文を解析して新しくタグを付ける → データの順番が逆なので不可能。諦める。
  7. 目次は削除

問題点

  • キーワードをタグとして読み込んでしまう
  • scriptタグが読み込まれない
  • インポート時に504エラーになる問題は大丈夫、バックグラウンドでは動いてる

ページの切り替え

  1. vhosts設定を追加
  2. WordPressのドメインを変更
  3. Route53で「1ni.co」をCNAMEレコードに切り替え

サブドメイン無しのレコードにCNAMEは設定できない。 代わりにAレコードでエイリアスを選び、エイリアス先にCloudFrontを選んでやればOK。


RSS関連

独自のRSS拡張。

  • タグ検索
  • ニコニコ静画

元のドメイン直下には設置できない(設定が面倒くさい)ので、以下のような感じにして設置する。

旧URLからはリダイレクトさせる方向で WordPressのタグのフィード配信がおなじURLで行われているのでリダイレクトは諦め。どうせ使ってるの僕だけだろうし良いでしょ。

旧サイトの各種機能と新サイトでの対応について

最近注目されている動画

  1. 毎時ランキング1位から100位を毎時取得して「nico_hourly_ranking」に格納
  2. 「nico_hourly_ranking」の直近72時間のデータを再生数順に50件取得
  3. そのうち10件を表示

新サイトでの対応

  • 毎時ランキングをそのまま表示するように変更
  • 「nico_hourly_ranking」の維持が重すぎる。2019/07/07時点でレコード数が1,200万件を超えている。
  • 表示させてみて面白くないようであれば、アニメチャンネルの動画をスキップするとか何か考える


デイリーランキング

  1. カテゴリーランキングを取得
  2. サムネイルの抽出など加工を行う
  3. 削除済みを除く
  4. 10件を表示

新サイトでの対応

  • カテゴリーごとに注目されている動画は欲しい
  • リニューアルでRSSのURLが変わっている or RSSが無くなっていると思われるので調整する

以下のAPIでデータが取得出来るので、それを加工して表示する

リスト表示するページをLaravel+Vueで構成して、iframeで表示すれば解決する。

各記事上部のサムネイル

  • 動画投稿時に生成

新サイトでの対応

  • 記事から自動生成するようにしたい
  • 最初の動画のサムネイルを指定したい
    • ニコニコ動画APIからサムネイルを取得してメディアライブラリに登録
    • メディアライブラリに登録した画像をアイキャッチとして登録

これらをプログラムで処理出来るだろうか?

各記事上部の目次

  • 動画投稿時に生成

新サイトでの対応

  • 記事から自動生成するようにしたい → WordPressの(というかテンプレートの)機能で出来る


動画がいつ紹介されたかを表示する機能

もともとは1ニコ独自の動画単独ページだったが、現在は使用していない。 ただそこにある「この動画が1ニコで紹介されたのはいつか」という情報が非常に有用なので、それだけは移行したい。

仕組みは以下の通り。

  1. 動画IDでMovableTypeのDBを検索
  2. エントリが見つかったらそのエントリを表示

かつては専用のテーブルを用意していたが、これも維持が重すぎるし更新が難しいので止めた。現在の仕組みでも十分快適に表示出来るし、DB構造に合わせれば移行も出来そう。

新サイトでの対応

  • WordPress用DBに合わせて処理を変更する


記事内での動画表示

動画投稿時に「動画情報とサムネイル埋め込みコード」から動画IDを抽出 専用サムネイルのHTMLタグに変換して記事投稿

<iframe width="600" scrolling="no" height="170" frameborder="0" class="nicoSummary" src="/summary/sm16219482">sm16219482</iframe>

新サイトでの対応

  • 専用のサムネイルページを用意するのは手間だけど、同様の手順で良いと思う。
  • 公式のコードに従ってプレイヤーを設定する


Amazonの商品表示

nplllで使用しているコードをそのまま1ニコでも使用

新サイトでの対応

  • むしろnplllのものをそのまま使えば良いのではないだろうか。今のものも差し替えられる。
  • カスタムデータを作ってどうこうとすると面倒くさいので、止めて、本文中にそのまま貼り付ける方向で。


投稿フォーム

新サイトでの対応

  • 極力投稿時に行うことをなくしていく方向で。もし完全に無くせるのなら、投稿フォームそのものが不要になる。
  • サムネイルを表示しないといけないので、なくすことはできない。


Twitterへの投稿

Movable Typeのプラグインで対応していた。

新サイトでの対応

  • WordPressのプラグインで対応する


1nicoのツイートを自動的にRTする

バッチ処理でツイートを監視し、自動的にRTする

新サイトでの対応

  • 対応しない