|
@@ -30,46 +30,49 @@ def send_reminder(user, ticket):
|
|
|
message = f"Напоминание: необходимо принять решение по тикету {ticket.id}"
|
|
|
|
|
|
# Здесь должен быть код для отправки сообщения пользователю
|
|
|
- bot.send_notification("st_request_in_process@ej.sharix-app.org", "message")
|
|
|
+
|
|
|
+ bot.send_notification("st_request_in_process@ej.sharix-app.org", message)
|
|
|
|
|
|
print(f"Отправлено напоминание пользователю {user} о тикете {ticket.id}")
|
|
|
|
|
|
-# def send_wontfix_notification(user, ticket):
|
|
|
-# message = f"Уведомление: тикет {ticket.id} был отмечен как WONTFIX из-за отсутствия действий"
|
|
|
-# # Здесь должен быть код для отправки сообщения пользователю
|
|
|
-# print(f"Отправлено уведомление пользователю {user} о WONTFIX для тикета {ticket.id}")
|
|
|
+def send_wontfix_notification(user, ticket):
|
|
|
+ message = f"Уведомление: тикет {ticket.id} был отмечен как WONTFIX из-за отсутствия действий"
|
|
|
+
|
|
|
+ # Здесь должен быть код для отправки сообщения пользователю
|
|
|
+
|
|
|
+ bot.send_notification("st_request_in_process@ej.sharix-app.org", message)
|
|
|
|
|
|
-def process_in_progress_ticket(ticket, max_reminders, default_reminder_interval, is_infinite_reminder, start_time):
|
|
|
- bot.bot_log(botname+" "+str(datetime.now())+" "+"Тикет в обработчике\n")
|
|
|
+ print(f"Отправлено уведомление пользователю {user} о WONTFIX для тикета {ticket.id}")
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+def process_in_progress_ticket(ticket, start_time):
|
|
|
tickets_new=jsreq.requestGetTicket_user(token, config.API_URL+f"tickets/api/ticket_list/{ticket.id}")
|
|
|
- if tickets_new:
|
|
|
- if not ticket.id in tickets:
|
|
|
- tickets[ticket.id] = {}
|
|
|
- for ticket_new in tickets_new:
|
|
|
- if ticket_new.id in tickets[ticket.id]:
|
|
|
- tickets[ticket.id][ticket_new.id] = {
|
|
|
- "reminders": 0,
|
|
|
- "last_date_reminder": start_time
|
|
|
- }
|
|
|
-
|
|
|
- if is_infinite_reminder or tickets[ticket.id][ticket_new.id]['reminders'] < max_reminders:
|
|
|
- if (start_time - tickets[ticket.id][ticket_new.id]["last_date_reminder"]) > default_reminder_interval:
|
|
|
- send_reminder("st_request_in_process@ej.sharix-app.org", ticket_new)
|
|
|
-
|
|
|
- tickets[ticket.id][ticket_new.id]["reminders"] += 1
|
|
|
- tickets[ticket.id][ticket_new.id]["last_date_reminder"] += start_time
|
|
|
- elif not is_infinite_reminder and tickets[ticket.id][ticket_new.id]['reminders'] >= max_reminders:
|
|
|
- del tickets[ticket.id][ticket_new.id]
|
|
|
- # Функция смены статуса на WONTFIX
|
|
|
+ for ticket_new in tickets_new:
|
|
|
+ if ticket_new.id in tickets:
|
|
|
+ tickets[ticket_new.id] = {
|
|
|
+ "reminders": 0,
|
|
|
+ "last_date_reminder": start_time
|
|
|
+ }
|
|
|
+
|
|
|
+ if IS_INFINITE_REMINDER or tickets[ticket_new.id]['reminders'] < MAX_REMINDERS:
|
|
|
+ if (start_time - tickets[ticket_new.id]["last_date_reminder"]) > DEFAULT_REMINDER_INTERVAL:
|
|
|
+ send_reminder("st_request_in_process@ej.sharix-app.org", ticket_new)
|
|
|
+
|
|
|
+ tickets[ticket_new.id]["reminders"] += 1
|
|
|
+ tickets[ticket_new.id]["last_date_reminder"] += start_time
|
|
|
+ elif not IS_INFINITE_REMINDER and tickets[ticket_new.id]['reminders'] >= MAX_REMINDERS:
|
|
|
+ del tickets[ticket_new.id]
|
|
|
+ # Функция смены статуса на WONTFIX
|
|
|
|
|
|
|
|
|
def status_changer():
|
|
|
while True:
|
|
|
ticketlist = jsreq.requestGetList(token, config.API_URL + "tickets/api/ticket_list/")
|
|
|
for ticket in ticketlist:
|
|
|
- bot.bot_log(f"{botname} {datetime.now().strftime('%Y-%m-%d')} Тикет {ticket.id} в обработке\n")
|
|
|
start_time = datetime.now()
|
|
|
- t1 = threading.Thread(target=process_in_progress_ticket, args=(ticket, MAX_REMINDERS, DEFAULT_REMINDER_INTERVAL, IS_INFINITE_REMINDER, start_time))
|
|
|
+ bot.bot_log(f"{botname} {start_time.strftime('%Y-%m-%d')} Тикет {ticket.id} в обработке\n")
|
|
|
+ t1 = threading.Thread(target=process_in_progress_ticket, args=(ticket, start_time))
|
|
|
t1.start()
|
|
|
t1.join() # Ожидаем завершения обработки тикета
|
|
|
time.sleep(DEFAULT_CHECK_INTERVAL)
|