You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.9 KiB

# -*- 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