Moved to views

Signed-off-by: Dimitris Zlatanidis <d.zlatanidis@gmail.com>
This commit is contained in:
Dimitris Zlatanidis 2022-11-29 17:58:51 +02:00
parent d347300bee
commit 59f1085715

View file

@ -0,0 +1,75 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import urllib3
from dataclasses import dataclass
from slpkg.configs import Configs
from slpkg.models.models import SBoTable
from slpkg.models.models import session as Session
@dataclass
class ViewPackage:
session: str = Session
colors: dict = Configs.colour
sbo_repo_url: str = Configs.sbo_repo_url
sbo_tar_suffix: str = Configs.sbo_tar_suffix
def package(self, packages):
http = urllib3.PoolManager()
color = self.colors()
GREEN = color['GREEN']
BLUE = color['BLUE']
YELLOW = color['YELLOW']
CYAN = color['CYAN']
RED = color['RED']
ENDC = color['ENDC']
for package in packages:
info = self.session.query(
SBoTable.name,
SBoTable.version,
SBoTable.requires,
SBoTable.download,
SBoTable.download64,
SBoTable.md5sum,
SBoTable.md5sum64,
SBoTable.files,
SBoTable.short_description,
SBoTable.location
).filter(SBoTable.name == package).first()
readme = http.request(
'GET', f'{self.sbo_repo_url}/{info[9]}/{info[0]}/README')
info_file = http.request(
'GET', f'{self.sbo_repo_url}/{info[9]}/{info[0]}/{info[0]}.info')
maintainer, email, homepage = '', '', ''
for line in info_file.data.decode().splitlines():
if line.startswith('HOMEPAGE'):
homepage = line[10:-1].strip()
if line.startswith('MAINTAINER'):
maintainer = line[12:-1].strip()
if line.startswith('EMAIL'):
email = line[7:-1].strip()
print(f'Name: {GREEN}{info[0]}{ENDC}\n'
f'Version: {GREEN}{info[1]}{ENDC}\n'
f'Requires: {GREEN}{info[2]}{ENDC}\n'
f'Homepage: {BLUE}{homepage}{ENDC}\n'
f'Download SlackBuild: {BLUE}{self.sbo_repo_url}/{info[9]}/{info[0]}{self.sbo_tar_suffix}{ENDC}\n'
f'Download sources: {BLUE}{info[3]}{ENDC}\n'
f'Download_x86_64 sources: {BLUE}{info[4]}{ENDC}\n'
f'Md5sum: {YELLOW}{info[5]}{ENDC}\n'
f'Md5sum_x86_64: {YELLOW}{info[6]}{ENDC}\n'
f'Files: {GREEN}{info[7]}{ENDC}\n'
f'Description: {GREEN}{info[8]}{ENDC}\n'
f'Slackware: {CYAN}{self.sbo_repo_url.split("/")[-1]}{ENDC}\n'
f'Category: {RED}{info[9]}{ENDC}\n'
f'SBo url: {BLUE}{self.sbo_repo_url}/{info[9]}/{info[0]}{ENDC}\n'
f'Maintainer: {YELLOW}{maintainer}{ENDC}\n'
f'Email: {YELLOW}{email}{ENDC}\n'
f'\nREADME: {CYAN}{readme.data.decode()}{ENDC}')