From f86a3ecb69c1a6b4f04ddf6b85141b991e838713 Mon Sep 17 00:00:00 2001
From: Jonathan Harris <jonathan@marginal.org.uk>
Date: Sun, 19 Nov 2017 12:40:01 +0000
Subject: [PATCH] Track online friends

Addresses #264
---
 monitor.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/monitor.py b/monitor.py
index c25f9fbd..a2bd0ef5 100644
--- a/monitor.py
+++ b/monitor.py
@@ -114,6 +114,7 @@ class EDLogs(FileSystemEventHandler):
             'PaintJob'     : None,
             'Rank'         : { 'Combat': None, 'Trade': None, 'Explore': None, 'Empire': None, 'Federation': None, 'CQC': None },
             'Role'         : None,	# Crew role - None, Idle, FireCon, FighterCon
+            'Friends'      : set(),	# Online friends
             'ShipID'       : None,
             'ShipIdent'    : None,
             'ShipName'     : None,
@@ -295,6 +296,7 @@ class EDLogs(FileSystemEventHandler):
                     'PaintJob'     : None,
                     'Rank'         : { 'Combat': None, 'Trade': None, 'Explore': None, 'Empire': None, 'Federation': None, 'CQC': None },
                     'Role'         : None,
+                    'Friends'      : set(),
                     'ShipID'       : None,
                     'ShipIdent'    : None,
                     'ShipName'     : None,
@@ -461,6 +463,12 @@ class EDLogs(FileSystemEventHandler):
                 self.stationservices = None
                 self.coordinates = None
 
+            elif entry['event'] == 'Friends':
+                if entry['Status'] in ['Online', 'Added']:
+                    self.state['Friends'].add(entry['Name'])
+                else:
+                    self.state['Friends'].discard(entry['Name'])
+
             return entry
         except:
             if __debug__: