-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path__main__.py
More file actions
40 lines (37 loc) · 1.55 KB
/
__main__.py
File metadata and controls
40 lines (37 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import getpass
import sys
from xfinity_control_web.xfinity_control import XfinityControl, XfinityLoginException, XfinityApiException
from xfinity_control_web.xfinity_control_server import XfinityControlServer
if __name__ == "__main__":
if "help" in sys.argv:
print "Usage: python . [cli]"
sys.exit()
print "Enter xfinity credentials."
username = raw_input("Username: ")
password = getpass.getpass()
try:
xfinity_control = XfinityControl(username, password)
if "cli" in sys.argv:
while True:
try:
param = raw_input("Enter channel number:")
xfinity_control.change_channel(param)
except XfinityApiException:
print "API interaction failed: Please try again later."
sys.exit()
except KeyboardInterrupt:
print ''
sys.exit()
else:
xfinity_control_server = XfinityControlServer(xfinity_control)
print "HTTP server listening on http://%s:%d" % (
XfinityControlServer.SERVER_ADDRESS if XfinityControlServer.SERVER_ADDRESS != "" else "localhost",
XfinityControlServer.SERVER_PORT)
try:
xfinity_control_server.serve_forever()
except KeyboardInterrupt:
xfinity_control_server.socket.close()
sys.exit()
except XfinityLoginException:
print "Authentication failed: Please check your credentials."
sys.exit()