279 def siteUpdateDeserialize(self, jsonData):
282 siteUpdateObject.updateType = self.simpleValueExtractor(
"updateType", jsonData, int(),
"SiteUpdate.updateType")
283 siteUpdateObject.id = self.simpleValueExtractor(
"id", jsonData, str(),
"SiteUpdate.id")
284 if "uDate" in jsonData:
285 siteUpdateObject.uDate = self.timeExtractor(jsonData[
"uDate"])
287 raise Exceptions.DeserilizeException(
"SiteUpdate.uDate json-field not found")
288 if "tcDate" in jsonData:
289 siteUpdateObject.tcDate = self.timeExtractor(jsonData[
"tcDate"])
291 raise Exceptions.DeserilizeException(
"SiteUpdate.tcDate json-field not found")
292 if "cDate" in jsonData:
293 siteUpdateObject.cDate = self.timeExtractor(jsonData[
"cDate"])
295 raise Exceptions.DeserilizeException(
"SiteUpdate.cDate json-field not found")
296 siteUpdateObject.resources = self.simpleValueExtractor(
"resources", jsonData, int(),
"SiteUpdate.resources")
297 siteUpdateObject.iterations = self.simpleValueExtractor(
"iterations", jsonData, int(),
"SiteUpdate.iterations")
298 siteUpdateObject.description = self.simpleValueExtractor(
"description", jsonData, str(),
"SiteUpdate.description")
299 siteUpdateObject.userId = self.simpleValueExtractor(
"userId", jsonData, int(),
"SiteUpdate.userId")
301 if "urls" in jsonData:
302 if jsonData[
"urls"]
is None:
303 siteUpdateObject.urls =
None 304 elif not isinstance(jsonData[
"urls"], list):
305 raise Exceptions.DeserilizeException(
"SiteUpdate.urls not list type")
307 siteUpdateObject.urls = []
308 for jsonUrl
in jsonData[
"urls"]:
310 if isinstance(jsonUrl, dict):
311 localRet = self.fillSiteURLs(jsonUrl, siteUpdateObject.id, siteUpdateObject.userId,
312 int(jsonUrl[
"_normalizeMask"])
if "_normalizeMask" in jsonUrl
else \
313 UrlNormalizator.NORM_NONE)
314 elif isinstance(jsonUrl, basestring):
316 normalizeMask=int(jsonData[
"_urlNormalizeMask"])\
317 if "_urlNormalizeMask" in jsonData
else UrlNormalizator.NORM_NONE)
318 localRet.userId = siteUpdateObject.userId
319 if localRet
is not None:
320 siteUpdateObject.urls.append(localRet)
322 if siteUpdateObject.urls
is not None:
323 for url
in siteUpdateObject.urls:
324 url.status = dc.EventObjects.URL.STATUS_PROCESSED
326 raise Exceptions.DeserilizeException(
"SiteUpdate.urls json-field not found")
328 if "filters" in jsonData:
329 if jsonData[
"filters"]
is not None and type(jsonData[
"filters"])
is not types.ListType:
330 raise Exceptions.DeserilizeException(
"SiteUpdate.filters not list type")
331 siteUpdateObject.filters = self.checkFilters(jsonData[
"filters"], siteUpdateObject.id)
333 raise Exceptions.DeserilizeException(
"SiteUpdate.filters json-field not found")
334 if "properties" in jsonData:
335 if jsonData[
"properties"]
is not None and type(jsonData[
"properties"])
is not types.DictType
and \
336 type(jsonData[
"properties"])
is not types.ListType:
337 raise Exceptions.DeserilizeException(
"SiteUpdate.properties not dict type")
338 if type(jsonData[
"properties"])
is types.DictType:
339 self.checkProperties(jsonData[
"properties"])
340 siteUpdateObject.properties = jsonData[
"properties"]
342 raise Exceptions.DeserilizeException(
"SiteUpdate.properties json-field not found")
343 siteUpdateObject.state = self.simpleValueExtractor(
"state", jsonData, int(),
"SiteUpdate.state")
344 siteUpdateObject.priority = self.simpleValueExtractor(
"priority", jsonData, int(),
"SiteUpdate.priority")
345 siteUpdateObject.maxURLs = self.simpleValueExtractor(
"maxURLs", jsonData, int(),
"SiteUpdate.maxURLs")
346 siteUpdateObject.maxResources = self.simpleValueExtractor(
"maxResources", jsonData, int(), \
347 "SiteUpdate.maxResources")
348 siteUpdateObject.maxErrors = self.simpleValueExtractor(
"maxErrors", jsonData, int(),
"SiteUpdate.maxErrors")
349 siteUpdateObject.maxResourceSize = self.simpleValueExtractor(
"maxResourceSize", jsonData, int(), \
350 "SiteUpdate.maxResourceSize")
351 siteUpdateObject.requestDelay = self.simpleValueExtractor(
"requestDelay", jsonData, int(), \
352 "SiteUpdate.requestDelay")
353 siteUpdateObject.httpTimeout = self.simpleValueExtractor(
"httpTimeout", jsonData, float(),
"SiteUpdate.httpTimeout")
354 siteUpdateObject.errorMask = self.simpleValueExtractor(
"errorMask", jsonData, int(),
"SiteUpdate.errorMask")
355 siteUpdateObject.errors = self.simpleValueExtractor(
"errors", jsonData, int(),
"SiteUpdate.errors")
356 siteUpdateObject.urlType = self.simpleValueExtractor(
"urlType", jsonData, int(),
"SiteUpdate.urlType")
357 siteUpdateObject.contents = self.simpleValueExtractor(
"contents", jsonData, int(),
"SiteUpdate.contents")
358 siteUpdateObject.processingDelay = self.simpleValueExtractor(
"processingDelay", jsonData, int(), \
359 "SiteUpdate.processingDelay")
360 siteUpdateObject.size = self.simpleValueExtractor(
"size", jsonData, int(),
"SiteUpdate.size")
361 siteUpdateObject.avgSpeed = self.simpleValueExtractor(
"avgSpeed", jsonData, int(),
"SiteUpdate.avgSpeed")
362 siteUpdateObject.avgSpeedCounter = self.simpleValueExtractor(
"avgSpeedCounter", jsonData, int(), \
363 "SiteUpdate.avgSpeedCounter")
364 siteUpdateObject.recrawlPeriod = self.simpleValueExtractor(
"recrawlPeriod", jsonData, int(), \
365 "siteUpdateObject.recrawlPeriod")
366 siteUpdateObject.maxURLsFromPage = self.simpleValueExtractor(
"maxURLsFromPage", jsonData, int(), \
367 "siteUpdateObject.maxURLsFromPage")
368 if "recrawlDate" in jsonData:
369 siteUpdateObject.recrawlDate = self.timeExtractor(jsonData[
"recrawlDate"])
371 raise Exceptions.DeserilizeException(
"siteUpdateObject.recrawlDate json-field not found")
373 if "criterions" in jsonData
and jsonData[
"criterions"]
is not None:
374 if type(jsonData[
"criterions"])
is not types.DictType:
375 raise Exceptions.DeserilizeException(
"URLCleanup.criterions json-field type")
376 if hasattr(siteUpdateObject.criterions,
'__iter__'):
377 siteUpdateObject.criterions.update(jsonData[
"criterions"])
379 siteUpdateObject.criterions = jsonData[
"criterions"]
380 siteUpdateObject.collectedURLs = self.simpleValueExtractor(
"collectedURLs",
381 jsonData, int(),
"siteUpdateObject.collectedURLs")
382 siteUpdateObject.fetchType = self.simpleValueExtractor(
"fetchType", jsonData, int(),
"siteUpdateObject.fetchType")
383 if "newURLs" in jsonData:
384 siteUpdateObject.newURLs = self.simpleValueExtractor(
"newURLs", jsonData, int(),
"siteUpdateObject.newURLs")
385 if "deletedURLs" in jsonData:
386 siteUpdateObject.deletedURLs = self.simpleValueExtractor(
"deletedURLs", jsonData, int(),
387 "siteUpdateObject.deletedURLs")
388 if "tcDateProcess" in jsonData:
389 siteUpdateObject.tcDateProcess = self.timeExtractor(jsonData[
"tcDateProcess"])
390 if "categoryId" in jsonData:
391 siteUpdateObject.categoryId = self.simpleValueExtractor(
"categoryId", jsonData, int(),
392 "siteUpdateObject.categoryId")
393 except Exceptions.DeserilizeException:
395 except (ValueError, TypeError):
396 raise Exceptions.DeserilizeException(
"siteUpdateDeserialize, some field has invalid type")
397 return siteUpdateObject