From 83ef9dc3cacbaddf0a3e96818388908c3ee72b57 Mon Sep 17 00:00:00 2001 From: Kevin Froman Date: Tue, 18 Feb 2020 05:32:17 -0600 Subject: [PATCH] added sound notifications (used in mail for now) and more settings UI work --- src/notifier/__init__.py | 10 +++- src/onionrcommands/daemonlaunch/quotes.py | 2 +- src/utils/readstatic.py | 5 +- static-data/default-plugins/pms/info.json | 2 +- static-data/default-plugins/pms/main.py | 34 ++++++------- static-data/sounds/notification1.mp3 | Bin 0 -> 15394 bytes static-data/www/mail/index.html | 55 ++++++++++++++++++---- static-data/www/mail/loadsettings.js | 14 ++++++ static-data/www/mail/mail.css | 4 ++ static-data/www/mail/settings.js | 17 ++++++- 10 files changed, 111 insertions(+), 32 deletions(-) create mode 100644 static-data/sounds/notification1.mp3 create mode 100644 static-data/www/mail/loadsettings.js diff --git a/src/notifier/__init__.py b/src/notifier/__init__.py index 345350b7..bceb9c1a 100644 --- a/src/notifier/__init__.py +++ b/src/notifier/__init__.py @@ -13,7 +13,7 @@ else: from utils.readstatic import get_static_dir import config - +from onionrplugins.onionrevents import event as plugin_api_event """ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -34,16 +34,22 @@ if not config.get('general.show_notifications', True): notification_sound_file = get_static_dir() + "sounds/notification1.mp3" + def notify(title: str = "Onionr", message: str = ""): """Cross platform method to show a notification.""" if not notifications_enabled: return + plugin_api_event("notification", data={"title": title, "message": message}) simplenotify.notify(title, message) def notification_with_sound(sound = '', **kwargs): + if not notifications_enabled: + return + if not sound: + sound = notification_sound_file try: - Popen(["mpv", notification_sound_file]) + Popen(["mpv", sound]) except FileNotFoundError: pass notify(**kwargs) diff --git a/src/onionrcommands/daemonlaunch/quotes.py b/src/onionrcommands/daemonlaunch/quotes.py index 099afc33..5cdf547f 100644 --- a/src/onionrcommands/daemonlaunch/quotes.py +++ b/src/onionrcommands/daemonlaunch/quotes.py @@ -19,7 +19,7 @@ QUOTES = [ ("Freedom of the press is guaranteed only to those who own one", "A. J. Liebling"), ("We kill people based on metadata", - "Authoritarians") + "") ] shuffle(QUOTES) QUOTE = QUOTES[0] diff --git a/src/utils/readstatic.py b/src/utils/readstatic.py index 44b0b5ea..59b331c0 100644 --- a/src/utils/readstatic.py +++ b/src/utils/readstatic.py @@ -2,6 +2,8 @@ get static directory and read static data files """ +from typing import Union +import os """ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,9 +19,6 @@ get static directory and read static data files along with this program. If not, see . """ -from typing import Union -import os - def get_static_dir()->str: return os.path.dirname(os.path.realpath(__file__)) + '/../../static-data/' diff --git a/static-data/default-plugins/pms/info.json b/static-data/default-plugins/pms/info.json index 454b9bd6..55c20967 100755 --- a/static-data/default-plugins/pms/info.json +++ b/static-data/default-plugins/pms/info.json @@ -1,5 +1,5 @@ { "name" : "pms", - "version" : "1.0", + "version" : "0.1.0", "author" : "onionr" } diff --git a/static-data/default-plugins/pms/main.py b/static-data/default-plugins/pms/main.py index 20fa87b4..f1984707 100755 --- a/static-data/default-plugins/pms/main.py +++ b/static-data/default-plugins/pms/main.py @@ -1,9 +1,17 @@ -''' - Onionr - Private P2P Communication +"""Onionr - Private P2P Communication. - This default plugin handles private messages in an email like fashion -''' -''' +Private messages in an email like fashion +""" +import locale +import sys +import os +import json + +from onionrusers import contactmanager +from utils import reconstructhash +from onionrutils import bytesconverter +import notifier +""" This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -16,21 +24,12 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . -''' - -# Imports some useful libraries -import logger, config, threading, time, datetime -import onionrexceptions -from onionrusers import onionrusers, contactmanager -from utils import reconstructhash -from onionrutils import stringvalidators, escapeansi, bytesconverter -import notifier -import locale, sys, os, json +""" locale.setlocale(locale.LC_ALL, '') plugin_name = 'pms' -PLUGIN_VERSION = '0.0.1' +PLUGIN_VERSION = '0.1.0' sys.path.insert(0, os.path.dirname(os.path.realpath(__file__))) import sentboxdb, mailapi, loadinbox # import after path insert @@ -39,6 +38,7 @@ from onblacklist import on_blacklist_add flask_blueprint = mailapi.flask_blueprint security_whitelist = ['staticfiles.mail', 'staticfiles.mailindex'] + def add_deleted(keyStore, b_hash): existing = keyStore.get('deleted_mail') bHash = reconstructhash.reconstruct_hash(b_hash) @@ -49,12 +49,14 @@ def add_deleted(keyStore, b_hash): return keyStore.put('deleted_mail', existing.append(b_hash)) + def on_insertblock(api, data={}): meta = json.loads(data['meta']) if meta['type'] == 'pm': sentboxTools = sentboxdb.SentBox() sentboxTools.addToSent(data['hash'], data['peer'], data['content'], meta['subject']) + def on_processblocks(api, data=None): if data['type'] != 'pm': return diff --git a/static-data/sounds/notification1.mp3 b/static-data/sounds/notification1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..8021af7314ef89cd2aba767f7bcc34ba18b1c1d8 GIT binary patch literal 15394 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 literal 0 HcmV?d00001 diff --git a/static-data/www/mail/index.html b/static-data/www/mail/index.html index 62164c50..e154c49e 100755 --- a/static-data/www/mail/index.html +++ b/static-data/www/mail/index.html @@ -143,17 +143,30 @@
Ask senders to use forward-secrecy
- Only turn off if you use multiple devices with 1 ID or have Onionr data erasure on exit enabled. + Turn off if using 1 ID on more than 1 device, or have Onionr data erasure on exit enabled.
+ class="switch is-rounded is-danger" checked>
-
+
+
+
Message padding
+ Improves privacy slightly for a small performance hit. +
+
+
+ + +
+
+
+
Keep messages when blocks are deleted
@@ -165,21 +178,47 @@
- Signature - -
+
+ Inbox notifications +
+
+
+ + +
+
+
+
+
+ Only show notifications for friends +
+
+
+ + +
+
+
+
+
+ Notification sound
- + +
+ Signature +
-
diff --git a/static-data/www/mail/loadsettings.js b/static-data/www/mail/loadsettings.js new file mode 100644 index 00000000..36189b1a --- /dev/null +++ b/static-data/www/mail/loadsettings.js @@ -0,0 +1,14 @@ +mailSettings = {} + +fetch('/config/get/mail', { + headers: { + "content-type": "application/json", + "token": webpass + }}) +.then((resp) => resp.json()) +.then(function(settings) { + mailSettings = settings || {} + if (mailSettings.default_forward_secrecy === false){ + document.getElementById('forwardSecrecySetting').checked = false + } + }) \ No newline at end of file diff --git a/static-data/www/mail/mail.css b/static-data/www/mail/mail.css index 4f778698..45099b0b 100755 --- a/static-data/www/mail/mail.css +++ b/static-data/www/mail/mail.css @@ -55,3 +55,7 @@ margin-top: 1em; } +#settingsModal small{ + font-size: 0.5em; +} + diff --git a/static-data/www/mail/settings.js b/static-data/www/mail/settings.js index 605d6b71..a938632f 100644 --- a/static-data/www/mail/settings.js +++ b/static-data/www/mail/settings.js @@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ - +var notificationSetting = document.getElementById('notificationSetting') document.getElementById('forwardSecrecySetting').onchange = function(e){ postData = JSON.stringify({"default_forward_secrecy": e.target.checked}) fetch('/config/set/mail', { @@ -34,3 +34,18 @@ document.getElementById('forwardSecrecySetting').onchange = function(e){ }) }) } + + +notificationSetting.onchange = function(e){ + let notificationSettings = document.getElementsByClassName('notificationSetting') + if (e.target.checked){ + for (i = 0; i < notificationSettings.length; i++){ + notificationSettings[i].style.display = "flex" + } + } + else{ + for (i = 0; i < notificationSettings.length; i++){ + notificationSettings[i].style.display = "none" + } + } +} \ No newline at end of file