# -*- coding: UTF-8 -*- #!/usr/bin/env python.3.7 import json try: import portage portage.root portge = portage.db[portage.root]["porttree"].dbapi except Exception as e: print("Not Found Portage") from utils.utils import sort_inatll_pkg #ПЛАН: # # API PORTAGE IN SEARCH class Package(): def __init__(self): self.Cat =[] self.pkg = {} self.Category ="" self.Name = "" self.version ="" self.USE ="" self.Description = "" self.Home_page ="" self.repository = "" def search(self, r_p): try: pametrs = ["HOMEPAGE", "IUSE","DESCRIPTION", "repository", "LICENSE"] #print(r_p) p_list = portge.xmatch('match-all', r_p) m_list = portge.xmatch('match-visible', r_p) #print(m_list) #print(len(p_list)) if len(p_list) != 0: for l in p_list: params = portge.aux_get(l, pametrs) if str(self.Cat) in self.Category and str(l).split('/')[1].split('-')[0] in self.Name: self.version = self.version + " " + str(l.replace(l.split("/")[0] + "/"+ r_p, "")) if not l in m_list: self.version = str(self.version) +"[M]" else: self.version = str(self.version) +"[U]" #version + " " + str(l).split('/')[1].split('-')[:-1] else: self.Category= str(self.Cat) #Name =str(l).split('/')[1].split('-')[0] self.Name = l.split("/")[0] +"/" + r_p self.version = str(l.replace(l.split("/")[0] + "/"+r_p, "")) if not l in m_list: self.version = str(self.version) + "[M]" else: self.version = str(self.version) +"[U]" self.USE = params[1] self.Description = params[2] self.Home_page = params[0] self.repository = params[3] else: self.Name = "Package is not Found" #print(Category + "\n" + Name + "\n" + version +"\n" + USE + "\n" + Description + "\n" + Home_page +"\n") #p_list = str(Category + "\n" + Name + "\n" + version +"\n" + USE + "\n" + Description + "\n" + Home_page +"\n") except Exception as e: print(str(e)) p_list = " ERROR IN Package " self.pkg = {"Category": self.Category, "Name": self.Name,"version": self.version.split(" "), "USE":self.USE.split(" "), "Description": self.Description, "Home_page":self.Home_page, 'repo': str(self.repository) } print(self.pkg) return self.pkg