Browse Source

new logic in func

david.berlinskiy 4 months ago
parent
commit
5698d9847d

+ 8 - 13
handlers/jsonAndRequest.py

@@ -117,20 +117,17 @@ https://wiki.sharix-app.org/doku.php/open/tech/dev/sharix_open_-_primery_json
         #\n добавляете в местах с пустой строкой в шаблоне
         
 class Order(object):
-    def __init__(self, id, ticket, status, title, note, id_metaservice, is_global, is_visible, service, service_type,time_created, time_placed, time_start=None, time_start_predicted=None, time_finish_predicted=None, time_start_real=None, time_finish_real=None, order_place_type=None, order_place_start=None, order_place_start_gps=None, order_place_start_real=None, order_place_start_real_gps=None, order_place_finish_predicted=None, order_place_finish_predicted_gps=None, order_place_finish_real=None, order_place_finish_real_gps=None, predicted_price=None, real_price=None, payment_transaction_id=None, rating_id=None, provider=None, provider_screen_name=None, receiver=None, receiver_screen_name=None, client_id=None, resource_id=None, attempts=None, asap=None):
+    def __init__(self, id, ticket, status, title, note, id_metaservice, is_global, is_visible, service, service_type, time_created, time_placed, time_start=None, time_start_predicted=None, time_finish_predicted=None, time_start_real=None, time_finish_real=None, order_place_type=None, order_place_start=None, order_place_start_gps=None, order_place_start_real=None, order_place_start_real_gps=None, order_place_finish_predicted=None, order_place_finish_predicted_gps=None, order_place_finish_real=None, order_place_finish_real_gps=None, predicted_price=None, real_price=None, payment_transaction_id=None, rating_id=None, provider=None, provider_screen_name=None, receiver=None, receiver_screen_name=None, client_id=None, resource_id=None, attempts=None, asap=None, money_limit=None, tasks=None, proceed_before_arrival=False, confirmation=False):
         self.id = id
         self.ticket = ticket
         self.status = status
-
         self.title = title
         self.note = note
-
         self.id_metaservice = id_metaservice
         self.is_global = is_global
         self.is_visible = is_visible
         self.service = service
         self.service_type = service_type
-
         self.time_created = time_created
         self.time_placed = time_placed
         self.time_start = time_start
@@ -138,8 +135,7 @@ class Order(object):
         self.time_finish_predicted = time_finish_predicted
         self.time_start_real = time_start_real
         self.time_finish_real = time_finish_real
-
-        self.order_place_type =order_place_type
+        self.order_place_type = order_place_type
         self.order_place_start = order_place_start
         self.order_place_start_gps = order_place_start_gps
         self.order_place_start_real = order_place_start_real
@@ -148,13 +144,10 @@ class Order(object):
         self.order_place_finish_predicted_gps = order_place_finish_predicted_gps
         self.order_place_finish_real = order_place_finish_real
         self.order_place_finish_real_gps = order_place_finish_real_gps
-
         self.predicted_price = predicted_price
         self.real_price = real_price
-
         self.payment_transaction_id = payment_transaction_id
         self.rating_id = rating_id
-
         self.provider = provider
         self.provider_screen_name = provider_screen_name
         self.receiver = receiver
@@ -163,10 +156,13 @@ class Order(object):
         self.resource_id = resource_id
         self.attempts = attempts
         self.asap = asap
-        #доделать до конца по аналогии с закоммиченным json
-    def __str__(self):
-        return "{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}, {19}, {20}, {21}, {22}, {23}, {24}, {25}, {26}, {27}, {28}, {29}, {30}, {31}".format( self.id, self.ticket, self.status, self.title, self.note, self.id_metaservice, self.is_global, self.is_visible, self.service, self.service_type, self.time_created,self.time_placed, self.time_start, self.time_start_predicted, self.time_finish_predicted, self.time_start_real, self.time_finish_real, self.order_place_type, self.order_place_start, self.order_place_start_gps, self.order_place_start_real, self.order_place_start_real_gps, self.order_place_finish_predicted, self.order_place_finish_predicted_gps, self.order_place_finish_real, self.order_place_finish_real_gps, self.predicted_price, self.real_price, self.payment_transaction_id, self.rating_id, self.provider, self.provider_screen_name, self.receiver, self.receiver_screen_name, self.client_id, self.resource_id, self.attempts, self.asap)
+        self.money_limit = money_limit
+        self.tasks = tasks
+        self.proceed_before_arrival = proceed_before_arrival
+        self.confirmation = confirmation
 
