Менеджер сценариев работает

This commit is contained in:
2020-03-22 14:35:16 +03:00
parent 65161271bb
commit 7388fece07
5 changed files with 19 additions and 6 deletions

View File

@@ -72,7 +72,8 @@ def workshop():
new_scenario = db_routing.add_scenario(current_user.get_id(), newScenarioName, triggerID, triggerArgs, new_scenario = db_routing.add_scenario(current_user.get_id(), newScenarioName, triggerID, triggerArgs,
actionID, actionID,
actionArgs) actionArgs)
Executor(new_scenario) activeScenario = Executor(new_scenario)
activeScenario.start()
return redirect(url_for('workshop')) return redirect(url_for('workshop'))
if 'TGUsername' in request.form: if 'TGUsername' in request.form:

View File

@@ -2,6 +2,8 @@ from db_routing import add_trigger, add_action
def db_fill(): def db_fill():
add_trigger('Тест', 'test_trigger')
add_trigger('Будильник', 'alarm_clock') add_trigger('Будильник', 'alarm_clock')
add_trigger('Проверить почту', 'check_email') add_trigger('Проверить почту', 'check_email')
add_action('Тест', 'test_action')

View File

@@ -119,7 +119,6 @@ def get_user_scripts(current_user_id):
def delete_scenario(scenario_id): def delete_scenario(scenario_id):
print(scenario_id)
scenario = Scenario.query.filter_by(id=scenario_id).first() scenario = Scenario.query.filter_by(id=scenario_id).first()
db.session.delete(scenario) db.session.delete(scenario)
db.session.commit() db.session.commit()

View File

@@ -1,11 +1,11 @@
from threading import Thread from threading import Thread
from triggers import * import triggers
import db_routing import db_routing
class Executor(Thread): class Executor(Thread):
def __init__(self, scenario): def __init__(self, scenario):
threading.Thread.__init__(self) Thread.__init__(self)
self.sceanrio_id = scenario.id self.sceanrio_id = scenario.id
self.trigger_def = db_routing.get_trigers(scenario.id).def_name self.trigger_def = db_routing.get_trigers(scenario.id).def_name
self.trigger_args = scenario.trigger_args self.trigger_args = scenario.trigger_args
@@ -13,8 +13,10 @@ class Executor(Thread):
self.action_args = scenario.action_args self.action_args = scenario.action_args
def execute(self): def execute(self):
self.trigger_def(self.trigger_args) trigger = getattr(triggers, self.trigger_def)
self.action_def.def_name(self.action_args) trigger(self.trigger_args)
action = getattr(triggers, self.action_def)
action(self.action_args)
def run(self): def run(self):
thread = Thread(target=self.execute) thread = Thread(target=self.execute)

View File

@@ -68,6 +68,15 @@ def check_email(gmail_user, gmail_pass):
# Чтобы запустить будильник 1, Парсер 2 # Чтобы запустить будильник 1, Парсер 2
Mode = 2 Mode = 2
def test_trigger(var):
time.sleep(int(var))
def test_action(var):
print("Я пишу", var)
# Для создания потока будильника передаются: # Для создания потока будильника передаются:
# Id юзера который поставил будильник, и значения времени которые он поставил. Поток создаётся с именем(id) юзера # Id юзера который поставил будильник, и значения времени которые он поставил. Поток создаётся с именем(id) юзера
if __name__ == '__main__': if __name__ == '__main__':