Add files via upload
[PyOpenCNAM.git] / pyopencnam-ui.py
blob40522b487fdde085e78174b44f05590b3c79a878
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.
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 $
15 '''
17 from __future__ import division, absolute_import, print_function;
18 import os, sys, json, pyopencnam, platform;
20 try:
21 from ConfigParser import SafeConfigParser;
22 except ImportError:
23 from configparser import SafeConfigParser;
25 try:
26 import Tkinter, tkMessageBox, tkFileDialog, tkColorChooser, tkSimpleDialog;
27 except ImportError:
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;
34 try:
35 from Tkinter import *;
36 except ImportError:
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");
79 def QueryCNAM():
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);
85 return True;
87 root = Tk();
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);
124 else:
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);
136 root.mainloop();