SQLite3で。
開発環境
- Linux Mint 17.3 MATE 32bit
- SQLite 3.8.2
はてなフォトライフAtomAPI - Hatena Developer Center
成果物
前回
http://ytyaru.hatenablog.com/entry/2017/06/26
http://ytyaru.hatenablog.com/entry/2017/06/30
http://ytyaru.hatenablog.com/entry/2017/07/01
http://ytyaru.hatenablog.com/entry/2017/07/02
データベース
SQLite3で管理する。以下のファイルとして作成する。
- Hatena.PhotoLife.Images.{HatenaId}.sqlite3
- Hatena.PhotoLife.Movies.{HatenaId}.sqlite3
はてなの仕様でアカウント毎に毎月300MBまで。動画は1ファイルだけでも重いので別にする。
テーブル
Contents
create table Contents( Id integer primary key, ItemId text unique not null, Title text, ContentType text, Content blob, Subject text, Url text, SmallUrl text, Issued text );
もしくはID以外のメタデータを削除したのが以下。
create table Contents( Id integer primary key, ItemId text unique not null, FileExtention text not null, Content blob );
FileExtentionは直リンURLについている拡張子をそのまま保存する。git
,png
,jpg
,jpeg
になると思われる。それ以外の形式や大文字小文字がアップロード後にどう変化するのかは未調査。
URLはHatenaId,ItemId,FileExtentionがあればあとはテンプレートで再現できる。
ItemId
<id>tag:hatena.ne.jp,2005:fotolife-naoya-XXXXXXXXXXXXXX</id>
のうちXXXXXXXXXXXXXXがItemId。
URL
http://cdn-ak.f.st-hatena.com/images/fotolife/{HatenaIdの先頭1文字目}/{HatenaId}/{ItemIdの年月日部分}/{ItemId}.{FileExtention}
http://cdn-ak.f.st-hatena.com/images/fotolife/y/ytyaru/20170228/20170228130132.gif http://cdn-ak.f.st-hatena.com/images/fotolife/y/ytyaru/20170228/20170228130132_m.jpg http://cdn-ak.f.st-hatena.com/images/fotolife/y/ytyaru/20170228/20170228130132_120.jpg
はてなシンタックス
f:id:{HatenaId}:{ItemId}{FileExtentionの1文字目}:image
f:id:ytyaru:20170228130132g:image
EditUrl
列にはないがItemIdがあれば作成できる。
http://f.hatena.ne.jp/atom/edit/XXXXXXXXXXXXXX
参照URL
列にはないがHatenaIdとItemIdがあれば作成できる。
http://f.hatena.ne.jp/{HatenaId}/XXXXXXXXXXXXXX
アップロードツール名
アップロード先ディレクトリ名
<dc:subject xmlns:dc="http://purl.org/dc/elements/1.1/">YYYYYY</dc:subjetct>
YYYYYYがアップロード先ディレクトリ名。
Title
<title>
のテキストノード値。はてなブログからアップロードしたらItemIdと同じ値になる。
Url
<hatena:imageurl>http://f.hatena.ne.jp/images/fotolife/n/naoya/XXXXXXXX/XXXXXXXXXXXXXX.jpg</hatena:imageurl>
直リンクできるURL。ふつう欲しいのはこれなので、Urlという名前に割り当てる。
種類 | URL |
---|---|
フォトライフ参照URL | http://f.hatena.ne.jp/{HatenaId}/{ItemId} |
フォトライフ編集URL | http://f.hatena.ne.jp/atom/edit/{ItemId} |
直リンク | http://f.hatena.ne.jp/images/fotolife/n/{HatenaId}/XXXXXXXX/{ItemId}.jpg |
縮小 | http://f.hatena.ne.jp/images/fotolife/n/{HatenaId}/XXXXXXXX/{ItemId}_m.gif |
縮小画像URL
<hatena:imageurlsmall>http://f.hatena.ne.jp/images/fotolife/n/naoya/XXXXXXXX/XXXXXXXXXXXXXX_m.gif</hatena:imageurlsmall>
勝手に作られるようだ。
はてなシンタックス
<hatena:syntax>f:id:naoya:XXXXXXXXXXXXXX:image</hatena:syntax>
はてな内だけで通じる記法。毎回ブログで書くとき、勝手にこれにされてしまう。ほかのブログからは解釈できない。
課題
http://ytyaru.hatenablog.com/entry/2017/06/29
- データを一括ダウンロードするための実装が必要
- ダウンロード後はどうやってDBに保存するか
DBに保存する形式をどうするか。
実用性を考えると以下も課題。
- DB内にある画像データを閲覧できるようにしたい
所感
課題が多い。ファイルサイズの問題もあるし、フォトライフDBは心配。