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.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 Revised BSD License for more details.
11 Copyright 2020 Cool Dude 2k - http://idb.berlios.de/
12 Copyright 2020 Game Maker 2k - http://intdb.sourceforge.net/
13 Copyright 2020 Kazuki Przyborowski - https://github.com/KazukiPrzyborowski
14 $FileInfo: pyopencnam-ui.py - Last Update: 1/19/2020 Ver. 1.2.0 RC 1 - Author: cooldude2k $
17 from __future__
import division
, absolute_import
, print_function
;
18 import os
, sys
, json
, pyopencnam
, platform
;
21 from ConfigParser
import SafeConfigParser
;
23 from configparser
import SafeConfigParser
;
26 import Tkinter
, tkMessageBox
, tkFileDialog
, tkColorChooser
, tkSimpleDialog
;
28 import tkinter
as Tkinter
;
29 from tkinter
import messagebox
as tkMessageBox
;
30 from tkinter
import filedialog
as tkFileDialog
;
31 from tkinter
import colorchooser
as tkColorChooser
;
32 from tkinter
import simpledialog
as tkSimpleDialog
;
35 from Tkinter
import *;
37 from tkinter
import *;
39 __program_name__
= "PyOpenCNAM";
40 __project__
= __program_name__
;
41 __project_url__
= "https://github.com/GameMaker2k/PyOpenCNAM";
42 __version_info__
= (1, 2, 0, "RC 1", 1);
43 __version_date_info__
= (2020, 1, 19, "RC 2", 2);
44 __version_date__
= str(__version_date_info__
[0])+"."+str(__version_date_info__
[1]).zfill(2)+"."+str(__version_date_info__
[2]).zfill(2);
46 if(__version_info__
[4]!=None):
47 __version_date_plusrc__
= __version_date__
+"-"+str(__version_date_info__
[4]);
48 if(__version_info__
[4]==None):
49 __version_date_plusrc__
= __version_date__
;
50 if(__version_info__
[3]!=None):
51 __version__
= str(__version_info__
[0])+"."+str(__version_info__
[1])+"."+str(__version_info__
[2])+" "+str(__version_info__
[3]);
52 if(__version_info__
[3]==None):
53 __version__
= str(__version_info__
[0])+"."+str(__version_info__
[1])+"."+str(__version_info__
[2]);
55 geturls_ua_pyopencnam_python
= "Mozilla/5.0 (compatible; {proname}/{prover}; +{prourl})".format(proname
=__project__
, prover
=__version__
, prourl
=__project_url__
);
56 if(platform
.python_implementation()!=""):
57 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__
);
58 if(platform
.python_implementation()==""):
59 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__
);
61 master_phone_number
= "+16786318356";
62 master_account_sid
= None;
63 master_auth_token
= None;
64 master_service_level
= "standard";
66 if(os
.path
.exists("pyopencnam.ini") and os
.path
.isfile("pyopencnam.ini")):
67 cfgparser
= SafeConfigParser();
68 cfgparser
.read("pyopencnam.ini");
69 master_phone_number
= cfgparser
.get("OpenCNAM", "phone_number");
70 master_account_sid
= cfgparser
.get("OpenCNAM", "account_sid");
71 if(len(master_account_sid
)<=0):
72 master_account_sid
= None;
73 master_auth_token
= cfgparser
.get("OpenCNAM", "auth_token");
74 if(len(master_auth_token
)<=0):
75 master_auth_token
= None;
76 master_opencnam_url
= cfgparser
.get("OpenCNAM", "opencnam_url");
77 master_service_level
= cfgparser
.get("OpenCNAM", "service_level");
80 queryresult
.delete(0.0, END
);
81 opencnam_queryresult
= pyopencnam
.query_cnam_info(phonenumber
.get(), accountsid
.get(), authtoken
.get(), master_opencnam_url
, servicelevel
.get(ACTIVE
));
82 print(opencnam_queryresult
);
83 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";
84 queryresult
.insert(END
, opencnam_result
);
88 root
.geometry("400x440");
89 root
.resizable(width
=False, height
=False);
90 root
.title(str(__program_name__
)+" Query Tool "+str(__version__
));
91 root
.iconbitmap('pyopencnam-16x.ico');
93 phonenumber_label
= Label(root
, text
="Phone Number", height
=1);
94 phonenumber_label
.pack(side
=TOP
, anchor
="w");
95 phonenumber
= Entry(root
, textvariable
=StringVar(root
, value
=master_phone_number
), width
=65);
96 phonenumber
.pack(side
=TOP
, anchor
="w");
98 accountsid_label
= Label(root
, text
="Account SID", height
=1);
99 accountsid_label
.pack(side
=TOP
, anchor
="w");
100 accountsid
= Entry(root
, textvariable
=StringVar(root
, value
=master_account_sid
), width
=65);
101 accountsid
.pack(side
=TOP
, anchor
="w");
103 authtoken_label
= Label(root
, text
="Auth Token", height
=1);
104 authtoken_label
.pack(side
=TOP
, anchor
="w");
105 authtoken
= Entry(root
, textvariable
=StringVar(root
, value
=master_auth_token
), width
=65);
106 authtoken
.pack(side
=TOP
, anchor
="w");
108 opencnamurl_label
= Label(root
, text
="OpenCNAM URL", height
=1);
109 opencnamurl_label
.pack(side
=TOP
, anchor
="w");
110 opencnamurl
= Entry(root
, textvariable
=StringVar(root
, value
=master_opencnam_url
), width
=65);
111 opencnamurl
.pack(side
=TOP
, anchor
="w");
113 service_level
= reversed(["standard", "value", "plus"]);
114 servicelevel_label
= Label(root
, text
="Service Level", height
=1);
115 servicelevel_label
.pack(side
=TOP
, anchor
="w");
116 servicelevel
= Listbox(root
, width
=65, height
=2);
117 for item
in service_level
:
118 servicelevel
.insert(0, item
);
119 servicelevel
.pack(side
=TOP
, anchor
="w");
120 if(master_service_level
=="standard"):
121 servicelevel
.select_set(0);
122 elif(master_service_level
=="plus"):
123 servicelevel
.select_set(1);
125 servicelevel
.select_set(0);
127 button
= Button(root
, text
="Run CNAM Query", command
=QueryCNAM
)
128 button
.pack(pady
=20, padx
=20)
130 queryresult_label
= Label(root
, text
="Query Result", height
=1);
131 queryresult_label
.pack(side
=TOP
, anchor
="w");
132 queryresult
= Text(root
, height
=8, width
=49);
133 queryresult
.pack(side
=TOP
, anchor
="w");
134 queryresult
.delete(0.0, END
);