Skip to content

Commit 68d3c40

Browse files
committed
Lint / Code cleanup
1 parent a648d40 commit 68d3c40

File tree

9 files changed

+193
-147
lines changed

9 files changed

+193
-147
lines changed

ap2-receiver.py

Lines changed: 88 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ def __str__(self):
166166
HTTP_CT_IMAGE = "image/jpeg"
167167
HTTP_CT_DMAP = "application/x-dmap-tagged"
168168

169+
169170
def setup_global_structs(args):
170171
global sonos_one_info
171172
global sonos_one_setup
@@ -176,21 +177,26 @@ def setup_global_structs(args):
176177
sonos_one_info = {
177178
# 'OSInfo': 'Linux 3.10.53',
178179
# 'PTPInfo': 'OpenAVNU ArtAndLogic-aPTP-changes a5d7f94-0.0.1',
179-
'audioLatencies': [ { 'inputLatencyMicros': 0,
180-
'outputLatencyMicros': 400000,
181-
'type': 100},
182-
{ 'audioType': 'default',
183-
'inputLatencyMicros': 0,
184-
'outputLatencyMicros': 400000,
185-
'type': 100},
186-
{ 'audioType': 'media',
187-
'inputLatencyMicros': 0,
188-
'outputLatencyMicros': 400000,
189-
'type': 100},
190-
{ 'audioType': 'media',
191-
'inputLatencyMicros': 0,
192-
'outputLatencyMicros': 400000,
193-
'type': 102}],
180+
'audioLatencies': [{
181+
'inputLatencyMicros': 0,
182+
'outputLatencyMicros': 400000,
183+
'type': 100},
184+
{
185+
'audioType': 'default',
186+
'inputLatencyMicros': 0,
187+
'outputLatencyMicros': 400000,
188+
'type': 100},
189+
{
190+
'audioType': 'media',
191+
'inputLatencyMicros': 0,
192+
'outputLatencyMicros': 400000,
193+
'type': 100},
194+
{
195+
'audioType': 'media',
196+
'inputLatencyMicros': 0,
197+
'outputLatencyMicros': 400000,
198+
'type': 102
199+
}],
194200
# 'build': '16.0',
195201
'deviceID': DEVICE_ID,
196202
'features': FEATURES,
@@ -204,60 +210,64 @@ def setup_global_structs(args):
204210
'model': 'One',
205211
'name': 'Camera da letto',
206212
'nameIsFactoryDefault': False,
207-
'pi': 'ba5cb8df-7f14-4249-901a-5e748ce57a93', # UUID generated casually..
213+
'pi': 'ba5cb8df-7f14-4249-901a-5e748ce57a93', # UUID generated casually..
208214
'protocolVersion': '1.1',
209215
'sdk': 'AirPlay;2.0.2',
210216
'sourceVersion': '366.0',
211217
'statusFlags': 4,
212218
# 'statusFlags': 0x404 # Sonos One
213-
}
219+
}
214220

215221
if DISABLE_VM:
216222
volume = 0
217-
else:
223+
else:
218224
volume = get_volume()
219225
second_stage_info = {
220226
"initialVolume": volume,
221-
}
227+
}
222228

223229
sonos_one_setup = {
224-
'eventPort': 0, # AP2 receiver event server
225-
'timingPort': 0,
226-
'timingPeerInfo': {
227-
'Addresses': [
228-
IPV4, IPV6],
229-
'ID': IPV4}
230-
}
230+
'eventPort': 0, # AP2 receiver event server
231+
'timingPort': 0,
232+
'timingPeerInfo': {
233+
'Addresses':
234+
[
235+
IPV4,
236+
IPV6
237+
],
238+
'ID': IPV4}
239+
}
231240

