Browse Source

delete handlers folder

blezz-tech 2 months ago
parent
commit
8a914fafb9
37 changed files with 0 additions and 4047 deletions
  1. 0 6
      handlers/.gitignore
  2. 0 72
      handlers/BotClass.py
  3. 0 63
      handlers/README.md
  4. 0 16
      handlers/applications.json
  5. 0 8
      handlers/gen-passwords.py
  6. 0 15
      handlers/gen_users
  7. 0 9
      handlers/gen_web_users.py
  8. 0 377
      handlers/jsonAndRequest.py
  9. 0 121
      handlers/open_accessrequest_accepted.py
  10. 0 123
      handlers/open_accessrequest_pending.py
  11. 0 121
      handlers/open_negrequest_accepted.py
  12. 0 111
      handlers/open_negrequest_pending.py
  13. 0 167
      handlers/open_servicerequest_accepted.py
  14. 0 158
      handlers/open_servicerequest_assigned.py
  15. 0 216
      handlers/open_servicerequest_booked.py
  16. 0 172
      handlers/open_servicerequest_booked_v2.py
  17. 0 118
      handlers/open_servicerequest_closed.py
  18. 0 128
      handlers/open_servicerequest_declined.py
  19. 0 141
      handlers/open_servicerequest_done.py
  20. 0 133
      handlers/open_servicerequest_forcemajeure.py
  21. 0 140
      handlers/open_servicerequest_pending.py
  22. 0 135
      handlers/open_servicerequest_preforcemajeure.py
  23. 0 120
      handlers/open_servicerequest_prestart.py
  24. 0 167
      handlers/open_servicerequest_process.py
  25. 0 130
      handlers/open_strequest_assigned.py
  26. 0 132
      handlers/open_strequest_done.py
  27. 0 131
      handlers/open_strequest_dublicate.py
  28. 0 130
      handlers/open_strequest_inprocess.py
  29. 0 147
      handlers/open_strequest_new.py
  30. 0 147
      handlers/open_strequest_reopened.py
  31. 0 135
      handlers/open_strequest_wontfix.py
  32. 0 125
      handlers/open_template_bot.py
  33. 0 33
      handlers/order_functions.py
  34. 0 7
      handlers/requirements.txt
  35. 0 28
      handlers/sending_message.py
  36. 0 10
      handlers/starter.sh
  37. 0 55
      handlers/status_handlers.py

+ 0 - 6
handlers/.gitignore

@@ -1,6 +0,0 @@
-__pycache__/
-env/
-config.py
-*bottickets.log
-*.log
-*~

+ 0 - 72
handlers/BotClass.py

@@ -1,72 +0,0 @@
-import sys, xmpp
-from xmpp import cli
-from datetime import datetime
-import json
-
-import jsonAndRequest as jsreq
-
-#Основной класс бота
-class JabberBot: 
-    def __init__(self, jid, password, port):
-        self.jidd = jid
-        jid = xmpp.JID(jid)
-        self.user, self.server, self.password, self.port = jid.getNode(), jid.getDomain(), password, port
-        self.connect()
-        self.auth()
-
-    #Метод проверки подключения к серверу xmpp
-    def connect(self): 
-        self.conn = xmpp.Client(self.server, self.port,debug = [])
-        conn_result = self.conn.connect()
-        if not conn_result:
-            print("Can't connect to server!\n")
-            sys.exit(1)
-    #Метод аутентификации
-    def auth(self): 
-        #по идее, тут может быть актуально также передать информацию относительно порта, например
-        auth_result = self.conn.auth(self.user, self.password)
-        if not auth_result:
-            print (self.user, self.password)
-            print("Can't to authorize!\n")
-            sys.exit(1)
-    #Метод для привязки функций к событиям
-    def register_handler(self, name, handler):
-        self.conn.RegisterHandler(name, handler)
-
-    def step_on(self):
-        try:
-            self.conn.Process(1)    #с какой частотой происходит подключение к серверу, в данном случае каждую секунду
-        except KeyboardInterrupt: return 0
-        return 1
-
-    def bot_log(self, message):
-        #надо строчку лога сделать более информативной
-        logfile = open(datetime.now().strftime('%Y-%m-%d') + "-" + self.user + ".log", "a")
-        logfile.write(message)
-        logfile.close()
-        print (message)
-
-    def send_notification(self, recipient, message):
-        self.conn.send(xmpp.Message(recipient, message))
-        self.bot_log("Message sent successfully"+" "+recipient+" "+message)
-
-    # recipient - это конкретный jid следующего обработчика заявки, ticket - json с заявкой.
-    def proceed_status(self, recipient, ticket):
-        #тут могут быть различные проверки дополнительные, а так вообще эта функция нужна для передачи заявки на обработку следующему
-        jsonTicket = json.dumps(ticket.__dict__)
-        self.conn.send(xmpp.Message(recipient, jsonTicket))
-        self.bot_log("Message sent successfully"+" "+recipient+" "+jsonTicket)
-
-    #сюда можно как параметры передавать переменную для значения Process в вызываемой функции, а также передавать информацию о том, какой из обработчиков ввызывать в бесконечном цикле
-    def start(self, handler, *args):
-        self.conn.sendInitPresence()#статус аккаунта бота (активен или нет)
-        print("Bot started!")
-        while self.step_on():
-            #это вызов конкретной функции для обработки статуса конкретным ботом
-            #handler(args)
-            handler()
-            pass
-    
-    def stop(self):
-        # Disconnect from the Jabber server
-        self.client.disconnect()

+ 0 - 63
handlers/README.md

@@ -1,63 +0,0 @@
-# Open Template Bot
-#### Simple example for processing orders
-
-## Install and run
-
-1. Rename **config_template.py** to **config.py** 
-2. Create env
-```
-python -m venv env #for Windows
-python3 -m venv env #for Linux
-```
-3. Activate env
-```
-.\env\Scripts\activate #Windows
-source env/bin/activate #Linux
-```
-4. Instatt requirements 
-```
-pip3 install -r requirements.txt
-```
-5. Run Bot
-```
-python3 open_template_bot.py
-```
-
-
-## Testing
-https://democonv.sharix-app.org/ - testing client
-
-## Users recommended for testing
-user: test@ej.sharix-app.org
-user: test1@ej.sharix-app.org
-
-## Useful commands for Ejabberctl while testing Bot
-
-```
-ejabberdctl register $username ej $password
-
-ejabberdctl change-password User Host newPassword
-
-ejabberdctl check_account user1 localhost
-
-ejabberdctl unregister badlop3 localhost
-ejabberdctl registered_users localhost
-ejabberdctl help registered_users
-```
-
-# Create MUC room
-```
-ejabberdctl create_room room_name muc_service xmpp_domain
-```
-
-# Destroy MUC room
-```
-#ejabberdctl destroy_room room_name muc_service
-```
-
-# List unused MUC rooms
-```
-ejabberdctl rooms_unused_list xmpp_domain number_of_days
-```
-
-https://docs.ejabberd.im/admin/ejabberdctl/muc-admin/

+ 0 - 16
handlers/applications.json

@@ -1,16 +0,0 @@
-{
-    "applications": [
-        {
-            "id": "1",
-            "desc": "описание 1" 
-        },
-        {
-            "id": "2",
-            "desc": "описание 2" 
-        },
-        {
-            "id": "3",
-            "desc": "описание 3" 
-        }
-    ]
-}

+ 0 - 8
handlers/gen-passwords.py

@@ -1,8 +0,0 @@
-import config
-import hashlib
-
-botlist=config.BOTLIST
-
-for i in range (len(botlist)):
-    print(botlist[i], hashlib.md5((botlist[i]+config.PASSWORD).encode('utf-8')).hexdigest())
-

