現在のページの位置: くろねこスクエア Labs > 未分類

くろねこスクエア Labs

サイトを閲覧しにくい状況について

1月29日頃より当サイトが閲覧しにくい状況になっています。

原因は、当サイトが使用しているサーバーに対して、外部からDDoS攻撃が行われているためと思われます。ご利用の皆様には大変ご迷惑をお掛けしますが、復旧まで今しばらくお待ちいただきますようお願いいたします。

現在の状況は以下の通りです。

[2016/01/30 13:00] 断続的に通信が不安定な状況がございます。
[2016/01/31 22:10] 20時過ぎから外部からの大規模攻撃のため通信が不安定になっております。
[2016/02/01 14:00] 現在、引き続きネットワーク機器の調整などの対応、及び監視を進めてまいります。
[2016/02/02 15:10] 現在、復旧いたしておりますが、引き続き監視・対応を進めてまいります。

Lightweight Google Maps(API V3対応) 1.40.2

Lightweight Google MapsをAPI V3対応にするという件の修正です。「カテゴリから絞る」際の動作の改良と、新規サイトで導入できなかった点の修正です。

  • (新規サイトで)API-Keyが設定されていない場合に動作しない不具合を修正
  • 固定地図ページで「カテゴリから絞る」機能の挙動を修正

【復旧】 RakuFeedの不具合

楽天の商品などを検索するRakuFeedにおいて、楽天トラベル系APIの戻り値がエラーとなっていました。

従来「api.rakuten.co.jp」で提供されていた楽天トラベル系APIの完全廃止に伴い、新バージョンへの切り替えを行いましたが、その際の対応が不完全であったことによるものです。

修正を行い、現在は復旧しています。

GnaviFeed に絞込みパラメータを追加しました

ぐるなびのレストランを検索するGnaviFeedにおいて、絞込みパラメータを30項目以上追加しました。

今回の変更は、レストラン検索API(ver1)機能改修版(2014/11/27)に対応するものです。

AFeedでアダルト製品の除外処理

Amazon APIを使ったAFeedにおいて、アダルト製品の除外処理を追加しました。

通常の検索クエリーでは検索結果にアダルト製品を含めるかどうかを指定できないため、新たに特別なパラメータ「adultFlag」を追加しました。「adultFlag=1」の場合は表示、「adultFlag=0」の場合は非表示となります。何も指定しない場合は「adultFlag=0」として扱い、非表示となります。

現在、アダルト製品かどうかの判定をIsAdultProductで行っていますが、他の要素も含めるかどうか検討中です。

Lightweight Google MapsをAPI V3対応にする

WordPressのプラグインでLightweight Google Mapsというのがあります。Google Mapを表示するのに便利なのですが、現行のGoogle Maps JavaScript API バージョン3(V3)に対応していません(プラグイン本体が2008年から更新されていないようです)。

V2はサポート終了しており、既存サイトの場合はV2を使っている地図が下位互換機能を持たせたV3の地図に自動的に切り替わります。しかし新規サイトの場合はAPI-Keyが発行されないためにプラグインを利用できないことが判明。もったいないのでV3用に書き換えてみました。なお開発版でバグなどあると思いますので、ご注意ください。

本家バージョンに上書きして動かない場合は、一度プラグインの設定を保存し直すと動くかもしれません。

RakuFeed 新APIへアップデート

RakuFeedで使用するAPIを、2012年6月にリニューアルされた新バージョン(従来の楽天API2)へ移行しました。

楽天トラベル系API バージョンアップと「api.rakuten.co.jp」で提供しているAPIに関するお知らせによると、 「api.rakuten.co.jp」で提供している古いAPIにつきましては、2014年内に廃止を予定しております。 だそうなので、そろそろ移行すべきだと判断しました。

なお楽天から公式でリリースされているPHP SDKを利用しています。

AFeed リリース

キーワードに合ったAmazon.co.jpの情報を、使いやすい形で取得するためのWebサービス「AFeed」をリリースしました。Amazon.co.jpの豊富な情報をキーワードなどで絞り込み、RSS/ATOMなどのデータとして取得することができます。

Amazon Product Advertising API」の仕様に準拠しましたので、容易に利用できると思います。

PEARライブラリ Services_Amazonを公開してくださった開発者様に感謝いたします。

SimplePieでURLのクエリ文字列を読み込む

SimplePie(1.2)がURLのクエリ文字列を受け付けないので、当該箇所を見てsimplepie.incを変更してみます。

1
2
#$this->query = $this->replace_invalid_with_pct_encoding($query, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$\'()*+,;:@/?');
$this->query = $this->replace_invalid_with_pct_encoding($query, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$\'()*+,;:@/?&=');

に変更。これによって新しい問題が出そうですが、それよりもクエリ文字列を読み込めないことの方が問題なのです。

feedcreator.class.phpでマルチバイト対応

今更なのですが、以前feedcreator.class.php(1.7.2-ppt)を置き換えた際にマルチバイト対応が抜けていたことに気づきました。以下のように、substr()をmb_strimwidth()に置き換えれば対処できます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    function iTrunc($string, $length) {
        if (strlen($string)<=$length) {
            return $string;
        }
       
        $pos = strrpos($string,".");
        if ($pos>=$length-4) {
            $string = substr($string,0,$length-4);
            $pos = strrpos($string,".");
        }
        if ($pos>=$length*0.4) {
            return mb_strimwidth($string,0,$pos+1," ...");
            #return substr($string,0,$pos+1)." ...";
        }

        $pos = strrpos($string," ");
        if ($pos>=$length-4) {
            $string = substr($string,0,$length-4);
            $pos = strrpos($string," ");
        }
        if ($pos>=$length*0.4) {
            return mb_strimwidth($string,0,$pos," ...");
            #return substr($string,0,$pos)." ...";
        }

        return mb_strimwidth($string,0,$length-4," ...");
        #return substr($string,0,$length-4)." ...";
    }

カテゴリー

Feed

メタ情報