|
@@ -8,43 +8,14 @@ $local = array
|
|
|
2 => '开启',
|
|
|
);
|
|
|
|
|
|
-
|
|
|
$status = array
|
|
|
(
|
|
|
- 1 => '待机',
|
|
|
- 2 => '入队',
|
|
|
- 3 => '停止',
|
|
|
+ 1 => '未开始',
|
|
|
+ 2 => '已完成',
|
|
|
+ 3 => '队列中',
|
|
|
+ 4 => '运行中',
|
|
|
);
|
|
|
|
|
|
-$cate = function()
|
|
|
-{
|
|
|
- $array = array();
|
|
|
- $cate = Dever::load('spider/cate-main');
|
|
|
- if ($cate) {
|
|
|
- $array += $cate;
|
|
|
- }
|
|
|
- return $array;
|
|
|
-};
|
|
|
-
|
|
|
-$cate_child = function()
|
|
|
-{
|
|
|
- $cate = Dever::load('spider/cate-child');
|
|
|
- return $cate;
|
|
|
-};
|
|
|
-
|
|
|
-$search_cate = function()
|
|
|
-{
|
|
|
- $array = array
|
|
|
- (
|
|
|
- -1 => array('id' => '-1', 'name' => '所有分类'),
|
|
|
- );
|
|
|
- $cate = Dever::load('spider/cate.get');
|
|
|
- if ($cate) {
|
|
|
- $array += $cate;
|
|
|
- }
|
|
|
- return $array;
|
|
|
-};
|
|
|
-
|
|
|
$project = function()
|
|
|
{
|
|
|
$array = array
|
|
@@ -58,7 +29,16 @@ $project = function()
|
|
|
return $array;
|
|
|
};
|
|
|
|
|
|
-$id = Dever::input('search_option_pid', -1);
|
|
|
+$info = Dever::load('manage/project.get');
|
|
|
+
|
|
|
+$path = $info['spider']['path'];
|
|
|
+
|
|
|
+if(isset($info['spider']['setup']))
|
|
|
+{
|
|
|
+ $path = $info['spider']['setup'];
|
|
|
+}
|
|
|
+
|
|
|
+$id = Dever::input('option_pid', -1);
|
|
|
|
|
|
return array
|
|
|
(
|
|
@@ -66,9 +46,13 @@ return array
|
|
|
'name' => 'project',
|
|
|
|
|
|
'lang' => '项目管理',
|
|
|
+ 'status' => $status,
|
|
|
+ 'path' => $path,
|
|
|
|
|
|
'order' => 20,
|
|
|
-
|
|
|
+ 'desc' => Dever::markdown('**启动守护进程的方法,以下三项任选其一:**
|
|
|
+ 1. 常规任务:请将 ```* * * * * root php '.$path.'daemon/main.php``` 放到cron中[建议每分钟执行一次]
|
|
|
+ 2. 长期运行:请执行 ```php '.$path.'daemon/main.php 1>/dev/null 2>&1 &``` 指令,放置后台运行[一般用于队列等需要长期运行的项目]'),
|
|
|
|
|
|
'struct' => array
|
|
|
(
|
|
@@ -81,7 +65,7 @@ return array
|
|
|
'desc' => '',
|
|
|
'match' => 'is_numeric',
|
|
|
'search' => 'order',
|
|
|
- 'list' => true,
|
|
|
+
|
|
|
'order' => 'desc',
|
|
|
),
|
|
|
|
|
@@ -109,45 +93,15 @@ return array
|
|
|
'search' => 'select',
|
|
|
'option' => $project,
|
|
|
),
|
|
|
-
|
|
|
- 'cate_id_parent' => array
|
|
|
- (
|
|
|
- 'type' => 'int-11',
|
|
|
- 'name' => '选择分类',
|
|
|
- 'default' => '0',
|
|
|
- 'desc' => '请选择分类',
|
|
|
- 'match' => 'is_numeric',
|
|
|
- 'update' => 'select',
|
|
|
-
|
|
|
- 'list_name' => '父级分类',
|
|
|
- 'option' => $cate,
|
|
|
-
|
|
|
- 'child_name' => 'cate_id',
|
|
|
- 'child' => $cate_child,
|
|
|
- 'child_value' => '{cate_id}',
|
|
|
- ),
|
|
|
-
|
|
|
- 'cate_id' => array
|
|
|
- (
|
|
|
- 'type' => 'int-11',
|
|
|
- 'name' => '子分类',
|
|
|
- 'default' => '0',
|
|
|
- 'desc' => '请选择子分类',
|
|
|
- 'match' => 'is_numeric',
|
|
|
- 'search' => 'group',
|
|
|
- 'option' => $search_cate,
|
|
|
- 'list_name' => '分类',
|
|
|
- 'list' => '{cate_id} > 0 ? Dever::load("spider/cate-one#name", {cate_id}) : "无"',
|
|
|
- ),
|
|
|
|
|
|
'site' => array
|
|
|
(
|
|
|
'type' => 'text-255',
|
|
|
- 'name' => '采集网址-多个网址换行隔开,如有分页,请写成这样pg{page=1}',
|
|
|
+ 'name' => '采集网址-如有分页,请写成这样{page=1}',
|
|
|
'default' => '',
|
|
|
'desc' => '采集网址',
|
|
|
'match' => 'option',
|
|
|
- 'update' => 'textarea',
|
|
|
+ 'update' => $id < 0 ? 'hidden': 'textarea',
|
|
|
|
|
|
|
|
|
),
|
|
@@ -159,7 +113,7 @@ return array
|
|
|
'default' => '',
|
|
|
'desc' => '采集规则',
|
|
|
'match' => 'is_string',
|
|
|
- 'update' => 'textarea',
|
|
|
+ 'update' => $id < 0 ? 'hidden': 'textarea',
|
|
|
|
|
|
|
|
|
),
|
|
@@ -167,11 +121,11 @@ return array
|
|
|
'page_num' => array
|
|
|
(
|
|
|
'type' => 'int-11',
|
|
|
- 'name' => '采集页数-值为0则默认采集1000页',
|
|
|
+ 'name' => '采集页数-值为0则默认采集100页',
|
|
|
'default' => '0',
|
|
|
'desc' => '采集页数',
|
|
|
'match' => 'option',
|
|
|
- 'update' => 'text',
|
|
|
+ 'update' => $id < 0 ? 'hidden': 'text',
|
|
|
),
|
|
|
|
|
|
'status' => array
|
|
@@ -182,41 +136,48 @@ return array
|
|
|
'desc' => '状态',
|
|
|
'match' => 'is_numeric',
|
|
|
'option' => $status,
|
|
|
- 'list' => true,
|
|
|
- 'update' => $id > 0 ? 'hidden' : 'radio',
|
|
|
- 'edit' => true,
|
|
|
+ 'list' => 'Dever::load("spider/lib/project.status", {id})',
|
|
|
+
|
|
|
+
|
|
|
),
|
|
|
|
|
|
'num' => array
|
|
|
(
|
|
|
'type' => 'int-11',
|
|
|
- 'name' => '抓取次数',
|
|
|
+ 'name' => '采集次数',
|
|
|
+ 'default' => '0',
|
|
|
+ 'desc' => '采集次数',
|
|
|
+ 'match' => 'is_numeric',
|
|
|
+ ),
|
|
|
+
|
|
|
+ 'cur_page' => array
|
|
|
+ (
|
|
|
+ 'type' => 'int-11',
|
|
|
+ 'name' => '当前采集页数',
|
|
|
'default' => '0',
|
|
|
- 'desc' => '抓取次数',
|
|
|
+ 'desc' => '当前采集页数',
|
|
|
'match' => 'is_numeric',
|
|
|
- 'list' => $id > 0 ? false : true,
|
|
|
),
|
|
|
|
|
|
'sdate' => array
|
|
|
(
|
|
|
'type' => 'int-11',
|
|
|
- 'name' => '抓取开始时间',
|
|
|
+ 'name' => '下次采集时间',
|
|
|
'default' => '0',
|
|
|
- 'desc' => '抓取开始时间',
|
|
|
+ 'desc' => '下次采集时间',
|
|
|
'match' => 'is_numeric',
|
|
|
- 'update' => $id > 0 ? 'hidden' : 'date',
|
|
|
- 'list' => $id > 0 ? false : '{sdate} > 0 ? date("Y-m-d H:i:s", {sdate}) : ""',
|
|
|
+
|
|
|
'callback' => 'maketime',
|
|
|
),
|
|
|
|
|
|
'interval' => array
|
|
|
(
|
|
|
'type' => 'int-11',
|
|
|
- 'name' => '抓取间隔秒数-填写开始时间之后的间隔抓取的秒数,为0则只抓取一次',
|
|
|
+ 'name' => '采集间隔秒数-填写开始时间之后的间隔采集的秒数,为0则只采集一次',
|
|
|
'default' => '0',
|
|
|
- 'desc' => '抓取间隔秒数',
|
|
|
+ 'desc' => '采集间隔秒数',
|
|
|
'match' => 'is_numeric',
|
|
|
- 'update' => $id > 0 ? 'hidden' : 'text',
|
|
|
+ 'update' => $id < 0 ? 'hidden' : 'text',
|
|
|
),
|
|
|
|
|
|
'reorder' => array
|
|
@@ -257,13 +218,13 @@ return array
|
|
|
|
|
|
'manage' => array
|
|
|
(
|
|
|
- 'delete' => false,
|
|
|
+
|
|
|
|
|
|
'update_button' => array
|
|
|
(
|
|
|
'提交保存' => 'save-data',
|
|
|
'放弃保存' => "msg({status:1,msg:'yes'})",
|
|
|
- '复制数据' => 'copy-data',
|
|
|
+
|
|
|
),
|
|
|
|
|
|
|
|
@@ -275,13 +236,17 @@ return array
|
|
|
|
|
|
'list_button' => array
|
|
|
(
|
|
|
- 'list_col' => array('字段设置', '"col&search_option_pid={id}&oper_parent=project"'),
|
|
|
- 'add' => array('新增子项目', '"project&search_option_pid={id}&oper_parent=project&oper_save_jump=project"'),
|
|
|
- 'list_data' => array('数据列表', '"data&search_option_pid={id}&oper_save_jump=project&oper_parent=project"'),
|
|
|
-
|
|
|
+ 'update' => array('编辑', '"project&option_pid={project_id}"'),
|
|
|
+ 'delete' => '删除',
|
|
|
+ 'br1' => array('<br /><br />'),
|
|
|
+ 'add' => array('新增子项目', '"project&option_pid={id}&oper_parent=project&oper_save_jump=project"', '{project_id} == -1'),
|
|
|
+
|
|
|
+ 'list_col' => array('设置采集字段', '"col&search_option_pid={id}&oper_parent=project"', '{project_id} > 0 && {status} <= 2'),
|
|
|
+ 'list_data' => array('查看采集数据', '"data&search_option_pid={id}&oper_save_jump=project&oper_parent=project"', '{project_id} > 0'),
|
|
|
+ 'br2' => array('<br /><br />'),
|
|
|
+ 'new' => array('测试采集', 'Dever::url("spider/lib/api.test?id={id}")', '{project_id} > 0'),
|
|
|
+ 'oper1' => array('开始采集', 'Dever::url("spider/lib/api.add?id={id}")', '{project_id} > 0 && {status} <= 2'),
|
|
|
),
|
|
|
-
|
|
|
-
|
|
|
),
|
|
|
|
|
|
|