+ 0 - 15
handlers/gen_users

@@ -1,15 +0,0 @@
-#!/bin/bash
-
-#берем список ботов и паролей к ним и создаем или апдейтим пользователей (если уже созданы) на сервере
-python3 gen-passwords.py | while IFS=' ' read -ra line; do ejabberdctl register ${line[0]} ej.sharix-app.org ${line[1]}; done;
-python3 gen-passwords.py | while IFS=' ' read -ra line; do ejabberdctl change-password ${line[0]} ej.sharix-app.org ${line[1]}; done;
-#ejabberdctl register $username ej $password
-
-#ejabberdctl change-password User Host newPassword
-
-#ejabberdctl check_account user1 localhos
-#
-#ejabberdctl unregister badlop3 localhost
-#ejabberdctl registered_users localhost
-#ejabberdctl help registered_userst
-

+ 0 - 9
handlers/gen_web_users.py

@@ -1,9 +0,0 @@
-import jsonAndRequest as jsreq
-import config
-import hashlib
-
-botlist=config.BOTLIST
-
-for i in range (len(botlist)):
-    print(botlist[i], hashlib.md5((botlist[i]+config.PASSWORD).encode('utf-8')).hexdigest())
-    print (jsreq.createUser(botlist[i],botlist[i],hashlib.md5((botlist[i]+config.PASSWORD).encode('utf-8')).hexdigest(),config.API_URL+"/v1/auth/users/"))

+ 0 - 377
handlers/jsonAndRequest.py

@@ -1,377 +0,0 @@
-import json
-import requests
-import config
-import ast
-
-#Тестовый класс User и Address (ВАЖНО!!!) поля классов должны называться также как и поля json объекта
-'''
-#Full json order example
-https://wiki.sharix-app.org/doku.php/open/tech/dev/sharix_open_-_primery_json
-
-{
-
-"ticket": 123,
-"status": 111,
-
-"priority": 1, 
-"title": "123",
-"note": "123",
-"due_date": 2023-05-15T17:16:22.955601Z,
-
-"id_metaservice": 1,
-"is_global": false,
-"is_visible": false,
-"service": 1,
-"service_type": 1,
-
-"status_changed_date": "2023-05-15T17:16:22.955601Z",
-"time_placed": "2023-05-15T16:40:32.179777Z",
-"time_start": "2023-05-15T16:40:32.179777Z",
-"time_start_predicted": "2023-05-15T16:40:32.179777Z",
-"time_finish_predicted": "2023-05-15T16:40:32.179777Z",
-"time_start_real": "2023-05-15T16:40:32.179777Z",
-"time_finish_real": "2023-05-15T16:40:32.179777Z",
-
-"order_place_type": "address",
-"order_place_start": "р-н Беговой",
-"order_place_start_gps": "55.751941, 37.607513",
-"order_place_start_sector": 4,
-"order_place_start_real": "р-н Беговой",
-"order_place_start_real_gps": "55.751941, 37.607513",
-"order_place_finish_predicted": "р-н Мещанский",
-"order_place_finish_predicted_gps": "55.751941, 37.607513",
-"order_place_finish_sector": 4,
-"order_place_finish_real": "р-н Мещанский",
-"order_place_finish_real_gps": "55.751941, 37.607513",
-
-"predicted_price": 1000,
-"real_price": 1001,
-"payment_transaction_id": 1,
-"rating_id": 1,
-
-"provider": 1,
-"provider_screen_name": "Vasya Ispolnitelev",
-"receiver": 1,
-"receiver_screen_name": "Marfa Clientovna",
-"client_id": 1,
-"client_screen_name": "Fedor Client",
-"resource_id": 1,
-"attempts": null
-}
-'''
-#надо адаптировать класс к новому формату JSON
-# class Order(object):
-#     def __init__(self, id,order_synced, ticket, status, title, note, due_date, id_metaservice, is_global, is_visible, service, service_type, status_changed_date,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):
-#         self.order_synced = order_synced
-#         self.id = id
-#         self.ticket = ticket
-#         self.status = status
-
-#         self.title = title
-#         self.note = note
-#         self.due_date = due_date
-
-#         self.id_metaservice = id_metaservice
-#         self.is_global = is_global
-#         self.is_visible = is_visible
-#         self.service = service
-#         self.service_type = service_type
-
-#         self.status_changed_date = status_changed_date
-#         self.time_created = time_created
-#         self.time_placed = time_placed
-#         self.time_start = time_start
-#         self.time_start_predicted = time_start_predicted
-#         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_start = order_place_start
-#         self.order_place_start_gps = order_place_start_gps
-#         self.order_place_start_real = order_place_start_real
-#         self.order_place_start_real_gps = order_place_start_real_gps
-#         self.order_place_finish_predicted = order_place_finish_predicted
-#         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
-#         self.receiver_screen_name = receiver_screen_name
-#         self.client_id = client_id
-#         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}, {32} , {33} ,{34}".format(self.order_synced, self.id, self.ticket, self.status, self.title, self.note, self.due_date, self.id_metaservice, self.is_global, self.is_visible, self.service, self.service_type, self.status_changed_date, 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)
-
-        #\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):
-        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
-        self.time_start_predicted = time_start_predicted
-        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_start = order_place_start
-        self.order_place_start_gps = order_place_start_gps
-        self.order_place_start_real = order_place_start_real
-        self.order_place_start_real_gps = order_place_start_real_gps
-        self.order_place_finish_predicted = order_place_finish_predicted
-        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
-        self.receiver_screen_name = receiver_screen_name
-        self.client_id = client_id
-        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)
-
-
-
-
-
-#ticket json example
-'''
-{
-        "id": 2,
-        "status": 111,
-        "created_date": "2023-05-15",
-        "status_changed_date": "2023-05-15T17:16:22.955601Z",
-        "priority": 0,
-        "title": "Test",
-        "note": "{\n    \n    \"ticket\": 1,\n    \"state\": 1,\n    \"id_metaservice\": 1,\n    \"is_global\": false,\n    \"is_visible\": false,\n    \"service\": 1,\n    \"service_type\": 1,\n\n    \"time_placed\": 1}"
-        "due_date": "2023-05-15",
-        "task_list": 10,
-        "created_by": 1,
-        "type": 1,
-        "assigned_to": 1
-}
-'''
-
-#ticket minimal example
-'''
-{
-        "id": 2,
-        "status": 111,
-        "created_date": "2023-05-15",
-        "status_changed_date": "2023-05-15T17:16:22.955601Z",
-        "priority": 0,
-        "title": null,
-        "note": null,
-        "due_date": null,
-        "task_list": 10,
-        "created_by": 1,
-        "type": 1,
-        "assigned_to": null
-}
-{
-  "serviceType": 2,
-  "driverSearchEngine": 0,
-  "comment": "Yyyy",
-  "arrivalTime": "2023-12-07T14:39:54Z",
-  "additionalServices": [],
-  "tasks": [
-    {
-      "text": "Eeee",
-      "address": "Jjjj"
-    }
-  ],
-  "spendingLimit": 6668,
-  "isWithPaymentDocument": true,
-  "id": 294830,
-  "isProceedBeforeArrival": true
-}
-
-'''
-class OrderTicket(object):
-    def __init__(self, serviceType, driverSearchEngine, comment, arrivalTime, additionalServices, tasks, spendingLimit, isWithPaymentDocument, id, isProceedBeforeArrival):
-        self.serviceType = serviceType
-        self.driverSearchEngine = driverSearchEngine
-        self.comment = comment
-        self.arrivalTime = arrivalTime
-        self.additionalServices = additionalServices
-        self.tasks = tasks
-        self.spendingLimit = spendingLimit
-        self.isWithPaymentDocument = isWithPaymentDocument
-        self.id = id
-        self.isProceedBeforeArrival = isProceedBeforeArrival
-
-
-
-# class OrderTicketOLD(object):
-#     def __init__(self, id, status, created_date, status_changed_date, priority, title=None, note=None, due_date=None, task_list=None, created_by=None, type=None, assigned_to=None):
-#         self.id = id
-#         self.status = status
-#         self.created_date = created_date
-#         self.status_changed_date = status_changed_date
-#         self.priority = priority
-#         self.title = title
-#         self.note = note
-#         self.due_date = due_date
-#         self.task_list = task_list
-#         self.created_by = created_by
-#         self.type = type
-#         self.assigned_to = assigned_to
-
-#     def  __str__(self):
-#         return "{0}, {1}, {2}, {3}, {4}, {5}, {6},\n{7}, {8}, {9}, {10}, {11}\n".format(self.id, self.status, self.created_date, self.status_changed_date, self.priority, self.title, self.note, self.due_date, self.task_list, self.created_by, self.type, self.assigned_to) 
-
-#Функция преобразования json в объект класса Order
-def jsonToOrder(jsonstring) -> Order:
-    jsonObj = json.loads(jsonstring)
-    print(jsonObj)
-    u = Order(**jsonObj)
-    return u
-
-#Функция преобразования json в объект класса OrderTicket
-def jsonToOrderTicket(jsonstring) -> OrderTicket:
-    print (jsonstring)
-    jsonObj = json.loads(jsonstring)
-    print(jsonObj)
-    u = OrderTicket(**jsonObj)
-    return u
-
-
-
-#Функция обращения к апи и получение токена
-def requestGetToken(login, password, url) -> str:
-    login = "79999999999"
-    password = "12345"
-    #url = "https://user.sharix-app.org/auth/token/login/"
-    data = {
-        "password":password,
-        "phone_number":login
-    }
-    response = requests.post(url,json=data)
-    result = response.json()
-    return result['auth_token']
-#Функция обращения к апи и получение токена
-
-
-def createUser(username, phone, password, url) -> str:
-    data = {
-        "username": username,
-        "phone_number": phone,
-        "password": password
-    } 
-    response = requests.post(url, json=data)
-    result = response.json()
-    return result
-#Функция обращения к апи и получение списка пользователей
-
-
-def requestGetListUser():
-    auth_token=requestGetToken()
-    print(auth_token)
-    headers = {'Authorization': f'Token {auth_token}'}
-    url = 'https://user.sharix-app.org/platform/api/sharix-users/'
-    response = requests.get(url, headers=headers)
-    print(response)
-    print(response.json())
-
-
-# def requestGetList(auth_token, url):
-#     headers = {'Authorization': f'Token {auth_token}'}
-#     response = requests.get(url, headers=headers)
-#     #response = requests.get(config.API_URL+"/dbsynce/api/orders/", headers=headers)
-#     ordertext=response.json()
-#     startlist = []
-    
-#     if not ordertext:
-#         print("Empty array")
-#     else:
-#         for i in ordertext:
-#             print (i, "PROCESSING")
-#             try:
-#                 orderticket = OrderTicket(**i)
-#                 print(i, "ORDER ", orderticket)
-#                 startlist.append(orderticket)
-#             except Exception as ex:
-#                 print(ex)
-#     print (startlist)
-#     return startlist
-
-
-def requestGetList(auth_token, url):
-    headers = {'Authorization': f'Token {auth_token}'}
-    response = requests.get(url, headers=headers)
-    #response = requests.get(config.API_URL+"/dbsynce/api/orders/", headers=headers)
-    ordertext=response.json()
-    startlist = []
-    
-    if not ordertext:
-        print("Empty array")
-    else:
-        for i in ordertext:
-            print (i, "PROCESSING")
-            try:
-                order = Order(**i)
-                print(i, "ORDER ", order)
-                startlist.append(order)
-            except Exception as ex:
-                print(ex)
-    print (startlist)
-    return startlist
-
-class answer(object):
-    def __init__(self,order_id,provider,answer):
-        self.order_id = order_id
-        self.provider = provider
-        self.answer = answer
-        
-def to_answer(jsonstring):
-    json_answer = json.loads(jsonstring)
-    print(json_answer)
-    u = answer(**json_answer)
-    return u
-
-def change_to_task(localtask,token):
-    headers = {
-        'Authorization': f'Token {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

+ 0 - 121
handlers/open_accessrequest_accepted.py

@@ -1,121 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_accessrequest_accepted"
-
-operating_status=321
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_strequest_declined@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_accessrequest_accepted_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-
-def open_accessrequest_accepted_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-
-    send_data(localtask)
-
-# Пока не уверен
-def send_data(localtask):
-    # Заглушка отправка данных в БД
-    # ...
-    return True
-
-def open_accessrequest_accepted():
-    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.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()
-
-        t1=threading.Thread(target=open_accessrequest_accepted_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_accessrequest_accepted)
-
-
-

+ 0 - 123
handlers/open_accessrequest_pending.py

@@ -1,123 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_accessrequest_pending"
-
-operating_status=320
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_strequest_declined@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_accessrequest_pending_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[1],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ перенаправлен\n")
-
-def open_accessrequest_pending_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-
-    push_notifications(localtask)
-    open_accessrequest_pending_wait(100,localtask)
-
-
-# Пока не уверен
-def push_notifications(localtask):
-    # Отправка уведомлений
-    # ...
-    return True
-
-def open_accessrequest_pending():
-    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.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()
-
-        t1=threading.Thread(target=open_accessrequest_pending_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_accessrequest_pending)
-
-
-

+ 0 - 121
handlers/open_negrequest_accepted.py

@@ -1,121 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_negrequest_accepted"
-
-operating_status=321
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_strequest_declined@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_negrequest_accepted_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-
-def open_negrequest_accepted_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-
-    send_data(localtask)
-
-# Пока не уверен
-def send_data(localtask):
-    # Заглушка отправка данных в БД
-    # ...
-    return True
-
-def open_negrequest_accepted():
-    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.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()
-
-        t1=threading.Thread(target=open_negrequest_accepted_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_negrequest_accepted)
-
-
-

+ 0 - 111
handlers/open_negrequest_pending.py

@@ -1,111 +0,0 @@
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-#В этом файле содержится только то, что запускает конкретный обработчик
-
-# botname="open_strequest_assigned"
-botname="open_negrequest_pending"
-operating_status=420
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-#раскомментировать, когда перейдем на разные пароли
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["open_negrequest_pending@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=["open_negrequest_pending@ej.sharix-app.org", "open_negrequest_declined@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-def message_handler(conn, mess):
-    text = mess.getBody()#текст сообщения боту
-    user = mess.getFrom()#отправитель сообщения
-    #user = mess.getNode()#только jid 
-   
-   #нужна проверка, данный обработчик вообще должен от данного отправителя получать сообщения или нет. Подсказка ниже
-    print (str(user).split("/")[0])
-    if (str(user).split("/")[0]) in listen_to:
-        print(text)
-        print(mess)
-
-        if text is not None:
-            orderObj = jsreq.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-#TODO - для обработчиков Ticket скорее надо будет функции вынести в отдельную библиотеку, они типовые же
-def pending_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает пользовательской реакции\n")
-    time.sleep(period)
-    
-    #ВАЖНО! НАДО ВСТАВИТЬ ИЗМЕНЕНИЕ СТАТУСА ЧЕРЕЗ API
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[1],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отклонен\n")
-
-def open_negrequest_pending():
-    #print("Тут описывается работа со списком задач в данном статусе")
-    while (len(tasklist)):
-        localtask=tasklist.pop(0)
-        bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " "+ "Заказ в очереди на обработке\n")
-        
-        #если боту почему-то пришла не его заявка - это явно ошибка движения процессов и отдаем в форсмажор - этот обработчик указывать стоит всегда последним
-        #if (localtask.status!=operating_status):
-        #    bot.proceed_status(proceed_to[-1],localtask)
-        #    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ не по адресу, перенаправляем на форсмажор\n")
-        #    continue
-
-        #TODO: send_notifications - изучить как в комнату
-
-        #ЖДАТЬ НАДО ПОДОЛЬШЕ
-        t1=threading.Thread(target=pending_wait, args=(100,localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        #bot.proceed_status(proceed_to[0],localtask)
-        #print("Заказ возвращен в очередь\n")
-        #print (tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо понять, по такому ли запросу разумно делать фильтр - или поменять порядок
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?status=210&list_id=10")
-print (len(tasklist))
-
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_negrequest_pending)
-
-
-

+ 0 - 167
handlers/open_servicerequest_accepted.py

@@ -1,167 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_servicerequest_accepted"
-
-operating_status='221'
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["open_servicerequest_assigned@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname,"open_servicerequest_process@ej.sharix-app.org", "open_servicerequest_declined@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-def message_handler(conn, mess):
-    text = mess.getBody()#текст сообщения боту
-    user = mess.getFrom()#отправитель сообщения
-   
-    if (str(user).split("/")[0]) in listen_to:
-        if text is not None:
-            orderObj = jsreq.jsonToOrder(text)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_servicerequest_accepted_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-
-def open_servicerequest_accepted_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-    
-    # order = jsreq.jsonToOrder(localtask)
-    localtask.status='231'
-    jsreq.change_to_task(localtask,token)
-    bot.proceed_status(proceed_to[1],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    # if order.time_start_predicted < 100:
-    #     # Заглушка. Проверка может ли заказ быть переназначен
-    #     if True:
-    #         # Заглушка. Сбросить пометку предзаказа
-    #         # ...
-
-
-    #         bot.proceed_status(proceed_to[1],localtask)
-    #         bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    #     else:
-    #         bot.proceed_status(proceed_to[2],localtask)
-    #         bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    # else:
-    #     # Заглушка. Обработана заявка на устанавление взаимоотношений?
-    #     if True:
-    #         # Заглушка. Взаимоотношения установлены ?
-    #         if True:
-    #             # Заглушка. Отобразить в предварительных заказах исполнителям.
-    #             send_message()
-    #             # Заглушка. Исполнитель откликнулся на заказ?
-    #             if True:
-    #                 # У пользователя стоит ручной выбор из нескольких исполнителей?
-    #                 if True:
-    #                     # Заглушка создать дочернюю локальную заявку с информацией от исполнителя
-    #                     create_ticket()
-    #                     # Заглушка отобразить в предварительных клиенту
-    #                     send_message()
-
-    #                     # Заглушка. Клиент выбрал конкретную заявку?
-    #                     if True:
-    #                         # Заглушка. обновление локальной копии. Замена основной
-    #                         pass
-    #                     else:
-    #                         bot.proceed_status(proceed_to[3],localtask)
-    #                         bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    #                 else:
-    #                     bot.proceed_status(proceed_to[3],localtask)
-    #                     bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    #             else:
-    #                 #Заглушка. Заказ ждет очередную итерацию обработки списка
-    #                 open_servicerequest_accepted_process(localtask)
-    #         else:
-    #             bot.proceed_status(proceed_to[1],localtask)
-    #             bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    #     else:
-    #         #Заглушка. Заказ ждет очередную итерацию обработки списка
-    #         open_servicerequest_accepted_process(localtask)
-    #         pass
-    
-
-def send_message():
-    pass
-
-def create_ticket():
-    pass
-
-def open_servicerequest_accepted():
-    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):
-            localtask.status=239
-            jsreq.change_to_task(localtask,token)
-            bot.proceed_status(proceed_to[-1],localtask)
-            bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ не по адресу, перенаправляем на форсмажор\n")
-            continue
-        elif True:
-            t1=threading.Thread(target=open_servicerequest_accepted_process, args=([localtask]))
-            t1.start()
-        # 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()
-
-        
-
-        # #если никакие обработчики не подошли - отправляем обратно в очередь
-        # bot.proceed_status(proceed_to[0],localtask)
-        # print("Заказ возвращен в очередь\n")
-        # print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-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/")
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_servicerequest_accepted)

+ 0 - 158
handlers/open_servicerequest_assigned.py

@@ -1,158 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-import asyncio
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_servicerequest_assigned"
-
-operating_status='212'
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-drivers = ["799999999998@ej.sharix-app.org"]
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["open_servicerequest_booked@ej.sharix-app.org","open_servicerequest_pending@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_servicerequest_accepted@ej.sharix-app.org", "open_servicerequest_declined@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-def message_handler(conn, mess):
-    text = mess.getBody()#текст сообщения боту
-    user = mess.getFrom()#отправитель сообщения
-    if (str(user).split("/")[0]) in listen_to:
-        print('order_handler')
-
-        if text is not None:
-            orderObj = jsreq.jsonToOrder(text)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-        
-            
-def open_servicerequest_assigned_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-
-def wait_for_answer(localtask):
-    order = localtask
-    driver = drivers[0]
-    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")
-            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
-        else:
-            print("Ожидание ответа...")
-            time.sleep(1)
-
-def open_servicerequest_assigned_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-    order = localtask
-    if order.provider!=None:
-        wait_thread = threading.Thread(target=wait_for_answer, args=(localtask,))
-        wait_thread.start()
-
-
-def message_answer(conn, mess):       
-    text = mess.getBody()#текст сообщения боту
-    user = mess.getFrom()#отправитель сообщения
-    if (str(user).split("/")[0]) in drivers:
-        print ('answer_handler')
-        if text is not None:
-            answerObj = jsreq.to_answer(text)
-            answers.append(answerObj)
-            bot.bot_log(str(datetime.now())+" Поступивший ответ успешно добавлен в очередь обработки\n")
-            
-    
-def send_message(order,driver):
-    order=json.dumps(order.__dict__)
-    bot.send_notification(driver,order)   
-
-
-def open_servicerequest_assigned():
-    while (len(tasklist)):
-        localtask=tasklist.pop(0)
-        if (localtask.status!=operating_status):
-            localtask.status='239'
-            jsreq.change_to_task(localtask,token)
-            bot.proceed_status(proceed_to[-1],localtask)
-            bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ не по адресу, перенаправляем на форсмажор\n")
-            continue
-        else:
-            bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " "+ "Заказ в очереди на обработке\n")
-            t1=threading.Thread(target=open_servicerequest_assigned_process, args=([localtask]))
-            t1.start()
-        # 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()
-
-        # t1=threading.Thread(target=open_servicerequest_assigned_process, args=(localtask))
-        # t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        # bot.proceed_status(proceed_to[0],localtask)
-        # print("Заказ возвращен в очередь\n")
-        # print(tasklist)
-
-#Авторизация и запуск бота
-
-answers = []
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-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/")
-
-
-bot = JabberBot(JID, PASSWORD, PORT)
-bot.register_handler('message', message_handler)
-bot.register_handler('message', message_answer)
-bot.start(open_servicerequest_assigned)
-
-
-#Добавить функцию поток для ожидания получения заказа.

+ 0 - 216
handlers/open_servicerequest_booked.py

@@ -1,216 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-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()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["799999999990@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=["open_servicerequest_assigned@ej.sharix-app.org","open_servicerequest_pending@ej.sharix-app.org",  "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-def message_handler(conn, mess):
-    text = mess.getBody()#текст сообщения боту
-    user = mess.getFrom()#отправитель сообщения
-    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")
-
-def open_servicerequest_booked_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и возвращен в очередь\n")
-
-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)
-        if set_provider(localtask.id):
-            print('Водитель успешно установлен')
-        else:
-            print('Ошибка водитель не был установлен')
-        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)
-        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)
-        bot.proceed_status(proceed_to[1], localtask)
-        bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ успешно обработан и отправлен на pending\n")
-        
-        # Проверка срочности заказа
-        # 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:
-        #         localtask.status = 220
-        #         bot.proceed_status(proceed_to[0], localtask)
-        #         print(localtask)
-        # bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ успешно обработан и отправлен на assigned\n")
-        # Проверка срочности заказа
-        
-def get_balance(client):
-    headers = {'Authorization': f'Token {token}'}
-    # Передаем id пользователя и получаем его баланс
-    response = requests.get(config.API_URL+f"/api/example/{client}", headers=headers)
-    print(response.json())
-    ordertext=response.json()
-    
-    if not ordertext:
-        print("Empty array")
-    else:
-        print(ordertext[0], "PROCESSING")
-        try:
-            balance = ordertext[0].get('balance')
-            return balance
-        except Exception as ex:
-            print(ex)
-            
-#set provider?
-def choose_provider(auth_token,geo):
-    providers=requests.get(config.API_URL+"/dbsynce/api/provider/",headers=auth_token)
-    provider=providers.json()[0]['id']
-    return provider
-    
-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')
-    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
-
-    
-    # if not ordertext:
-    #     print("Empty array")
-    # else:
-    #     print(ordertext[0], "PROCESSING")
-    #     try:
-    #         message = ordertext[0].get('message')
-    #         return message
-    #     except Exception as ex:
-    #         print(ex)
-
-def open_servicerequest_booked():
-    while (len(tasklist)):
-        localtask=tasklist.pop(0)
-        if (str(localtask.status)!=str(operating_status)):
-            # bot.proceed_status(proceed_to[-1],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")
-            continue
-        else:
-            bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " "+ "Заказ в очереди на обработке\n")
-            t1=threading.Thread(target=open_servicerequest_booked_process, args=([localtask]))
-            t1.start()
-        # elif (localtask.provider==T):
-        #     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()
-        
-        
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        # bot.proceed_status(proceed_to[0],localtask)
-        # print("Заказ возвращен в очередь\n")
-        # print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-# #надо инициализировать tasklist при запуске из API
-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)
-
-
-
-bot.register_handler('message', message_handler)
-bot.start(open_servicerequest_booked)
-
-# print(set_provider('localtask'))

+ 0 - 172
handlers/open_servicerequest_booked_v2.py

@@ -1,172 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-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()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["9090@ej.sharix-app.org","test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org","799999999990@ej.shaix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=["open_servicerequest_assigned@ej.sharix-app.org", "open_servicerequest_pending@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-def message_handler(conn, mess):
-    text = mess.getBody()#текст сообщения боту
-    user = mess.getFrom()#отправитель сообщения
-    print(text)
-    print(user)
-    print(f'This is text{text} and this is\n\n{user}')
-    # print (str(user).split("/")[0])
-    # print('good')
-    if (str(user).split("/")[0]) in listen_to:
-        print(text)
-        print(mess)
-        
-
-        if text is not None:
-            orderObj = jsreq.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_servicerequest_booked_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и возвращен в очередь\n")
-
-def open_servicerequest_booked_process(localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ в обработчике\n")
-
-    order = jsreq.jsonToOrder(localtask)
-    #Пока заглушка
-    balance = get_balance(order.client_id)
-
-    
-    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
-
-def get_balance(client):
-    headers = {'Authorization': f'Token {token}'}
-    # Передаем id пользователя и получаем его баланс
-    response = requests.get(config.API_URL+f"/api/example/{client}", headers=headers)
-    print(response.json())
-    ordertext=response.json()
-    
-    if not ordertext:
-        print("Empty array")
-    else:
-        print(ordertext[0], "PROCESSING")
-        try:
-            balance = ordertext[0].get('balance')
-            return balance
-        except Exception as ex:
-            print(ex)
-
-def set_provider(ticket, provider):
-    headers = {'Authorization': f'Token {token}'}
-    data = {'ticket': ticket,
-            'provider': provider}
-    response = requests.post(config.API_URL+f"/api/example/set-provider", headers=headers, data=data)
-    print(response.json())
-    ordertext=response.json()
-    
-    if not ordertext:
-        print("Empty array")
-    else:
-        print(ordertext[0], "PROCESSING")
-        try:
-            message = ordertext[0].get('message')
-            return message
-        except Exception as ex:
-            print(ex)
-
-def open_servicerequest_booked():
-    # 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
-
-        t1=threading.Thread(target=open_servicerequest_booked_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/base/auth/token/login/")
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/webservice/api/webservice/")
-
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_servicerequest_booked)
-
-
-

+ 0 - 118
handlers/open_servicerequest_closed.py

@@ -1,118 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_servicerequest_closed"
-
-operating_status=239
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["799999999990@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"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-
-# обработчик входящих сообщений
-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")
-
-def open_servicerequest_closed_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-
-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")
-
-
-
-def open_servicerequest_closed():
-    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.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()
-
-        t1=threading.Thread(target=open_servicerequest_closed_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-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)
-
-bot.register_handler('message', message_handler)
-bot.start(open_servicerequest_closed)

+ 0 - 128
handlers/open_servicerequest_declined.py

@@ -1,128 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_servicerequest_declined"
-
-operating_status=229
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@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"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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")
-
-def open_servicerequest_declined_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-
-def open_servicerequest_declined_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-    
-    order = jsreq.jsonToOrder(localtask)
-
-    # Заглушка с счетчиком
-
-    # Заказ может быть выполнен другим
-    if True:
-        bot.proceed_status(proceed_to[1],localtask)
-        bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    else: 
-        # Заглушка. Сброс пометки что заказ на основного водителя
-        bot.proceed_status(proceed_to[2],localtask)
-        bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-
-def send_message():
-    pass
-
-def create_ticket():
-    pass
-
-def open_servicerequest_declined():
-    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.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()
-
-        t1=threading.Thread(target=open_servicerequest_declined_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-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)
-
-bot.register_handler('message', message_handler)
-bot.start(open_servicerequest_declined)

+ 0 - 141
handlers/open_servicerequest_done.py

@@ -1,141 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_servicerequest_done"
-
-operating_status='241'
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-users = ["799999999990@ej.sharix-app.org"]
-
-drivers = ["799999999998@ej.sharix-app.org"]
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["open_servicerequest_process@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"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-statuses = ['DONE', 'WONTFIX', 'DUBLICATE']
-
-# обработчик входящих сообщений
-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")
-
-def open_servicerequest_done_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-
-def open_servicerequest_done_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-    
-    order = jsreq.jsonToOrder(localtask)
-    status = order.status
-
-    # Заглушка + Оплата
-    create_ticket(localtask)
-    # отправка формы
-    send_message()
-    
-    # Заглушка с таймером
-
-    
-    bot.proceed_status(proceed_to[2],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-
-        
-    
-# Заглушка
-def send_message(localtask):
-    pass
-
-
-def create_ticket(localtask):
-    bot.proceed_status(proceed_to[1],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    pass
-
-def open_servicerequest_done():
-    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.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()
-
-        t1=threading.Thread(target=open_servicerequest_done_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-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)
-
-bot.register_handler('message', message_handler)
-bot.start(open_servicerequest_done)

+ 0 - 133
handlers/open_servicerequest_forcemajeure.py

@@ -1,133 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_servicerequest_forcemajeure"
-
-operating_status=239
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_strequest_new@ej.sharix-app.org", "open_servicerequest_declined@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-statuses = ['DONE', 'WONTFIX', 'DUBLICATE']
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_servicerequest_forcemajeure_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-
-def open_servicerequest_forcemajeure_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-    
-    order = jsreq.jsonToOrder(localtask)
-    status = order.status
-
-    # Заглушка
-    create_ticket(localtask)
-    # ???
-    if order.status in statuses:
-        order.status = status
-    else:
-        bot.proceed_status(proceed_to[0],localtask)
-        bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-        
-    
-    
-
-
-def create_ticket(localtask):
-    bot.proceed_status(proceed_to[1],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    pass
-
-def open_servicerequest_forcemajeure():
-    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.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()
-
-        t1=threading.Thread(target=open_servicerequest_forcemajeure_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist_dbsynce=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_servicerequest_forcemajeure)

+ 0 - 140
handlers/open_servicerequest_pending.py

@@ -1,140 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_servicerequest_pending"
-
-operating_status='220'
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["open_servicerequest_booked@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_servicerequest_assigned@ej.sharix-app.org",  "open_servicerequest_forcemajeure@ej.sharix-app.org","799999999998@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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")
-
-def open_servicerequest_pending_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-
-def open_servicerequest_pending_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-    
-    order = jsreq.jsonToOrder(localtask)
-
-    # Заглушка. Может ли что-то пойти не так
-    if True:
-        if order.time_start_predicted < time.time():
-            bot.proceed_status(proceed_to[0],localtask)
-            bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-            return
-        # Заглушка активная ли стадия заказа
-        else: order.status == "active":
-            localtask.status=212
-            jsreq.change_to_task(localtask,token)
-            bot.proceed_status(proceed_to[1],localtask)
-            bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-        # else:
-        #     bot.proceed_status(proceed_to[2],localtask)
-        #     bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-        #     # Заглушка на получение ответа
-        #     pass
-    # else:
-    #     bot.proceed_status(proceed_to[1],localtask)
-    #     bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-
-
-def send_message():
-    pass
-
-def open_servicerequest_pending():
-    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):
-            localtask.status=239
-            jsreq.change_to_task(localtask,token)
-            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()
-
-        t1=threading.Thread(target=open_servicerequest_pending_process, args=([localtask]))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        # print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-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)
-
-bot.register_handler('message', message_handler)
-bot.start(open_servicerequest_pending)
-
-#Получение сообщения от водителя

+ 0 - 135
handlers/open_servicerequest_preforcemajeure.py

@@ -1,135 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_servicerequest_preforcemajeure"
-
-operating_status=239
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_strequest_new@ej.sharix-app.org", "open_servicerequest_declined@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-statuses = ['DONE', 'WONTFIX', 'DUBLICATE']
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_servicerequest_preforcemajeure_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-
-def open_servicerequest_preforcemajeure_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-    
-    order = jsreq.jsonToOrder(localtask)
-    status = order.status
-
-    # Заглушка
-    create_ticket(localtask)
-    # ???
-    if order.status in statuses:
-        order.status = status
-    else:
-        
-        # Заглушка с таймером
-        bot.proceed_status(proceed_to[0],localtask)
-        bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-        
-    
-    
-
-
-def create_ticket(localtask):
-    bot.proceed_status(proceed_to[1],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    pass
-
-def open_servicerequest_preforcemajeure():
-    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.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()
-
-        t1=threading.Thread(target=open_servicerequest_preforcemajeure_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_servicerequest_preforcemajeure)

+ 0 - 120
handlers/open_servicerequest_prestart.py

@@ -1,120 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_servicerequest_prestart"
-
-operating_status=222
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_servicerequest_preforcemajeure@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_servicerequest_prestart_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-
-def open_servicerequest_prestart_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-    
-    order = jsreq.jsonToOrder(localtask)
-
-    if order.asap:
-        bot.proceed_status(proceed_to[1],localtask)
-        bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    else:
-        bot.proceed_status(proceed_to[0],localtask)
-        bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    
-
-def open_servicerequest_prestart():
-    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.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()
-
-        t1=threading.Thread(target=open_servicerequest_prestart_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_servicerequest_prestart)

+ 0 - 167
handlers/open_servicerequest_process.py

@@ -1,167 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_servicerequest_process"
-
-operating_status='231'
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-
-drivers = ["799999999998@ej.sharix-app.org"]
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["open_servicerequest_accepted@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname,"open_servicerequest_done@ej.sharix-app.org", "open_servicerequest_preforcemajeure@ej.sharix-app.org", "open_servicerequest_declined@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-def message_handler(conn, mess):
-    text = mess.getBody()#текст сообщения боту
-    user = mess.getFrom()#отправитель сообщения
-    if (str(user).split("/")[0]) in listen_to:
-        if text is not None:
-            orderObj = jsreq.jsonToOrder(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-
-def message_answer(conn, mess):       
-    text = mess.getBody()#текст сообщения боту
-    user = mess.getFrom()#отправитель сообщения
-    if (str(user).split("/")[0]) in drivers:
-        print ('answer_handler')
-        if text is not None:
-            answerObj = jsreq.to_answer(text)
-            answers.append(answerObj)
-            bot.bot_log(str(datetime.now())+" Поступивший ответ успешно добавлен в очередь обработки\n")
-
-def open_servicerequest_process_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и отправлен в очередь\n")
-
-def wait_for_answer(localtask):
-    order = localtask
-    # Здесь можно реализовать логику выбора водителя
-    while True:
-        if len(answers) > 0:
-            answer = answers.pop(0)
-            if answer.answer == 'Complete':
-                localtask.status='241'
-                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")
-            break
-        else:
-            print("Ожидание ответа...")
-            time.sleep(30)
-
-def open_servicerequest_assigned_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-    order = localtask
-    if order.provider!=None:
-        wait_thread = threading.Thread(target=wait_for_answer, args=(localtask,))
-        wait_thread.start()
-        
-def open_servicerequest_process_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-    order = localtask
-    wait_thread = threading.Thread(target=wait_for_answer, args=(localtask,))#ожидание выполнения заказа
-    wait_thread.start()
-
-    # Заглушка проверка баланса
-    # if check_balance() >= order.real_price:
-    # if True:
-    #     # Заглушка. Расчетное время прибытия на следующую точку превышаетзапланированное на Х
-    #     if True:
-    #         bot.proceed_status(proceed_to[1],localtask)
-    #         bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен\n")
-    #     else:
-    #         bot.proceed_status(proceed_to[0],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")
-        
-    #     pass
-
-
-def check_balance():
-    pass
-
-def open_servicerequest_process():
-    while (len(tasklist)):
-        localtask=tasklist.pop(0)
-        bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " "+ "Заказ в очереди на обработке\n")
-        if (localtask.status!=operating_status):
-            localtask.status='239'
-            jsreq.change_to_task(localtask,token)
-            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()
-
-        t1=threading.Thread(target=open_servicerequest_process_process, args=[localtask])
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        # bot.proceed_status(proceed_to[0],localtask)
-        # print("Заказ возвращен в очередь\n")
-        # print(tasklist)
-
-#Авторизация и запуск бота
-
-answers = []
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-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/")
-
-
-bot = JabberBot(JID, PASSWORD, PORT)
-bot.register_handler('message', message_handler)
-bot.register_handler('message', message_answer)
-bot.start(open_servicerequest_process)

+ 0 - 130
handlers/open_strequest_assigned.py

@@ -1,130 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_strequest_assigned"
-
-operating_status=121
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_strequest_wontfix@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_strequest_assigned_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и возвращен в очередь\n")
-
-def open_strequest_assigned_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-
-    order = jsreq.jsonToOrder(localtask)
-
-    # Проверяем наличие маркера обработчика
-    if order.marker:
-        # Вызываем алгоритм обработки в соответствии с маркером
-        process_with_handler(order)
-    else:
-        #Заглушка Если таймер неактивен, отправляем в st_request_wontfix
-        if True:
-            bot.proceed_status(proceed_to[1],localtask)
-
-# Пока не уверен
-def process_with_handler(order):
-    # Алгоритм назначения исполнителя
-    # ...
-    return True
-
-def open_strequest_assigned():
-    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.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()
-
-        t1=threading.Thread(target=open_strequest_assigned_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_strequest_assigned)
-
-
-

+ 0 - 132
handlers/open_strequest_done.py

@@ -1,132 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_strequest_done"
-
-operating_status=149
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_strequest_closed@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_strequest_done_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и возвращен в очередь\n")
-
-def open_strequest_done_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-
-    order = jsreq.jsonToOrder(localtask)
-    idle_value = idle_value - 1
-
-    if idle_value < 1:
-        bot.proceed_status(proceed_to[1],localtask)
-    else:
-        push_notifications(order)
-        open_strequest_done_wait(100,localtask)
-    # Затычка
-    if True:
-        open_strequest_done_process(localtask)
-
-
-# Пока не уверен
-def push_notifications(order):
-    # Отправка уведомлений
-    # ...
-    return True
-
-def open_strequest_done():
-    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.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()
-
-        t1=threading.Thread(target=open_strequest_done_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_strequest_done)
-
-
-

+ 0 - 131
handlers/open_strequest_dublicate.py

@@ -1,131 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_strequest_dublicate"
-
-operating_status=149
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_strequest_closed@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_strequest_dublicate_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и возвращен в очередь\n")
-
-def open_strequest_dublicate_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-
-    order = jsreq.jsonToOrder(localtask)
-    idle_value = idle_value - 1
-
-    if idle_value < 1:
-        bot.proceed_status(proceed_to[1],localtask)
-    else:
-        push_notifications(order)
-        open_strequest_dublicate_wait(100,localtask)
-    # Затычка
-    if True:
-        open_strequest_dublicate_process(localtask)
-
-# Пока не уверен
-def push_notifications(order):
-    # Отправка уведомлений
-    # ...
-    return True
-
-def open_strequest_dublicate():
-    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.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()
-
-        t1=threading.Thread(target=open_strequest_dublicate_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_strequest_dublicate)
-
-
-

+ 0 - 130
handlers/open_strequest_inprocess.py

@@ -1,130 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_strequest_inprocess"
-
-operating_status=131
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_strequest_wontfix@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_strequest_inprocess_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и возвращен в очередь\n")
-
-def open_strequest_inprocess_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-
-    order = jsreq.jsonToOrder(localtask)
-
-    # Проверяем наличие маркера обработчика
-    if order.marker:
-        # Вызываем алгоритм обработки в соответствии с маркером
-        process_with_handler(order)
-    else:
-        #Заглушка Если таймер неактивен, отправляем в st_request_wontfix
-        if True:
-            bot.proceed_status(proceed_to[1],localtask)
-
-# Пока не уверен
-def process_with_handler(order):
-    # Алгоритм назначения исполнителя
-    # ...
-    return True
-
-def open_strequest_inprocess():
-    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.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()
-
-        t1=threading.Thread(target=open_strequest_inprocess_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_strequest_inprocess)
-
-
-

+ 0 - 147
handlers/open_strequest_new.py

@@ -1,147 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_strequest_new"
-
-operating_status=111
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_strequest_assigned@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_servicerequest_booked_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и возвращен в очередь\n")
-
-def open_stequest_new_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-
-    order = jsreq.jsonToOrder(localtask)
-
-    if order.provider:
-        st_request_assigned(order)
-    else:
-        # Что такое маркер обработчика?
-        if not order.marker:
-            add_marker(order)
-            assign_executor(localtask)
-        
-        if assign_executor(order):
-            st_request_assigned(localtask)
-        else:
-            # Проверка таймера
-            if True:
-                if assign_executor(order):
-                    st_request_assigned(localtask)
-            else:
-                add_marker(order)
-                assign_executor(order)
-
-def st_request_assigned(localtask):
-    bot.proceed_status(proceed_to[1],localtask)
-
-# Пока не уверен
-def assign_executor(order):
-    # Алгоритм назначения исполнителя
-    # ...
-    return True
-
-def add_marker(order):
-    # 
-    pass
-
-def open_servicerequest_booked():
-    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.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()
-
-        t1=threading.Thread(target=open_stequest_new_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_servicerequest_booked)
-
-
-

+ 0 - 147
handlers/open_strequest_reopened.py

@@ -1,147 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_strequest_reopened"
-
-operating_status=110
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_strequest_assigned@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_stequest_reopened_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и возвращен в очередь\n")
-
-def open_stequest_reopened_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-
-    order = jsreq.jsonToOrder(localtask)
-
-    if order.provider:
-        st_request_assigned(order)
-    else:
-        # Что такое маркер обработчика?
-        if not order.marker:
-            add_marker(order)
-            assign_executor(localtask)
-        
-        if assign_executor(order):
-            st_request_assigned(localtask)
-        else:
-            # Проверка таймера
-            if True:
-                if assign_executor(order):
-                    st_request_assigned(localtask)
-            else:
-                add_marker(order)
-                assign_executor(order)
-
-def st_request_assigned(localtask):
-    bot.proceed_status(proceed_to[1],localtask)
-
-# Пока не уверен
-def assign_executor(order):
-    # Алгоритм назначения исполнителя
-    # ...
-    return True
-
-def add_marker(order):
-    # 
-    pass
-
-def open_stequest_reopened():
-    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.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()
-
-        t1=threading.Thread(target=open_stequest_reopened_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_stequest_reopened)
-
-
-

+ 0 - 135
handlers/open_strequest_wontfix.py

@@ -1,135 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-botname="open_strequest_wontfix"
-
-operating_status=149
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-print(JID, PASSWORD)
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=[botname, "open_strequest_closed@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_strequest_wontfix_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и возвращен в очередь\n")
-
-def open_strequest_wontfix_process(localtask):
-    bot.bot_log(botname + " " + str(datetime.now()) + " " + "Заказ в обработчике\n")
-
-    order = jsreq.jsonToOrder(localtask)
-    idle_value = idle_value - 1
-
-    if idle_value < 1:
-        st_request_wontfix(localtask)
-    else:
-        push_notifications(order)
-        open_strequest_wontfix_wait(100,localtask)
-    # Затычка
-    if True:
-        open_strequest_wontfix_process(localtask)
-
-
-def st_request_wontfix(localtask):
-    bot.proceed_status(proceed_to[1],localtask)
-
-# Пока не уверен
-def push_notifications(order):
-    # Отправка уведомлений
-    # ...
-    return True
-
-def open_strequest_wontfix():
-    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.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()
-
-        t1=threading.Thread(target=open_strequest_wontfix_process, args=(localtask))
-        t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print(tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
-
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
-print (len(tasklist))
-
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_strequest_wontfix)
-
-
-

+ 0 - 125
handlers/open_template_bot.py

@@ -1,125 +0,0 @@
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-#В этом файле содержится только то, что запускает конкретный обработчик
-
-# botname="open_strequest_assigned"
-botname="open_template_bot"
-operating_status=210
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-#раскомментировать, когда перейдем на разные пароли
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-#таким образом хранится список jid, от которых можно получать сообщения этому боту
-listen_to=["test@ej.sharix-app.org", "open_template_bot@ej.sharix-app.org"]
-
-#тут хранится список jid, кому бот может отправлять сообщения в результате обработки заявки
-proceed_to=["open_template_bot@ej.sharix-app.org", "test@ej.sharix-app.org", "test1@ej.sharix-app.org", "open_servicerequest_forcemajeure@ej.sharix-app.org"]
-
-#максимальное значение попыток обработать заказ
-idle_value=10
-
-# обработчик входящих сообщений
-def message_handler(conn, mess):
-    text = mess.getBody()#текст сообщения боту
-    user = mess.getFrom()#отправитель сообщения
-    #user = mess.getNode()#только jid 
-   
-   #нужна проверка, данный обработчик вообще должен от данного отправителя получать сообщения или нет. Подсказка ниже
-    print (str(user).split("/")[0])
-    if (str(user).split("/")[0]) in listen_to:
-        print(text)
-        print(mess)
-
-        if text is not None:
-            orderObj = jsreq.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            bot.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-def open_bot_template_wait(period,localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает\n")
-    time.sleep(period)
-    
-    #ВАЖНО! Надо скорее всего через API редактировать заказ, иначе возможна потеря данных
-    localtask.title=localtask.title+"1"
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    bot.proceed_status(proceed_to[0],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ подождал и возвращен в очередь\n")
-
-def open_bot_template_process(localtask):
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ в обработчике\n")
-    
-    #ВАЖНО! Надо через API редактировать заказ, иначе возможна потеря данных
-    #localtask.title +=1
-
-    bot.proceed_status(proceed_to[1],localtask)
-    bot.bot_log(botname+" "+str(datetime.now())+" "+"Заказ успешно обработан\n")
-
-
-def open_bot_template():
-    #print("Тут описывается работа со списком задач в данном статусе")
-    while (len(tasklist)):
-    #for i in range(len(tasklist)):
-        #проверяем элемент tasklist[i]
-        #print (i, len(tasklist))
-        localtask=tasklist.pop(0)
-        bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " "+ "Заказ в очереди на обработке\n")
-        #bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " " + str(i) + " " + "Заказ в очереди на обработке\n")
-        #print ("EACH TASKLIST", tasklist[i])
-        #localtask=tasklist.pop(i)
-        
-        #если боту почему-то пришла не его заявка - это явно ошибка движения процессов и отдаем в форсмажор - этот обработчик указывать стоит всегда последним
-        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_bot_template_wait, args=(5,localtask))
-            t1.start()
-
-        if (localtask.title=="101"):
-            t1=threading.Thread(target=open_bot_template_process, args=(10,localtask))
-            t1.start()
-
-        #если никакие обработчики не подошли - отправляем обратно в очередь
-        bot.proceed_status(proceed_to[0],localtask)
-        print("Заказ возвращен в очередь\n")
-        print (tasklist)
-
-#Авторизация и запуск бота
-
-#пустой список заказов
-tasklist = []
-
-#надо инициализировать tasklist при запуске из API
-token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/base/auth/token/login/")
-#ВАЖНО! Надо еще фильтровать список по статусу обработки заявки
-tasklist=jsreq.requestGetList(token, config.API_URL+"/webservice/api/webservice/")
-
-print(JID, PASSWORD, PORT)
-bot = JabberBot(JID, PASSWORD, PORT)
-
-bot.register_handler('message', message_handler)
-bot.start(open_bot_template)
-
-
-

+ 0 - 33
handlers/order_functions.py

@@ -1,33 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-
-import time
-import threading
-
-#test
-import jsonAndRequest as jsreq
-
-global tasklist
-
-
-def send_message(order):
-    task_apply = {
-        'driver_id':None,
-        'apply':False,
-        'task_id':order.id
-    }
-    print(order.id)
-    
-    bot.proceed_status('driver_jabber',task_apply)
-    
-def find_jabber_acc():
-    pass
-#поиск пользователя в джаббер для далнейшей отправки
-    

+ 0 - 7
handlers/requirements.txt

@@ -1,7 +0,0 @@
-certifi==2022.12.7
-charset-normalizer==3.1.0
-idna==3.4
-requests==2.29.0
-six==1.16.0
-urllib3==1.26.15
-xmpppy==0.7.1

+ 0 - 28
handlers/sending_message.py

@@ -1,28 +0,0 @@
-import requests
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-import hashlib
-from datetime import datetime
-import time
-import threading
-#test
-import jsonAndRequest as jsreq
-global tasklist
-botname="open_template_bot"
-operating_status=211
-JID=botname+"@"+config.JSERVER
-PORT=config.PORT
-
-PASSWORD=hashlib.md5((botname+config.PASSWORD).encode('utf-8')).hexdigest()
-
-proceed_to=["open_servicerequest_booked@ej.sharix-app.org"]
-
-
-def send_msg(msg):
-    bot = JabberBot(JID, PASSWORD, PORT)
-    bot.send_notification(proceed_to[0],msg)
-

+ 0 - 10
handlers/starter.sh

@@ -1,10 +0,0 @@
-#!/bin/bash
-
-python3 open_servicerequest_booked.py
-python3 open_servicerequest_assigned.py
-python3 open_servicerequest_pending.py
-python3 open_servicerequest_accepted.py
-python3 open_servicerequest_process.py
-python3 open_servicerequest_done.py
-
-

+ 0 - 55
handlers/status_handlers.py

@@ -1,55 +0,0 @@
-import xmpp
-from xmpp import cli
-import config
-from BotClass import JabberBot
-import json
-#раскомментировать, когда перейдем на разные пароли
-from datetime import datetime
-
-import time
-
-#test
-import jsonAndRequest as jsreq
-
-
-
-def proceed_status(self, recipient, ticket):
-        #тут могут быть различные проверки дополнительные, а так вообще эта функция нужна для передачи заявки на обработку следующему
-        jsonTicket = json.dumps(ticket.__dict__)
-        self.conn.send(xmpp.Message(recipient, jsonTicket))
-        self.bot_log("Message sent successfully"+" "+recipient+" "+jsonTicket)
-
-# обработчик входящих сообщений
-def message_handler(self, 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.jsonToOrderTicket(text)
-            print (orderObj)
-            tasklist.append(orderObj)
-            self.bot_log(str(datetime.now())+" Поступивший заказ успешно добавлен в очередь обработки\n")
-
-#TODO - для обработчиков Ticket скорее надо будет функции вынести в отдельную библиотеку, они типовые же
-def pending_wait(self, period, localtask, proceed_to):
-    self.bot_log(botname+" "+str(datetime.now())+" "+"Заказ ожидает пользовательской реакции\n")
-    time.sleep(period)
-    
-    #ВАЖНО! НАДО ВСТАВИТЬ ИЗМЕНЕНИЕ СТАТУСА ЧЕРЕЗ API
-
-    #обязательно данный обработчик должен заканчиваться передачей заказа куда-то на обработку дальше - обратно или другому, иначе оно потеряется
-    self.proceed_status(proceed_to,localtask)
-    self.bot_log(botname+" "+str(datetime.now())+" "+"Заказ отправлен в очередь "+proceed_to+"\n")
-
-def order_close(self, localtask):
-
-    #тут надо вызов API с удалением
-    self.bot_log(botname+" "+str(datetime.now())+" "+"Заказ удален\n")
-
-