232241
sonos_one_setup_data = {
233-
'streams': [
234-
{
235-
'type': 96,
236-
'dataPort': 0, # AP2 receiver data server
237-
'controlPort': 0 # AP2 receiver control server
238-
}
239-
]
242+
'streams': [
243+
{
244+
'type': 96,
245+
'dataPort': 0, # AP2 receiver data server
246+
'controlPort': 0 # AP2 receiver control server
240247
}
248+
]
249+
}
241250

242251
mdns_props = {
243-
"srcvers": SERVER_VERSION,
244-
"deviceid": DEVICE_ID,
245-
"features": "%s,%s" % (hex(FEATURES & 0xffffffff), hex(FEATURES >> 32 & 0xffffffff)),
246-
"flags": "0x4",
247-
# "name": "GINO", # random
248-
"model": "Airplay2-Receiver", # random
249-
# "manufacturer": "Pino", # random
250-
# "serialNumber": "01234xX321", # random
251-
"protovers": "1.1",
252-
"acl": "0",
253-
"rsf": "0x0",
254-
"fv": "p20.78000.12",
255-
"pi": "5dccfd20-b166-49cc-a593-6abd5f724ddb", # UUID generated casually
256-
"gid": "5dccfd20-b166-49cc-a593-6abd5f724ddb", # UUID generated casually
257-
"gcgl": "0",
258-
# "vn": "65537",
259-
"pk": "de352b0df39042e201d31564049023af58a106c6d904b74a68aa65012852997f"
260-
}
252+
"srcvers": SERVER_VERSION,
253+
"deviceid": DEVICE_ID,
254+
"features": "%s,%s" % (hex(FEATURES & 0xffffffff), hex(FEATURES >> 32 & 0xffffffff)),
255+
"flags": "0x4",
256+
# "name": "GINO", # random
257+
"model": "Airplay2-Receiver", # random
258+
# "manufacturer": "Pino", # random
259+
# "serialNumber": "01234xX321", # random
260+
"protovers": "1.1",
261+
"acl": "0",
262+
"rsf": "0x0",
263+
"fv": "p20.78000.12",
264+
"pi": "5dccfd20-b166-49cc-a593-6abd5f724ddb", # UUID generated casually
265+
"gid": "5dccfd20-b166-49cc-a593-6abd5f724ddb", # UUID generated casually
266+
"gcgl": "0",
267+
# "vn": "65537",
268+
"pk": "de352b0df39042e201d31564049023af58a106c6d904b74a68aa65012852997f"
269+
}
270+
261271

262272
class AP2Handler(http.server.BaseHTTPRequestHandler):
263273

@@ -299,7 +309,7 @@ def do_OPTIONS(self):
299309
self.send_response(200)
300310
self.send_header("Server", self.version_string())
301311
self.send_header("CSeq", self.headers["CSeq"])
302-
self.send_header("Public", "ANNOUNCE, SETUP, RECORD, PAUSE, FLUSH, FLUSHBUFFERED, TEARDOWN, OPTIONS, POST, GET, PUT")
312+
self.send_header("Public", "ANNOUNCE, SETUP, RECORD, PAUSE, FLUSH, FLUSHBUFFERED, TEARDOWN, OPTIONS, POST, GET, PUT")
303313
self.end_headers()
304314

305315
def do_FLUSHBUFFERED(self):
@@ -389,7 +399,7 @@ def do_SETUP(self):
389399
self.wfile.write(res)
390400
else:
391401
print("Sending CONTROL/DATA:")
392-
buff = 8388608 # determines how many CODEC frame size 1024 we can hold
402+
buff = 8388608 # determines how many CODEC frame size 1024 we can hold
393403
stream = Stream(plist["streams"][0], buff)
394404
self.server.streams.append(stream)
395405
sonos_one_setup_data["streams"][0]["controlPort"] = stream.control_port
@@ -441,7 +451,7 @@ def do_GET_PARAMETER(self):
441451
self.send_header("Server", self.version_string())
442452
self.send_header("CSeq", self.headers["CSeq"])
443453
self.end_headers()
444-
hexdump(res);
454+
hexdump(res)
445455
self.wfile.write(res)
446456

447457
def do_SET_PARAMETER(self):
@@ -539,7 +549,7 @@ def do_TEARDOWN(self):
539549
self.send_header("Server", self.version_string())
540550
self.send_header("CSeq", self.headers["CSeq"])
541551
self.end_headers()
542-
552+
543553
# Erase the hap() instance, otherwise reconnects fail
544554
self.server.hap = None
545555

@@ -597,7 +607,7 @@ def handle_feedback(self):
597607

598608
plist = readPlistFromString(body)
599609
# feedback logs are pretty much noise...
600-
#self.pp.pprint(plist)
610+
# self.pp.pprint(plist)
601611
self.send_response(200)
602612
self.send_header("Server", self.version_string())
603613
self.send_header("CSeq", self.headers["CSeq"])
@@ -731,40 +741,46 @@ def handle_info(self):
731741

732742
def upgrade_to_encrypted(self, shared_key):
733743
self.request = self.server.upgrade_to_encrypted(
734-
self.client_address,
735-
shared_key)
744+
self.client_address,
745+
shared_key)
736746
self.connection = self.request
737747
self.rfile = self.connection.makefile('rb', self.rbufsize)
738748
self.wfile = self.connection.makefile('wb')
739749
self.is_encrypted = True
740750
print("----- ENCRYPTED CHANNEL -----")
741751

752+
742753
def register_mdns(receiver_name):
743754
addresses = []
744755
for ifen in ni.interfaces():
745756
ifenaddr = ni.ifaddresses(ifen)
746757
if ni.AF_INET in ifenaddr:
747-
addresses.append(socket.inet_pton(ni.AF_INET,
748-
ifenaddr[ni.AF_INET][0]["addr"]))
758+
addresses.append(socket.inet_pton(
759+
ni.AF_INET,
760+
ifenaddr[ni.AF_INET][0]["addr"])
761+
)
749762
if ni.AF_INET6 in ifenaddr:
750-
addresses.append(socket.inet_pton(ni.AF_INET6,
751-
ifenaddr[ni.AF_INET6][0]["addr"].split("%")[0]))
763+
addresses.append(socket.inet_pton(
764+
ni.AF_INET6,
765+
ifenaddr[ni.AF_INET6][0]["addr"].split("%")[0])
766+
)
752767

753768
info = ServiceInfo(
754-
"_airplay._tcp.local.",
755-
"%s._airplay._tcp.local." % receiver_name,
756-
# addresses=[socket.inet_aton("127.0.0.1")],
757-
addresses=addresses,
758-
port=7000,
759-
properties=mdns_props,
760-
server="%s.local." % receiver_name,
761-
)
769+
"_airplay._tcp.local.",
770+
"%s._airplay._tcp.local." % receiver_name,
771+
# addresses=[socket.inet_aton("127.0.0.1")],
772+
addresses=addresses,
773+
port=7000,
774+
properties=mdns_props,
775+
server="%s.local." % receiver_name,
776+
)
762777

763778
zeroconf = Zeroconf(ip_version=IPVersion.V4Only)
764779
zeroconf.register_service(info)
765780
print("mDNS service registered")
766781
return (zeroconf, info)
767782

783+
768784
def unregister_mdns(zeroconf, info):
769785
print("Unregistering...")
770786
zeroconf.unregister_service(info)
@@ -793,7 +809,7 @@ def __init__(self, addr_port, handler):
793809
self.enc_layer = False
794810
self.streams = []
795811

796-
#Override
812+
# Override
797813
def get_request(self):
798814
client_socket, client_addr = super().get_request()
799815
print("Got connection with %s:%d" % client_addr)
@@ -806,6 +822,7 @@ def upgrade_to_encrypted(self, client_address, shared_key):
806822
self.connections[client_address] = hap_socket
807823
return hap_socket
808824

825+
809826
if __name__ == "__main__":
810827

811828
multiprocessing.set_start_method("spawn")

0 commit comments

Comments
 (0)