|
@@ -20,13 +20,17 @@ proceed_to = ["numbers"]
|
|
|
|
|
|
# Новые параметры
|
|
# Новые параметры
|
|
IS_INFINITE_REMINDER = False
|
|
IS_INFINITE_REMINDER = False
|
|
-DEFAULT_REMINDER_INTERVAL = 30 * 60 # 30 минут в секундах
|
|
|
|
|
|
+# DEFAULT_REMINDER_INTERVAL = 30 * 60 # 30 минут в секундах
|
|
MAX_REMINDERS = 3 # Максимальное количество напоминаний
|
|
MAX_REMINDERS = 3 # Максимальное количество напоминаний
|
|
-DEFAULT_CHECK_INTERVAL = 5 * 60 # Проверка тикетов каждые 5 минут
|
|
|
|
-
|
|
|
|
|
|
+# DEFAULT_CHECK_INTERVAL = 5 * 60 # Проверка тикетов каждые 5 минут
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+DEFAULT_REMINDER_INTERVAL = 5 # 30 минут в секундах
|
|
|
|
+DEFAULT_CHECK_INTERVAL = 1
|
|
|
|
+
|
|
tickets_nt = {}
|
|
tickets_nt = {}
|
|
|
|
|
|
-def send_reminder(user, ticket):
|
|
|
|
|
|
+def send_reminder_notification(ticket):
|
|
message = f"Напоминание: необходимо принять решение по тикету {ticket.id}"
|
|
message = f"Напоминание: необходимо принять решение по тикету {ticket.id}"
|
|
|
|
|
|
# Здесь должен быть код для отправки сообщения пользователю
|
|
# Здесь должен быть код для отправки сообщения пользователю
|
|
@@ -35,7 +39,7 @@ def send_reminder(user, ticket):
|
|
|
|
|
|
print(f"Отправлено напоминание пользователю {user} о тикете {ticket.id}")
|
|
print(f"Отправлено напоминание пользователю {user} о тикете {ticket.id}")
|
|
|
|
|
|
-def send_wontfix_notification(user, ticket):
|
|
|
|
|
|
+def send_wontfix_notification(ticket):
|
|
message = f"Уведомление: тикет {ticket.id} был отмечен как WONTFIX из-за отсутствия действий"
|
|
message = f"Уведомление: тикет {ticket.id} был отмечен как WONTFIX из-за отсутствия действий"
|
|
|
|
|
|
# Здесь должен быть код для отправки сообщения пользователю
|
|
# Здесь должен быть код для отправки сообщения пользователю
|
|
@@ -48,21 +52,24 @@ def send_wontfix_notification(user, ticket):
|
|
|
|
|
|
def ticket_worker(ticket, start_time):
|
|
def ticket_worker(ticket, start_time):
|
|
if ticket.status == 131:
|
|
if ticket.status == 131:
|
|
|
|
+ print(tickets_nt)
|
|
if ticket.id not in tickets_nt:
|
|
if ticket.id not in tickets_nt:
|
|
tickets_nt[ticket.id] = {
|
|
tickets_nt[ticket.id] = {
|
|
"reminders": 0,
|
|
"reminders": 0,
|
|
"last_date_reminder": start_time
|
|
"last_date_reminder": start_time
|
|
}
|
|
}
|
|
-
|
|
|
|
- if (start_time - tickets_nt[ticket.id]["last_date_reminder"]) > DEFAULT_REMINDER_INTERVAL:
|
|
|
|
|
|
+
|
|
|
|
+ dtime_notification = start_time - tickets_nt[ticket.id]["last_date_reminder"]
|
|
|
|
+
|
|
|
|
+ if dtime_notification.seconds > DEFAULT_REMINDER_INTERVAL:
|
|
|
|
+ tickets_nt[ticket.id]["reminders"] += 1
|
|
|
|
+ tickets_nt[ticket.id]["last_date_reminder"] = start_time
|
|
|
|
+
|
|
if IS_INFINITE_REMINDER or tickets_nt[ticket.id]['reminders'] < MAX_REMINDERS:
|
|
if IS_INFINITE_REMINDER or tickets_nt[ticket.id]['reminders'] < MAX_REMINDERS:
|
|
- send_reminder("st_request_in_process@ej.sharix-app.org", ticket)
|
|
|
|
|
|
+ send_reminder_notification(ticket)
|
|
else:
|
|
else:
|
|
- del tickets_nt[ticket.id]
|
|
|
|
- # Функция смены статуса на WONTFIX
|
|
|
|
-
|
|
|
|
- tickets_nt[ticket.id]["reminders"] += 1
|
|
|
|
- tickets_nt[ticket.id]["last_date_reminder"] += start_time
|
|
|
|
|
|
+ del tickets_nt[ticket.id]
|
|
|
|
+ send_wontfix_notification(ticket)
|
|
|
|
|
|
|
|
|
|
def ticket_list_worker(ticket_list, start_time):
|
|
def ticket_list_worker(ticket_list, start_time):
|
|
@@ -71,6 +78,7 @@ def ticket_list_worker(ticket_list, start_time):
|
|
ticket_worker(ticket, start_time)
|
|
ticket_worker(ticket, start_time)
|
|
|
|
|
|
def status_changer():
|
|
def status_changer():
|
|
|
|
+ x = 0
|
|
while True:
|
|
while True:
|
|
ticket_lists = jsreq.requestGetList(token, config.API_URL + "tickets/api/ticket_list/")
|
|
ticket_lists = jsreq.requestGetList(token, config.API_URL + "tickets/api/ticket_list/")
|
|
for ticket_list in ticket_lists:
|
|
for ticket_list in ticket_lists:
|
|
@@ -80,6 +88,8 @@ def status_changer():
|
|
t1.start()
|
|
t1.start()
|
|
t1.join() # Ожидаем завершения обработки тикета
|
|
t1.join() # Ожидаем завершения обработки тикета
|
|
time.sleep(DEFAULT_CHECK_INTERVAL)
|
|
time.sleep(DEFAULT_CHECK_INTERVAL)
|
|
|
|
+ print(f"|||| Интевал {x} ||||")
|
|
|
|
+ x += 1
|
|
|
|
|
|
# Инициализация и запуск бота
|
|
# Инициализация и запуск бота
|
|
token = jsreq.requestGetToken(config.API_URL + "api/v1/auth/token/login/")
|
|
token = jsreq.requestGetToken(config.API_URL + "api/v1/auth/token/login/")
|