A copyright violation detector running on Wikimedia Cloud Services https://tools.wmflabs.org/copyvios/
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 

45 rindas
1.4 KiB

  1. from datetime import datetime
  2. import os
  3. import re
  4. from shlex import split
  5. from subprocess import check_output, CalledProcessError, STDOUT
  6. os.environ["SGE_ROOT"] = "/sge/GE"
  7. def collect_status_info(context):
  8. try:
  9. result = str(check_output(split("qstat -j earwigbot"), stderr=STDOUT))
  10. except CalledProcessError:
  11. return ["offline", None, None, None]
  12. if result.startswith("Following jobs do not exist:"):
  13. return ["offline", None, None, None]
  14. lines = result.splitlines()[1:]
  15. data = {}
  16. for line in lines:
  17. re_key = re.match(r"(.*?):\s", line)
  18. re_val = re.search(r":\s*(.*?)$", line)
  19. if re_key and re_val:
  20. data[re_key.group(1)] = re_val
  21. since, uptime = _format_date(data["submission_time"])
  22. host = data["sge_o_host"]
  23. return ["online", since, uptime, host]
  24. def _format_date(time):
  25. start = datetime.strptime(time, "%a %b %d %H:%M:%S %Y")
  26. since = start.strftime("%b %d, %Y %H:%M:%S UTC")
  27. diff = (datetime.utcnow() - start)
  28. if diff.days:
  29. uptime = "{0} days".format(diff.days)
  30. if diff.seconds >= 3600:
  31. uptime += ", {0} hours".format(diff.seconds / 3600)
  32. else:
  33. if diff.seconds > 3600:
  34. uptime = "{0} hours".format(diff.seconds / 3600)
  35. elif diff.seconds > 60:
  36. uptime = "{0} minutes".format(diff.seconds / 60)
  37. else:
  38. uptime = "{0} seconds".format(diff.seconds)
  39. return (since, uptime)