無料ブログ「rentafree.net」の管理人ブログ

XMLRPC及びメール投稿の変更

ブログのXMLRPC及びメール投稿について変更を行いました。

これまで、ブログ以外のサービス上ドメイン(Wiki・掲示板)のドメインに対してXMLRPC又はメール投稿でリクエストが来た場合、ブログではないので無意味ですがエラーになりませんでした。
また、強制停止又は最終ログインから200日以上経過による配信一時停止のドメインに対してXMLRPC又はメール投稿でリクエストが来た場合に受理していました。

上記の状況に対して今後はリクエストを受け付けないようになります。
XML-RPCに関しては現時点で変更が適用されています。
メール投稿に関してはシステムの次回再起動後に変更が適用されます。

新規にツールを作成する際のCNAMEの表示

新規ツール作成時のドメイン設定で独自ドメインを選択した場合、
使用するドメインのDNSのCNAMEレコードに設定すべきドメインが表示されるはずでしたが表示されなくなっていました。

修正しました。


ブログ等のツールで独自ドメインを使用する場合は、事前に使用するドメインのDNSでCNAMEレコードにより、
当サービスのアドレスにドメインを向ける必要があります。

<img>のタグ設定からポップアップを設定できるようにしました

前回の記事で実装する方向だとお伝えしていましたが、
ブログエディターの<img>タグの設定に拡張項目としてdata-popup属性を追加しました。

data-popup属性は公式JavaScriptの機能で、属性が存在する場合、画像クリック時に属性値を画像URLとしてポップアップ表示します。
機能を利用するために今まではHTMLコードを直接編集する必要がありましたが、タグ設定メニューから画像URLを指定すれば利用できるようになりました。


公式JavaScriptの独自属性なので知らない方には何の属性なのかわからないですが、
タグ設定メニューでは属性名の箇所にカーソルを合わせると簡単な説明がチップ表示されます。

[後ろに改行]機能を追加しました

久しぶりの機能変更になりますが、
ブログエディターに[後ろに改行]機能を追加しました。

ブログエディターでタグ適用範囲を右クリックした際のタグ編集メニューに[後ろに改行]が追加されています。
この機能を使うと、編集対象のタグの後ろに<br>が挿入されます。
基本的に対象範囲の後ろに空行が挿入されますが、ブロック内末尾のインラインタグで行った場合は2回挿入しないと見た目が変わらない場合もあります。

タグが複数連続して並んでいる場合や、ブロック内末尾にタグが存在する場合など、
タグの後ろ(タグの間)にキャレットを移動させることができませんのでそのまま編集することができませんので、末尾やタグ間に空行を挿入して編集しやすくするための機能です。
<div>が並んでいて間に文章を挿入したい場合などに便利だと思います。

定義済みのタグの殆どで有効にしましたが、<li>の場合は親要素<ul>か<ol>に適用したいですが、
<li>の編集で[後ろに改行]だとわかりにくいと思うので、<li>のみ除外しました。


あと、公式JavaScriptの機能で画像ポップアップ機能がありますが、
現在はHTMLコードの直接編集を行わないと機能が利用できませんが、マウス操作のみで機能が利用できるようにしたいと考えています。
実装する方向で考えています。

アクセス解析ツールを廃止にします

当初より「試運転中」として正式サービス扱いにしておりませんでしたが、アクセス解析ツールを廃止にします。
当面の間は内部的には機能を残しておきますが、新規のツール作成ページヘのリンクを消しました。

アクセス解析ツールとは、当サービスのブログ等の機能として用意しているアクセス解析とは別の、外部サイト用のアクセス解析ツールです。
ブログ等の機能に変更はありません。

robots.txtへのリクエストに対してキャッシュを使うようにしました

robots.txtへのリクエストでエラーが発生し503が大量発生していることが判明したので、robots.txtの配信効率を上げるために、
robots.txtへのリクエストに対する応答時にLast-Modifiedを接続時刻で返し、100日以内の再接続時は304 Not Modifiedを返すように変更しました。

