|
@@ -48,8 +48,6 @@ class Parse
|
|
|
|
|
|
private function load($doc, $index, $data, $col, $set, $push, $project)
|
|
|
{
|
|
|
- $result = $table = array();
|
|
|
- $data = $doc->init($data);
|
|
|
if (!$col) {
|
|
|
if (Dever::input('test') == 1) {
|
|
|
$doc->outLog();
|
|
@@ -57,6 +55,44 @@ class Parse
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
+ $result = $table = array();
|
|
|
+
|
|
|
+ if (isset($col[1])) {
|
|
|
+ $data = $doc->init($data);
|
|
|
+ $this->getCol($doc, $col[1], $data, $result, $table);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isset($col[2])) {
|
|
|
+ $data = $doc->getCur();
|
|
|
+ $this->getCol($doc, $col[2], $data, $result, $table);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($set) {
|
|
|
+ foreach ($set as $v) {
|
|
|
+ $value = $this->set($index, $v, $project);
|
|
|
+ $result[$v['key']] = $value;
|
|
|
+ if (Dever::input('test') == 1) {
|
|
|
+ $table[$v['name']] = $value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($push) {
|
|
|
+ $result['test'] = Dever::input('test');
|
|
|
+ $this->push($push, $result, $project);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Dever::input('test') == 1) {
|
|
|
+ $doc->outLog();
|
|
|
+ echo Dever::table($table);die;
|
|
|
+ }
|
|
|
+
|
|
|
+ $this->update($result, $project);
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+
|
|
|
+ private function getCol($doc, $col, $data, &$result, &$table)
|
|
|
+ {
|
|
|
foreach ($col as $v) {
|
|
|
$callback = false;
|
|
|
if (strpos($v['key'], '.') !== false) {
|
|
@@ -86,39 +122,19 @@ class Parse
|
|
|
$value = $this->filter($value);
|
|
|
}
|
|
|
|
|
|
- $result[$v['key']] = $value;
|
|
|
- if (Dever::input('test') == 1) {
|
|
|
- $table[$v['name']] = $value;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if ($set) {
|
|
|
- foreach ($set as $v) {
|
|
|
- $value = $this->set($index, $v, $project);
|
|
|
+ if ($value) {
|
|
|
$result[$v['key']] = $value;
|
|
|
if (Dever::input('test') == 1) {
|
|
|
$table[$v['name']] = $value;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- if ($push) {
|
|
|
- $result['test'] = Dever::input('test');
|
|
|
- $this->push($push, $result);
|
|
|
- }
|
|
|
-
|
|
|
- if (Dever::input('test') == 1) {
|
|
|
- $doc->outLog();
|
|
|
- echo Dever::table($table);die;
|
|
|
- }
|
|
|
-
|
|
|
- $this->update($result, $project);
|
|
|
- return $result;
|
|
|
}
|
|
|
|
|
|
- private function push($push, $data)
|
|
|
+ private function push($push, $data, $project)
|
|
|
{
|
|
|
$push = explode("\n", str_replace("\r", '', $push));
|
|
|
+ $data['project_id'] = $project;
|
|
|
foreach ($push as $k => $v) {
|
|
|
if (strstr($v, 'http')) {
|
|
|
Dever::curl($v, $data, 'post');
|
|
@@ -196,16 +212,31 @@ class Parse
|
|
|
|
|
|
private function copy($file)
|
|
|
{
|
|
|
+ if (strstr($file, ',')) {
|
|
|
+ $temp = explode(',', $file);
|
|
|
+ $file = array();
|
|
|
+ foreach($temp as $k => $v) {
|
|
|
+ $f = $this->copy($v);
|
|
|
+ if ($f) {
|
|
|
+ $file[] = $f;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $file = implode(',', $file);
|
|
|
+ return $file;
|
|
|
+ }
|
|
|
$data = Dever::load('upload/save.copy?file=' . $file . '&key=' . $this->res . '&state=1');
|
|
|
if (isset($data['url'])) {
|
|
|
return $data['url'];
|
|
|
} else {
|
|
|
- return $file;
|
|
|
+ return '';
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private function update($data, $project)
|
|
|
{
|
|
|
+ if (!$data) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
$param['option_pid'] = $project;
|
|
|
$param['option_value'] = json_encode($data, JSON_UNESCAPED_UNICODE);
|
|
|
$info = Dever::db('spider/data')->one($param);
|