皿ノート

ひとりごと

PHPでRSSを使い最新ブログを一覧表示するストレスフリーなWEBアプリを作りたい

作ろうとしたきっかけ

もっとストレスフリーにハロメンのブログ読みたい!!!

 


ハロプロ・オールスターズ『憧れのStress-free』(Hello! Project All Stars [The longing “Stress-free”])(MV)

 

その一心で調べています。完成を前に心が折れそうなので、途中経過を記します。

たくさんのブログを開くのが不便

現役ハロメンのブログはたくさんありますよね。

モーニング娘。’19とアンジュルムだけでも、それぞれ4つずつ存在します。

上記2グループだけでも多いのに、同事務所グループ全てのブログを読むとなると、15個(2019年1月8日時点)ものブログを追いかけることになります。

毎日のように15個のブログを開閉するのは不便です。しなくていいのならできればしたくない作業です。

公式ツイッターをグループの数だけ見るのがめんどうくさい

各グループの公式ツイッターが更新情報をツイートしてくれますね。

目に入ると更新されたことが一目でわかり便利でありがたい一方、常にリアルタイムで見ているわけでもなければ、自分のタイムラインだと他のフォロワーのツイートで埋もれてしまいがちです。

かといって、あえて公式ツイッターのタイムラインを覗きに行くのは手間に感じます。

 

アメブロの公式アプリは件数が少ない

アメブロの公式スマホアプリにはチェックリストという機能があります。

これは、読者登録したブログの更新情報を表示してくれるというものです。

ただし、アプリに表示されるのはブログ毎の最新記事一件のみです。この仕様では、ハロプロのように複数メンバーで1つのブログを一緒に使う運用方法を取っている場合に、目当てのメンバーの最新記事にたどり着くのに数タップ必要です。

ハロプロの公式HPはブログまたぎで最新15件まで

ハロー!プロジェクト オフィシャルサイトには、ブログ記事の新着一覧があります。

新着記事が15件表示されるように設定されており、一番理想に近い形ではありますが、あいにく現役ハロメンの人数は60名をこえておりますので、一斉に更新が起きると15件程度ではまあ機能しません。更新されたばかりの記事も、24時間経たないうちに新着から消えてしまいます。

作ったもの

f:id:omanjusara:20190108235519p:plain

アメブロで提供されているRSSを使い、RSSの情報をPHPで読み込んで、15個分のブログをまたいで更新時間順に並べてくれるページを作りました。

記事の投稿時間、記事タイトルから取得した名前、記事タイトルの順に並べています。記事タイトルには該当記事へ飛べるようにリンクを貼っています。

RSS情報のある記事を全て表示しようとすると、とてつもない重さになったので、最初のアクセス時は24時間以内の更新記事のみ表示することに。

※なお、画像上では大きさの兼ね合いで下を切り落としています。

 

www.omanjusara.com

 

表示件数の切り替え

f:id:omanjusara:20190109001426p:plain

数日間ブログを読めなかったときのことを考慮して、表示件数の切り替えができるようにしています。

工夫したこと

記事タイトルからの名前取得

f:id:omanjusara:20190109002347p:plain

 

メンバー別の記事ソートを実装しようと思ったものの、アメブロが配信するRSSにはテーマ(いわゆるカテゴリーのこと。ハロメンのブログはメンバー毎にテーマが設けられている)情報がありません。

そこで、多くのハロメンのブログタイトル末尾にメンバー名が入っているのを利用して、カテゴリーを自作しました。更新日時と記事タイトルに挟まれた名前がそれにあたります。

例外として、あやちょ(アンジュルムの和田彩花ちゃん)は記事タイトルに名前が入っていないので、アドレスに文字列『angerme-ayakawada』が含まれる場合のみ、「彩花」とカテゴライズするように条件付けしています。

他にも名前の位置が末尾ではない子は個別に設定しています。

できていないこと

以下、要検証な部分。

小林さんの名前を取得できない

絵文字が悪さをしているのか、小林さん(ビヨーンズの小林萌花さん)だけ取得文字がクローバーになってしまいます。他の例外メンには適用される条件が反応してくれなくてやっかい。

追記

桃々姫ちゃんもハートマークが出現することを確認。

メンバー別ソート

カテゴリー情報の自作が不十分なため、メンバー別ソートを実行すると、ソートボタン以下が真っ白になります。

理想の仮説

f:id:omanjusara:20190109004633p:plain

メンバー別ソートを実装するには、まず「聖」という1つの箱を用意して、その中に、ふくちゃん(譜久村聖ちゃん)が書いたA記事、B記事、C記事の情報を入れます。

ソートボタンでふくちゃんが呼び出されたときだけ、「聖」BOX内の中身を表示したらいいと考えました。

現状

f:id:omanjusara:20190109005418p:plain

ところが、現時点で書いているソースコードでは、「聖1」という箱にA記事の情報、「聖2」にB記事の情報、「聖3」にC記事の情報が入ってしまっている状態です。

これでは聖という共通の言葉が使われているものの、全く別のカテゴリーとみなされ、上手くいかないのだと思います。

追記

仮説の実現が今の自分では実現できそうになく他の方法を思いついたのでそちらに変更しました。

配列の組みなおしにばかりとらわれていて、ここでかなりの時間を食った……。