找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: cnly1987

amh官方模块国内下载特慢,我把他们挪我这来了。

[复制链接]

18

主题

112

回帖

282

积分

中级会员

积分
282
发表于 2016-1-28 10:37:05 | 显示全部楼层

cnly1987 发表于 2016-1-28 10:47

都扔在那,不站地点,
就是amh后台模块列表是怎么读取的,我还在找代码。数据库没有信息 ...
[ol]
  • array(), 'sum' => 0);
  •                 $run_list = explode("\n", $result);
  •                 $sum = count($run_list);
  •                 $run_list = array_slice($run_list, ($page-1)*$page_sum,  $page_sum);
  •                 $param_arr = array(
  •                         'AMH-ModuleName',
  •                         'AMH-ModuleIco',
  •                         'AMH-ModuleDescription',
  •                         'AMH-ModuleButton',
  •                         'AMH-ModuleDate',
  •                         'AMH-ModuleAdmin',
  •                         'AMH-ModuleWebSite',
  •                         'AMH-ModuleScriptBy',
  •                 );
  •                 $module_data = array();
  •                 if (is_array($run_list))
  •                 {
  •                         Functions::get_module_score();
  •                         foreach ($run_list as $key=>$val)
  •                         {
  •                                 // Module Info
  •                                 $cmd = "amh module $val info";
  •                                 $cmd = Functions::trim_cmd($cmd);
  •                                 $result = trim(shell_exec($cmd), "\n");
  •                                 $result = Functions::trim_result($result);
  •                                 foreach ($param_arr as $k=>$v)
  •                                 {
  •                                         preg_match("/{$v}:(.*)/", $result, $param_value);
  •                                         $arr[$v] = trim($param_value[1]);
  •                                 }
  •                                 
  •                                 // Module Status
  •                                 $cmd = "amh module $val status";
  •                                 $cmd = Functions::trim_cmd($cmd);
  •                                 exec($cmd, $tmp, $status);
  •                                 $arr['AMH-ModuleStatus'] = ($status) ? 'false' : 'true';
  •                                 
  •                                 $arr['AMH-ModuleName'] = addslashes($arr['AMH-ModuleName']);
  •                                 $arr['AMH-ModuleButton'] = explode('/', $arr['AMH-ModuleButton']);
  •                                 if ($arr['AMH-ModuleStatus'] == 'true')
  •                                 {
  •                                         $arr['AMH-ModuleButton'] = $arr['AMH-ModuleButton'][1];
  •                                         $arr['AMH-ModuleAction'] = 'uninstall';
  •                                 }
  •                                 else
  •                                 {
  •                                         $arr['AMH-ModuleButton'] = $arr['AMH-ModuleButton'][0];
  •                                         $arr['AMH-ModuleAction'] = 'install';
  •                                 }
  •                                 $arr['AMH-ModuleScore'] = isset($_SESSION['module_score'][$arr['AMH-ModuleName']]) ? $_SESSION['module_score'][$arr['AMH-ModuleName']] : '';
  •                                 $arr['AMH-ModuleIco'] = (isset($_SESSION['module_score']) && count($_SESSION['module_score']) > 0) ? $arr['AMH-ModuleIco'] : '';
  •                                 $i = strtotime($arr['AMH-ModuleDate']) + $key;
  •                                 $data[$i] = $arr;
  •                         }
  •                         if (is_array($data))
  •                         {
  •                                 krsort($data);
  •                                 $i = 0;
  •                                 foreach ($data as $key=>$val)
  •                                 {
  •                                         $module_data[($i++)%3][] = $val;
  •                                 }
  •                                 unset($data);
  •                         }
  •                 }
  •                 Return array('data' => $module_data, 'sum' => $sum);
  •         }
  •         // 下载模块
  •         function module_download($name)
  •         {
  •                 $cmd = "amh module download $name";
  •                 $cmd = Functions::trim_cmd($cmd);
  •                 exec($cmd, $tmp, $status);
  •                 Return array(!$status, $tmp);
  •         }
  •         // 删除模块
  •         function module_delete($name)
  •         {
  •                 $cmd = "amh module $name delete y";
  •                 $cmd = Functions::trim_cmd($cmd);
  •                 exec($cmd, $tmp, $status);
  •                 Return !$status;
  •         }
  •         // 取得最新模块
  •         function get_new_module_list($page = 1, $page_sum = 5)
  •         {
  •                 $cmd = 'amh ls_modules';
  •                 $local_module_list = explode("\n", trim(shell_exec($cmd), "\n"));
  •                 $timeout = array(
  •                         'http'=>array(
  •                                 'method'=>"GET",
  •                                 'timeout'=>8,
  •                         )
  •                 );
  •                 $context = stream_context_create($timeout);
  •                 $data = unserialize(file_get_contents('http://amysql.com/AMH.htm?module_list=y&v=' . $_SESSION['amh_version'], false, $context));
  •                 if (empty($data) || !is_array($data) || count($data) == 0)
  •                         Return array('data' => array(), 'sum' => 0);
  •                 // 搜索模块
  •                 if (isset($_GET['m_txt']) && !empty($_GET['m_txt']))
  •                 {
  •                         foreach ($data as $key=>$val)
  •                         {
  •                                 $search_txt = ($_GET['search_type'] == 'search_module_name') ? $val['module_name'] . $val['module_description'] : $val['module_by'];
  •                                 if (stripos($search_txt, $_GET['m_txt']) === false)
  •                                         unset($data[$key]);
  •                         }
  •                 }
  •                
  •                 $sum = count($data);
  •                 $data = array_slice($data, ($page-1)*$page_sum,  $page_sum);
  •                 foreach ($data as $key=>$val)
  •                         $data[$key]['module_download'] = (in_array($val['module_name'], $local_module_list)) ? 'y' : 'n';
  •                 Return array('data' => $data, 'sum' => $sum);
  •         }
  • }
  • ?>[/ol]复制代码
  • 回复

    使用道具 举报

    328

    主题

    1625

    回帖

    4248

    积分

    论坛元老

    积分
    4248
     楼主| 发表于 2016-1-28 09:48:00 | 显示全部楼层
    $data = unserialize(file_get_contents('http://amysql.com/AMH.htm?module_list=y&v=' . $_SESSION['amh_version'], false, $context));
    看到没?
    回复

    使用道具 举报

    18

    主题

    112

    回帖

    282

    积分

    中级会员

    积分
    282
    发表于 2016-1-28 09:48:49 | 显示全部楼层

    lovees 发表于 2016-1-28 10:49

    模块name数据从哪里获取的?
    [ol]
  • $data = unserialize(file_get_contents('http://amysql.com/AMH.htm?module_list=y&v=' . $_SESSION['amh_version'], false, $context));
  • [/ol]复制代码
  • 回复

    使用道具 举报

    18

    主题

    112

    回帖

    282

    积分

    中级会员

    积分
    282
    发表于 2016-1-28 10:38:20 | 显示全部楼层
    本帖最后由 lovees 于 2016-1-28 11:00 编辑

    cnly1987 发表于 2016-1-28 10:55

    模块name数据从哪里获取的?


    郁闷,代码发不上来了

    http://amh.sh/AMH.htm?module_list

    回复

    使用道具 举报

    328

    主题

    1625

    回帖

    4248

    积分

    论坛元老

    积分
    4248
     楼主| 发表于 2016-1-28 10:47:02 | 显示全部楼层

    lovees 发表于 2016-1-28 10:57

    郁闷,代码发不上来了

    http://amh.sh/AMH.htm?module_list

    打个包 ZIP  发上来嘛,我都弄服务器上去。
    回复

    使用道具 举报

    18

    主题

    112

    回帖

    282

    积分

    中级会员

    积分
    282
    发表于 2016-1-28 10:37:00 | 显示全部楼层

    cnly1987 发表于 2016-1-28 10:55

    模块name数据从哪里获取的?

    http://amh.sh/AMH.htm?module_list
    你仔细看看这脚本,你没发现什么吗?
    [ol]
  • a:42:{i:0;a:11:{s:9:"module_id";s:2:"42";s:11:"module_name";s:15:"node.js-0.10.21";s:14:"module_version";s:11:"4.0,4.1,4.2";s:10:"module_ico";s:48:"http://amh.sh/View/images/amh_module/node.js.gif";s:12:"module_stars";s:10:"372.089996";s:17:"module_starts_sum";s:1:"4";s:16:"module_starts_ip";s:60:"203.195.180.219,72.46.130.140,108.61.201.130,108.61.200.133,";s:18:"module_description";s:177:"安装node.js支持环境,node.js是一套用来编写高性能网络服务器的JavaScript工具包,可以快速构建网络服务及应用的平台。Node.js版本:0.10.21";s:9:"module_by";s:12:"西秦公子";s:14:"module_website";s:14:"www.ixiqin.com";s:11:"module_time";s:10:"2013-10-30";}[/ol]复制代码
  • 回复

    使用道具 举报

    328

    主题

    1625

    回帖

    4248

    积分

    论坛元老

    积分
    4248
     楼主| 发表于 2016-1-28 10:49:20 | 显示全部楼层

    cnly1987 发表于 2016-1-28 11:04

    打个包 ZIP  发上来嘛,我都弄服务器上去。

    你真逗,amh服务器上的我能拿到?
    你还是自己写个读取列表代码吧

    本地读取列表在
    [ol]
  • /home/wwwroot/index/web/Model/modules.php[/ol]复制代码
    比如
    http://amh.sh/AMH.htm?module_list=y&v=4.0,4.1,4.2
  • 回复

    使用道具 举报

    18

    主题

    112

    回帖

    282

    积分

    中级会员

    积分
    282
    发表于 2016-1-28 10:47:00 | 显示全部楼层
    模块下载文件
    [ol]
  • /home/wwwroot/index/web/View/module_down.php[/ol]复制代码
    模块读取模式
    [ol]
  •                         
  • 'id' => $val['ModuleID'],
  • 'url' => $val['ModuleAdmin'],
  • 'name' => $val['ModuleName'],
  • [/ol]复制代码
  • 回复

    使用道具 举报

    0

    主题

    2

    回帖

    6

    积分

    新手上路

    积分
    6
    发表于 2016-1-28 10:52:12 | 显示全部楼层
    能不能添加简介啊
    回复

    使用道具 举报

    18

    主题

    112

    回帖

    282

    积分

    中级会员

    积分
    282
    发表于 2016-1-28 10:55:04 | 显示全部楼层
    好喜欢7楼头像
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-2-2 18:05 , Processed in 0.021425 second(s), 5 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表