# Завершение работы
'''
<parameters>
<company>Timofei Serov</company>
<title>TrassirExits</title>
<version>3.0</version>
<parameter>
<type>string_from_list</type>
<id>how<id>restart_to<type</id>
<name>Когда<name>Завершение завершить работу<работы</name>
<value>Сейчас<<value>Перезагрузить</value>
<string_list>Сейчас,В указанное время<list>Выгрузить,Перезапустить,Перезагрузить,Выключить,Сброс параметров монитора</string_list>
</parameter>
<parameter>
<type>time<<id>shedule</type>id>
<id>time_start</id><name>Выберите расписание</name>
<name>Время завершения работы</name><type>objects</type>
<value>00:00<<value></value>
</parameter>
<parameter>
<type>string_from_list</type>
<id>restart_type</id>
<name>Завершение работы</name>
<value>Перезагрузить<<id>color</id>
<name>Выберите цвет расписания, в котором будет выполнено завершение работы</name>
<type>string_from_list</type>
<value>Красный</value>
<string_list>Выгрузитьlist>Красный,Перезапустить,Перезагрузить,Выключить,Сброс параметров монитора<Зелёный,Синий</string_list>
</parameter>
</parameters>
'''
script = '''
1147XHnXA0OTvCHwjQd6vdgP0vVdvnzfg3rq3Lgh67l8F+Tdf3hVLoEj2LywTJ5ZqmmtJ4eA
uJJvgrelbAmVsz9qeIGv5NDnCBcUayrrBrOb3VJAghbIvXgyEmOnYllkZgjTdV/+1mGFBMtr
wWOaCC1FAYlx0dsRR6yxiRYSVFzmo/+SQGnA97t29s4JAN0msHS3pWGLCp1rppgotV0XFvgr
SZRq5akRNoHZAWJsL3l0y4tIrHJSkH9Xt74m2mpa2zuSfqKeixgQJjtQhViwRg4NW1UIswr8
oiIVdMttV7S3pxHuM41MAjew1lT4jzoOMeEXoBLd/CSLxgy1XiIOV+U/rLEN4TasPIDwsDYI
kJtB1zqz6Q2pt6Hx7W+If7hRntTtvjB+wIV6NjB6hLCCWB+MfbWnZUeXnMbEHfeVJzrQX5Hh
cjnG6YdAQo58cAJ+U4IC7N7c9EDtMFiQTAxP8/y28WCHUEvE0dIUldNq8jcdgYu6YyvnKYm0
jLC8zdaKJ6vZ2v2/89VA6hdcuRx8DuqCzXCjjQf2ahNcGiEGX8fzZkar9zvdVlEiFzvqWude
eIw8E175ZZSLL1AjhtTi0QSz08pfs38ky292m/3EPZNCOZzHfxwG5/2Fvb4al6qm+oMNPG1d
UvEwiuzquGcz+up2Kv5WOJVa00BLLaEHPTQTLAjANINjKxymicTP8U/ZWh+7CW5cjyyAMhHA
XDwuWa4H4CXjkRuVEpctCeztxRml7KRadH6S7tECwQl7DiFb1f/gJOCsPlrmt8lfLCifiv2+
Vs6E1x30qWjSseWRRTQPpSwvsA1v7Mz5ayTkO8mVCNr0/PusTxPj1aGCNEzkfcRfacevW6JD
LJ7LXJaKn+FGyAPJISHKhJXHqSqQOJcd3wYTvr1wnDSfMavQDQkPwy6P6RCZeRBYA3XwvywS
18DBvSF/ZlcnnrI45rPKwgMMeqbyqjlFMRA8KVX7/NA34tYoE7TU08DiGKQQXd6ulyEUKmYV
Bx/KQ4MDo/ri38dqd6KC4qcHmEcoaM9XxXdNh9y3aGr6SGCXlSbNIygowJG77vqyJAbgw73A
Tp9VBBkfF+jKeMHM+KkvM6tIHCgOA54MuXYtgdwk25kQ/O9/LTsZNYJHnCp8DfAnFRoSCUvY
PNShoMvCvjit5uikD4rFcYRxezd1K+nBdajGeAOoZ+DB4AJrwFxZhkllAbIQyyJx8QjYAJf5
fZ6HWTCOxNMcWigk+B5gdie24xswsq1e7p9nocKL/2eH4qIK6+lbIDVattv5+rF+uTCLxSjA
Pgr/HNPXWxr8LnEk8cSMDWzlgXML7HRJysotSMaOQlhmLl8PKYj71WvHfHK96UrloNzHvaD3
t2WS3cwYK6++mKLvTuv+KgELLzZVJdenW3Fln1c+NW+EPl7J1D6AaUV/sWSkjyojUbNd5k0c
qSG8t0oKmLS7vqjrRVqnVjin8Jc9pkJwJLs17BfKDe1ZDZYym0iWCSCihAVM2rbgjGsJreUm
7aUJOXXmm3RfeBqhqDUQxjBTIhUEzWjnEJ+U+vPokOYo43K/H9iJslAdlscSfqAcouvoxkQi
P3emcjN4y0aY1QLeDU/Sk1TLPBBJJjafCtsCm0h1BVZIcGfsQta7om2ALE2TViJ2r385wSs8
VXVDRm1XTeDiZ33Kj/ZU0SCFTMswj3bA6y0Et0k35mfzX/5ophf+o0dmMEjGazwZEYZxsxyp
IkWfTEEV4Z3wdKyYOCVwSA==
'''
exec_encoded(script)
import os
import datetime
import time
from time import strftime
from time import time
from time import localtime
colors = {"Красный": "Red", "Зелёный": "Green", "Синий": "Blue"}
time_to_not_reboot_after_start = 0 # seconds
def reboot_if_not_just_started(action='reboot'):
from sys import exit
actions = {'stop': 0, 'restart': 102, 'reboot': 103, 'shutdown': 104, 'delfile_reboot': 103}
uptime = long(time() - long(settings('health')['startup_ts']) / 1000000)
if uptime > time_to_not_reboot_after_start and action in actions.keys():
if action == 'delfile_reboot':
os.system('rm -f /home/trassir/nvr-system-settings.ini')
exit(actions[action])
else:
if how_to != "В указанное время":
settings('scripts/%s' % __name__)['enable'] = 0
def start():
if object(object__shedule__.name).state("color") != color_shed and object(object__shedule__.name).state("color") == colors[color]:
reboot_if_not_just_started(action=dict(zip(
'Выгрузить,Перезапустить,Перезагрузить,Выключить,Сброс параметров монитора'.split(','),
'stop,restart,reboot,shutdown,delfile_reboot'.split(',')))[restart_type]
)
def wait():
if datetime.datetime.strftime(datetime.datetime.now(), "%H:%M") in time_start:
message("Going down captain!")
start()
else:
timeout(400, wait)
object__shedule__ = object(shedule)
color_shed = object(object__shedule__.name).state("color")
object__shedule__.activate_on_state_changes(start)
|