ただ、503が発生する前に1回だけ500が発生しているようで、その原因がApacheのモジュールレベルにある様で、
若干ログの出方が違うのですが、こちらの2014-12-30の記事に書いた件と症状が似て、
mod_aliasのバグが原因でmod_fcgidでエラーが発生しているような気がするので、mod_aliasの代わりにmod_rewriteを使うようにサーバー設定を変えてみました。

この記事を書いている間にエラーが発生していたのと同様と思われるリクエストが発生していたのですが、
正常に捌けているようなので、解決したと思います。

今後も問題が継続しているようなら、自動で監視と再起動をするようにして対応しようかと思います。


上記のmod_aliasバグは、ディストリビューター配信バージョンのApacheを使用しているのですが、
Apacheの公式ではこの件の修正がされているような記述を見たので、公式の最新バージョンでは存在しないのではないかと思います。
メモリエラーが発生した後にFastCGIのスロットがゾンビ化してmod_fcgidがエラーを吐く症状なのですが、
バグはmod_fcgidではなくmod_aliasに存在して、mod_aliasとmod_fcgidを併用すると問題が生じる気配。

XML-RPCメソッドを追加しました

ブログのXML-RPC機能のサポートメソッドに、
metaWeblog.getRecentPosts(新着数件の文章を含めた記事情報を取得)
mt.getRecentPostTitles(新着数件の文章を含まない記事情報を取得)
と記事一覧を取得するメソッドは用意してあったのですが、
特定の記事を取得するためのメソッドが実装されていないことに気づいたので、
新たに、
metaWeblog.getPost
に対応させました。

アプリ等を作る際に、記事一覧から取得した記事IDで特定記事を取得するという処理が考えられますが、
metaWeblog.getRecentPostsですと文章を含めた情報が返ってくるので転送量が多くなってしまうので、
mt.getRecentPostTitlesで記事IDを取得して metaWeblog.getPostで記事情報を取得するのが良いと思います。

また、metaWeblog.getRecentPostsとmt.getRecentPostTitlesが今までは最大100件になっていたのですが、
metaWeblog.getRecentPostsの方は100件だと大きいので10件に減らしました。

QRコードプラグインの仕様を変更しました。

今まではQRコードプラグインではモバイルページのURLをQRコード化して表示していましたが、
スマホの普及によりガラケーでWEBを閲覧するという行為が行われなくなっているので、QRコードはモバイルページのURLではなくPCページのURLを記載すべきと判断したためQRコードプラグインの仕様を変更しました。

今まではプラグイン作成時にURLをQRコード化した画像ファイルを作成して表示していましたが、
QRコード化する文字列を変更する機能を用意し、サーバー側が画像を作成せずにブラウザが生成して<canvas>で描画する仕様に変更しました。

変更内容
 変更前変更後
対応ブラウザ
画像が表示できるブラウザ<canvas>対応ブラウザ(IE8不可)
QRコードの内容モバイルページのURL未設定の場合はブログトップページURLとなりますが、
URL以外も含めて自由な文字列をQRコード化できます。(最大2953byteまで)

QRコードの作成は新しく公式JavaScriptに追加した機能によって行われるため、公式JavaScriptをロードしないテンプレートでは利用できなくなりました。
以前の仕様でQRコードプラグインを使用したことがある場合は、ユーザーのファイル保存領域にQRコード画像が作成されていますが、削除して問題ありません。


また、 http://ユーザードメイン/m/ がガラケー用URLとして用意されており、公式に用意されているCompact HTMLテンプレートで表示されていますが、
Compact HTMLテンプレートを廃止してガラケー用URL接続時もPCと同一のテンプレートを使用するように変更しようか検討しています。
ガラケーでWEBを閲覧するという行為が行われなくなっていると思いますので通常はガラケー用URLが不要であると思いますし、
標準のPC用テンプレートは条件分岐によりガラケー用URL時はCompact HTMLを出力するような高度なテンプレートを作成することが可能ですが、現在の仕様だとユーザーに編集権限がないため全くカスタマイズできないからです。