From 7388fece07c950e163e6cd3360e0bfc73f0a6913 Mon Sep 17 00:00:00 2001 From: burzuf Date: Sun, 22 Mar 2020 14:35:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=B5=D0=BD=D0=B5=D0=B4=D0=B6=D0=B5?= =?UTF-8?q?=D1=80=20=D1=81=D1=86=D0=B5=D0=BD=D0=B0=D1=80=D0=B8=D0=B5=D0=B2?= =?UTF-8?q?=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __init__.py | 3 ++- db_init.py | 2 ++ db_routing.py | 1 - scenario_manager.py | 10 ++++++---- triggers.py | 9 +++++++++ 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/__init__.py b/__init__.py index d267f52..57a2428 100644 --- a/__init__.py +++ b/__init__.py @@ -72,7 +72,8 @@ def workshop(): new_scenario = db_routing.add_scenario(current_user.get_id(), newScenarioName, triggerID, triggerArgs, actionID, actionArgs) - Executor(new_scenario) + activeScenario = Executor(new_scenario) + activeScenario.start() return redirect(url_for('workshop')) if 'TGUsername' in request.form: diff --git a/db_init.py b/db_init.py index 36921df..f42305d 100644 --- a/db_init.py +++ b/db_init.py @@ -2,6 +2,8 @@ from db_routing import add_trigger, add_action def db_fill(): + add_trigger('Тест', 'test_trigger') add_trigger('Будильник', 'alarm_clock') add_trigger('Проверить почту', 'check_email') + add_action('Тест', 'test_action') diff --git a/db_routing.py b/db_routing.py index 47d546b..f3c845f 100644 --- a/db_routing.py +++ b/db_routing.py @@ -119,7 +119,6 @@ def get_user_scripts(current_user_id): def delete_scenario(scenario_id): - print(scenario_id) scenario = Scenario.query.filter_by(id=scenario_id).first() db.session.delete(scenario) db.session.commit() diff --git a/scenario_manager.py b/scenario_manager.py index aec1bbd..24d52a0 100644 --- a/scenario_manager.py +++ b/scenario_manager.py @@ -1,11 +1,11 @@ from threading import Thread -from triggers import * +import triggers import db_routing class Executor(Thread): def __init__(self, scenario): - threading.Thread.__init__(self) + Thread.__init__(self) self.sceanrio_id = scenario.id self.trigger_def = db_routing.get_trigers(scenario.id).def_name self.trigger_args = scenario.trigger_args @@ -13,8 +13,10 @@ class Executor(Thread): self.action_args = scenario.action_args def execute(self): - self.trigger_def(self.trigger_args) - self.action_def.def_name(self.action_args) + trigger = getattr(triggers, self.trigger_def) + trigger(self.trigger_args) + action = getattr(triggers, self.action_def) + action(self.action_args) def run(self): thread = Thread(target=self.execute) diff --git a/triggers.py b/triggers.py index bbf4053..b55ebf8 100644 --- a/triggers.py +++ b/triggers.py @@ -68,6 +68,15 @@ def check_email(gmail_user, gmail_pass): # Чтобы запустить будильник 1, Парсер 2 Mode = 2 + +def test_trigger(var): + time.sleep(int(var)) + + +def test_action(var): + print("Я пишу", var) + + # Для создания потока будильника передаются: # Id юзера который поставил будильник, и значения времени которые он поставил. Поток создаётся с именем(id) юзера if __name__ == '__main__':