Professional Documents
Culture Documents
Signature Signature
Mr. Deepak Hardikar (External)
(PGT Computer Science)
Signature
(Ms. Priyanka Trivedi)
431
Session : 2021 - 2022
435
About Wyntr
Introduction
Unlimited movies, TV shows and more. Watch anywhere. Cancel anytime. Ready to
watch? Sign up your email to create to create a Wyntr Account.
Watch on smart TVs, PlayStation, Xbox, Chromecast, Apple TV, Blu-ray players and
more. Download your shows to watch offline. Save your favourites easily and always
have something to watch. Stream unlimited movies and TV shows on your phone,
tablet, laptop, and TV.
Wyntr is a streaming service that offers a wide variety of award-winning TV shows,
movies, anime, documentaries, and more – on thousands of internet-connected
devices.
Members can watch TV series, documentaries and feature films across a wide
variety of genres and languages. Members can watch as much as they want,
anytime, anywhere, on any internet-connected screen. Members can play, pause
and resume watching, all without commercials or commitments.
Wyntr, Inc. is an Indian pay television over-the-top media service and original
programming production company. It offers subscription-based video on demand
from a library of films and television series.
Wyntr can be accessed via internet browser on computers, or via application
software installed on smart TVs, set-top boxes connected to televisions, tablet
computers, smartphones, digital media players, Blu-ray Disc players, video game
consoles, and virtual reality headsets o It is available in 4K resolution.
It includes a wide variety of familiar network shows and more original series, films,
documentaries and specials than any of its myriad competitors. The world's first
major streaming service remains our favourite choice in 2021 thanks to its huge
library of constantly refreshed content and its easy accessibility across different
devices.
Wyntr's design encourages scrolling -- there are so many different categories to
look through, and then shows and movies within those categories to continue
scrolling into. You can create a watch list to help you cut down on this, but the vast,
colourful library makes it easy to spend more time looking through options than
actually watching a show, so be careful.
Wyntr has more 4K content than just about any other streaming service, and a lot of
its 4K shows and movies are also available in HDR. High dynamic range provides an
even bigger improvement in image quality than 4K according to CNET's tests, with
better436
contrast and colour, and the difference is especially apparent on large,
higher-end televisions.
Snapshots
Signing In
437
Signing Up
MySQL - In Brief
SQL stands for Structured Query Language. It is used to create, remove, alter
the database and database objects in a database management system and to
store, retrieve, update the data in a database. SQL is a standard language for
creating, accessing, manipulating database management system. SQL works
for all modern relational database management systems, like SQL Server,
Oracle, MySQL, etc.
SQL defines following ways to manipulate data stored in an RDBMS :
DDL: Data Definition Language
This includes changes to the structure of the table like creation of table,
altering table, deleting a table etc. All DDL commands are auto-committed.
That means it saves all the changes permanently in the database.
DML: Data Manipulation Language
DML commands are used for manipulating the data stored in the table and not
the table itself. DML commands are not auto-committed. It means changes are
not permanent to database, they can be rolled back
Evaluation Execution
Result Engine Plan
OUTPUT
Data
438
Name : MySQL
Original Author : MySQL AB
Developer : Oracle Corporation
Released On : 23 May 1995
Written in : C, C++
Operating system : Linux, Solaris, macOS, Windows, FreeBSD
Type : RDBMS
License : GPLv2 or proprietary
Hardware Used
Harware : Printer
Resolution : Maximum 2880 dpi x 1440 dpi
Print direction : Bidirectional
Control code : ESC/P Raster
RAM : 64 MB for StylusPro 9600
Character
439 tables : PC 437 (US, Europe), PC 850 (Multilingual)
SQL Tables
Accounts
Media
4310
ER Diagram
First Name Last Name Username E-mail Password
Register
Username
PROVIDES Login
Password
ID Title
IMDb Certificate
Streaming Description
Platform Link
4311
Conclusion
Wyntr is a tracking platform and social television network for TV and movies. It allows
users to store information about their media consumption.
It also stores the records of Movies, TV Shows, Web Series and Anime. We designed a
user-friendly graphical user interface which suits the user and also saves the precious
time.
Streaming combined with social media is the next stage in the evolution of digital
entertainment, and we see Wyntr as a primary actor in starting that evolution. The
content is made free by the streaming services themselves as part of their marketing
promotions. Our platform simply aggregates all the free content across all the
streaming services.
The Wyntr helps you find the best way to stream anything. Follow our daily streaming
news, in-depth reviews on streaming services & devices, and use our tools to find
where your favourite content is streaming.
The world has changed. People’s watching habits became fragmented, different. The
TV universe got bigger and yet felt smaller at the same time. Mobile phones, tablets and
other devices allowed us to watch from anywhere. Entire series were released in a day.
10 channels became 1,000. And more than ever, we wanted to stay on top of our
favourite shows. We got enraged when anyone even hinted at a spoiler. And finding our
tribes, those like us, to share moments and react to, at the moment we felt it, became
so vital, so enriching, so core to our daily routines.
And so we created our own collection of movies, series and anime.
➢ It is organised for you to save your time.
➢ Get personal recommendations and see what’s new across your favourite
streaming services.
➢ It has various filters for easy access of your favourites.
➢ You don’t have to check each and every platform for movies and series just visit
us.
➢ Never go back and forth between your services again to find out if a movie or TV
show is available.
➢ Keep track of all the TV shows and movies you want to watch in one list across all
your devices.
➢ Your 'Watch Next' section will tell you when you have episodes to watch or
movies to stream.
➢ See where to watch movies & TV online for free from trusted legal services like
MTV,
4312 Crackle and many others!
➢ Don't accidentally pay for movies that are available free online.
Snapshots
User Interface
Developer Interface
4313
Objective
We all know how overwhelming it can be to scroll through all
of our streaming subscriptions to find something to watch.
Wyntr, a new all-in-one social media and streaming service
app combines Netflix, Amazon Prime Video, HBO Max,
Disney+, Hulu, among other streaming platforms in one place,
giving the consumer a convenient way to search and discover
content across all services.
The vast majority of the time, people just resort to
recommendations from their friends or people they know.
When they’re looking to watch something or unwind at night,
they don’t have time to go do long research on what to watch,
most consumers are simply interested in three things: what is
new, what is popular/trending, and what their friends are
watching or talking about. And with the Wyntr technology, we
hope to satisfy all those three things, and much more.
You probably already have a Netflix queue (possibly one for
everyone in your household), a Hulu favourites list, and maybe
some bookmarked TV shows or movies you want to stream
from Amazon Video on Demand. If you are sitting in front of
the TV, ready to watch something, it can be tricky to try to sort
out which service the show you want to watch is on, or
whether the show you are interested in is on any of them.
4314
Bibliography
➢ https://www.w3schools.com
➢ https://stackoverflow.com
➢ https://github.com
➢ https://www.youtube.com
➢ https://www.javatpoint.com
➢ https://www.geeksforgeeks.org
➢ https://codemy.com
➢ https://edu.google.com/code-with-google
4315
Source Code
import tkinter, pymysql, webbrowser, time
from tkinter import *
from tkinter import ttk, messagebox
from PIL import ImageTk
class Wynter :
def __init__(self, root) :
self.root = root
self.root.title(" ")
self.root.iconbitmap("Images/Icon.ico")
self.root.geometry("1536x801")
self.root.state("zoomed")
self.Login_Interface()
def Login_Interface(self):
self.bg = ImageTk.PhotoImage(file = "Images/LogIn.png")
bg = Label(self.root, image = self.bg).place(x = 0, y = 0, height = 801,width = 1536)
self.Logo = ImageTk.PhotoImage(file = "Images/Logo.jpg")
Logo = Label(self.root, image = self.Logo).place(x = 210, y = 180, height = 435, width = 435)
Login_Frame = Frame(self.root, bg = "#F3C892")
Login_Frame.place(x = 648, y = 180, width = 680, height = 435)
Title = Label(Login_Frame, text = "Sign In", font = ("FZShuTi", 50, "bold"), bg = "#F3C892",
fg = "#021E2F").place(x = 50, y = 20)
Username = Label(Login_Frame, text = "Username", font = ("Product Sans", 20, "bold"), bg
= "#F3C892", fg = "#630000").place(x = 50, y = 130)
self.txt_Username = Entry (Login_Frame, font = ("Product Sans", 15), bg = "#FFEFD5")
self.txt_Username.place(x = 50, y = 170, height = 35, width = 350)
Password = Label(Login_Frame, text = "Password", font = ("Product Sans", 20, "bold"), bg =
"#F3C892", fg = "#630000").place(x = 50, y = 230)
self.txt_Password = Entry (Login_Frame, font = ("Product Sans", 15, "bold"), bg =
"#FFEFD5", show = "*")
self.txt_Password.place(x = 50, y = 270, height = 35, width = 350)
btn_register = Button(Login_Frame, text = "LOGIN",font = ("20th Century Font", 30), bd =
5, bg = "#F99A05", cursor = 'hand2', relief = RIDGE, command = self.Login)
btn_register.place(x = 425, y = 345, height = 50, width = 150)
Title = Label(Login_Frame, text = "Don't Have an Account ?", font = ("FZShuTi", 15, 'bold'),
bg = "#F3C892", fg = "#021E2F").place(x = 50, y = 340)
btn_login = Button(self.root, text = "SIGN UP", font = ("20th Century Font", 20), bg =
"#F99A05", bd = 5, relief = RIDGE, cursor = "hand2", command =
self.Registration_Interface)
btn_login.place(x = 770, y = 550, height = 40, width = 110)
self.root.bind('<Return>',lambda event:self.Login())
def Login(self):
if self.txt_Username.get() == "" and self.txt_Password.get() == "" :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇɴᴛᴇʀ ᴜꜱᴇʀɴᴀᴍᴇ ᴀɴᴅ
ᴘᴀꜱꜱᴡᴏʀᴅ", icon = "warning", parent = self.root)
elif self.txt_Username.get() == "" :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇɴᴛᴇʀ ᴜꜱᴇʀɴᴀᴍᴇ", icon =
"warning", parent = self.root)
elif self.txt_Password.get() == "" :
4316 messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇɴᴛᴇʀ ᴘᴀꜱꜱᴡᴏʀᴅ", icon =
"warning", parent = self.root)
else:
mycon = pymysql.connect(host="localhost",user="root",password="1234",database="Details")
cursor = mycon.cursor()
cursor.execute("SELECT * FROM Accounts WHERE Username = %s AND Password = %s",
(self.txt_Username.get(), self.txt_Password.get()))
row = cursor.fetchone()
if self.txt_Username.get() == "mainishanhoon" and self.txt_Password.get() == "Password" :
self.Management_Interface()
elif row == None :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ɪɴᴠᴀʟɪᴅ ᴜꜱᴇʀɴᴀᴍᴇ / ᴘᴀꜱꜱᴡᴏʀᴅ", icon
= "warning", parent = self.root)
self.Login_Clear()
else :
messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴡᴇʟᴄᴏᴍᴇ ᴛᴏ 𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲",
parent = self.root)
self.Media_Interface()
mycon.close()
def Login_Clear(self) :
self.txt_Username.delete("0",END)
self.txt_Password.delete("0",END)
def Registration_Interface(self) :
self.bg = ImageTk.PhotoImage(file = "Images/Registration.jpg")
bg = Label(self.root, image = self.bg, bg = "#FAA460").place(x = 0, y = 0, height = 801,width =
1536)
self.Logo = ImageTk.PhotoImage(file = "Images/Logo.jpg")
Left = Label(self.root, image = self.Logo).place(x = 200, y = 180, height = 435, width = 435)
Registration_Frame=Frame(self.root, bg = "#F3C892")
Registration_Frame.place(x = 638, y = 180, width = 700, height = 435)
title = Label(Registration_Frame, text = "Sign Up", font = ("FZShuTi", 50, "bold"), bg = "#F3C892",
fg = "#021E2F").place(x = 50, y = 10)
FirstName = Label(Registration_Frame, text = "First Name", font = ("Product Sans", 15, "bold"), bg
= "#F3C892", fg = "#630000").place(x = 70, y = 120)
self.txt_FirstName = Entry (Registration_Frame, font = ("Product Sans", 15), justify = CENTER, bg
= "#FFEFD5")
self.txt_FirstName.place(x = 70, y = 150, width = 250)
LastName = Label(Registration_Frame, text = "Last Name", font = ("Product Sans", 15, "bold"), bg
= "#F3C892", fg = "#630000").place(x = 380, y = 120)
self.txt_LastName = Entry (Registration_Frame, font = ("Product Sans", 15), justify = CENTER, bg
= "#FFEFD5")
self.txt_LastName.place(x = 380, y = 150, width = 250)
Username = Label(Registration_Frame, text = "Username", font = ("Product Sans", 15, "bold"), bg =
"#F3C892", fg = "#630000").place(x = 70, y = 190)
def Registration(self) :
if self.txt_FirstName.get() == "" or self.txt_Email.get() == "" or self.txt_FirstName.get() == "" or
self.txt_Username.get() == "" or self.txt_Password.get() == "" or self.txt_ConfirmPassword.get()
== "":
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴀʟʟ ꜰɪᴇʟᴅꜱ ᴀʀᴇ ʀᴇ🇶ᴜɪʀᴇᴅ", icon = "warning",
parent = self.root)
elif self.txt_Password.get() != self.txt_ConfirmPassword.get() :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿
4317 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴄᴏɴꜰɪʀᴍ ᴘᴀꜱꜱᴡᴏʀᴅ ɪꜱ ᴅɪꜰꜰᴇʀ ᴇɴᴛ", icon =
"warning", parent = self.root)
else :
mycon = pymysql.connect(host="localhost",user="root",password="1234",database="Details")
cursor = mycon.cursor()
cursor.execute("SELECT * FROM Accounts WHERE Username = %s", self.txt_Username.get())
Username = cursor.fetchone()
cursor.execute("SELECT * FROM Accounts WHERE Email = %s", self.txt_Email.get())
Email = cursor.fetchone()
if Username != None :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴜꜱᴇʀ ᴀʟʀᴇᴀᴅʏ ᴇxɪꜱᴛꜱ, ᴛʀʏ ᴏᴛʜᴇʀ
ᴜꜱᴇʀɴᴀᴍᴇ", icon = "warning", parent = self.root)
elif Email != None :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇᴍᴀɪʟ ᴀʟʀᴇᴀᴅʏ ᴇxɪꜱᴛꜱ, ᴛʀʏ ᴏᴛʜᴇʀ
ᴇᴍᴀɪʟ", icon = "warning", parent = self.root)
else :
cursor.execute("INSERT INTO Accounts (First_Name, Last_Name, Username, Email,
Password) VALUES (%s,%s,%s,%s,%s)",
(self.txt_FirstName.get(),
self.txt_LastName.get(),
self.txt_Username.get(),
self.txt_Email.get(),
self.txt_Password.get()
))
messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴀᴄᴄᴏᴜɴᴛ ʜᴀꜱ ʙᴇᴇɴ ʀᴇɢɪꜱᴛᴇʀᴇᴅ")
self.Management_Interface()
mycon.commit()
mycon.close()
def Registration_Clear(self) :
self.txt_FirstName.delete(0,END)
self.txt_LastName.delete(0,END)
self.txt_Username.delete(0,END)
self.txt_Email.delete(0,END)
self.txt_Password.delete(0,END)
self.txt_ConfirmPassword.delete(0,END)
def Management_Interface(self) :
Title_Frame = Frame(self.root, bd = 0, bg = "#FFE6BC")
Title_Frame.place(x = 0, y= 0, width = 1535.5, height = 95)
Title = Label(Title_Frame, text = "𝕎𝕪𝕟𝕥𝕣 𝕊𝕥𝕣𝕖𝕒𝕞𝕚𝕟𝕘 𝕊𝕖𝕣𝕧𝕚𝕔𝕖", bd = 8, relief = RIDGE, font =
("Product Sans", 50, "bold"), bg = "#ECB365", fg = "#630000")
Title.place(x =0, y = 0, height = 90, width = 1535.5)
Logo_Frame = Frame(self.root, bd = 0, bg = "#ffffff")
Logo_Frame.place(x = 280, y = 10, width = 80, height = 70)
self.Logo = ImageTk.PhotoImage(file = "Images/Logo.png")
Logo = Label(Logo_Frame, image = self.Logo).place(x = 0, y = 0, height = 70, width = 80)
self.Addbtn = PhotoImage(file = "Images/Sign_Out.png")
btn = Button(Title_Frame, image = self.Addbtn, bd = 0, cursor = "hand2", relief = FLAT, command =
self.SignOut)
btn.place(x = 1484, y = 11, width = 40, height = 40)
Developers = Label(Title_Frame, text = "Developers : Nishan, Rishu, Yogesh",bd = 0, font =
("Bafora Demo", 20, 'bold'), bg = "#ECB365", fg = "#800000")
Developers.place(x =1178, y = 52, height = 30, width = 350)
self.ID_var = StringVar()
self.Title_var
4318 = StringVar()
self.Genre_var = StringVar()
self.Type_var = StringVar()
self.IMDb_var = StringVar()
self.Certificate_var = StringVar()
self.Streaming_Platform_var = StringVar()
self.Description_var = StringVar()
self.Link_var = StringVar()
self.SearchBy_var = StringVar()
self.SearchBox_var = StringVar()
Manage_Frame = Frame(self.root, bd = 5, relief = GROOVE, bg = "#F3C892")
Manage_Frame.place(x = 2, y= 93, width = 613, height = 700)
Addbtn = Button(Extract_Frame, text = "Show All", width = 10, font = ("Gagalin", 18), bg = "#F99A05", bd
= 5, relief = RIDGE, cursor = "hand2", command = self.ShowAll_Data)
Addbtn.place(x = 760, y = 12, width = 120, height = 40)
Table_Frame = Frame(Details_Frame, bd = 0, bg = "#95D1CC" )
Table_Frame.place(x = 0, y = 70, width = 910, height = 620)
Style = ttk.Style(self.root)
Style.theme_use("winnative")
Style.configure(".", font=('Product Sans', 10), bg = "#FFDEAD")
Style.configure("Media_Table.Heading", fg = "#630000", font = ('Product Sans', 20))
scroll_y = Scrollbar(Table_Frame, orient = VERTICAL)
self.Media_Table = ttk.Treeview(Table_Frame, columns = ("ID", "Title", "Genre", "Type", "IMDb",
"Certificate", "Streaming_Platform"), yscrollcommand = scroll_y.set)
scroll_y.pack(side = RIGHT, fill = Y)
scroll_y.config(command = self.Media_Table.yview)
self.Media_Table.heading("ID", text = "ID", anchor=tkinter.CENTER)
self.Media_Table.heading("Title", text = "Title", anchor=tkinter.CENTER)
self.Media_Table.heading("Genre", text = "Genre", anchor=tkinter.CENTER)
self.Media_Table.heading("Type", text = "Type", anchor=tkinter.CENTER)
self.Media_Table.heading("IMDb", text = "IMDb", anchor=tkinter.CENTER)
self.Media_Table.heading("Certificate", text = "Certificate", anchor=tkinter.CENTER)
self.Media_Table.heading("Streaming_Platform", text = "Streaming On", anchor=tkinter.CENTER)
self.Media_Table['show'] = "headings"
self.Media_Table.column("ID", width = 70, anchor=tkinter.CENTER)
self.Media_Table.column("Title", width = 290, anchor=tkinter.CENTER)
self.Media_Table.column("Genre", width = 110, anchor=tkinter.CENTER)
self.Media_Table.column("Type", width = 100, anchor=tkinter.CENTER)
self.Media_Table.column("IMDb", width = 60, anchor=tkinter.CENTER)
self.Media_Table.column("Certificate", width = 160, anchor=tkinter.CENTER)
self.Media_Table.column("Streaming_Platform", width = 100, anchor=tkinter.CENTER)
self.Media_Table.pack(fill = BOTH, expand = 1)
self.Media_Table.bind("<ButtonRelease-1>",
4321 self.Get_Details)
self.root.bind('<Return>',lambda event:self.Search_Data())
self.ShowAll_Data()
def Add_Details(self) :
if self.ID_var.get() == "" :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇɴᴛᴇʀ ᴛʜᴇ ɪᴅ ᴏ🇫 ᴍᴇᴅɪᴀ", icon =
"warning", parent = self.root)
elif self.Type_var.get() == "Select Type" :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇɴᴛᴇʀ ᴛʜᴇ ᴛʏᴘᴇ ᴏ🇫 ᴍᴇᴅɪᴀ", icon =
"warning", parent = self.root)
elif self.Title_var.get() == "" :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇɴᴛᴇʀ ᴛʜᴇ ᴛɪᴛʟᴇ ᴏ🇫 ᴍᴇᴅɪᴀ", icon =
"warning", parent = self.root)
elif self.Genre_var.get() == "Select Genre" :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇɴᴛᴇʀ ᴛʜᴇ ɢᴇɴʀᴇ ᴏ🇫 ᴍᴇᴅɪᴀ", icon =
"warning", parent = self.root)
elif self.IMDb_var.get() == "" :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇɴᴛᴇʀ ᴛʜᴇ ɪᴍᴅʙ ʀᴀɪᴛɪɴɢ ᴏ🇫 ᴍᴇᴅɪᴀ", i
con = "warning", parent = self.root)
elif self.Certificate_var.get() == "Select Certificate" :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇɴᴛᴇʀ ᴛʜᴇ ᴄᴇʀᴛɪꜰɪᴄᴀᴛᴇ ᴏ🇫 ᴍᴇᴅɪᴀ", icon
= "warning", parent = self.root)
elif self.Streaming_Platform_var.get() == "Select Streaming Platform" :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇɴᴛᴇʀ ᴛʜᴇ 🇸ᴛʀᴇᴀᴍɪɴɢ ᴘʟᴀᴛ🇫ᴏʀᴍ ᴏ🇫
ᴍᴇᴅɪᴀ", icon = "warning", parent = self.root)
elif self.txt_Description.get('1.0' , END) == "" :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇɴᴛᴇʀ ᴛʜᴇ ᴅᴇ🇸ᴄʀɪᴘᴛɪᴏɴ ᴏ🇫 ᴍᴇᴅɪᴀ", icon
= "warning", parent = self.root)
elif self.Link_var.get() == "" :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴇɴᴛᴇʀ ᴛʜᴇ ʟɪɴᴋ ᴏ🇫 ᴍᴇᴅɪᴀ", icon =
"warning", parent = self.root)
else :
mycon = pymysql.connect(host = "localhost", user = "root", password = "1234", database =
"details")
cursor = mycon.cursor()
cursor.execute("SELECT * FROM Media WHERE ID = %s", self.ID_var.get())
Details = cursor.fetchone()
if Details != None :
messagebox.showerror("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴍᴇᴅɪᴀ ᴡɪᴛʜ ᴛʜɪꜱ ɪᴅ ᴀʟʀᴇᴀᴅʏ ᴇxɪ🇸ᴛ",
icon = "warning", parent = self.root)
else :
cursor.execute("INSERT INTO Media VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s)",(
self.ID_var.get(),
self.Title_var.get(),
self.Genre_var.get(),
self.Type_var.get(),
self.IMDb_var.get(),
self.Certificate_var.get(),
self.Streaming_Platform_var.get(),
self.txt_Description.get('1.0', END),
self.Link_var.get()
))
mycon.commit()
4322 messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ʏᴏᴜʀ ᴍᴇᴅɪᴀ ɪ🇸 ɴᴏᴡ 🇸ᴛʀᴇᴀᴍɪɴɢ", parent
= self.root)
self.ShowAll_Data()
self.Clear()
mycon.close()
def ShowAll_Data(self) :
mycon = pymysql.connect(host = "localhost", user = "root", password = "1234", database =
"details")
cursor = mycon.cursor()
cursor.execute("SELECT * FROM Media")
rows = cursor.fetchall()
if len(rows) != 0 :
self.Media_Table.delete(*self.Media_Table.get_children())
for row in rows :
self.Media_Table.insert('', END, values = row)
mycon.commit()
mycon.close()
def Clear(self) :
self.ID_var.set(""),
self.Title_var.set(""),
self.Genre_var.set("Select Genre"),
self.Type_var.set("Select Type"),
self.IMDb_var.set(""),
self.Certificate_var.set("Select Certificate"),
self.Streaming_Platform_var.set("Select Streaming Platform"),
self.txt_Description.delete("1.0", END),
self.Link_var.set(""),
self.SearchBy_var.set("Select Category"),
self.txt_SearchBox.delete("0", END)
def Stream_Now(self) :
if self.ID_var.get() == "" :
messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ꜱᴇʟᴇᴄᴛ ᴍᴇᴅɪᴀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴɴᴀ
ꜱᴛʀᴇᴀᴍ", icon = "warning", parent = self.root)
else :
webbrowser.open(str(self.Link_var.get()), new=2)
def Search_Data(self) :
if self.SearchBy_var.get() == "Select Category" :
messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴏɴ ᴡʜᴀᴛ ʙᴀꜱɪꜱ ʏᴏᴜ ᴡᴀɴɴᴀ
ᴡᴀᴛᴄʜ", icon = "question", parent = self.root)
elif self.txt_SearchBox.get() == "" :
messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ꜱᴇᴀʀᴄʜ ʙᴏx ɪꜱ ᴇᴍᴘᴛʏ", icon =
"warning", parent = self.root)
elif self.SearchBy_var.get() == "Select Category" and self.txt_SearchBox.get() == "" :
messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴏɴ ᴡʜᴀᴛ ʙᴀꜱɪꜱ ʏᴏᴜ ᴡᴀɴɴᴀ
ᴡᴀᴛᴄʜ", icon = "question", parent = self.root)
else :
mycon = pymysql.connect(host = "localhost", user = "root", password = "1234",
database = "details")
cursor = mycon.cursor()
cursor.execute("SELECT * FROM Media WHERE " +str(self.SearchBy_var.get())+"
LIKE '%"4324
+str(self.txt_SearchBox.get())+"%' ")
Details = cursor.fetchall()
if len(Details) != 0 :
self.Media_Table.delete(*self.Media_Table.get_children())
if self.ID_var.get() == "" :
messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ꜱᴇʟᴇᴄᴛ ᴍᴇᴅɪᴀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴɴᴀ ᴅᴇʟᴇᴛᴇ", icon
= "warning", parent = self.root)
else :
mycon = pymysql.connect(host = "localhost", user = "root", password = "1234", database =
"details")
cursor = mycon.cursor()
cursor.execute("DELETE FROM Media WHERE ID = %s", self.ID_var.get())
mycon.commit()
messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ꜱᴇʟᴇᴄᴛᴇᴅ ᴍᴇᴅɪᴀ ʜᴀꜱ ʙᴇᴇɴ ᴅᴇʟᴇᴛᴇᴅ", parent =
self.root)
self.ShowAll_Data()
self.Clear()
mycon.close()
def Stream_Now(self) :
if self.ID_var.get() == "" :
messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ꜱᴇʟᴇᴄᴛ ᴍᴇᴅɪᴀ ᴡʜɪᴄʜ ʏᴏᴜ ᴡᴀɴɴᴀ
ꜱᴛʀᴇᴀᴍ", icon = "warning", parent = self.root)
else :
webbrowser.open(str(self.Link_var.get()), new=2)
def Search_Data(self) :
if self.SearchBy_var.get() == "Select Category" :
messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴏɴ ᴡʜᴀᴛ ʙᴀꜱɪꜱ ʏᴏᴜ ᴡᴀɴɴᴀ ᴡᴀᴛᴄʜ",
icon = "question", parent = self.root)
elif self.txt_SearchBox.get() == "" :
messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ꜱᴇᴀʀᴄʜ ʙᴏx ɪꜱ ᴇᴍᴘᴛʏ", icon =
"warning", parent = self.root)
elif self.SearchBy_var.get() == "Select Category" and self.txt_SearchBox.get() == "" :
messagebox.showinfo("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "ᴏɴ ᴡʜᴀᴛ ʙᴀꜱɪꜱ ʏᴏᴜ ᴡᴀɴɴᴀ ᴡᴀᴛᴄʜ",
icon = "question", parent = self.root)
else :
mycon = pymysql.connect(host = "localhost", user = "root", password = "1234", database =
"details")
cursor = mycon.cursor()
cursor.execute("SELECT * FROM Media WHERE " +str(self.SearchBy_var.get())+" LIKE '%"
+str(self.txt_SearchBox.get())+"%' ")
Details = cursor.fetchall()
if len(Details) != 0 :
self.Media_Table.delete(*self.Media_Table.get_children())
for Data in Details :
self.Media_Table.insert("", END, values = Data)
else :
No_Data = Label(self.root, text = "Oops! No Medias Were Found",font=("FZShuTi",
45, 'bold'), fg = "#021E2F", bg = '#FFEFD5')
No_Data.place(x = 622, y = 189, height = 597, width = 890)
No_Data.after(3000, No_Data.destroy)
self.Clear()
mycon.commit()
mycon.close()
def SignOut(self) :
MessageBox
4325 = messagebox.askyesno("𝗪𝘆𝗻𝘁𝗿 𝗦𝘁𝗿𝗲𝗮𝗺𝗶𝗻𝗴 𝗦𝗲𝗿𝘃𝗶𝗰𝗲", "Are You Sure You Wanna Sign
Out ?")
if MessageBox == True :
self.Login_Interface()
def Media_Interface(self) :
Title_Frame = Frame(self.root, bd = 0, bg = "#FFE6BC")
Title_Frame.place(x = 0, y= 0, width = 1535.5, height = 95)
self.ID_var = StringVar()
self.Title_var = StringVar()
self.Genre_var = StringVar()
self.Type_var = StringVar()
self.IMDb_var = StringVar()
self.Certificate_var = StringVar()
self.Streaming_Platform_var = StringVar()
self.Description_var = StringVar()
self.Link_var = StringVar()
self.SearchBy_var = StringVar()
self.SearchBox_var = StringVar()
Manage_Frame = Frame(self.root, bd = 5, relief = GROOVE, bg = "#F3C892")
Manage_Frame.place(x = 2, y= 93, width = 613, height = 700)
Details_Title = Label(Manage_Frame, text = "Media Details", font = ("FZShuTi",50, "bold"), bg =
"#F3C892", fg = "#630000")
Details_Title.place(x = 45, y = 0, height = 55, width = 500)
Label_ID = Label(Manage_Frame, text = "ID", font = ("Product Sans",17, "bold"), bg = "#F3C892", fg
= "#800000").place(x = 35, y = 70)
txt_ID = Entry(Manage_Frame, textvariable = self.ID_var, font = ("Product Sans",15), state =
DISABLED, justify = CENTER, bg = "#FFEFD5")
txt_ID.place(x = 35, y = 105, width = 250)
Label_Type = Label(Manage_Frame, text = "Type", font = ("Product Sans",17, "bold"), bg =
"#F3C892", fg = "#800000").place(x = 315, y = 70)
txt_Type = Entry(Manage_Frame, textvariable = self.Type_var, font = ("Product Sans",15), state =
DISABLED, justify = CENTER, bg = "#FFEFD5")
txt_Type.place(x = 315, y = 105, width = 250)
Label_Title = Label(Manage_Frame, text = "Title", font = ("Product Sans",17, "bold"), bg =
"#F3C892",
4326 fg = "#800000").place(x = 35, y = 140)
txt_Title = Entry(Manage_Frame, textvariable = self.Title_var, font = ("Product Sans",15), state =
DISABLED, justify = CENTER, bg = "#FFEFD5")
txt_Title.place(x = 35, y = 175, width = 530)
Addbtn = Button(Extract_Frame, text = "Show All", width = 10, font = ("Gagalin", 18), bg =
"#F99A05", bd = 5, relief = RIDGE, cursor = "hand2", command = self.ShowAll_Data)
Addbtn.place(x = 760, y = 12, width = 120, height = 40)
Style = ttk.Style(self.root)
Style.theme_use("winnative")
Style.configure(".", font=('Product Sans', 10), bg = "#FFDEAD")
Style.configure("Media_Table.Heading", fg = "#630000", font = ('Product Sans', 20))
scroll_y = Scrollbar(Table_Frame, orient = VERTICAL)
self.Media_Table = ttk.Treeview(Table_Frame, columns = ("ID", "Title", "Genre", "Type", "IMDb",
"Certificate", "Streaming_Platform"), yscrollcommand = scroll_y.set)
scroll_y.pack(side = RIGHT, fill = Y)
scroll_y.config(command = self.Media_Table.yview)
self.Media_Table.heading("ID", text = "ID", anchor=tkinter.CENTER)
self.Media_Table.heading("Title", text = "Title", anchor=tkinter.CENTER)
self.Media_Table.heading("Genre", text = "Genre", anchor=tkinter.CENTER)
self.Media_Table.heading("Type", text = "Type", anchor=tkinter.CENTER)
self.Media_Table.heading("IMDb", text = "IMDb", anchor=tkinter.CENTER)
self.Media_Table.heading("Certificate", text = "Certificate", anchor=tkinter.CENTER)
self.Media_Table.heading("Streaming_Platform", text = "Streaming On", anchor=tkinter.CENTER)
self.Media_Table['show'] = "headings"
self.Media_Table.column("ID", width = 70, anchor=tkinter.CENTER)
self.Media_Table.column("Title", width = 290, anchor=tkinter.CENTER)
self.Media_Table.column("Genre", width = 110, anchor=tkinter.CENTER)
self.Media_Table.column("Type", width = 100, anchor=tkinter.CENTER)
self.Media_Table.column("IMDb", width = 60, anchor=tkinter.CENTER)
self.Media_Table.column("Certificate", width = 160, anchor=tkinter.CENTER)
self.Media_Table.column("Streaming_Platform", width = 100, anchor=tkinter.CENTER)
self.Media_Table.pack(fill = BOTH, expand = 1)
self.Media_Table.bind("<ButtonRelease-1>", self.Get_Details)
self.root.bind('<Return>',lambda event:self.Search_Data())
self.ShowAll_Data()
root = Tk()
obj = Wynter(root)
root.mainloop()
4328
System
Implementation
Software Used
Name : Python
Designed by : Guido van Rossum
Developer : Python Software Foundation
First appeared : February 20, 1991
OS : Windows, Linux/UNIX, macOS & more
License : Python Software Foundation License
Name : Sublime Text 4
Developer : Sublime HQ
Initial release : 18 January 2008
OS : Linux, macOS & Windows
Platform : x64 and ARM64
Type : Source code editor
License : Shareware
Name : Windows 11
Developer : Microsoft
Written in : C, C++, C#, assembly language
Source model : Closed-source, Source-available (through
Shared Source Initiative) & Some components open source
4329
Platforms : x86-64, ARM64