2 from threading
import Timer
7 UDPSock
= socket(AF_INET
, SOCK_DGRAM
)
8 UDPSock
.setsockopt(SOL_SOCKET
, SO_BROADCAST
, 1)
11 def add_service(self
, service
):
12 self
.services
.append(service
)
15 def format_services(self
):
16 return ';'.join(self
.services
)
18 def format_beacon(self
):
21 guid
= config
.getGUID()
23 beacon
.append('tivoconnect=1')
24 beacon
.append('swversion=1')
25 beacon
.append('method=broadcast')
26 beacon
.append('identity=%s' % guid
)
29 beacon
.append('machine=%s' % socket
.gethostname())
30 beacon
.append('platform=pc')
31 beacon
.append('services=' + self
.format_services())
33 return '\n'.join(beacon
)
35 def send_beacon(self
):
36 beacon_ips
= config
.getBeaconAddreses()
37 for beacon_ip
in beacon_ips
.split():
38 self
.UDPSock
.sendto(self
.format_beacon(), (beacon_ip
, 2190))
42 self
.timer
= Timer(60, self
.start
)
48 if __name__
== '__main__':
52 b
.add_service('TiVoMediaServer:9032/http')