#----------------------------------------------------------
# 携帯用 Twitter 取得スクリプト
#
# 作成者
# 2010/12/04 東條 [新規作成]
#
# Copyright(c) 2010- Krelia-works All Rights Reserved.
#
#----------------------------------------------------------
#----------------------------------------------------------
# ライブラリ読み込み
#----------------------------------------------------------
require_once("./lib/initialize.php"); # 初期化 & 設定
require_once("./lib/func_datelib.php"); # 日付ライブラリ
require_once("./lib/class_database.php"); # データベースクラス
#----------------------------------------------------------
# 弄るならここだけ
#
# $type_inquiry 検索方法
# ・user ならユーザーを検索、hash ならハッシュタグで検索
# $keyword 上記検索方法で検索する文字列
# $title ページタイトル
#
#----------------------------------------------------------
# $type_inquiry = 'hash';
# $keyword = 'jpool';
# $title = '#jpool';
$type_inquiry = 'user';
$keyword = 'rackbyrack';
$title = '速報';
#----------------------------------------------------------
# アプリケーション初期化
#----------------------------------------------------------
initialize();
#----------------------------------------------------------
# USER_AGENT を見て、表示用文字エンコードを決定する
#----------------------------------------------------------
$agent = $_SERVER['HTTP_USER_AGENT'];
# DoCoMo
if (preg_match("/DoCoMo/i", $agent)) {
$char_set = 'SJIS';
# Softbank
} elseif(preg_match("/(J-PHONE|Vodafone|SoftBank|iPhone|iPod)/i", $agent)) {
if (preg_match("/(iPhone|iPod)/i", $agent)) {
$char_set = 'UTF-8';
} else {
$char_set = 'SJIS';
}
# au
} else if(ereg("^UP.Browser|^KDDI", $agent)) {
$char_set = 'SJIS';
} else {
$char_set = 'UTF-8';
}
#----------------------------------------------------------
# テンプレート読み込み
#----------------------------------------------------------
$tmpls = file("./mobile.tmpl");
$tmpl = join('', $tmpls);
$tmpl = mb_convert_encoding($tmpl, $char_set, 'SJIS');
#----------------------------------------------------------
# 表示件数を取得
#----------------------------------------------------------
$ct = $_SERVER["QUERY_STRING"];
if (!preg_match("/^[0-9]*$/", $ct)) {
$ct = 20;
} else {
$ct = $_SERVER["QUERY_STRING"];
if ($ct > 50) {
$ct = 50;
} elseif ($ct == '') {
$ct = 20;
}
}
#----------------------------------------------------------
# 検索
#----------------------------------------------------------
switch ($type_inquiry) {
case "user":
$url = 'http://search.twitter.com/search.atom?q=from%3A';
break;
case "hash":
$url = 'http://search.twitter.com/search.atom?q=%23';
break;
}
$url .= $keyword . '&rpp=' . $ct;
#----------------------------------------------------------
# メイン処理
#----------------------------------------------------------
# DB に接続
$db = new mydb;
$db->config(DB_HOST, 'sd_dba_OTkwMTE3', '4Bg7zA5l', 'sddb0040054174', CONNECT_WITH_MYSQL);
$db->connect();
$db->set_db_encoding("utf8"); # DB の文字コードを UTF8 に
# 前回のアクセス日時を拾ってくる
$sql = sprintf("select max(lastupdate) from tbl_log where account = '%s';", $keyword);
$db->execute($sql);
# レコードがない、或いは前回アクセス時から 60 秒以上経過していれば、再取得を行う
if ($db->recordcount != 0) {
if (time() - $db->field(0) > 60) {
read_from_server($ct, $url, $keyword);
}
} else {
read_from_server($ct, $url, $keyword);
}
$sql = sprintf("select date_tweet, tweet from tbl_log where account = '%s' order by date_tweet desc limit %s", $keyword, $ct);
$db->execute($sql);
if ($db->error_description() != '') {
echo $db->error_description();
echo $db->query;
exit;
}
if ($db->recordcount != 0) {
for ($i = 0; $i < $db->recordcount; $i++) {
$japan_time = calcu_date($db->field(0, $i), BY_HOUR, 9);
switch ($japan_time['D']) {
case "Sun":
$dayname = "日";
break;
case "Mon":
$dayname = "月";
break;
case "Tue":
$dayname = "火";
break;
case "Wed":
$dayname = "水";
break;
case "Thu":
$dayname = "木";
break;
case "Fri":
$dayname = "金";
break;
case "Sat":
$dayname = "土";
break;
}
$created_at = sprintf ("%04d年%02d月%02d日 %02d:%02d:%02d(%s)", $japan_time['Y'], $japan_time['n'], $japan_time['j'], $japan_time['G'], $japan_time['i'], $japan_time['s'], $dayname);
$created_at = mb_convert_encoding($created_at, $char_set, "UTF-8");
$tweet = $db->field(1, $i);
$enc = mb_detect_encoding($tweet);
$text = mb_convert_encoding($tweet, $char_set, $enc);
$tweets .= sprintf("%s
\n%s