Advertisement
Guest User

Untitled

a guest
Mar 31st, 2018
604
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.03 KB | None | 0 0
  1. # BS mark.1-55
  2. # /* coding: utf-8 */
  3.  
  4. # BlackSmith plugin
  5. # timer_plugin.py
  6.  
  7. # Coded by: WitcherGeralt (WitcherGeralt@jabber.ru)
  8. # http://witcher-team.ucoz.ru/
  9.  
  10. TCMDS = [u'пинг', u'тест', u'сказать', u'чисть', u'анекдот', u'тык', u'ботап', u'топик', u'призвать', u'участник']
  11.  
  12. TIMERS = {'col': 0, 'tmrs': {}}
  13.  
  14. def timer_col():
  15. col = 0
  16. for timer in TIMERS['tmrs']:
  17. if TIMERS['tmrs'][timer].isAlive():
  18. col = col + 1
  19. return col
  20.  
  21. def timer_bust_handler(timer):
  22. if timer > 86400:
  23. return u'Больше 24х часов нельзя!'
  24. elif timer < 60:
  25. return u'Меньше минуты бессмысленно!'
  26. return False
  27.  
  28. def handler_command_timer(type, source, body):
  29. if body:
  30. args = body.split()
  31. if len(args) >= 2:
  32. timer = args[0].strip()
  33. if check_number(timer):
  34. jid = handler_jid(source[0])
  35. timer = int(timer)
  36. command = args[1].strip().lower()
  37. error = False
  38. if command in [u'стоп', 'stop']:
  39. if jid in ADLIST:
  40. if timer in TIMERS['tmrs']:
  41. if TIMERS['tmrs'][timer].isAlive():
  42. try:
  43. TIMERS['tmrs'][timer].cancel()
  44. except:
  45. error = True
  46. if error:
  47. reply(type, source, u'Ошибка! Не удалось остановить таймер!')
  48. else:
  49. reply(type, source, u'Таймер остановлен!')
  50. else:
  51. reply(type, source, u'Таймер итак уже остановлен!')
  52. else:
  53. reply(type, source, u'Нет такого таймера!')
  54. else:
  55. reply(type, source, u'Эй! Ты не суперадмин!')
  56. elif timer_col() <= 15:
  57. bust = timer_bust_handler(timer)
  58. if bust:
  59. reply(type, source, bust)
  60. elif command in TCMDS or jid in ADLIST:
  61. if len(args) >= 3:
  62. Params = body[((body.lower()).find(command) + (len(command) + 1)):].strip()
  63. else:
  64. Params = ''
  65. if len(Params) <= 96:
  66. if COMMANDS.has_key(command):
  67. if COMMAND_HANDLERS.has_key(command):
  68. NUM = len(TIMERS['tmrs']) + 1
  69. handler = COMMAND_HANDLERS[command]
  70. print "command", command
  71. print "handler", handler
  72. print "num", NUM
  73.  
  74. TIMERS['tmrs'][NUM] = composeThr(timer, handler, None, (type, source, Params), command,)
  75. try:
  76. TIMERS['tmrs'][NUM].start()
  77. except:
  78. error = True
  79. if error:
  80. try:
  81. del TIMERS['tmrs'][NUM]
  82. except:
  83. pass
  84. reply(type, source, u'Ошибка! Не удалось создать таймер!')
  85. else:
  86. TIMERS['col'] += 1
  87. reply(type, source, u'Через %s выполню твою команду' % timeElapsed(timer))
  88. else:
  89. reply(type, source, u'нет такой команды')
  90. else:
  91. reply(type, source, u'слишком длинные параметры')
  92. else:
  93. reply(type, source, u'таймер на эту команду для тебя недоступен\nДоступны следующие таймеры: '+', '.join(sorted(TCMDS)))
  94. else:
  95. reply(type, source, u'Сейчас активно 16 таймеров, больше нельзя!')
  96. else:
  97. reply(type, source, u'Ты указал неверное число!')
  98. else:
  99. reply(type, source, u'Инвалид синтакс!')
  100. else:
  101. alive = ''
  102. for timer in TIMERS['tmrs']:
  103. if TIMERS['tmrs'][timer].isAlive():
  104. alive += str(timer)+' *'
  105. if alive:
  106. list = u' таймеров\n- %s из них активно активно (PIDs): %s' % (str(timer_col()), alive)
  107. else:
  108. list = u' таймеров - все завершены'
  109. if TIMERS['col'] != 0:
  110. repl = u'\nВсего было активировано '+str(TIMERS['col'])+list
  111. else:
  112. repl = u'Пока небыло активировано ни одного таймера'
  113. reply(type, source, repl)
  114.  
  115. command_handler(handler_command_timer, 20, "timer")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement