105 lines
3.2 KiB
Python
105 lines
3.2 KiB
Python
import sys
|
|
from pathlib import Path
|
|
|
|
ROOT_DIR = Path(__file__).resolve().parents[1]
|
|
for path in (ROOT_DIR / "api", ROOT_DIR / "conn"):
|
|
if str(path) not in sys.path:
|
|
sys.path.insert(0, str(path))
|
|
|
|
import phrase_similarity
|
|
import detailTicket
|
|
import filters
|
|
import tickets
|
|
import mysql5
|
|
|
|
|
|
HIGH_GRAVITY_WORDS = ("alta", "urgente", "critica", "critico", "bloccante", "grave", "high")
|
|
|
|
|
|
def _is_high_gravity(value):
|
|
text = str(value or "").strip().lower()
|
|
return any(word in text for word in HIGH_GRAVITY_WORDS)
|
|
|
|
|
|
|
|
def getTicketToday(teleId):
|
|
|
|
listOfStrings = []
|
|
listFilters = filters.getFilters(teleId)
|
|
ticketAsString = ""
|
|
for j in listFilters:
|
|
|
|
docList = mysql5.getTicket(j[2], j[3])
|
|
ticketAsString = ""
|
|
for i in docList:
|
|
ticketAsString += "🎫 /Ticket_dettaglio_"+ str(i[0]) + "\n" +"🏢 Cliente: "+ str(i[1]) + "\n" +"🔎 Oggetto: "+ str(i[2])+ "\n" +"🎨 Gravita': "+ str(i[3])+ "\n" + "🧑 Competenza': "+ str(i[4])+ "\n" + "📅 Apertura': "+ str(i[6]) + "\n\n"
|
|
if len(docList):
|
|
# max char 4096
|
|
listOfStrings.append(str(ticketAsString))
|
|
return listOfStrings
|
|
|
|
|
|
|
|
def getTicketTodayForNotification(teleId, high_gravity_only=False):
|
|
|
|
listOfStrings = []
|
|
listFilters = filters.getFilters(teleId)
|
|
|
|
# print("Lista di filtri: ",listFilters)
|
|
# print("\n\n\n")
|
|
|
|
ticketTodayList = mysql5.getTicketsByFilterSet(listFilters)
|
|
for i in ticketTodayList:
|
|
if high_gravity_only and not _is_high_gravity(i[3]):
|
|
continue
|
|
|
|
ticket_id = int(i[0])
|
|
if len(tickets.getTicketForTid(teleId, ticket_id)) > 0:
|
|
continue
|
|
|
|
object_ = str(i[2])
|
|
if len(object_) > 250:
|
|
object_ = object_[:250] + "..."
|
|
ticketAsStringSingle = "🎫 /Ticket_dettaglio_"+ str(i[0]) + "\n https://tsnew.sanmarcoweb.com/it/ticket/index/index/operation/view/id/"+ str(i[0]) + "\n" +"🏢 Cliente: "+ str(i[1]) + "\n" +"🔎 Oggetto: "+ str(object_) + "\n" +"🎨 Gravita': "+ str(i[3])+ "\n" + "🧑 Competenza: "+ str(i[4])+ "\n" + "📦 Prodotto:" + str(i[5])+ "\n" + "💜/preferito_"+ str(i[0]) + "\n\n"
|
|
for j in listFilters:
|
|
if len(tickets.getTickets(int(j[0]), ticket_id)) == 0:
|
|
tickets.insertTicket(int(j[0]), ticket_id)
|
|
listOfStrings.append(str(ticketAsStringSingle))
|
|
# print("Lista ticket finale:: ",len(listOfStrings))
|
|
# print("\n\n\n")
|
|
return listOfStrings
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def getDetailTicket(ticketId):
|
|
downloaded = detailTicket.getDetail(str(ticketId))
|
|
return downloaded
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# newTicketList = getTicketTodayForNotification(145645559)
|
|
|
|
# for ticket in newTicketList:
|
|
# hole_message = ticket
|
|
# # print("Messaggio: ", ticket)
|
|
# # Guessing from other ticket
|
|
# prefix = "🎫 /Ticket_dettaglio_"
|
|
# ticket_value = ticket.split(prefix, 1)[-1].split("\n", 1)[0].strip()
|
|
|
|
# best_matches_indices = phrase_similarity.start_guessing_new(ticket_value)
|
|
# for ticket_info in best_matches_indices:
|
|
# # print("Gesing Ticket: ", str(ticket_info))
|
|
# hole_message += str(ticket_info)
|
|
|
|
# hole_message += "\n\n\n\n"
|
|
# print(hole_message)
|