2 # -*- coding: utf-8 -*-
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the Revised BSD License.
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 Revised BSD License for more details.
13 Copyright 2020 Cool Dude 2k - http://idb.berlios.de/
14 Copyright 2020 Game Maker 2k - http://intdb.sourceforge.net/
15 Copyright 2020 Kazuki Przyborowski - https://github.com/KazukiPrzyborowski
17 $FileInfo: pyopencnam-ui.py - Last Update: 1/20/2020 Ver. 1.2.0 RC 1 - Author: cooldude2k $
20 from __future__
import division
, absolute_import
, print_function
;
21 import os
, sys
, json
, pyopencnam
, platform
;
24 from ConfigParser
import SafeConfigParser
;
26 from configparser
import SafeConfigParser
;
29 import Tkinter
, tkMessageBox
, tkFileDialog
, tkColorChooser
, tkSimpleDialog
;
31 import tkinter
as Tkinter
;
32 from tkinter
import messagebox
as tkMessageBox
;
33 from tkinter
import filedialog
as tkFileDialog
;
34 from tkinter
import colorchooser
as tkColorChooser
;
35 from tkinter
import simpledialog
as tkSimpleDialog
;
38 from Tkinter
import *;
40 from tkinter
import *;
42 __program_name__
= "PyOpenCNAM";
43 __project__
= __program_name__
;
44 __project_url__
= "https://github.com/GameMaker2k/PyOpenCNAM";
45 __version_info__
= (1, 2, 0, "RC 1", 1);
46 __version_date_info__
= (2020, 1, 20, "RC 1", 1);
47 __version_date__
= str(__version_date_info__
[0])+"."+str(__version_date_info__
[1]).zfill(2)+"."+str(__version_date_info__
[2]).zfill(2);
49 if(__version_info__
[4]!=None):
50 __version_date_plusrc__
= __version_date__
+"-"+str(__version_date_info__
[4]);
51 if(__version_info__
[4]==None):
52 __version_date_plusrc__
= __version_date__
;
53 if(__version_info__
[3]!=None):
54 __version__
= str(__version_info__
[0])+"."+str(__version_info__
[1])+"."+str(__version_info__
[2])+" "+str(__version_info__
[3]);
55 if(__version_info__
[3]==None):
56 __version__
= str(__version_info__
[0])+"."+str(__version_info__
[1])+"."+str(__version_info__
[2]);
58 geturls_ua_pyopencnam_python
= "Mozilla/5.0 (compatible; {proname}/{prover}; +{prourl})".format(proname
=__project__
, prover
=__version__
, prourl
=__project_url__
);
59 if(platform
.python_implementation()!=""):
60 geturls_ua_pyopencnam_python_alt
= "Mozilla/5.0 (compatible; {osver}; {archtype}; +{prourl}) {pyimp}/{pyver} (KHTML, like Gecko) {proname}/{prover}".format(osver
=platform
.system()+" "+platform
.release(), archtype
=platform
.machine(), prourl
=__project_url__
, pyimp
=platform
.python_implementation(), pyver
=platform
.python_version(), proname
=__project__
, prover
=__version__
);
61 if(platform
.python_implementation()==""):
62 geturls_ua_pyopencnam_python_alt
= "Mozilla/5.0 (compatible; {osver}; {archtype}; +{prourl}) {pyimp}/{pyver} (KHTML, like Gecko) {proname}/{prover}".format(osver
=platform
.system()+" "+platform
.release(), archtype
=platform
.machine(), prourl
=__project_url__
, pyimp
="Python", pyver
=platform
.python_version(), proname
=__project__
, prover
=__version__
);
64 master_phone_number
= "+16786318356";
65 master_account_sid
= None;
66 master_auth_token
= None;
67 master_service_level
= "standard";
69 if(os
.path
.exists("pyopencnam.ini") and os
.path
.isfile("pyopencnam.ini")):
70 cfgparser
= SafeConfigParser();
71 cfgparser
.read("pyopencnam.ini");
72 master_phone_number
= cfgparser
.get("OpenCNAM", "phone_number");
73 master_account_sid
= cfgparser
.get("OpenCNAM", "account_sid");
74 if(len(master_account_sid
)<=0):
75 master_account_sid
= None;
76 master_auth_token
= cfgparser
.get("OpenCNAM", "auth_token");
77 if(len(master_auth_token
)<=0):
78 master_auth_token
= None;
79 master_opencnam_url
= cfgparser
.get("OpenCNAM", "opencnam_url");
80 master_service_level
= cfgparser
.get("OpenCNAM", "service_level");
83 queryresult
.delete(0.0, END
);
84 opencnam_queryresult
= pyopencnam
.query_cnam_info(phonenumber
.get(), accountsid
.get(), authtoken
.get(), master_opencnam_url
, servicelevel
.get(ACTIVE
));
85 print(opencnam_queryresult
);
86 opencnam_result
= "{\n \"name\": \""+str(opencnam_queryresult
['name'])+"\",\n \"number\": \""+str(opencnam_queryresult
['number'])+"\",\n \"price\": "+str(opencnam_queryresult
['price'])+",\n \"uri\": \""+str(opencnam_queryresult
['uri'])+"\"\n}\n";
87 queryresult
.insert(END
, opencnam_result
);
91 root
.geometry("400x440");
92 root
.resizable(width
=False, height
=False);
93 root
.title(str(__program_name__
)+" Query Tool "+str(__version__
));
94 root
.iconbitmap('pyopencnam-16x.ico');
96 phonenumber_label
= Label(root
, text
="Phone Number", height
=1);
97 phonenumber_label
.pack(side
=TOP
, anchor
="w");
98 phonenumber
= Entry(root
, textvariable
=StringVar(root
, value
=master_phone_number
), width
=65);
99 phonenumber
.pack(side
=TOP
, anchor
="w");
101 accountsid_label
= Label(root
, text
="Account SID", height
=1);
102 accountsid_label
.pack(side
=TOP
, anchor
="w");
103 accountsid
= Entry(root
, textvariable
=StringVar(root
, value
=master_account_sid
), width
=65);
104 accountsid
.pack(side
=TOP
, anchor
="w");
106 authtoken_label
= Label(root
, text
="Auth Token", height
=1);
107 authtoken_label
.pack(side
=TOP
, anchor
="w");
108 authtoken
= Entry(root
, textvariable
=StringVar(root
, value
=master_auth_token
), width
=65);
109 authtoken
.pack(side
=TOP
, anchor
="w");
111 opencnamurl_label
= Label(root
, text
="OpenCNAM URL", height
=1);
112 opencnamurl_label
.pack(side
=TOP
, anchor
="w");
113 opencnamurl
= Entry(root
, textvariable
=StringVar(root
, value
=master_opencnam_url
), width
=65);
114 opencnamurl
.pack(side
=TOP
, anchor
="w");
116 service_level
= reversed(["standard", "value", "plus"]);
117 servicelevel_label
= Label(root
, text
="Service Level", height
=1);
118 servicelevel_label
.pack(side
=TOP
, anchor
="w");
119 servicelevel
= Listbox(root
, width
=65, height
=2);
120 for item
in service_level
:
121 servicelevel
.insert(0, item
);
122 servicelevel
.pack(side
=TOP
, anchor
="w");
123 if(master_service_level
=="standard"):
124 servicelevel
.select_set(0);
125 elif(master_service_level
=="plus"):
126 servicelevel
.select_set(1);
128 servicelevel
.select_set(0);
130 button
= Button(root
, text
="Run CNAM Query", command
=QueryCNAM
)
131 button
.pack(pady
=20, padx
=20)
133 queryresult_label
= Label(root
, text
="Query Result", height
=1);
134 queryresult_label
.pack(side
=TOP
, anchor
="w");
135 queryresult
= Text(root
, height
=8, width
=49);
136 queryresult
.pack(side
=TOP
, anchor
="w");
137 queryresult
.delete(0.0, END
);