Browse Source

extaned Ticket class

blezz-tech 1 month ago
parent
commit
66e28327ed
4 changed files with 23 additions and 32 deletions
  1. 6 1
      handlers/classes/Ticket.py
  2. 2 0
      handlers/config.py
  3. 14 30
      handlers/handlers/open_access_request_pending.py
  4. 1 1
      handlers/lib.py

+ 6 - 1
handlers/classes/Ticket.py

@@ -1,4 +1,5 @@
 from datetime import datetime
+from config import DEFAULT_INTERVAL_COUNT
 
 class Ticket(object):
     def __init__(
@@ -14,7 +15,9 @@ class Ticket(object):
             priority,
             created_by,
             assigned_to=None,
-            note=None
+            note=None,
+
+            interval_count: int = DEFAULT_INTERVAL_COUNT
     ):
         self.id = id
         self.status = status
@@ -29,6 +32,8 @@ class Ticket(object):
         self.assigned_to = assigned_to
         self.note = note
 
+        self.interval_count = interval_count
+
     def __str__(self):
         return "{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}".format(
             self.id,

+ 2 - 0
handlers/config.py

@@ -33,3 +33,5 @@ API_URL = "https://testopen.sharix-app.org/"
 
 # LOG_DIR = "/var/log/"
 LOG_DIR = "./log/"
+
+DEFAULT_INTERVAL_COUNT = 10

+ 14 - 30
handlers/handlers/open_access_request_pending.py

@@ -7,6 +7,8 @@ from slixmpp.stanza import Message
 import jsonAndRequest as jsreq
 from time import sleep
 from lib import filter_interval_tickets
+from classes.Ticket import Ticket
+from typing import List
 
 botname = "open_access_request_pending"
 operating_status = 320
@@ -32,9 +34,10 @@ proceed_to = [
 
 INTERVAL_COUNT = 3
 # INTERVAL_TIME = 30 * 60  # 30 минут в секундах
-INTERVAL_TIME = 30 # Для проверки
+INTERVAL_TIME = 5 # Для проверки
 
-global ticket_list
+global tickets
+tickets: List[Ticket] 
 
 def message_handler(msg: Message):
     """Обработчик входящих сообщений"""
@@ -60,8 +63,8 @@ def start_handler():
             sleep(INTERVAL_TIME)
         else:
             for ticket in tickets:
-                ticket['interval_count'] -= 1
-                if ticket['interval_count'] <= 0:
+                ticket.interval_count -= 1
+                if ticket.interval_count <= 0:
                     processing_interval_unlimited(ticket)
                 else:
                     processing(ticket)
@@ -92,33 +95,14 @@ def processing(ticket):
     logging.debug(f"Конец обработки тикета {ticket.id}")
 
 
-def get_fake_data():
+def get_fake_data() -> List[Ticket]:
     return [
-        {
-            "ticket_id": 0,
-            "ticket_list_id": 0,
-            "interval_count": INTERVAL_COUNT
-        },
-        {
-            "ticket_id": 1,
-            "ticket_list_id": 0,
-            "interval_count": INTERVAL_COUNT
-        },
-        {
-            "ticket_id": 2,
-            "ticket_list_id": 0,
-            "interval_count": INTERVAL_COUNT
-        },
-        {
-            "ticket_id": 3,
-            "ticket_list_id": 0,
-            "interval_count": INTERVAL_COUNT
-        },
-        {
-            "ticket_id": 4,
-            "ticket_list_id": 0,
-            "interval_count": INTERVAL_COUNT
-        },
+        Ticket(0, "t", 0,0,0,0,0,0,0,0,0,"note"),
+        Ticket(1, "t", 0,1,0,0,0,0,0,0,0,"note"),
+        Ticket(2, "t", 0,2,0,0,0,0,0,0,0,"note"),
+        Ticket(3, "t", 0,3,0,0,0,0,0,0,0,"note"),
+        Ticket(4, "t", 0,4,0,0,0,0,0,0,0,"note"),
+        Ticket(5, "t", 0,5,0,0,0,0,0,0,0,"note"),
     ]
 
 # def get_token():

+ 1 - 1
handlers/lib.py

@@ -1,5 +1,5 @@
 
 def filter_interval_tickets(tickets):
     """ Очистка тикетов, у которых закончились попытки """
-    return filter(lambda ticket: ticket['interval_count'] > 0, tickets)
+    return filter(lambda ticket: ticket.interval_count > 0, tickets)