Task.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import time
  2. from collections import UserDict
  3. from common.databases import int2long
  4. class Task(UserDict):
  5. """
  6. # >>> import json
  7. # >>> task = Task(name='剑鱼')
  8. # >>> task_str = json.dumps(task, default=lambda obj: obj.__dict__['data'], ensure_ascii=False)
  9. # >>> task_obj = json.loads(task_str, object_hook=lambda d: Task(**d))
  10. """
  11. def __init__(
  12. self,
  13. name='',
  14. url='',
  15. domain='',
  16. base_url='',
  17. search='',
  18. classify='',
  19. groups='',
  20. origin='',
  21. weight=1,
  22. depth=None,
  23. status_code=None,
  24. err_reason='',
  25. create_at=int2long(int(time.time())),
  26. update_at=int2long(int(time.time())),
  27. ):
  28. super(Task, self).__init__(
  29. name=name,
  30. url=url,
  31. domain=domain,
  32. base_url=base_url,
  33. search=search,
  34. classify=classify,
  35. groups=groups,
  36. origin=origin,
  37. weight=weight,
  38. status_code=status_code,
  39. depth=depth,
  40. err_reason=err_reason,
  41. create_at=create_at,
  42. update_at=update_at,
  43. )
  44. def _update_at(self):
  45. super(Task, self).__setitem__('update_at', int2long(int(time.time())))
  46. def __setitem__(self, key, value):
  47. self._update_at()
  48. super(Task, self).__setitem__(str(key), value)
  49. def __getitem__(self, item):
  50. self._update_at()
  51. return super(Task, self).__getitem__(item)