+    def __str__(self):
+        return "{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}, {19}, {20}, {21}, {22}, {23}, {24}, {25}, {26}, {27}, {28}, {29}, {30}, {31}, {32}, {33}, {34}, {35}, {36}, {37}, {38}".format(self.id, self.ticket, self.status, self.title, self.note, self.id_metaservice, self.is_global, self.is_visible, self.service, self.service_type, self.time_created, self.time_placed, self.time_start, self.time_start_predicted, self.time_finish_predicted, self.time_start_real, self.time_finish_real, self.order_place_type, self.order_place_start, self.order_place_start_gps, self.order_place_start_real, self.order_place_start_real_gps, self.order_place_finish_predicted, self.order_place_finish_predicted_gps, self.order_place_finish_real, self.order_place_finish_real_gps, self.predicted_price, self.real_price, self.payment_transaction_id, self.rating_id, self.provider, self.provider_screen_name, self.receiver, self.receiver_screen_name, self.client_id, self.resource_id, self.attempts, self.asap, self.money_limit, self.tasks, self.proceed_before_arrival, self.confirmation)
 
 
 
@@ -372,6 +368,5 @@ def change_to_task(localtask,token):
         'Content-Type': 'application/json'  # Установка заголовка Content-Type
     }
     data = json.dumps(localtask.__dict__)
-    print(data)
     response = requests.patch(config.API_URL+f"/dbsynce/api/orders/{localtask.id}/", headers=headers, data=data)
     return response

+ 12 - 0
handlers/open_servicerequest_accepted.py

@@ -35,6 +35,14 @@ proceed_to=[botname,"open_servicerequest_process@ej.sharix-app.org", "open_servi
 #максимальное значение попыток обработать заказ
 idle_value=10
 
+def log_handler():
+    while True:
+        with open(f'{botname}.txt', 'a') as log_file:
+            log_file.write(f"{time.strftime('%Y-%m-%d %H:%M:%S')} - {botname} is still running...\n")
+        time.sleep(3600)
+
+
+
 # обработчик входящих сообщений
 def message_handler(conn, mess):
     text = mess.getBody()#текст сообщения боту
@@ -115,6 +123,7 @@ def open_servicerequest_accepted_process(localtask):
     #         pass
     
 
+
 def send_message():
     pass
 
@@ -122,6 +131,9 @@ def create_ticket():
     pass
 
 def open_servicerequest_accepted():
+    log_thread = threading.Thread(target=log_handler)
+    log_thread.daemon = True 
+    log_thread.start()
     while (len(tasklist)):
         localtask=tasklist.pop(0)
         bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " "+ "Заказ в очереди на обработке\n")

+ 39 - 16
handlers/open_servicerequest_assigned.py

