mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 01:14:15 +02:00
[flatpak] info available for not installed applications
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user