[flatpak] info available for not installed applications

This commit is contained in:
Vinicius Moreira
2019-10-09 19:46:06 -03:00
parent 589264b096
commit f8128828d4
11 changed files with 89 additions and 17 deletions

View File

@@ -11,9 +11,12 @@ from bauh.api.abstract.view import MessageType
from bauh.commons.html import strip_html
from bauh.commons.system import SystemProcess, ProcessHandler
from bauh.gems.flatpak import flatpak, suggestions
from bauh.gems.flatpak.constants import FLATHUB_API_URL
from bauh.gems.flatpak.model import FlatpakApplication
from bauh.gems.flatpak.worker import FlatpakAsyncDataLoader, FlatpakUpdateLoader
DATE_FORMAT = '%Y-%m-%dT%H:%M:%S.000Z'
class FlatpakManager(SoftwareManager):
@@ -23,6 +26,7 @@ class FlatpakManager(SoftwareManager):
self.api_cache = context.cache_factory.new()
context.disk_loader_factory.map(FlatpakApplication, self.api_cache)
self.enabled = True
self.http_client = context.http_client
def get_managed_types(self) -> Set["type"]:
return {FlatpakApplication}
@@ -135,15 +139,42 @@ class FlatpakManager(SoftwareManager):
return ProcessHandler(watcher).handle(SystemProcess(subproc=flatpak.uninstall(pkg.ref)))
def get_info(self, app: FlatpakApplication) -> dict:
app_info = flatpak.get_app_info_fields(app.id, app.branch)
app_info['name'] = app.name
app_info['type'] = 'runtime' if app.runtime else 'app'
app_info['description'] = strip_html(app.description) if app.description else ''
if app.installed:
app_info = flatpak.get_app_info_fields(app.id, app.branch)
app_info['name'] = app.name
app_info['type'] = 'runtime' if app.runtime else 'app'
app_info['description'] = strip_html(app.description) if app.description else ''
if app_info.get('installed'):
app_info['installed'] = app_info['installed'].replace('?', ' ')
if app_info.get('installed'):
app_info['installed'] = app_info['installed'].replace('?', ' ')
return app_info
return app_info
else:
res = self.http_client.get_json('{}/apps/{}'.format(FLATHUB_API_URL, app.id))
if res:
if res.get('categories'):
res['categories'] = [c.get('name') for c in res['categories']]
for to_del in ('screenshots', 'iconMobileUrl', 'iconDesktopUrl'):
if res.get(to_del):
del res[to_del]
for to_strip in ('description', 'currentReleaseDescription'):
if res.get(to_strip):
res[to_strip] = strip_html(res[to_strip])
for to_date in ('currentReleaseDate', 'inStoreSinceDate'):
if res.get(to_date):
try:
res[to_date] = datetime.strptime(res[to_date], DATE_FORMAT)
except:
self.context.logger.error('Could not convert date string {} as {}'.format(res[to_date], DATE_FORMAT))
pass
return res
else:
return {}
def get_history(self, pkg: FlatpakApplication) -> PackageHistory:
pkg.commit = flatpak.get_commit(pkg.id, pkg.branch)

View File

@@ -24,7 +24,7 @@ class FlatpakApplication(SoftwarePackage):
return self.installed and self.ref
def has_info(self):
return self.installed
return bool(self.id)
def can_be_downgraded(self):
return self.installed and self.ref

View File

@@ -2,4 +2,16 @@ flatpak.notification.no_remotes=No Flatpak remotes set. It will not be possible
flatpak.downgrade.impossible.title=Error
flatpak.downgrade.impossible.body=Impossible to downgrade: the app is in its first version
flatpak.downgrade.commits=Reading package commits
flatpak.downgrade.reverting=Reverting version
flatpak.downgrade.reverting=Reverting version
flatpak.info.flatpakappid=id
flatpak.info.bugtrackerurl=bug tracker URL
flatpak.info.currentreleasedate=release date
flatpak.info.currentreleasedescription=version description
flatpak.info.currentreleaseversion=version
flatpak.info.donationurl=donation URL
flatpak.info.downloadflatpakrefurl=Ref
flatpak.info.helpurl=Help url
flatpak.info.homepageurl=Home url
flatpak.info.instoresincedate=added in
flatpak.info.projectlicense=license
flatpak.info.translateurl=translate url

View File

@@ -24,4 +24,16 @@ flatpak.history.date=fecha
flatpak.history.commit=commit
flatpak.history.subject=tema
flatpak.downgrade.commits=Leyendo commits del paquete
flatpak.downgrade.reverting=Revirtiendo la versión
flatpak.downgrade.reverting=Revirtiendo la versión
flatpak.info.flatpakappid=id
flatpak.info.bugtrackerurl=reporte de errores
flatpak.info.currentreleasedate=fecha de lanzamiento
flatpak.info.currentreleasedescription=descripción de la versión
flatpak.info.currentreleaseversion=versión
flatpak.info.donationurl=donaciones
flatpak.info.downloadflatpakrefurl=ref
flatpak.info.helpurl=ayuda
flatpak.info.homepageurl=página
flatpak.info.instoresincedate=agregado en
flatpak.info.projectlicense=licencia
flatpak.info.translateurl=Traducción

View File

@@ -24,4 +24,16 @@ flatpak.history.date=data
flatpak.history.commit=commit
flatpak.history.subject=assunto
flatpak.downgrade.commits=Lendo os commits do pacote
flatpak.downgrade.reverting=Revertendo a versão
flatpak.downgrade.reverting=Revertendo a versão
flatpak.info.flatpakappid=id
flatpak.info.bugtrackerurl=reporte de erros
flatpak.info.currentreleasedate=data de lançamento
flatpak.info.currentreleasedescription=descrição da versão
flatpak.info.currentreleaseversion=versão
flatpak.info.donationurl=doações
flatpak.info.downloadflatpakrefurl=ref
flatpak.info.helpurl=ajuda
flatpak.info.homepageurl=página
flatpak.info.instoresincedate=adicionado em
flatpak.info.projectlicense=licença
flatpak.info.translateurl=tradução

View File

@@ -6,8 +6,6 @@ from bauh.api.abstract.context import ApplicationContext
from bauh.api.abstract.controller import SoftwareManager
from bauh.api.abstract.model import PackageStatus
from bauh.api.http import HttpClient
from bauh.gems.flatpak import flatpak
from bauh.gems.flatpak.constants import FLATHUB_API_URL, FLATHUB_URL
from bauh.gems.flatpak.model import FlatpakApplication

View File

@@ -49,7 +49,7 @@ class InfoDialog(QDialog):
i18n_key = app['__app__'].model.get_type().lower() + '.info.' + attr.lower()
if isinstance(app[attr], list):
val = '\n'.join(['* ' + str(e.strip()) for e in app[attr] if e])
val = '\n'.join(['* ' + str(e).strip() for e in app[attr] if e])
else:
val = str(app[attr]).strip()

View File

@@ -119,4 +119,6 @@ downloading=Downloading
console.install_logs.path=Installation logs can be found at {}
author=author
source=source
size=size
size=size
categories=categories
summary=summary

View File

@@ -121,4 +121,6 @@ downloading=Descargando
console.install_logs.path=Los registros de instalación se pueden encontrar en {}
author=autor
source=origen
size=tamaño
size=tamaño
categories=categorías
summary=sumario

View File

@@ -121,4 +121,6 @@ downloading=Baixando
console.install_logs.path=Os registros de instalação podem ser encontrados em {}
author=autor
source=fonte
size=tamanho
size=tamanho
categories=categorias
summary=resumo