# -*- coding: utf-8 -*- import csv import gettext import rpm gettext.install("mageiawelcome") install = _("Install") launch = _("Launch") ts = rpm.TransactionSet() def get_desktop_name(x): return { '01plasma':'KDE', '02GNOME':'Gnome', 'gnome': 'Gnome Wayland', 'gnome-xorg': 'Gnome X.org', 'LXDE':'LXDE', 'MATE':'Mate', 'Cinnamon':'Cinnamon', '23E17':'Enlightenment', '07IceWM':'IceWM', '26Openbox':'Openbox', '03WindowMaker':'WindowMaker', '09Fvwm2':'Fvwm2', }.get(x,'Other') def get_desktop_name2(x): return { 'KDE':'KDE', 'XFCE':'Xfce', 'LXQt':'LXQt', 'MATE':'Mate', 'GNOME':'Gnome', 'X-Cinnamon':'Cinnamon', }.get(x,'unknown') def is_installed(name): mi = ts.dbMatch('name', name) release = "" for h in mi: release = (h['release']).decode("utf-8") if release.endswith("tainted"): repo = 'tainted' elif release.endswith("nonfree"): repo = 'nonfree' else: repo = '' return release != "", repo def get_listapp(): listapp = '' with open("apps.csv", 'rt') as f: mycsv = csv.reader(f,delimiter='|') next(mycsv) for r in mycsv: if (r[5] == 'false'): start_btn = "" else: start_btn = "" if (r[6] != ''): label = "" + r[6] + "" title = " title='{}'".format(_("Need {} repository enabled").format(r[6])) else: label = "" title = "" is_app_installed, repo = is_installed(r[1]) if ( not is_app_installed or repo != r[6]):# NOT INSTALLED IN EXPECTED RELEASE if is_app_installed and r[6] == "": # ANOTHER RELEASE THAN CORE IS INSTALLED listapp += "
  • \
    " + r[2] + "

    " + r[4] + "

    " + label else: listapp += "
  • \
    " + r[2] + "

    " + r[4] + "

    " + label + "
  • " else: # INSTALLED listapp += "
  • \
    " + r[2] + "

    " + r[4] + "

    " + start_btn + label + "
  • " return listapp