def check_existing(self, path: str): if path.startswith('/'): if path != '/': path_des = str(PurePosixPath(path).parent) else: return '/' else: path_des = str( PurePosixPath(self.current_dir).joinpath(path).parent) info_given = PurePosixPath(path).parts[-1] api_url = 'https://pan.baidu.com/rest/2.0/xpan/file?method=list' params = { 'dir': path_des, 'limit': '1000', 'folder': '1', # 'showempty': '1', 'access_token': self.access_token } res = requests.get(api_url, params=params, headers=headers).json() er_code = res['errno'] if er_code == 0: for bb in res['list']: info_get = PurePosixPath(bb['path']).parts[-1] # print(info_get) # print(info_given) # sys.exit() if str(info_get).lower() == info_given.lower(): return bb['path'] else: print('错误,错误代码%s!' % er_code) return None
def getProductes(): global mss_cnt #Obtenir parametres de cerca (filtre + keyword) content = msgdic['content'] print(content) filters_obj = gm.value(subject=content, predicate=REQ.Filters) print(filters_obj) categoria_filter = gm.value(subject=filters_obj, predicate=REQ.Categoria) nombre_filter = gm.value(subject=filters_obj, predicate=REQ.Nombre) precio_filter = gm.value(subject=filters_obj, predicate=REQ.Precio) marca_filter = gm.value(subject=filters_obj, predicate=REQ.TieneMarca) g=Graph() g.parse("./Ontologies/product.owl", format="xml") query = """ SELECT ?nombre ?precio ?nombreMarca ?categoria WHERE { ?a rdf:type ?categoria . ?a PrOntPr:nombre ?nombre . ?a PrOntPr:precio ?precio . ?a PrOntPr:tieneMarca ?b . ?b PrOntPr:nombre ?nombreMarca . } """ qres = g.query(query, initNs = {'PrOnt': PrOnt, 'PrOntPr': PrOntPr, 'PrOntRes' : PrOntRes}) gresult = Graph() gresult.bind('req', REQ) cerca_obj = agn['cerca'] xsddatatypes = {'s': XSD.string, 'i': XSD.int, 'f': XSD.float} result_properties = {'Marca': 's', 'Precio': 'i', 'Peso': 'f', 'Categoria': 's', 'Nombre': 's'} for prop in result_properties: if result_properties[prop] in ['s', 'i', 'f']: gresult.add((REQ[prop], RDF.type, OWL.DatatypeProperty)) gresult.add((REQ[prop], RDFS.range, xsddatatypes[result_properties[prop]])) else: gresult.add((REQ[prop], RDF.type, OWL.ObjectProperty)) gresult.add((REQ[prop], RDFS.range, REQ[result_properties[prop]])) gresult.add((REQ.Result, RDF.type, OWL.Class)) for row in qres: result_obj = REQ[row['nombre']] count = 0 i = 0 while(i < 4): product_pr = row[i] if (i == 0): if (nombre_filter != None): if (nombre_filter.lower() in product_pr.lower()): count += 1 else: count += 1 if (i == 1): if (precio_filter != None): if (product_pr <= precio_filter): count += 1 else: count += 1 if (i == 2): if (marca_filter != None): if (marca_filter.lower() in product_pr.lower()): count += 1 else: count += 1 if (i == 3): if (categoria_filter != None): categoriaURI = urlparse(row['categoria']).path categoria = PurePosixPath(categoriaURI).parts[2] if (categoria_filter.lower() in categoria.lower()): count += 1 else: count += 1 i += 1 if (count == 4): #print(row[0], row[1], row[2], row[3]) #t = term.URIRef(PrOntPr.nombre + "_" + row[0]) #gresult.add((cerca_obj, REQ.Results, result_obj)) gresult.add((result_obj, RDF.type, REQ.Result)) gresult.add((result_obj, REQ['Nombre'], row[0])) gresult.add((result_obj, REQ['Precio'], row[1])) gresult.add((result_obj, REQ['Marca'], row[2])) gresult.add((result_obj, REQ['Categoria'], Literal(PurePosixPath(urlparse(row[3]).path).parts[2]))) registrarCerca(row[0], row[2]) return gresult