Untitled
unknown
plain_text
a year ago
4.2 kB
14
Indexable
import tkinter as tk
from tkinter import ttk, messagebox, filedialog
from twilio.rest import Client
ACCOUNT_SID = "your_account_sid"
AUTH_TOKEN = "your_auth_token"
TWILIO_PHONE_NUMBER = "your_twilio_number"
def send_message():
client = Client(ACCOUNT_SID, AUTH_TOKEN)
numbers = recipient_listbox.get(0, tk.END)
message_content = message_text.get("1.0", tk.END).strip()
if not message_content:
messagebox.showwarning("Warning", "Message content cannot be empty!")
return
if not numbers:
messagebox.showwarning("Warning", "No recipients added!")
return
for number in numbers:
try:
message = client.messages.create(
body=message_content,
from_=TWILIO_PHONE_NUMBER,
to=number
)
print(f"Message sent to {number}: {message.sid}")
except Exception as e:
messagebox.showerror("Error", f"Failed to send message to {number}: {str(e)}")
messagebox.showinfo("Success", "Messages sent successfully!")
def reset_fields():
recipient_entry.delete(0, tk.END)
message_text.delete("1.0", tk.END)
def add_number():
number = recipient_entry.get()
if number:
recipient_listbox.insert(tk.END, number)
recipient_entry.delete(0, tk.END)
else:
messagebox.showwarning("Warning", "Please enter a number!")
def load_from_file():
file_path = filedialog.askopenfilename(filetypes=[("Text Files", "*.txt")])
if file_path:
with open(file_path, "r") as file:
for line in file:
recipient_listbox.insert(tk.END, line.strip())
def view_templates():
messagebox.showinfo("Templates", "Feature under development.")
root = tk.Tk()
root.title("SMS Announcement System")
root.geometry("700x500")
header_frame = tk.Frame(root, bg="#0078D7", height=60)
header_frame.pack(fill=tk.X)
header_label = tk.Label(header_frame, text="Pamantasan ng Lungsod ng Marikina\nSenior High School - SMS Announcement System",
bg="#0078D7", fg="white", font=("Arial", 14, "bold"), justify=tk.CENTER)
header_label.pack(pady=10)
recipient_frame = tk.Frame(root, padx=10, pady=10)
recipient_frame.pack(fill=tk.X)
tk.Label(recipient_frame, text="Enter Recipient Number:").grid(row=0, column=0, sticky=tk.W)
recipient_entry = tk.Entry(recipient_frame, width=30)
recipient_entry.grid(row=0, column=1, padx=5)
add_button = tk.Button(recipient_frame, text="Add", command=add_number)
add_button.grid(row=0, column=2, padx=5)
tk.Label(recipient_frame, text="Total Numbers:").grid(row=1, column=0, sticky=tk.W, pady=5)
recipient_listbox = tk.Listbox(recipient_frame, height=7, width=50)
recipient_listbox.grid(row=1, column=1, columnspan=2, pady=5)
message_frame = tk.Frame(root, padx=10, pady=10)
message_frame.pack(fill=tk.X)
tk.Label(message_frame, text="Message:").grid(row=0, column=0, sticky=tk.W)
message_text = tk.Text(message_frame, height=5, width=60)
message_text.grid(row=0, column=1, pady=5, padx=5)
options_frame = tk.Frame(root, padx=10, pady=10)
options_frame.pack(fill=tk.X)
tk.Label(options_frame, text="Options:").grid(row=0, column=0, sticky=tk.W)
delayed_check = tk.Checkbutton(options_frame, text="Delayed Delivery")
delayed_check.grid(row=0, column=1, sticky=tk.W)
save_sent_check = tk.Checkbutton(options_frame, text="Save Sent Messages")
save_sent_check.grid(row=1, column=0, sticky=tk.W)
save_template_check = tk.Checkbutton(options_frame, text="Save Message to Templates")
save_template_check.grid(row=1, column=1, sticky=tk.W)
view_template_button = tk.Button(options_frame, text="View Templates", command=view_templates)
view_template_button.grid(row=2, column=1, sticky=tk.W, pady=5)
action_frame = tk.Frame(root, pady=10)
action_frame.pack()
send_button = tk.Button(action_frame, text="Send", bg="green", fg="white", command=send_message)
send_button.pack(side=tk.LEFT, padx=5)
reset_button = tk.Button(action_frame, text="Reset", bg="red", fg="white", command=reset_fields)
reset_button.pack(side=tk.LEFT, padx=5)
load_button = tk.Button(action_frame, text="Load Contacts from File", command=load_from_file)
load_button.pack(side=tk.LEFT, padx=5)
root.mainloop()
Editor is loading...
Leave a Comment