From 68d7686a03d33be255bbe21bb0318a4341e62b9f Mon Sep 17 00:00:00 2001
From: Simone Margaritelli <evilsocket@gmail.com>
Date: Wed, 23 Oct 2019 19:32:24 +0200
Subject: [PATCH] misc: small fix or general refactoring i did not bother
 commenting

---
 pwnagotchi/agent.py      |  3 ++-
 pwnagotchi/automata.py   |  2 ++
 pwnagotchi/bettercap.py  | 33 +++++++++++++++++----------------
 pwnagotchi/mesh/utils.py |  4 ++--
 4 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/pwnagotchi/agent.py b/pwnagotchi/agent.py
index b3dd8cf..53aa803 100644
--- a/pwnagotchi/agent.py
+++ b/pwnagotchi/agent.py
@@ -284,12 +284,13 @@ class Agent(Client, Automata, AsyncAdvertiser, AsyncTrainer):
 
         self.run('events.clear')
 
-        logging.debug("event polling started ...")
         while True:
             time.sleep(1)
 
             new_shakes = 0
 
+            logging.debug("polling events ...")
+
             try:
                 s = self.session()
                 self._update_uptime(s)
diff --git a/pwnagotchi/automata.py b/pwnagotchi/automata.py
index b0ae92f..2d35392 100644
--- a/pwnagotchi/automata.py
+++ b/pwnagotchi/automata.py
@@ -89,6 +89,8 @@ class Automata(object):
         return self._epoch.any_activity
 
     def next_epoch(self):
+        logging.debug("agent.next_epoch()")
+
         was_stale = self.is_stale()
         did_miss = self._epoch.num_missed
 
diff --git a/pwnagotchi/bettercap.py b/pwnagotchi/bettercap.py
index d55fc33..05213ae 100644
--- a/pwnagotchi/bettercap.py
+++ b/pwnagotchi/bettercap.py
@@ -3,6 +3,20 @@ import requests
 from requests.auth import HTTPBasicAuth
 
 
+def decode(r, verbose_errors=True):
+    try:
+        return r.json()
+    except Exception as e:
+        if r.status_code == 200:
+            logging.error("error while decoding json: error='%s' resp='%s'" % (e, r.text))
+        else:
+            err = "error %d: %s" % (r.status_code, r.text.strip())
+            if verbose_errors:
+                logging.info(err)
+            raise Exception(err)
+        return r.text
+
+
 class Client(object):
     def __init__(self, hostname='localhost', scheme='http', port=8081, username='user', password='pass'):
         self.hostname = hostname
@@ -13,27 +27,14 @@ class Client(object):
         self.url = "%s://%s:%d/api" % (scheme, hostname, port)
         self.auth = HTTPBasicAuth(username, password)
 
-    def _decode(self, r, verbose_errors=True):
-        try:
-            return r.json()
-        except Exception as e:
-            if r.status_code == 200:
-                logging.error("error while decoding json: error='%s' resp='%s'" % (e, r.text))
-            else:
-                err = "error %d: %s" % (r.status_code, r.text.strip())
-                if verbose_errors:
-                    logging.info(err)
-                raise Exception(err)
-            return r.text
-
     def session(self):
         r = requests.get("%s/session" % self.url, auth=self.auth)
-        return self._decode(r)
+        return decode(r)
 
     def events(self):
         r = requests.get("%s/events" % self.url, auth=self.auth)
-        return self._decode(r)
+        return decode(r)
 
     def run(self, command, verbose_errors=True):
         r = requests.post("%s/session" % self.url, auth=self.auth, json={'cmd': command})
-        return self._decode(r, verbose_errors=verbose_errors)
+        return decode(r, verbose_errors=verbose_errors)
diff --git a/pwnagotchi/mesh/utils.py b/pwnagotchi/mesh/utils.py
index bb77eb5..7b5c92d 100644
--- a/pwnagotchi/mesh/utils.py
+++ b/pwnagotchi/mesh/utils.py
@@ -66,9 +66,9 @@ class AsyncAdvertiser(object):
 
     def _adv_poller(self):
         while True:
-            logging.debug("polling pwngrid-peer for peers ...")
-
             try:
+                logging.debug("polling pwngrid-peer for peers ...")
+
                 grid_peers = grid.peers()
                 new_peers = {}