summaryrefslogtreecommitdiffstats
path: root/usr/share/mageiawelcome/helpers.py
blob: 773070d5f3ee543cf1fd052d4485172d9c19301e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# -*- 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 Plasma',
    '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 Plasma',
      '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 = "<button class='cmd small green' data-run='"+ r[5] + "'><i class='icon-ok-sign'> </i>" + launch +"</button>" 
        if (r[6] != ''):
            label = "<span class='label red'>" + r[6] + "</span>"
            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 += "<li class='urpme " + r[3] +"' id='" + r[0] + "'><img class=icon src=img/" + r[0] + ".png /><div class='chkbox'></div> \
<h6>" + r[2] + "</h6><p class='description'>" + r[4] + "</p>" + label 
            else:
                listapp += "<li class='" + r[3] +"' id='" + r[0] + "'><img class=icon src=img/" + r[0] + ".png /><div class='chkbox'><input type='checkbox' datasrc='" + r[1] +"'></div> \
<h6>" + r[2] + "</h6><p class='description'>" + r[4] + "</p>" + label + "<button class='inst small' data-rpm='" + r[1] + "'" + title +"><i class='icon-circle-arrow-down'> </i>" + install +"</button></li>"
        else: # INSTALLED
            listapp += "<li class='urpme " + r[3] +"' id='" + r[0] + "'><img class=icon src=img/" + r[0] + ".png /><div class='chkbox'></div> \
<h6>" + r[2] + "</h6><p class='description'>" + r[4] + "</p>" + start_btn + label + "</li>"
  return listapp