function xmlrpc_di_000_get_diary($message) { $dummy = array(); $re_false = array('result' => 1, 'list' => $dummy); $param = $message->getParam(0); if (!XML_RPC_Value::isValue($param)) { return xmlrpc_get_response($re_false); } $params = XML_RPC_decode($param); if (empty($params['mid_to'])) { //対象メンバID必須 return xmlrpc_get_response($re_false); } if (empty($params['count'])) { //取得数必須 return xmlrpc_get_response($re_false); } if (!is_numeric($params['mid_to'])) { //対象メンバIDは整数値 return xmlrpc_get_response($re_false); } if (!empty($params['mid_from'])) { //アクセスメンバIDは(存在する場合は)整数値 if (!is_numeric($params['mid_from'])) { return xmlrpc_get_response($re_false); } } if (!is_numeric($params['count'])) { //取得数は整数値 return xmlrpc_get_response($re_false); } if ($params['count'] < 0) { //取得数は正 return xmlrpc_get_response($re_false); } $member_id_to = $params['mid_to']; $member_id_from = $params['mid_from']; $count = $params['count']; if ($count > 100) { //取得最大数は100 $count = 100; } if (!($arr = OP::op_diary_get_c_diary($member_id_to, $member_id_from, $count))) { return xmlrpc_get_response($re_false); } else { foreach ($arr as $key => $value) { $diary[$key]['id'] = $arr[$key]['c_diary_id']; $diary[$key]['subject'] = $arr[$key]['subject']; $diary[$key]['body'] = $arr[$key]['body']; $diary[$key]['datetime'] = date('Y/m/d H:i:s', strtotime($arr[$key]['r_datetime'])); } $re_true = array('result' => 0, 'list' => $diary); return xmlrpc_get_response($re_true); } }
function xmlrpc_as_001_set_ashiato($message) { $dummy = array(); $re_false = array('result' => 1); $re_true = array('result' => 0); $param = $message->getParam(0); if (!XML_RPC_Value::isValue($param)) { return xmlrpc_get_response($re_false); } $params = XML_RPC_decode($param); //「あしあと」を付けたメンバID必須 if (empty($params['mid_from'])) { return xmlrpc_get_response($re_false); } //「あしあと」を付けられたメンバID必須 if (empty($params['mid_to'])) { return xmlrpc_get_response($re_false); } $mid_from = $params['mid_from']; $mid_to = $params['mid_to']; //登録済みのメンバか if (!OP::op_member_is_active_c_member_id($mid_from)) { return xmlrpc_get_response($re_false); } //登録済みのメンバか if (!OP::op_member_is_active_c_member_id($mid_to)) { return xmlrpc_get_response($re_false); } //あしあとを付けたメンバIDと付けられたメンバIDは同一か if ($mid_from == $mid_to) { return xmlrpc_get_response($re_true); } //一定時間内の連続アクセスか? if (!OP::op_ashiato_check_access_minute($mid_to, $mid_from)) { return xmlrpc_get_response($re_true); } //忍び足状態か? if (USE_SHINOBIASHI) { if (OP::op_member_is_shinobiashi($mid_from)) { return xmlrpc_get_response($re_true); } } if (!OP::op_ashiato_insert_c_ashiato($mid_to, $mid_from)) { return xmlrpc_get_response($re_false); } //正常終了 return xmlrpc_get_response($re_true); }
function xmlrpc_as_000_get_ashiato($message) { $dummy = array(); $re_false = array('result' => 1, 'list' => $dummy); $param = $message->getParam(0); if (!XML_RPC_Value::isValue($param)) { return xmlrpc_get_response($re_false); } $params = XML_RPC_decode($param); //対象メンバID必須 if (empty($params['mid'])) { return xmlrpc_get_response($re_false); } //取得数必須 if (empty($params['count'])) { return xmlrpc_get_response($re_false); } //取得数は数値 if (!is_numeric($params['count'])) { return xmlrpc_get_response($re_false); } $member_id = $params['mid']; $count = intval($params['count']); $profile = $params['profile']; //取得数は正 if ($count <= 0) { return xmlrpc_get_response($re_false); } //登録済みのメンバか if (!OP::op_member_is_active_c_member_id($member_id)) { return xmlrpc_get_response($re_false); } //あしあとのあるメンバか if (!OP::op_is_ahiato_member($member_id)) { return xmlrpc_get_response($re_false); } //取得最大数は100 if ($count > 100) { $count = 100; } $list = OP::op_ashiato_list_c_member_profile($member_id, $count, $profile); if (empty($list)) { return xmlrpc_get_respose($re_false); } return xmlrpc_get_response(array('result' => 0, 'list' => $list)); }
/** * あしあとを付ける * * @param int $c_member_id_to あしあとをつけるメンバーのID * @param int $c_member_id_from あしあとをつけられるメンバーのID * @return bool */ function op_ashiato_insert_c_ashiato($c_member_id_to, $c_member_id_from) { $data = array('c_member_id_from' => intval($c_member_id_from), 'c_member_id_to' => intval($c_member_id_to), 'r_datetime' => db_now(), 'r_date' => db_now()); if (!db_insert('c_ashiato', $data)) { return false; } if ($ashiato_mail_num = OP::op_ashiato_ashiato_mail_num4c_member_id($c_member_id_to)) { //総足あと数を取得 $ashiato_num = OP::op_ashiato_c_ashiato_num4c_member_id($c_member_id_to); //あしあとお知らせメールを送る if ($ashiato_num == $ashiato_mail_num) { do_common_send_ashiato_mail($c_member_id_to, $c_member_id_from); } } return true; }
function xmlrpc_di_001_set_comment($message) { $re_true = array('result' => 0); $re_false = array('result' => 1); $param = $message->getParam(0); if (!XML_RPC_Value::isValue($param)) { return xmlrpc_get_response($re_false); } $params = XML_RPC_decode($param); if (empty($params['mid'])) { //コメント書込メンバID必須 return xmlrpc_get_response($re_false); } if (empty($params['did'])) { //コメント書込日記ID必須 return xmlrpc_get_response($re_false); } if (is_null($params['body']) || $params['body'] === '') { //コメント本文必須(0または'0'を除く) return xmlrpc_get_response($re_false); } if (!is_numeric($params['mid'])) { //コメント書込メンバIDは整数値 return xmlrpc_get_response($re_false); } if (!is_numeric($params['did'])) { //コメント書込日記IDは整数値 return xmlrpc_get_response($re_false); } if (mb_strwidth($params['body']) > 65535) { //コメント本文は65535bytesまで return xmlrpc_get_response($re_false); } $member_id = $params['mid']; $diary_id = $params['did']; $diary_body = rawurldecode($params['body']); $d_member_id = OP::op_diary_get_c_member_id4c_diary_id($diary_id); //日記IDから日記作成メンバIDを取得 if (!OP::op_member_is_active_c_member_id($d_member_id)) { //アクティブメンバーか? return xmlrpc_get_response($re_false); } if ($member_id != $d_member_id) { //日記作成メンバ本人か? if (OP::op_member_is_access_block($member_id, $d_member_id)) { //アクセスブロックされているか? return xmlrpc_get_response($re_false); } $pubflg = OP::op_diary_get_c_member_id4public_flg($diary_id); //日記IDから公開範囲を取得 if ($pubflg != "public") { //公開範囲がpublic以外か? if ($pubflg != "friend") { //公開範囲がfriendか? return xmlrpc_get_response($re_false); } if (!OP::op_friend_is_friend($d_member_id, $member_id)) { //フレンド登録済以外か? return xmlrpc_get_response($re_false); } } } if (!OP::op_diary_insert_c_diary_comment($member_id, $diary_id, $diary_body)) { //コメント書込 return xmlrpc_get_response($re_false); } if (!OP::op_diary_c_diary_is_no_checked($diary_id)) { //未読フラグ書込 return xmlrpc_get_response($re_false); } if ($member_id != $d_member_id) { //日記作成メンバ本人か? OP::op_point_add_point($member_id, OP::op_action_get_point4c_action_id(3)); OP::op_point_add_point($d_member_id, OP::op_action_get_point4c_action_id(2)); } return xmlrpc_get_response($re_true); }
function xmlrpc_au_000_auth($message) { $re_false = array('result' => 1); $param = $message->getParam(0); if (!XML_RPC_Value::isValue($param)) { return xmlrpc_get_response($re_false); } $params = XML_RPC_decode($param); if (empty($params['mail'])) { //メールアドレス必須 return xmlrpc_get_response($re_false); } if (empty($params['passwd'])) { //パスワード必須 return xmlrpc_get_response($re_false); } if (is_null($params['sidflg']) || $params['sidflg'] === '') { //セッション作成フラグ必須 return xmlrpc_get_response($re_false); } if (!is_numeric($params['sidflg'])) { //セッション作成フラグは数値 return xmlrpc_get_response($re_false); } if (intval($params['sidflg']) != 0 && intval($params['sidflg']) != 1) { //セッション作成フラグは0 or 1 return xmlrpc_get_response($re_false); } $user_mail = htmlentities($params['mail']); $user_passwd = htmlentities($params['passwd']); $sid = htmlspecialchars($params['sid']); $sidflg = intval($params['sidflg']); $is_ktai = is_ktai_mail_address($user_mail); //携帯か? if ($is_ktai) { //携帯からのアクセス $c_member_id = OP::op_member_k_auth_login($user_mail, $user_passwd); } else { //PCからのアクセス $c_member_id = OP::op_member_auth_login($user_mail, $user_passwd); } if (!$c_member_id) { //メンバIDが取得できたか? return xmlrpc_get_response($re_false); } if (OP::op_member_is_login_rejected($c_member_id)) { //ログイン拒否されているか? return xmlrpc_get_response($re_false); } if (!OP::op_member_is_active_c_member_id($c_member_id)) { //アクティブメンバーか? return xmlrpc_get_response($re_false); } if (!$sidflg) { //セッションIDを作成するか $req = array('c_member_id' => $c_member_id, 'address' => $user_mail, 'password' => $user_passwd, 'sid' => $sid, 'is_ktai' => $is_ktai); if (!($session_id = OP::op_k_login($req))) { return xmlrpc_get_response($re_false); } $re_true = array('result' => 0, 'sid' => $session_id, 'mid' => intval($c_member_id)); } else { //セッションIDを作成しない $re_true = array('result' => 0, 'mid' => intval($c_member_id)); } return xmlrpc_get_response($re_true); }