@@ -37,6 +37,13 @@ proceed_to=[botname, "open_servicerequest_accepted@ej.sharix-app.org", "open_ser
 #максимальное значение попыток обработать заказ
 idle_value=10
 
+def log_handler():
+    while True:
+        with open(f'{botname}.txt', 'a') as log_file:
+            log_file.write(f"{time.strftime('%Y-%m-%d %H:%M:%S')} - {botname} is still running...\n")
+        time.sleep(3600)
+
+
 # обработчик входящих сообщений
 def message_handler(conn, mess):
     text = mess.getBody()#текст сообщения боту
@@ -64,25 +71,38 @@ def open_servicerequest_assigned_wait(period,localtask):
 def wait_for_answer(localtask):
     order = localtask
     driver = drivers[0]
-    send_message(order,driver)      # Здесь можно реализовать логику выбора водителя
+    send_message(order,driver)
+ # Здесь можно реализовать логику выбора водителя
     while True:
-        if len(answers) > 0:
-            answer = answers.pop(0)
-            if answer.answer == 'Accept':
-                localtask.status='221'
-                jsreq.change_to_task(localtask,token)    
-                bot.proceed_status(proceed_to[1], localtask)
-                bot.bot_log(botname + " " + str(datetime.now()) + f" Заказ отправлен на {proceed_to[1]}\n")
+        start_time = time.time()
+        if time.time()+400 - start_time > 300: ##Логика временная
+            if len(answers) > 0:
+                answer = answers.pop(0)
+                if answer.answer == 'ACCEPT':
+                    localtask.status='221'
+                    jsreq.change_to_task(localtask,token)    
+                    bot.proceed_status(proceed_to[1], localtask)
+                    bot.bot_log(botname + " " + str(datetime.now()) + f" Заказ отправлен на {proceed_to[1]}\n")
+                elif answer.answer == 'DECLINE':
+                    localtask.status='229'
+                    localtask.provider=None
+                    jsreq.change_to_task(localtask,token)
+                    bot.proceed_status(proceed_to[2], localtask)
+                    bot.bot_log(botname + " " + str(datetime.now()) + f" Заказ отправлен на {proceed_to[2]}\n")
+                else:
+                    bot.bot_log(botname + " " + str(datetime.now()) + f"Ошибка ответа\n")
+                break
             else:
-                localtask.status='229'
-                localtask.provider=None
-                jsreq.change_to_task(localtask,token)
-                bot.proceed_status(proceed_to[2], localtask)
-                bot.bot_log(botname + " " + str(datetime.now()) + f" Заказ отправлен на {proceed_to[2]}\n")
-            break
+                print("Ожидание ответа...")
+                time.sleep(3)
         else:
-            print("Ожидание ответа...")
-            time.sleep(1)
+            localtask.status='229'
+            localtask.provider=None
+            jsreq.change_to_task(localtask,token)
+            bot.proceed_status(proceed_to[2], localtask)
+            bot.bot_log(botname + " " + str(datetime.now()) + f" Заказ отправлен на {proceed_to[2]}\n")
+            break
+            
 
 def open_servicerequest_assigned_process(localtask):
     bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
@@ -109,6 +129,9 @@ def send_message(order,driver):
 
 
 def open_servicerequest_assigned():
+    log_thread = threading.Thread(target=log_handler)
+    log_thread.daemon = True 
+    log_thread.start()
     while (len(tasklist)):
         localtask=tasklist.pop(0)
         if (localtask.status!=operating_status):

+ 39 - 40
handlers/open_servicerequest_booked.py

@@ -15,10 +15,14 @@ import threading
 import jsonAndRequest as jsreq
 
 global tasklist
-
+def log_handler():
+    while True:
+        with open('log.txt', 'a') as log_file:
+            log_file.write(f"{time.strftime('%Y-%m-%d %H:%M:%S')} - Function is still running...\n")
+        time.sleep(3600)
 botname="open_servicerequest_booked"
 
-operating_status=211
+operating_status='211'
 JID=botname+"@"+config.JSERVER
 PORT=config.PORT
 
@@ -35,6 +39,12 @@ proceed_to=["open_servicerequest_assigned@ej.sharix-app.org","open_servicereques
 #максимальное значение попыток обработать заказ
 idle_value=10
 
+def log_handler():
+    while True:
+        with open(f'{botname}.txt', 'a') as log_file:
+            log_file.write(f"{time.strftime('%Y-%m-%d %H:%M:%S')} - {botname} is still running...\n")
+        time.sleep(3600)
+
 # обработчик входящих сообщений
 def message_handler(conn, mess):
     text = mess.getBody()#текст сообщения боту
@@ -42,9 +52,15 @@ def message_handler(conn, mess):
     if (str(user).split("/")[0]) in listen_to:
         # print (str(user).split("/")[0])
         if text is not None:
-            orderObj = jsreq.jsonToOrder(text)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
+            try :
+                orderObj = jsreq.jsonToOrder(text)
+                tasklist.append(orderObj)
+                bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
+            except:
+                bot.proceed_status(proceed_to[-1], text)
+                bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ успешно обработан и отправлен на assigned\n")
+            
+            
 
 def open_servicerequest_booked_wait(period,localtask):
     bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
@@ -58,53 +74,27 @@ def open_servicerequest_booked_wait(period,localtask):
 
 def open_servicerequest_booked_process(localtask):
     bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ в обработчике\n")
-    # order = jsreq.jsonToOrder(localtask)
-    #Пока заглушка
-    
-        # balance = get_balance(order.client_id)
-        # print(balance)
-        # price = order.real_price
-        # if balance > price:
-        #     #Заказ на основного водителя?
-        #     if order.provider:
-        #         bot.proceed_status(proceed_to[1], localtask)
-        #         bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ успешно обработан\n")
-        #     else:
-        #         # Проверка срочности заказа
-        #         if order.asap:
-        #             #Заглушка назначение исполнителя системой
-        #             if set_provider(order.ticket, order.provider) == "success":
-        #                 bot.proceed_status(proceed_to[0], localtask)
-        #             else:
-        #                 bot.bot_log(botname+" "+str(datetime.now())+" "+"Ошибка назначения исполнителя\n")
-        #         else:
-        #             bot.proceed_status(proceed_to[1], localtask)
-        #         bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ успешно обработан\n")
-        # else:
-        #     # Заглушка получения оплаты от клиента
-        #     pass
-        # price = localtask.real_price
-        #Заказ на основного водителя?
     
     if not localtask.provider:
-        answer,provider = set_provider(localtask.id)
-        print(answer,provider)
+        answer,provider,service = set_provider(localtask.id)
+        # localtask.service =service.id
+        localtask.service = service['id']
         if set_provider(localtask.id):
-            print('Водитель успешно установлен')
+            bot.bot_log(botname+" "+str(datetime.now())+" "+"Водитель успешно установлен\n")
         else:
-            print('Ошибка водитель не был установлен')
+            bot.bot_log(botname+" "+str(datetime.now())+" "+"'Ошибка водитель не был установлен'\n")
         localtask.provider = provider
     current_time = datetime.now()
     
     # if localtask.asap or (current_time - datetime.fromisoformat(localtask.time_start_predicted) < timedelta(hours=3)):
     if localtask.asap:
         localtask.status = '212'
-        jsreq.change_to_task(localtask,token)
+        print(jsreq.change_to_task(localtask,token))
         bot.proceed_status(proceed_to[0], localtask)
         bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ успешно обработан и отправлен на assigned\n")
     else:
         localtask.status = '220'
-        jsreq.change_to_task(localtask,token)
+        print(jsreq.change_to_task(localtask,token))
         bot.proceed_status(proceed_to[1], localtask)
         bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ успешно обработан и отправлен на pending\n")
         
@@ -149,11 +139,13 @@ def set_provider(localtask_id):
     token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"my/api/v1/auth/token/login/")
     headers = {'Authorization': f'Token {token}'}
     provider = choose_provider(headers,'geoposition')
+    service = requests.get(config.API_URL+f"/dbsynce/api/service/?id_provider={provider}", headers=headers)
+    service=service.json()[0]
     data = {'provider':int(provider)}
     # print(data)
     # print(str(config.API_URL+f"/dbsynce/api/orders/{localtask_id}/"))
     response = requests.patch(config.API_URL+f"/dbsynce/api/orders/{localtask_id}/", headers=headers, json=data)
-    return response ,provider
+    return response ,provider , service
 
     
     # if not ordertext:
@@ -167,11 +159,18 @@ def set_provider(localtask_id):
     #         print(ex)
 
 def open_servicerequest_booked():
+    log_thread = threading.Thread(target=log_handler)
+    log_thread.daemon = True 
+    log_thread.start()
+    
+    
+    
     while (len(tasklist)):
         localtask=tasklist.pop(0)
         if (str(localtask.status)!=str(operating_status)):
             # bot.proceed_status(proceed_to[-1],localtask) #временная проверка отправки
-            localtask.status=239
+            print(localtask)
+            localtask.status='239'
             jsreq.change_to_task(localtask,token)
             bot.proceed_status(proceed_to[-1],localtask)
             bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ не по адресу, перенаправляем на форсмажор\n")

+ 44 - 26
handlers/open_servicerequest_closed.py

@@ -14,8 +14,23 @@ import threading
 #test
 import jsonAndRequest as jsreq
 
+
 global tasklist
 
+
+
+botname="open_servicerequest_booked"
+##############################
+# operating_status='211'
+# JID=botname+"@"+config.JSERVER
+# PORT=config.PORT
+
+# PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
+
+
+
+
+###################
 botname="open_servicerequest_closed"
 
 operating_status=239
@@ -26,8 +41,12 @@ PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
 
 print(JID, PASSWORD)
 
+token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"my/api/v1/auth/token/login/")
+headers = {'Authorization': f'Token {token}'}
+
+
 #таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["799999999990@ej.sharix-app.org"]
