-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun.py
More file actions
55 lines (53 loc) · 1.44 KB
/
run.py
File metadata and controls
55 lines (53 loc) · 1.44 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/env python
#encoding: utf-8
import os
from app.node import Node
import sys
print(sys.argv)
if len(sys.argv) > 1:
command = sys.argv[1]
if command == 'who':
""" Get node id corresponding to ip/port """
my_node = Node()
target_ip = sys.argv[2]
target_port = int(sys.argv[3])
my_node.send_presentation_request((target_ip, target_port))
elif command == 'ping':
""" Send ping request """
my_node = Node()
target_ip = sys.argv[2]
target_port = int(sys.argv[3])
if my_node.ping(('', target_ip, target_port)) == 0:
print("Online")
else:
print("Offline")
elif command == 'get':
""" Get topic """
my_node = Node()
my_node.get_topic(sys.argv[2])
""" Run node and wait for response """
my_node.run()
elif command == 'add':
if sys.argv[2] == 'contact':
""" Add contact """
my_node = Node()
my_node.register_contact(sys.argv[3], sys.argv[4], sys.argv[5])
if sys.argv[2] == 'topic':
""" Add contact """
my_node = Node()
my_node.add_topic(topic_id=sys.argv[3], data=sys.argv[4])
my_node.run()
elif command == 'init':
""" Pass full path to a kbuckets.json file """
my_node = Node()
my_node.run(sys.argv[2])
elif command == 'specific':
""" Pass full path to a kbuckets.json file """
my_node = Node(node_id=sys.argv[2], port=sys.argv[3])
my_node.run()
elif command == 'port':
my_node = Node(node_id=os.urandom(4).hex(), port=sys.argv[2])
my_node.run()
else:
my_node = Node()
my_node.run()