forked from serkus/webport
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
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
|