+listen_to=["799999999990@ej.sharix-app.org","test@ej.sharix-app.org"]
 
 #тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
 proceed_to=[botname, "open_strequest_new@ej.sharix-app.org", "open_servicerequest_closed@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
@@ -35,20 +54,20 @@ proceed_to=[botname, "open_strequest_new@ej.sharix-app.org", "open_servicereques
 #максимальное значение попыток обработать заказ
 idle_value=10
 
+def log_handler():
+    while True:
+        with open(f'{botname}.txt', 'a') as log_file:
+            log_file.write(f"{time.strftime('%Y-%m-%d %H:%M:%S')} - {botname} is still running...\n")
+        time.sleep(3600)
+
 
 # обработчик входящих сообщений
 def message_handler(conn, mess):
     text = mess.getBody()#текст сообщения боту
     user = mess.getFrom()#отправитель сообщения
-   
-    print (str(user).split("/")[0])
     if (str(user).split("/")[0]) in listen_to:
-        print(text)
-        print(mess)
-
         if text is not None:
             orderObj = jsreq.jsonToOrder(text)
-            print (orderObj)
             tasklist.append(orderObj)
             bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
 
@@ -65,41 +84,41 @@ def open_servicerequest_closed_wait(period,localtask):
 
 def open_servicerequest_closed_process(localtask):
     bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-    
-    order = jsreq.jsonToOrder(localtask)
-
-    
-    bot.proceed_status(proceed_to[2],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
+    response = requests.delete(config.API_URL+f"/dbsynce/api/orders/{localtask.id}/",headers=headers)
+    text = (config.API_URL+f"dbsynce/api/orders/{localtask.id}/")
+    if response:      
+        bot.proceed_status(proceed_to[2],localtask)
+        bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ удален\n")
+    else:
+        bot.proceed_status(proceed_to[-1],localtask)
+        bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ не по адресу, перенаправляем на форсмажор\n")
 
 
 
 def open_servicerequest_closed():
+    log_thread = threading.Thread(target=log_handler)
+    log_thread.daemon = True 
+    log_thread.start()
     while (len(tasklist)):
         localtask=tasklist.pop(0)
         bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " "+ "Заказ в очереди на обработке\n")
-        print("EACH TASKLIST", tasklist)
-
-        if (localtask.status!=operating_status):
-            bot.proceed_status(proceed_to[-1],localtask)
-            bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ не по адресу, перенаправляем на форсмажор\n")
-            continue
+        # if (localtask.status!=operating_status):
+        #     bot.proceed_status(proceed_to[-1],localtask)
+        #     bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ не по адресу, перенаправляем на форсмажор\n")
+        #     continue
 
         # if (localtask.title!="10"):
         #     t1=threading.Thread(target=open_servicerequest_booked_wait, args=(5,localtask))
         #     t1.start()
 
-        # if (localtask.title=="101"):
-        #     t1=threading.Thread(target=open_servicerequest_booked_process, args=(10,localtask))
-        #     t1.start()
+        if (localtask.status in ("239","211","212","220","221","222","231","238","229")):
+            t1=threading.Thread(target=open_servicerequest_closed_process, args=([localtask]))
+            t1.start()
 
-        t1=threading.Thread(target=open_servicerequest_closed_process, args=(localtask))
-        t1.start()
 
         #если никакие обработчики не подошли - отправляем обратно в очередь
         bot.proceed_status(proceed_to[0],localtask)
         print("Заказ возвращен в очередь\n")
-        print(tasklist)
 
 #Авторизация и запуск бота
 
@@ -110,7 +129,6 @@ tasklist = []
 token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"my/api/v1/auth/token/login/")
 #ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
 tasklist_dbsynce=jsreq.requestGetList(token, config.API_URL+"/dbsynce/api/orders/")
-print (len(tasklist))
 
 bot = JabberBot(JID, PASSWORD, PORT)
 

+ 12 - 2
handlers/open_servicerequest_declined.py

@@ -25,9 +25,10 @@ PORT=config.PORT
 PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
 
 print(JID, PASSWORD)
+users = ["799999999990@ej.sharix-app.org"]
 
 #таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
+listen_to=["test@ej.sharix-app.org", "799999999990@ej.sharix-app.org"]
 
 #тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
 proceed_to=[botname, "open_servicerequest_cancelled@ej.sharix-app.org", "open_servicerequest_booked@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
@@ -35,6 +36,13 @@ proceed_to=[botname, "open_servicerequest_cancelled@ej.sharix-app.org", "open_se
 #максимальное значение попыток обработать заказ
 idle_value=10
 
+def log_handler():
+    while True:
+        with open(f'{botname}.txt', 'a') as log_file:
+            log_file.write(f"{time.strftime('%Y-%m-%d %H:%M:%S')} - {botname} is still running...\n")
+        time.sleep(3600)
+
+
 # обработчик входящих сообщений
 def message_handler(conn, mess):
     text = mess.getBody()#текст сообщения боту
@@ -85,11 +93,13 @@ def create_ticket():
     pass
 
 def open_servicerequest_declined():
+    log_thread = threading.Thread(target=log_handler)
+    log_thread.daemon = True 
+    log_thread.start()
     while (len(tasklist)):
         localtask=tasklist.pop(0)
         bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " "+ "Заказ в очереди на обработке\n")
         print("EACH TASKLIST", tasklist)
-
         if (localtask.status!=operating_status):
             bot.proceed_status(proceed_to[-1],localtask)
             bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ не по адресу, перенаправляем на форсмажор\n")

+ 12 - 0
handlers/open_servicerequest_done.py

@@ -41,6 +41,15 @@ idle_value=10
 
 statuses = ['DONE', 'WONTFIX', 'DUBLICATE']
 
+
+
+def log_handler():
+    while True:
+        with open(f'{botname}.txt', 'a') as log_file:
+            log_file.write(f"{time.strftime('%Y-%m-%d %H:%M:%S')} - {botname} is still running...\n")
+        time.sleep(3600)
+
+
 # обработчик входящих сообщений
 def message_handler(conn, mess):
     text = mess.getBody()#текст сообщения боту
@@ -98,6 +107,9 @@ def create_ticket(localtask):
     pass
 
 def open_servicerequest_done():
+    log_thread = threading.Thread(target=log_handler)
+    log_thread.daemon = True 
+    log_thread.start()
     while (len(tasklist)):
         localtask=tasklist.pop(0)
         bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " "+ "Заказ в очереди на обработке\n")

+ 1 - 1
handlers/open_servicerequest_pending.py

@@ -75,7 +75,7 @@ def open_servicerequest_pending_process(localtask):
             bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
             return
         # Заглушка активная ли стадия заказа
-        else: order.status == "active":
+        elif order.status == "active":
             localtask.status=212
             jsreq.change_to_task(localtask,token)
             bot.proceed_status(proceed_to[1],localtask)

+ 11 - 0
handlers/open_servicerequest_process.py

@@ -38,6 +38,14 @@ proceed_to=[botname,"open_servicerequest_done@ej.sharix-app.org", "open_servicer
 #максимальное значение попыток обработать заказ
 idle_value=10
 
+
+def log_handler():
+    while True:
+        with open(f'{botname}.txt', 'a') as log_file:
+            log_file.write(f"{time.strftime('%Y-%m-%d %H:%M:%S')} - {botname} is still running...\n")
+        time.sleep(3600)
+
+
 # обработчик входящих сообщений
 def message_handler(conn, mess):
     text = mess.getBody()#текст сообщения боту
@@ -123,6 +131,9 @@ def check_balance():
     pass
 
 def open_servicerequest_process():
+    log_thread = threading.Thread(target=log_handler)
+    log_thread.daemon = True 
+    log_thread.start()
     while (len(tasklist)):
         localtask=tasklist.pop(0)
         bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " "+ "Заказ в очереди на обработке\n")