90 lines
2.0 KiB
Plaintext
90 lines
2.0 KiB
Plaintext
|
#!/usr/bin/python
|
||
|
|
||
|
#
|
||
|
# Copyright 2014 Jason Mehring (nrgaway@gmail.com)
|
||
|
#
|
||
|
|
||
|
from PyQt4 import QtGui
|
||
|
import locale
|
||
|
import yaml
|
||
|
|
||
|
DEFAULT_LANG = 'en'
|
||
|
|
||
|
class Messages():
|
||
|
filename = None
|
||
|
data = None
|
||
|
language = DEFAULT_LANG
|
||
|
title = None
|
||
|
icon = None
|
||
|
message = None
|
||
|
|
||
|
def __init__(self, section, filename):
|
||
|
self.filename = filename
|
||
|
|
||
|
language = locale.getdefaultlocale()[0].split('_')[0]
|
||
|
if language:
|
||
|
self.language = language
|
||
|
|
||
|
try:
|
||
|
stream = file(filename, 'r')
|
||
|
data = yaml.load(stream)
|
||
|
|
||
|
if section in data.keys():
|
||
|
section = data[section]
|
||
|
|
||
|
self.icon = section.get('icon', None)
|
||
|
|
||
|
language = section.get(self.language, DEFAULT_LANG)
|
||
|
|
||
|
self.title = language.get('title', None)
|
||
|
self.message = language.get('message', None)
|
||
|
|
||
|
except (IOError):
|
||
|
pass
|
||
|
except (yaml.scanner.ScannerError, yaml.parser.ParserError):
|
||
|
pass
|
||
|
|
||
|
class WhonixMessageBox(QtGui.QMessageBox):
|
||
|
def __init__(self, message):
|
||
|
super(WhonixMessageBox, self).__init__()
|
||
|
self.message = message
|
||
|
self.initUI()
|
||
|
|
||
|
def initUI(self):
|
||
|
message = self.message
|
||
|
|
||
|
if message.title:
|
||
|
self.setWindowTitle(message.title)
|
||
|
|
||
|
if message.icon:
|
||
|
self.setIcon(getattr(QtGui.QMessageBox, message.icon))
|
||
|
|
||
|
if message.message:
|
||
|
self.setText(message.message)
|
||
|
self.exec_()
|
||
|
|
||
|
import argparse
|
||
|
import sys
|
||
|
|
||
|
|
||
|
|
||
|
def main():
|
||
|
parser = argparse.ArgumentParser(description='Display a QT Message Box')
|
||
|
|
||
|
parser.add_argument('section', help="Message section")
|
||
|
parser.add_argument('filename', help="File including full path")
|
||
|
|
||
|
args = parser.parse_args()
|
||
|
|
||
|
if not args.filename and args.section:
|
||
|
print parser.usage()
|
||
|
sys.exit(1)
|
||
|
|
||
|
app = QtGui.QApplication(sys.argv)
|
||
|
|
||
|
message = Messages(args.section, args.filename)
|
||
|
dialog = WhonixMessageBox(message)
|
||
|
sys.exit()
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|