summaryrefslogtreecommitdiff
path: root/src/frontend/gui/internet.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/gui/internet.py')
-rwxr-xr-xsrc/frontend/gui/internet.py100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/frontend/gui/internet.py b/src/frontend/gui/internet.py
new file mode 100755
index 0000000..e8ad1d3
--- /dev/null
+++ b/src/frontend/gui/internet.py
@@ -0,0 +1,100 @@
+#!/usr/bin/python3
+import sys, subprocess, sqlite3
+from PyQt5 import QtCore, QtGui, QtWidgets, uic
+
+class Internet(QtWidgets.QMainWindow):
+ def __init__(self):
+ super(Internet, self).__init__()
+ uic.loadUi('ui/internet.ui', self)
+ self.centerOnScreen()
+ self.show()
+ self.load_packages()
+
+ self.package_install.clicked.connect(self.install_package)
+ self.package_uninstall.clicked.connect(self.uninstall_package)
+ self.orphans_remove.clicked.connect(self.remove_orphans)
+ self.category_exit.clicked.connect(self.exit_category)
+
+ def centerOnScreen(self):
+ resolution = QtWidgets.QDesktopWidget().screenGeometry()
+ self.move((resolution.width() / 2) - (self.frameSize().width() / 2),
+ (resolution.height() / 2) - (self.frameSize().height() / 2))
+
+ def install_package(self):
+ pkgname = self.table_internet.item(self.table_internet.currentRow(), 1).text()
+ subprocess.Popen(['xterm', '-e', 'sisyphus', 'auto-install'] + pkgname.split())
+
+ def uninstall_package(self):
+ pkgname = self.table_internet.item(self.table_internet.currentRow(), 1).text()
+ subprocess.Popen(['xterm', '-e', 'sisyphus', 'auto-uninstall'] + pkgname.split())
+
+ def remove_orphans(self):
+ subprocess.Popen(['xterm', '-e', 'sisyphus', 'remove-orphans'])
+
+ def exit_category(self):
+ self.close()
+
+ def load_packages(self):
+ with sqlite3.connect('/var/lib/sisyphus/db/sisyphus.db') as db:
+ cursor=db.cursor()
+ cursor.execute('''SELECT
+ a.category AS cat,
+ a.name AS pn,
+ a.version AS av,
+ i.version AS iv,
+ a.description AS descr
+ FROM remote_packages AS a
+ LEFT JOIN local_packages AS i
+ ON a.category = i.category
+ AND a.name = i.name
+ AND a.slot = i.slot
+ WHERE a.name IN
+ ('firewalld',
+ 'ufw',
+ 'ufw-frontends',
+ 'cifs-utils',
+ 'samba',
+ 'sshfs',
+ 'filezilla',
+ 'franz',
+ 'qtox',
+ 'telegram',
+ 'viber',
+ 'konversation',
+ 'quassel',
+ 'aria2',
+ 'dropbox',
+ 'megasync',
+ 'owncloud-client',
+ 'teamviewer',
+ 'telnet-bsd',
+ 'tigervnc',
+ 'youtube-dl',
+ 'quiterss',
+ 'qbittorrent',
+ 'transmission',
+ 'firefox',
+ 'google-chrome',
+ 'opera',
+ 'qupzilla',
+ 'vivaldi',
+ 'adobe-flash',
+ 'chrome-binary-plugins',
+ 'freshplayerplugin',
+ 'google-talkplugin',
+ 'wmail',
+ 'trojita',
+ 'aircrack-ng',
+ 'wavemon',
+ 'messengerfordesktop')
+ ''')
+ rows = cursor.fetchall()
+
+ for row in rows:
+ inx = rows.index(row)
+ self.table_internet.insertRow(inx)
+ self.table_internet.setItem(inx, 0, QtWidgets.QTableWidgetItem(row[0]))
+ self.table_internet.setItem(inx, 1, QtWidgets.QTableWidgetItem(row[1]))
+ self.table_internet.setItem(inx, 2, QtWidgets.QTableWidgetItem(row[2]))
+ self.table_internet.setItem(inx, 3, QtWidgets.QTableWidgetItem(row[3]))
+ self.table_internet.setItem(inx, 4, QtWidgets.QTableWidgetItem(row[4]))