Skip to content

Commit 08682cc

Browse files
committed
Store configuration to application specific file. Use json as input to config class
1 parent ed9ac40 commit 08682cc

File tree

3 files changed

+28
-14
lines changed

3 files changed

+28
-14
lines changed

Diff for: config.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
import json
2-
31
class HarmonyConfig(object):
4-
def __init__(self, config_file):
5-
with open(config_file) as f:
6-
self.json = json.loads(f.read())
2+
def __init__(self, config):
3+
self.json = config
74

85
def get_activities(self):
96
return self._build_kv_menu('activity')

Diff for: test_config.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import unittest
22
import config
3+
import json
34

45
class TestConfig(unittest.TestCase):
56
def setUp(self):
6-
self.cfg = config.HarmonyConfig('harmony.json')
7+
with open('harmony.json') as f:
8+
self.cfg = config.HarmonyConfig(json.loads(f.read()))
79

810
def test_get_activities(self):
911
a = self.cfg.get_activities()

Diff for: ui.py

+23-8
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,17 @@
77
import rumps
88
import control
99
import config
10+
import json
1011

1112
class Harmenubar(rumps.App):
1213
def __init__(self):
1314
super(Harmenubar,self).__init__('Harmenubar',icon='resources/icon.png')
14-
print 'Logging in to Logitech'
15-
self.session_token = control.login_to_logitech('[email protected]', 'ankeborg', '192.168.0.158')
16-
print 'Connecting client'
17-
client = control.get_client('192.168.0.158', self.session_token)
18-
print 'Getting current activity'
19-
self.activity = client.get_current_activity() # 5337127
2015
self.activity = 5337127
21-
client.disconnect(send_close=True)
16+
self.auth()
17+
18+
cfg = self.get_and_store_config()
2219

23-
self.cfg = config.HarmonyConfig('harmony.json')
20+
self.cfg = config.HarmonyConfig(cfg)
2421
self.activities = self.cfg.get_activities()
2522
self.devices = self.cfg.get_devices()
2623
activity_menu = self.build_activity_menu()
@@ -35,6 +32,24 @@ def __init__(self):
3532
]
3633
self.update_current_activity(self.activity)
3734

35+
def auth(self):
36+
print 'Logging in to Logitech'
37+
self.session_token = control.login_to_logitech('[email protected]', 'ankeborg', '192.168.0.158')
38+
print 'Connecting client'
39+
client = control.get_client('192.168.0.158', self.session_token)
40+
print 'Getting current activity'
41+
self.activity = client.get_current_activity() # 5337127
42+
client.disconnect(send_close=True)
43+
44+
def get_and_store_config(self):
45+
client = control.get_client('192.168.0.158', self.session_token)
46+
print 'Getting configuration'
47+
cfg = client.get_config()
48+
client.disconnect(send_close=True)
49+
with self.open('config.json','w') as f:
50+
f.write(json.dumps(cfg))
51+
return cfg
52+
3853
def build_activity_menu(self):
3954
menu = []
4055
for key,value in self.activities.iteritems():

0 commit comments

Comments
 (0)