добавление задания через api

malexoid

A-Parser Enterprise License
A-Parser Enterprise
Добавляю задание через api,
Код:
{ "password":"*",
  "action" : "addTask",
  "data" : {
      "preset" : "wordstat_expansion",
      "configPreset" : "100 Threads",
      "queriesFrom" : "text",
      "queries" : [
        "count:10,deep:50000,source:left,xmloutput:1,key:шины"
       ],

      "options" : [
        {
            "value" : ["35"],
            "type" : "override",
            "id" : "geo"
        }
      ]


  }
}

в задании wordstat_expansion только один парсер "SE::Yandex::WordStat", через options пытаюсь переопределить регион, но почему-то это не получается сделать.

Вот что сообщается статус

Код:
{
  "success": 1,
  "data": {
    "parsers": [
      [
        "SE::Yandex::WordStat",
        "wordstat_expansion",
        {
          "value": [
            "225"
          ],
          "id": "geo",
          "type": "override"
        },
        {
          "value": 1,
          "id": "pagecount",
          "type": "override"
        }
      ]
    ],
    "resultsFileName": "wordstat_expansion_level_test_0_1_right.txt",
    "runTaskOnComplete": null,
    "options": [
      {
        "value": [
          "35"
        ],
        "type": "override",
        "id": "geo"
      }
    ],
    "resultsPrepend": "",
    "origResultsFileName": "wordstat_expansion_level_test_0_1_right.txt",
    "queriesFrom": "text",
    "runTaskOnCompleteConfig": "default",
    "doLog": "db",
    "useResultsFileAsQueriesFile": false,
    "additionalFormats": [
     
    ],
    "resultsSaveTo": "file",
    "resultsFormat": "*",
    "queryBuilders": [
      {
        "source": "query",
        "to": [
          "count",
          "deep",
          "source",
          "xmloutput",
          "query"
        ],
        "regexType": null,
        "regex": "^count:(.*),deep:(.*),source:(.*),xmloutput:(.*),key:(.*)$",
        "type": "regex"
      }
    ],
    "preset": "wordstat_expansion",
    "resultsAppend": "",
    "uniqueQueries": true,
    "keepUnique": 0,
    "queries": [
      "count:10,deep:50000,source:left,xmloutput:1,key:шины"
    ],
    "configPreset": "100 Threads",
    "saveFailedQueries": false,
    "toolsJS": "",
    "moreOptions": true,
    "resultsBuilders": [
     
    ],
    "resultsUnique": "no",
    "iteratorOptions": {
      "onAllLevels": false,
      "queryBuildersAfterIterator": false,
      "queryBuildersOnAllLevels": false
    },
    "queryFormat": [
      "$query"
    ],
    "configOverrides": [
     
    ],
    "resultsOptions": {
      "overwrite": true
    }
  }
}

Вопрос, как переопределить geo в парсере SE::Yandex::WordStat через API, используя уже готовое задание? Вариант - через "parser" не подходит - т..к хочется использовать уже готовое задание, чтобы если что оперативно менять его в вебинтерфейсе апарсера.
 
Если переопределять через parser, то затираются остальные настройки парсера, которые переопределены в самом задании.
Код:
{ "password":"*",
  "action" : "addTask",
  "data" : {
      "preset" : "wordstat_expansion",
      "configPreset" : "100 Threads",
      "queriesFrom" : "text",
      "queries" : [
        "count:10,deep:50000,source:left,xmloutput:1,key:шины"
       ],


    "parsers": [
        [
          "SE::Yandex::WordStat",
          "wordstat_expansion",
           {
            "value":  "35",
            "id": "geo",
            "type": "override"
           }
        ]
    ]



  }
}

В результат такой. Видно, что pagecount затёрся:
Код:
{
  "success": 1,
  "data": {
    "parsers": [
      [
        "SE::Yandex::WordStat",
        "wordstat_expansion",
        {
          "value": "35",
          "id": "geo",
          "type": "override"
        }
      ]
    ],
    "runTaskOnComplete": null,
    "resultsFileName": "wordstat_expansion_level_test_0_1_right.txt",
    "resultsPrepend": "",
    "origResultsFileName": "wordstat_expansion_level_test_0_1_right.txt",
    "queriesFrom": "text",
    "runTaskOnCompleteConfig": "default",
    "doLog": "db",
    "useResultsFileAsQueriesFile": false,
    "resultsSaveTo": "file",
    "additionalFormats": [
     
    ],
    "queryBuilders": [
      {
        "source": "query",
        "to": [
          "count",
          "deep",
          "source",
          "xmloutput",
          "query"
        ],
        "regex": "^count:(.*),deep:(.*),source:(.*),xmloutput:(.*),key:(.*)$",
        "regexType": null,
        "type": "regex"
      }
    ],
    "resultsFormat": "*",
    "preset": "wordstat_expansion",
    "resultsAppend": "",
    "uniqueQueries": true,
    "keepUnique": 0,
    "queries": [
      "count:10,deep:50000,source:left,xmloutput:1,key:шины"
    ],
    "configPreset": "100 Threads",
    "saveFailedQueries": false,
    "toolsJS": "",
    "resultsBuilders": [
     
    ],
    "moreOptions": true,
    "resultsUnique": "no",
    "iteratorOptions": {
      "onAllLevels": false,
      "queryBuildersAfterIterator": false,
      "queryBuildersOnAllLevels": false
    },
    "queryFormat": [
      "$query"
    ],
    "configOverrides": [
     
    ],
    "resultsOptions": {
      "overwrite": true
    }
  }
}
 
настройки для парсера можно задать только совсместно с перечислением самих парсеров, т.е. необходимо указать полностью все парсеры и их настройки
 
настройки для парсера можно задать только совсместно с перечислением самих парсеров, т.е. необходимо указать полностью все парсеры и их настройки
эх, не удобно то как. Хотел, чтобы логика вся хранилась в самом апарсере, а со стороны клиента настроек не было :(
напрашивается механизм передачи значений для override параметров из вне.
 
Можно получить целиком конфигурацию существующего задания: getTaskConf и поменять необходимые поля
 
Назад
Верх