Exemple #1
0
 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
Exemple #2
0
 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