all the project copy

This commit is contained in:
2026-07-16 12:27:06 +02:00
parent 926b7de75b
commit 568beef49a
631 changed files with 130346 additions and 0 deletions

205
api/limbo/compareText.py Normal file
View File

@@ -0,0 +1,205 @@
import requests
import re
import json
import traceback
import logging
import cockie
import connection
import spacy_match
import spacy
nlp = spacy.load('it_core_news_lg')
def getConn():
c = connection.conn()
return c
def closeConnection(connection,cursor):
if connection:
cursor.close()
connection.close()
file_path = "output.json"
def extract_text_between_markers(text, start_marker, end_marker):
pattern = re.compile(f'{re.escape(start_marker)}(.*?){re.escape(end_marker)}', re.DOTALL)
match = pattern.search(text)
if match:
return match.group(1).strip()
return None
# Returns all the filters inserted by a user
def getObjectAndDescription(area,prodotto):
connection = getConn()
cursor = connection.cursor()
postgreSQL_select_Query = "select descrizione AS result from ticket_big where competenze ='" + str(area) + "' AND prodotto = '" + prodotto + "' " #+ " OR prodotto ='' "
print(postgreSQL_select_Query)
cursor.execute(postgreSQL_select_Query)
publisher_records = cursor.fetchall()
closeConnection(connection,cursor)
# print(publisher_records)
return publisher_records
def getDetail(ticketId):
try:
cookies = {
'language': 'it',
'sid': cockie.id,
}
headers = {
'Accept': '*/*',
'Accept-Language': 'it-IT,it;q=0.9,la;q=0.8',
'Connection': 'keep-alive',
'Content-Type': 'application/x-www-form-urlencoded',
# Requests sorts cookies= alphabetically
# 'Cookie': 'language=it; sid=89q0fl4j3r54600e2fdbf952t1',
'Referer': 'https://tsnew.sanmarcoweb.com/it/ticket',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest',
'sec-ch-ua': '"Chromium";v="104", " Not A;Brand";v="99", "Google Chrome";v="104"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Linux"',
}
response = requests.get('https://tsnew.sanmarcoweb.com/it/ticket/details/index/id/'+ str(ticketId), cookies=cookies, headers=headers)
oggetto_start = 'name="oggetto" value="'
oggetto_end = '"'
start_marker = 'true,required: false">'
end_marker = '</textarea>'
competenza_start = '<img class="rightIcon" width="16" height="16" src="/img/_core/ticket/competence.png" />'
competenza_end = '/option>'
competenze_final_start = '" selected="selected">'
competenze_final_end = '<'
soluzione_start = '[]);}">'
soluzione_end = '</textarea>'
prodotto_start = 'id="prodotto_'+ str(ticketId)
prodotto_end = '/option>'
prodotto_final_start = 'selected="selected">'
prodotto_final_end = '<'
content = response.text
# print(content)
oggetto = extract_text_between_markers(content, oggetto_start, oggetto_end)
description = extract_text_between_markers(content, start_marker, end_marker)
competenze = extract_text_between_markers(content, competenza_start, competenza_end)
competenze = extract_text_between_markers(competenze, competenze_final_start, competenze_final_end)
soluzione = extract_text_between_markers(content, soluzione_start, soluzione_end)
prodotto = extract_text_between_markers(content, prodotto_start, prodotto_end)
prodotto = extract_text_between_markers(prodotto, prodotto_final_start, prodotto_final_end)
print(ticketId+ " --> Cercando --> ", description)
# print("Descrizione: ", description)
# print("Competenze: ", competenze)
# print("Soluzione: ", soluzione)
# print("Prodotto: ", prodotto)
# getObjectAndDescription('Assistenza Vinicoli','JExp')
# s_match(description)
if not soluzione.replace("\n", ""):
return False
connection = getConn()
cursor = connection.cursor()
postgres_insert_query = """ INSERT INTO ticket_big (id, oggetto,descrizione, competenze, soluzione,prodotto) VALUES (%s,%s,%s,%s,%s,%s)"""
record_to_insert = (str(ticketId), oggetto.replace("\n", ""),description.replace("\n", ""), competenze.replace("\n", ""),soluzione.replace("\n", ""),prodotto.replace("\n", ""))
cursor.execute(postgres_insert_query, record_to_insert)
connection.commit()
count = cursor.rowcount
if count <1:
return False
print(count, "Record inserted successfully into sort table")
closeConnection(connection,cursor)
return True
except Exception as e:
logging.error(traceback.format_exc())
return False
# for ticket in range(456424,456429):
# getDetail(ticket)
def get_ids_from_json_file(file_path):
with open(file_path, 'r') as json_file:
data = json.load(json_file)
ids = [item['id'] for item in data['data']]
return ids
file_path = 'data.json'
ids_list = get_ids_from_json_file("/Users/tommal/Desktop/tickets.json")
# print(ids_list)
for ticket in ids_list:
getDetail(ticket)
############################################################
def s_match(w_target):
# w_target = "JExp non funziona per un problema delle dogane:Esiste una procedura di emergenza per inviare i DAA?"
# List of w1 to w500
# w_list = [
# ("VIOLAZIONE REGOLA C070 non riusciamo a fare l'EAD"),
# ("L'invio dell'E-ad si blocca per la presenza dell'errore violazione regola C070")
# ]
w_list = getObjectAndDescription('Assistenza Vinicoli','JExp')
# print("\n\n")
# print(w_list)
# print("\n\n")
w_list = [item[0] for item in w_list]
# w_list = ["tempo bello", "molto", "usciamo fuori"]
# Calculate similarity scores for each w in w_list and create a list of tuples
similarity_scores = [(w, nlp(w_target).similarity(nlp(w))) for w in w_list]
# Sort the list of tuples based on similarity score in descending order
sorted_similarity_scores = sorted(similarity_scores, key=lambda x: x[1], reverse=True)
# Get the best 5 matches from the sorted list
best_matches = sorted_similarity_scores[:5]
# Print the best 5 matches
print("\n\n")
print("Top 5 matches:")
for match, similarity_score in best_matches:
print("Match:", match)
print("Similarity score:", similarity_score)
print("\n")