Add files via upload
[PyOpenCNAM.git] / pyopencnam-ui.py
blobc56e36e17c24c2ee0e138509a4a70fef1f97c05b
1 #!/usr/bin/python
2 # -*- coding: utf-8 -*-
4 '''
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 $
18 '''
20 from __future__ import division, absolute_import, print_function;
21 import os, sys, json, pyopencnam, platform;
23 try:
24 from ConfigParser import SafeConfigParser;
25 except ImportError:
26 from configparser import SafeConfigParser;
28 try:
29 import Tkinter, tkMessageBox, tkFileDialog, tkColorChooser, tkSimpleDialog;
30 except ImportError:
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;
37 try:
38 from Tkinter import *;
39 except ImportError:
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");
82 def QueryCNAM():
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);
88 return True;
90 root = Tk();
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);
127 else:
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);
139 root.mainloop();