Task.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. status_code=None,
  23. err_reason='',
  24. create_at=int2long(int(time.time())),
  25. update_at=int2long(int(time.time())),
  26. ):
  27. super(Task, self).__init__(
  28. name=name,
  29. url=url,
  30. domain=domain,
  31. base_url=base_url,
  32. search=search,
  33. classify=classify,
  34. groups=groups,
  35. origin=origin,
  36. weight=weight,
  37. status_code=status_code,
  38. err_reason=err_reason,
  39. create_at=create_at,
  40. update_at=update_at,
  41. )
  42. def _update_at(self):
  43. super(Task, self).__setitem__('update_at', int2long(int(time.time())))
  44. def __setitem__(self, key, value):
  45. self._update_at()
  46. super(Task, self).__setitem__(str(key), value)
  47. def __getitem__(self, item):
  48. self._update_at()
  49. return super(Task, self).__getitem__(item)