diff --git a/README.md b/README.md index 989a718..eed9cad 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Python Scripts +# Python Scripts > This Repo is a collection of Various python scripts. @@ -13,7 +13,7 @@ OS X, Linux and Windows: ```bash git clone https://github.com/Logan1x/Python-Scripts.git -cd Python-Scripts +cd Python-Scripts/bin ``` ## Usage @@ -22,7 +22,7 @@ This script tells you the amount of memes in your facebook feed ```bash -pip install memedensity +pip install memedensity memedensity ``` @@ -39,16 +39,16 @@ python facebook-auto-post.py ``` ### Locate Me -Run this script and it will locate you. +Run this script and it will locate you. -This will tell you your +This will tell you your 1. City 2. Region 3. Country 4. Latitude & Longitude. 5. Your Internet Service Provider - + This uses [Checkip](http://checkip.dyndns.com/) and [ipinfo.io](http://ipinfo.io/developers). @@ -96,9 +96,9 @@ In case your browser stoped working delete/comment the following line in the scr `os.system("TASKKILL /F /IM " + brow + ".exe")` -### Blog Reader +### Blog Reader -Blog Reader is the terminal reader that scrapes the article from [planet dgplug](http://planet.dgplug.org/) and displays it on the terminal. +Blog Reader is the terminal reader that scrapes the article from [planet dgplug](http://planet.dgplug.org/) and displays it on the terminal. It seprates the content accrding to the screen size. @@ -141,6 +141,18 @@ pip install twitter python bulk_add_twitter_list.py ``` +### Expense Manager +Simple GUI program which helps you calculate your expenses, monitor them just through mouse clicks. All you have to do is run the script and choose an option from the menu which will displayed when you run the script. Enter Your Expenses as eg: "Biscuits Rs 15" " rs " ignore the quotes. + +```bash +python expense_manger.py +``` +### Caesar Cipher +Encrypts or Decrypts any message you want, simply enter the message and the rotation number +```bash +python caesar_cipher.py +``` + ## Release History * 0.0.1 @@ -173,3 +185,5 @@ The following people helped in creating the above content. * Pradhvan Bisht * David Antonini * Nguyen Anh Tien +* Akshit Grover +* Sharan Pai diff --git a/Blog_reader.py b/bin/Blog_reader.py similarity index 100% rename from Blog_reader.py rename to bin/Blog_reader.py diff --git a/bulk_add_twitter_list.py b/bin/bulk_add_twitter_list.py similarity index 100% rename from bulk_add_twitter_list.py rename to bin/bulk_add_twitter_list.py diff --git a/bin/caesar_cipher.py b/bin/caesar_cipher.py new file mode 100644 index 0000000..df9fc40 --- /dev/null +++ b/bin/caesar_cipher.py @@ -0,0 +1,42 @@ +key = 'abcdefghijklmnopqrstuvwxyz' + +def encrypt(n, plaintext): + """Encrypt the string and return the ciphertext""" + result = '' + + for l in plaintext.lower(): + try: + i = (key.index(l) + n) % 26 + result += key[i] + except ValueError: + result += l + + return result.lower() + + +def decrypt(n, ciphertext): + """Decrypt the string and return the plaintext""" + result = '' + + for l in ciphertext: + try: + i = (key.index(l) - n) % 26 + result += key[i] + except ValueError: + result += l + + return result + +print("Encrypt or decrypt?") +ans = input() +ans = ans.lower() +print("Enter message") +k = input() +print("Enter rotation number") +nn = int(input()) +if ans == 'encrypt': + ret = encrypt(nn,k) + print ('Encrytped: %s' % ret) +else: + ret = decrypt(nn,k) + print ('Decrytped: %s' % ret) diff --git a/bin/expense_manager.py b/bin/expense_manager.py new file mode 100644 index 0000000..469b2ff --- /dev/null +++ b/bin/expense_manager.py @@ -0,0 +1,340 @@ +#General Function: + +def combine_funcs(*funcs): + def combined_func(*args, **kwargs): + for f in funcs: + f(*args, **kwargs) + return combined_func + + + +#Defining the create function: + +def create(): + def sub_create(): + def sub1(): + def sub2(): + f1.destroy() + b=TextArea.get("1.0",'end') + if(b!='0'): + f.write(b) + f.write("\n") + f2.destroy() + f1=tkinter.Frame(bg="#CCCCFF") + f1.pack(fill="both",expand="true") + l1=tkinter.Label(f1,text="Congratulations! Your Entry Is Made.",bg="#330033",fg="#FFFFFF",relief="groove",pady=30,font=16) + l1.pack(fill="x",expand="true") + b1=tkinter.Button(f1,text="Return To MainMenu",bg="#FFFFFF",fg="blue",relief="groove",command=combine_funcs(sub2,start),height=2,width=25) + b1.pack(side="right") + a=e.get() + a=a.upper() + f1.destroy() + f=open(a,"w") + f2=tkinter.Frame(bg="#CCCCFF") + f2.pack(fill="both",expand="true") + l1=tkinter.Label(f2,text="Make An Entry:\n\nExample: Item1 Rs amount\nItem2 Rs amount",bg="#FFFFFF",fg="#680000",relief="groove",anchor="n",pady=50,font=25) + l1.pack(fill="x",expand="true") + TextArea = tkinter.Text(f2) + ScrollBar = tkinter.Scrollbar(f2,bg="white") + ScrollBar.config(command=TextArea.yview) + TextArea.config(yscrollcommand=ScrollBar.set) + ScrollBar.pack(side="right", fill="y") + TextArea.pack(fill="x") + b1=tkinter.Button(f2,text="Submit",bg="#FFFFFF",fg="blue",relief="groove",command=sub1) + b1.pack() + frame.destroy() + f1=tkinter.Frame(bg="#CCCCFF") + f1.pack(fill="both",expand="true") + l1=tkinter.Label(f1,text="Welcome To Expense Manager",bg="#330033",fg="#FFFFFF",relief="groove",pady=30,font=16) + l1.pack(fill="x",expand="true",anchor="n") + l1=tkinter.Label(f1,text="Enter Date:",bg="#330033",fg="#FFFFFF",relief="groove",font=9,padx=50) + l1.place(relx=0.35,rely=0.5) + e=tkinter.Entry(f1) + e.place(relx=0.52,rely=0.5) + b1=tkinter.Button(f1,text="Make Entry",bg="#9999FF",fg="#660099",relief="groove",command=sub_create,height=2,width=10) + b1.place(relx=0.45,rely=0.56) + + +#Defining the get function: + +def get(): + def sub_get(): + def sub2(): + f2.destroy() + a=e.get() + a=a.upper() + f1.destroy() + f=open(a,'r') + f2=tkinter.Frame() + f2.pack(fill="both",expand="true") + l1=tkinter.Label(f2,text="Your Entries For The Date "+a+" Are: ",bg="#FFFFFF",fg="#680000",relief="groove",anchor="center",pady=50) + l1.pack(fill="x",expand="true") + TextArea = tkinter.Text(f2) + ScrollBar = tkinter.Scrollbar(f2) + ScrollBar.config(command=TextArea.yview) + ScrollBar.pack(side="right", fill="y") + TextArea.insert('insert',f.read()) + TextArea.config(yscrollcommand=ScrollBar.set,state="disabled") + TextArea.pack(fill="both",expand="true") + b1=tkinter.Button(f2,text="Return To MainMenu",bg="#FFFFFF",fg="blue",relief="groove",command=combine_funcs(sub2,start),height=2,width=25) + b1.pack(side="right") + frame.destroy() + f1=tkinter.Frame(bg="#CCCCFF") + f1.pack(fill="both",expand="true") + l1=tkinter.Label(f1,text="Welcome To Expense Manager",bg="#330033",fg="#FFFFFF",relief="groove",pady=30,font=16) + l1.pack(fill="x",expand="true",anchor="n") + l1=tkinter.Label(f1,text="Enter Date:",bg="#330033",fg="#FFFFFF",relief="groove",font=9,padx=50) + l1.place(relx=0.35,rely=0.5) + e=tkinter.Entry(f1) + e.place(relx=0.52,rely=0.5) + b1=tkinter.Button(f1,text="Get Entry",bg="#9999FF",fg="#660099",relief="groove",command=sub_get,height=2,width=10) + b1.place(relx=0.45,rely=0.56) + +#Defining the get entry by month function: + +def getm(): + def sub_getm(): + def sub2(): + f2.destroy() + a=e.get() + a=a.upper() + f1.destroy() + f2=tkinter.Frame() + f2.pack(fill="both",expand="true") + l1=tkinter.Label(f2,text="Your Entries For The Month Are: ",bg="#FFFFFF",fg="#680000",relief="groove",anchor="center",pady=50) + l1.pack(fill="x",expand="true") + TextArea = tkinter.Text(f2) + ScrollBar = tkinter.Scrollbar(f2) + ScrollBar.config(command=TextArea.yview) + ScrollBar.pack(side="right", fill="y") + for i in range(1,32): + try: + f=open(str(i)+' '+a,'r') + except IOError: + continue + TextArea.insert('insert',"\n"+str(i)+' '+a+": \n\n"+f.read()) + TextArea.config(yscrollcommand=ScrollBar.set,state="disabled") + TextArea.pack(fill="both",expand="true") + b1=tkinter.Button(f2,text="Return To MainMenu",bg="#FFFFFF",fg="blue",relief="groove",command=combine_funcs(sub2,start),height=2,width=25) + b1.pack(side="right") + frame.destroy() + f1=tkinter.Frame(bg="#CCCCFF") + f1.pack(fill="both",expand="true") + l1=tkinter.Label(f1,text="Welcome To Expense Manager",bg="#330033",fg="#FFFFFF",relief="groove",pady=30,font=16) + l1.pack(fill="x",expand="true",anchor="n") + l1=tkinter.Label(f1,text="Enter Month And Year:",bg="#330033",fg="#FFFFFF",relief="groove",font=9,padx=50) + l1.place(relx=0.3,rely=0.5) + e=tkinter.Entry(f1) + e.place(relx=0.52,rely=0.5) + b1=tkinter.Button(f1,text="Get Entry",bg="#9999FF",fg="#660099",relief="groove",command=sub_getm,height=2,width=10) + b1.place(relx=0.47,rely=0.56) + + + + +#Get Total Expense By Date: + + +def Sum(): + def sub_Sum(): + def sub2(): + f2.destroy() + t=e.get() + t=t.upper() + try: + f=open(t,'r') + a=f.readlines() + c=0 + for i in range(0,len(a)): + b='' + for j in range(len(a[i])-1,0,-1): + if(a[i][j]!=' ' and a[i][j]>='0' and a[i][j]<='9'): + b=b+a[i][j] + if(a[i][j]>='9'): + break + if(b!=''): + c=c+int(b[::-1]) + f1.destroy() + f2=tkinter.Frame() + f2.pack(fill="both",expand="true") + l1=tkinter.Label(f2,text="Total Expenses On "+t+" Are: \nRs "+str(c),bg="#FFFFFF",fg="#680000",relief="groove",anchor="center",pady=50,font=50) + l1.pack(fill="both",expand="true") + except IOError: + l1=tkinter.Label(f2,text="No Such Entry Is Made "+t+" Are: \nRs "+str(c),bg="#FFFFFF",fg="#680000",relief="groove",anchor="center",pady=50,font=50) + l1.pack(fill="both",expand="true") + b1=tkinter.Button(f2,text="Return To MainMenu",bg="#FFFFFF",fg="blue",relief="groove",command=combine_funcs(sub2,start),height=2,width=25) + b1.pack(side="right") + frame.destroy() + f1=tkinter.Frame(bg="#CCCCFF") + f1.pack(fill="both",expand="true") + l1=tkinter.Label(f1,text="Welcome To Expense Manager",bg="#330033",fg="#FFFFFF",relief="groove",pady=30,font=16) + l1.pack(fill="x",expand="true",anchor="n") + l1=tkinter.Label(f1,text="Enter Date:",bg="#330033",fg="#FFFFFF",relief="groove",font=9,padx=50) + l1.place(relx=0.35,rely=0.5) + e=tkinter.Entry(f1) + e.place(relx=0.52,rely=0.5) + b1=tkinter.Button(f1,text="Get Expenses",bg="#9999FF",fg="#660099",relief="groove",command=sub_Sum,height=2,width=10) + b1.place(relx=0.47,rely=0.56) + +#Defining Get total expense in a month: + +def Summ(): + def sub_Summ(): + def sub2(): + f2.destroy() + a=e.get() + a=a.upper() + c=0 + for i in range(1,32): + try: + f=open(str(i)+' '+a,'r') + t=f.readlines() + for i in range(0,len(t)): + b='' + for j in range(len(t[i])-1,0,-1): + if(t[i][j]!=' ' and t[i][j]>='0' and t[i][j]<='9'): + b=b+t[i][j] + if(b!=''): + c=c+int(b[::-1]) + except IOError: + continue + f1.destroy() + f2=tkinter.Frame() + f2.pack(fill="both",expand="true") + l1=tkinter.Label(f2,text="Total Expenses In "+a+" Are: \nRs "+str(c),bg="#FFFFFF",fg="#680000",relief="groove",anchor="center",pady=50,font=50) + l1.pack(fill="both",expand="true") + b1=tkinter.Button(f2,text="Return To MainMenu",bg="#FFFFFF",fg="blue",relief="groove",command=combine_funcs(sub2,start),height=2,width=25) + b1.pack(side="right") + frame.destroy() + f1=tkinter.Frame(bg="#CCCCFF") + f1.pack(fill="both",expand="true") + l1=tkinter.Label(f1,text="Welcome To Expense Manager",bg="#330033",fg="#FFFFFF",relief="groove",pady=30,font=16) + l1.pack(fill="x",expand="true",anchor="n") + l1=tkinter.Label(f1,text="Enter Month And Year:",bg="#330033",fg="#FFFFFF",relief="groove",font=9,padx=50) + l1.place(relx=0.3,rely=0.5) + e=tkinter.Entry(f1) + e.place(relx=0.52,rely=0.5) + b1=tkinter.Button(f1,text="Get Expenses",bg="#9999FF",fg="#660099",relief="groove",command=sub_Summ,height=2,width=10) + b1.place(relx=0.47,rely=0.56) + + + +# Defining Add to entry: + +def add(): + def sub_add(): + def sub1(): + def sub2(): + f1.destroy() + b=TextArea.get("1.0",'end') + if(b!='0'): + f.write(b) + f.write("\n") + f2.destroy() + f1=tkinter.Frame(bg="#CCCCFF") + f1.pack(fill="both",expand="true") + l1=tkinter.Label(f1,text="Congratulations! Your Entry Is Made.",bg="#330033",fg="#FFFFFF",relief="groove",pady=30,font=16) + l1.pack(fill="x",expand="true") + b1=tkinter.Button(f1,text="Return To MainMenu",bg="#FFFFFF",fg="blue",relief="groove",command=combine_funcs(sub2,start),height=2,width=25) + b1.pack(side="right") + a=e.get() + a=a.upper() + f1.destroy() + f=open(a,"a") + f2=tkinter.Frame(bg="#CCCCFF") + f2.pack(fill="both",expand="true") + l1=tkinter.Label(f2,text="Make An Entry:\n\nExample: Item1 Rs amount\nItem2 Rs amount",bg="#FFFFFF",fg="#680000",relief="groove",anchor="n",pady=50,font=25) + l1.pack(fill="x",expand="true") + TextArea = tkinter.Text(f2) + ScrollBar = tkinter.Scrollbar(f2,bg="white") + ScrollBar.config(command=TextArea.yview) + TextArea.config(yscrollcommand=ScrollBar.set) + ScrollBar.pack(side="right", fill="y") + TextArea.pack(fill="x") + b1=tkinter.Button(f2,text="Submit",bg="#FFFFFF",fg="blue",relief="groove",command=sub1) + b1.pack() + frame.destroy() + f1=tkinter.Frame(bg="#CCCCFF") + f1.pack(fill="both",expand="true") + l1=tkinter.Label(f1,text="Welcome To Expense Manager",bg="#330033",fg="#FFFFFF",relief="groove",pady=30,font=16) + l1.pack(fill="x",expand="true",anchor="n") + l1=tkinter.Label(f1,text="Enter Date:",bg="#330033",fg="#FFFFFF",relief="groove",font=9,padx=50) + l1.place(relx=0.35,rely=0.5) + e=tkinter.Entry(f1) + e.place(relx=0.52,rely=0.5) + b1=tkinter.Button(f1,text="Make Entry",bg="#9999FF",fg="#660099",relief="groove",command=sub_add,height=2,width=10) + b1.place(relx=0.45,rely=0.56) + +# Defining Delete Existing Entry: + +def delete(): + import os + delete=lambda x:os.remove(x) + def sub_delete(): + def sub2(): + f2.destroy() + a=e.get() + a=a.upper() + delete(a) + f1.destroy() + f2=tkinter.Frame(bg="#CCCCFF") + f2.pack(fill="both",expand="true") + l1=tkinter.Label(f2,text="Congratulations! Your Entry Is Deleted.",bg="#330033",fg="#FFFFFF",relief="groove",pady=30,font=16) + l1.pack(fill="x",expand="true") + b1=tkinter.Button(f2,text="Return To MainMenu",bg="#FFFFFF",fg="blue",relief="groove",command=combine_funcs(sub2,start),height=2,width=25) + b1.pack(side="right") + frame.destroy() + f1=tkinter.Frame(bg="#CCCCFF") + f1.pack(fill="both",expand="true") + l1=tkinter.Label(f1,text="Welcome To Expense Manager",bg="#330033",fg="#FFFFFF",relief="groove",pady=30,font=16) + l1.pack(fill="x",expand="true",anchor="n") + l1=tkinter.Label(f1,text="Enter Date:",bg="#330033",fg="#FFFFFF",relief="groove",font=9,padx=50) + l1.place(relx=0.35,rely=0.5) + e=tkinter.Entry(f1) + e.place(relx=0.52,rely=0.5) + b1=tkinter.Button(f1,text="Delete",bg="#9999FF",fg="#660099",relief="groove",command=sub_delete,height=2,width=10) + b1.place(relx=0.47,rely=0.56) + + + +import tkinter +root=tkinter.Tk() +root.geometry('1250x700') +def start(): + global frame + frame=tkinter.Frame(bg="#CCCCFF") + frame.pack(fill="both",expand="true",) + l1=tkinter.Label(frame,text="Welcome To Expense Manager",bg="#330033",fg="#FFFFFF",relief="groove",pady=30,font=16) + l1.pack(fill="x",expand="true",anchor="n") + l1=tkinter.Label(frame,text="Press To Create A new Entry",bg="#330066",fg="#66FFFF",relief="groove",pady=15,font=16,padx=16) + l1.place(relx=0.2,rely=0.2,anchor="n") + b1=tkinter.Button(frame,text="Create Entry Sheet",bg="#9999FF",fg="#660099",relief="solid",command=create,font=11,pady=16,cursor="dot") + b1.place(relx=0.2,rely=0.3,anchor="n") + l1=tkinter.Label(frame,text="Press To Get Entry By Date",bg="#330066",fg="#66FFFF",relief="groove",pady=15,font=16,padx=16) + l1.place(relx=0.4,rely=0.2,anchor="n") + b1=tkinter.Button(frame,text="Get Entry Sheet",bg="#9999FF",fg="#660099",relief="solid",command=get,font=11,pady=16,cursor="dot") + b1.place(relx=0.4,rely=0.3,anchor="n") + l1=tkinter.Label(frame,text="Press To Get Entry By Month",bg="#330066",fg="#66FFFF",relief="groove",pady=15,font=16,padx=7) + l1.place(relx=0.6,rely=0.2,anchor="n") + b1=tkinter.Button(frame,text="Get Monthly Entry Sheet",bg="#9999FF",fg="#660099",relief="solid",command=getm,font=11,pady=16,cursor="dot") + b1.place(relx=0.6,rely=0.3,anchor="n") + l1=tkinter.Label(frame,text="Press To Get Total Expense On Date",bg="#330066",fg="#66FFFF",relief="groove",pady=15,font=16) + l1.place(relx=0.8,rely=0.2,anchor="n") + b1=tkinter.Button(frame,text="Get Total Expense On Date",bg="#9999FF",fg="#660099",relief="solid",command=Sum,font=11,pady=16,cursor="dot") + b1.place(relx=0.8,rely=0.3,anchor="n") + l1=tkinter.Label(frame,text="Press To Get Total Expense In A Month",bg="#330066",fg="#66FFFF",relief="groove",pady=15,font=16) + l1.place(relx=0.3,rely=0.5,anchor="n") + b1=tkinter.Button(frame,text="Get Total Expense",bg="#9999FF",fg="#660099",relief="solid",command=Summ,font=11,pady=16,cursor="dot") + b1.place(relx=0.3,rely=0.6,anchor="n") + l1=tkinter.Label(frame,text="Press To Add To Existing Entry",bg="#330066",fg="#66FFFF",relief="groove",pady=15,font=16) + l1.place(relx=0.51,rely=0.5,anchor="n") + b1=tkinter.Button(frame,text="Add To Entry",bg="#9999FF",fg="#660099",relief="solid",command=add,font=11,pady=16,cursor="dot") + b1.place(relx=0.51,rely=0.6,anchor="n") + l1=tkinter.Label(frame,text="Press To Delete Existing Entry",bg="#330066",fg="#66FFFF",relief="groove",pady=15,font=16) + l1.place(relx=0.7,rely=0.5,anchor="n") + b1=tkinter.Button(frame,text="Delete Entry",bg="#9999FF",fg="#660099",relief="solid",command=delete,font=11,pady=16,cursor="dot") + b1.place(relx=0.7,rely=0.6,anchor="n") + l1=tkinter.Label(frame,text="\u00a9"+" copyright 2016\t\t\t\t\t\t\t\t\t\t\t\t"+"Developed By: Akshit Grover",bg="#330033",fg="#FFFFFF",relief="groove",pady=30,font=16) + l1.pack(fill="x",expand="true",anchor="s") + root.mainloop() +start() diff --git a/facebook-auto-post.py b/bin/facebook-auto-post.py similarity index 100% rename from facebook-auto-post.py rename to bin/facebook-auto-post.py diff --git a/facebook-auto-post.requirements.txt b/bin/facebook-auto-post.requirements.txt similarity index 100% rename from facebook-auto-post.requirements.txt rename to bin/facebook-auto-post.requirements.txt diff --git a/findlargefiles.py b/bin/findlargefiles.py similarity index 100% rename from findlargefiles.py rename to bin/findlargefiles.py diff --git a/locate-me.py b/bin/locate-me.py similarity index 100% rename from locate-me.py rename to bin/locate-me.py diff --git a/memedensity.py b/bin/memedensity.py similarity index 100% rename from memedensity.py rename to bin/memedensity.py diff --git a/mi-community-bot.py b/bin/mi-community-bot.py similarity index 100% rename from mi-community-bot.py rename to bin/mi-community-bot.py diff --git a/mi-community-bot.requirements.txt b/bin/mi-community-bot.requirements.txt similarity index 100% rename from mi-community-bot.requirements.txt rename to bin/mi-community-bot.requirements.txt diff --git a/password-strength-checker.py b/bin/password-strength-checker.py similarity index 100% rename from password-strength-checker.py rename to bin/password-strength-checker.py diff --git a/pi.py b/bin/pi.py similarity index 100% rename from pi.py rename to bin/pi.py diff --git a/plot_example.py b/bin/plot_example.py similarity index 100% rename from plot_example.py rename to bin/plot_example.py diff --git a/youtube-bot-linux.py b/bin/youtube-bot-linux.py similarity index 100% rename from youtube-bot-linux.py rename to bin/youtube-bot-linux.py diff --git a/youtube-bot-windows.py b/bin/youtube-bot-windows.py similarity index 100% rename from youtube-bot-windows.py rename to bin/youtube-bot-windows.py