TiledViz
Loading...
Searching...
No Matches
reuseNode.py
1#!/bin/env python
2import json,re
3import sys,argparse
4
5#[prompt]$ python3 -m json.tool $path/nodes_new.json
6#Unexpected UTF-8 BOM (decode using utf-8-sig): line 1 column 1 (char 0)
7#=>
8#[prompt]$ LANG=C LC_ALL=C sed -e 's/\r$// ; 1 s/^\xef\xbb\xbf//'
9
10def parse_args(argv):
11 parser = argparse.ArgumentParser(
12 'reuseNode is a python script that will use '+
13 'a nodes_new.json created by launch_dockers script and '+
14 'a nodes_saved.json saved by TiledViz web interface '+
15 'to put passwords from the first one into the saved json and create an output json.')
16 parser.add_argument('-s','--oldsaved', default='./nodes_saved.json',
17 help='nodes_old.json file saved (default: ./nodes_saved.json)')
18 parser.add_argument('-n','--newpass', default='./nodes_new.json',
19 help='nodes_new.json whith new passwords (default: ./nodes_new.json)')
20 parser.add_argument('-o','--out', default='./nodes_out.json',
21 help='output nodes_out.json whith saved sorting and new passwords (default: ./nodes_out.json)')
22
23 args = parser.parse_args(argv[1:])
24 return args
25
26if __name__ == '__main__':
27 args = parse_args(sys.argv)
28 try:
29 new_node_file=open(args.newpass,'r')
30 except:
31 print("error opening new nodes file.")
32 sys.exit(1)
33 try:
34 saved_file=open(args.oldsaved,'r')
35 except:
36 print("error opening saved nodes file.")
37 sys.exit(1)
38 json_saved_node=json.load(saved_file)
39 json_new_node=json.load(new_node_file)
40
41 p=re.compile(r'.*port=([0-9]*)&encrypt=0&password=([^&]*).*')
42 #p.sub(r'\1',json_saved_node["nodes"][0]["url"])
43 #p.sub(r'\2',json_saved_node["nodes"][0]["url"])
44
45 for tile in json_saved_node["nodes"]:
46 for oldt in json_new_node["nodes"]:
47 if ( tile["title"] == oldt["title"] ):
48 tile["url"]=tile["url"].replace(r''+p.sub(r'\2',tile["url"]),p.sub(r'\2',oldt["url"]))
49 break
50
51 node_new_file=open(args.out,'w')
52 json.dump(json_saved_node,node_new_file)
53 node_new_file.close()
54