From f164b8bb26f03ca134b398454e3c184a3c8d1dbb Mon Sep 17 00:00:00 2001 From: Simone Margaritelli Date: Sun, 18 Apr 2021 17:03:21 +0200 Subject: [PATCH] new: added new faces for uploading status --- pwnagotchi/defaults.toml | 3 +++ pwnagotchi/locale/voice.pot | 4 ++++ pwnagotchi/plugins/default/onlinehashcrack.py | 8 +++++--- pwnagotchi/plugins/default/wigle.py | 6 ++++-- pwnagotchi/plugins/default/wpa-sec.py | 6 ++++-- pwnagotchi/ui/view.py | 19 ++++++++++++------- pwnagotchi/voice.py | 5 ++++- 7 files changed, 36 insertions(+), 15 deletions(-) diff --git a/pwnagotchi/defaults.toml b/pwnagotchi/defaults.toml index e471659..cdbb4ce 100644 --- a/pwnagotchi/defaults.toml +++ b/pwnagotchi/defaults.toml @@ -184,6 +184,9 @@ ui.faces.angry = "(-_-')" ui.faces.friend = "(♥‿‿♥)" ui.faces.broken = "(☓‿‿☓)" ui.faces.debug = "(#__#)" +ui.faces.upload = "(1__0)" +ui.faces.upload1 = "(1__1)" +ui.faces.upload2 = "(0__1)" ui.web.enabled = true ui.web.address = "0.0.0.0" diff --git a/pwnagotchi/locale/voice.pot b/pwnagotchi/locale/voice.pot index 4b62ea9..0b9fcb8 100644 --- a/pwnagotchi/locale/voice.pot +++ b/pwnagotchi/locale/voice.pot @@ -244,3 +244,7 @@ msgstr "" msgid "second" msgstr "" + +#, python-brace-format +msgid "Uploading data to {to} ..." +msgstr "" diff --git a/pwnagotchi/plugins/default/onlinehashcrack.py b/pwnagotchi/plugins/default/onlinehashcrack.py index 1a7484f..b63a2ed 100644 --- a/pwnagotchi/plugins/default/onlinehashcrack.py +++ b/pwnagotchi/plugins/default/onlinehashcrack.py @@ -110,9 +110,8 @@ class OnlineHashCrack(plugins.Plugin): if handshake_new: logging.info("OHC: Internet connectivity detected. Uploading new handshakes to onlinehashcrack.com") for idx, handshake in enumerate(handshake_new): - display.set('status', - f"Uploading handshake to onlinehashcrack.com ({idx + 1}/{len(handshake_new)})") - display.update(force=True) + display.on_uploading(f"onlinehashcrack.com ({idx + 1}/{len(handshake_new)})") + try: self._upload_to_ohc(handshake) if handshake not in reported: @@ -127,6 +126,9 @@ class OnlineHashCrack(plugins.Plugin): self.skip.append(handshake) logging.debug("OHC: %s", os_e) continue + + display.on_normal() + if 'dashboard' in self.options and self.options['dashboard']: cracked_file = os.path.join(handshake_dir, 'onlinehashcrack.cracked') if os.path.exists(cracked_file): diff --git a/pwnagotchi/plugins/default/wigle.py b/pwnagotchi/plugins/default/wigle.py index 103e7db..3a7bce7 100644 --- a/pwnagotchi/plugins/default/wigle.py +++ b/pwnagotchi/plugins/default/wigle.py @@ -180,8 +180,8 @@ class Wigle(plugins.Plugin): csv_entries.append(new_entry) no_err_entries.append(gps_file) if csv_entries: - display.set('status', "Uploading gps-data to wigle.net ...") - display.update(force=True) + display.on_uploading('wigle.net') + try: _send_to_wigle(csv_entries, self.options['api_key'], donate=self.options['donate']) reported += no_err_entries @@ -193,3 +193,5 @@ class Wigle(plugins.Plugin): except OSError as os_e: self.skip += no_err_entries logging.debug("WIGLE: Got the following error: %s", os_e) + + display.on_normal() diff --git a/pwnagotchi/plugins/default/wpa-sec.py b/pwnagotchi/plugins/default/wpa-sec.py index 53ff3c3..6b6163b 100644 --- a/pwnagotchi/plugins/default/wpa-sec.py +++ b/pwnagotchi/plugins/default/wpa-sec.py @@ -111,8 +111,8 @@ class WpaSec(plugins.Plugin): if handshake_new: logging.info("WPA_SEC: Internet connectivity detected. Uploading new handshakes to wpa-sec.stanev.org") for idx, handshake in enumerate(handshake_new): - display.set('status', f"Uploading handshake to wpa-sec.stanev.org ({idx + 1}/{len(handshake_new)})") - display.update(force=True) + display.on_uploading(f"wpa-sec.stanev.org ({idx + 1}/{len(handshake_new)})") + try: self._upload_to_wpasec(handshake) reported.append(handshake) @@ -126,6 +126,8 @@ class WpaSec(plugins.Plugin): logging.debug("WPA_SEC: %s", os_e) continue + display.on_normal() + if 'download_results' in self.options and self.options['download_results']: cracked_file = os.path.join(handshake_dir, 'wpa-sec.cracked.potfile') if os.path.exists(cracked_file): diff --git a/pwnagotchi/ui/view.py b/pwnagotchi/ui/view.py index 974a968..9ecc857 100644 --- a/pwnagotchi/ui/view.py +++ b/pwnagotchi/ui/view.py @@ -1,20 +1,20 @@ import _thread -from threading import Lock -import time import logging import random +import time +from threading import Lock + from PIL import ImageDraw import pwnagotchi -import pwnagotchi.utils as utils import pwnagotchi.plugins as plugins -from pwnagotchi.voice import Voice - -import pwnagotchi.ui.web as web -import pwnagotchi.ui.fonts as fonts import pwnagotchi.ui.faces as faces +import pwnagotchi.ui.fonts as fonts +import pwnagotchi.ui.web as web +import pwnagotchi.utils as utils from pwnagotchi.ui.components import * from pwnagotchi.ui.state import State +from pwnagotchi.voice import Voice WHITE = 0xff BLACK = 0x00 @@ -345,6 +345,11 @@ class View(object): self.update() time.sleep(5.0) + def on_uploading(self, to): + self.set('face', random.choice((faces.UPLOAD, faces.UPLOAD1, faces.UPLOAD2))) + self.set('status', self._voice.on_uploading(to)) + self.update(force=True) + def on_rebooting(self): self.set('face', faces.BROKEN) self.set('status', self._voice.on_rebooting()) diff --git a/pwnagotchi/voice.py b/pwnagotchi/voice.py index fff7579..991d26f 100644 --- a/pwnagotchi/voice.py +++ b/pwnagotchi/voice.py @@ -1,6 +1,6 @@ -import random import gettext import os +import random class Voice: @@ -159,6 +159,9 @@ class Voice: def on_rebooting(self): return self._("Oops, something went wrong ... Rebooting ...") + def on_uploading(self, to): + return self._("Uploading data to {to} ...").format(to=to) + def on_last_session_data(self, last_session): status = self._('Kicked {num} stations\n').format(num=last_session.deauthed) if last_session.associated > 999: