コード例 #1
0
 public function index()
 {
     //判断是否存在模式锁定
     global $_W;
     $event = empty($_W['event']) ? self::discrevent($_W['msgtype']) : $_W['event'];
     //新增芒果自定义参数 user_post
     $_W['post'] = ucfirst(strtolower($event));
     $lastmodel = get_line_model();
     $crosstime = time() - $lastmodel[1];
     if (!empty($lastmodel[0]) && $crosstime <= 300) {
         $addonparam = explode('/', $lastmodel[0]);
         defined('AMANGO_ADDON_NAME') or define('AMANGO_ADDON_NAME', ucfirst($addonparam[0]));
         $publicpath = str_replace('./', 'http://' . $_SERVER['HTTP_HOST'] . '/', ONETHINK_ADDON_PATH . AMANGO_ADDON_NAME . '/Public/');
         defined('ADDON_PUBLIC') or define('ADDON_PUBLIC', $publicpath);
         defined('ADDON_ROOT') or define('ADDON_ROOT', ONETHINK_ADDON_PATH . AMANGO_ADDON_NAME . '/');
         Amango_Addons($addonparam[0], '', $addonparam[1], '', fasle);
     } else {
         //是否是通用请求
         if (in_array($event, $this->Common_request)) {
             $keyword_count = get_posttype_nums($_W['msgtype']);
             if ($keyword_count == 0) {
                 Reply::trace('Sorry!查询到0条有关【' . $_W['msgtype'] . '】类型的请求');
             }
             $preg_keword = get_keyword_match(true);
             if (empty($preg_keword['id'])) {
                 Reply::trace('查询不到关键词哦~');
             }
             //关键词组和用户权限判断
             get_keyword_user_auth(true);
             Reply::limit_top();
             Reply::cache($preg_keword['id'], '', $preg_keword['keyword_cache'], true);
             Reply::response();
         } else {
             Reply::runBundle(strtolower($event));
         }
     }
 }
コード例 #2
0
ファイル: ApiFactory.class.php プロジェクト: fedkey/amango
 public function setInfo($type, $detail, $originalxml, $denytag, $otherparam)
 {
     $detail = unserialize($detail);
     switch (strtolower($detail['type'])) {
         case 'cloud':
             $apiinfo = M('Webuntil')->where(array('id' => $detail['neiron']))->field('id,webuntil_param,webuntil_type,webuntil_backtype,webuntil_sigtype,webuntil_cache,webuntil_tag,webuntil_url,webuntil_token')->find();
             $oldparam = parse_config($apiinfo['webuntil_param']);
             $newparam = $detail['replace'];
             //为了更好的合并参数提交
             $apiinfo['webuntil_param'] = array_merge($oldparam, $newparam);
             //判断是否存在缓存
             $oldinfo = excute_cache($apiinfo['id'], '', $apiinfo['webuntil_cache'], $is_echo = false);
             $newcontent = empty($oldinfo) ? self::setCloud($apiinfo) : $oldinfo;
             return $newcontent;
             break;
         case 'local':
             $apiinfo = M('Addons')->where(array('id' => $detail['neiron'], 'status' => 1, 'weixin' => 1))->field('name,title,config')->find();
             if (empty($apiinfo)) {
                 wx_error('Sorry!该插件暂未启用或者未安装');
             } else {
                 defined('AMANGO_ADDON_NAME') or define('AMANGO_ADDON_NAME', ucfirst($apiinfo['name']));
             }
             $publicpath = str_replace('./', 'http://' . $_SERVER['HTTP_HOST'] . '/', ONETHINK_ADDON_PATH . AMANGO_ADDON_NAME . '/Public/');
             defined('ADDON_PUBLIC') or define('ADDON_PUBLIC', $publicpath);
             defined('ADDON_ROOT') or define('ADDON_ROOT', ONETHINK_ADDON_PATH . AMANGO_ADDON_NAME . '/');
             Amango_Addons($apiinfo['name'], '', '', $detail['replace'], true);
             break;
         case 'behavior':
             wx_error('Sorry!暂不支持行为动作,下个版本即将推出');
             break;
         default:
             wx_error('未定义的第三方接口');
             break;
     }
 }