Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ast
- s_r = ''
- Log_Reg = ''
- print("Messages storer")
- new_dict = {}
- recipient = ''
- file_name = 'user_data.txt'
- test = 0
- username = ''
- password = ''
- user_index = ''
- msgtoprint = ''
- start_count = 0
- def encode_user_cred(input):
- list_ = list(input.items())
- return str(list_)
- def decode_user_cred(input):
- test = 0
- input = str(input)
- input = (input.replace('(', '').replace('[', '').replace(')','').replace(']', '').replace("'", '').replace(' ', '')) + ','
- global new_dict
- global list_2
- list_1 = []
- list_2 = []
- text = ''
- text_ = ''
- for i in input:
- if i != ',':
- text += i
- else:
- list_1.append(text)
- text = ''
- test += 1
- if test % 2 == 0 :
- list_2 += [list_1]
- list_1 = []
- text = ''
- new_dict = dict(list_2)
- def encode_char(input):
- global encoded_characters
- global characters
- send = ''
- if input != None:
- for i in input:
- send+= encoded_characters[characters.index(i)]
- return send
- def decode_char(input):
- global encoded_characters
- global characters
- send = ''
- if input != None:
- for i in input:
- send+= characters[encoded_characters.index(i)]
- return send
- def encrypt(input):
- return encode_char(encode_user_cred(input))
- def decrypt(input):
- return decode_user_cred(decode_char(input))
- def save(input_value, filename):
- global file_name
- with open(filename, 'a') as f:
- f.write(str(input_value) + 'N')
- def load_value(filename):
- global file_name
- with open(filename , 'r') as f:
- read = f.read()
- return read
- def create(filename):
- global file_name
- with open(filename , 'a') as f:
- pass
- try:
- create('user_data.txt')
- create('messages.txt')
- decode_user_cred(load_value(file_name))
- except:
- pass
- def get_index(username):
- global list_2
- index = 0
- for i in list_2:
- if username == i[0]:
- return index
- index += 1
- def get_username(index):
- index = int(index)
- global list_2
- count = 0
- for i in list_2:
- if index == get_index(i[0]):
- return i[0]
- count += 1
- def save_password():
- global password
- password = ''
- password = input("Enter a password: ")
- while ',' in password or '[' in password or ']' in password or '(' in password or ')' in password or ' ' in password or password == '':
- if(password == ''):
- pass
- else:
- print("password cannot contain spaces or special characters: , [ ] ( )")
- password = input("Enter a password: ")
- re_enter_password = input("Repeat password: ")
- if re_enter_password != password:
- print("Password mismatch")
- re_enter_password = input("Repeat password: ")
- if re_enter_password != password:
- save_password()
- def passwords():
- global password
- password = input("What is the passowrd?: ")
- if password == cloud_user_credentials.get(username):
- print("Login Success!")
- return 1
- else: return 0
- def start(mode):
- global password
- global username
- global cloud_user_credentials
- global test
- global Log_Reg
- global start_count
- re_enter_password = ''
- if mode == 0: Log_Reg = input("Log in or Sign up?: ")
- if mode == 3 :Log_Reg = "SIGN UP"
- if Log_Reg.upper() == "LOG IN":
- username = input("What is your username? (CASE SENSITIVE): ")
- if cloud_user_credentials.get(username) != None:
- password = input("What is the passowrd?: ")
- if password == cloud_user_credentials.get(username):
- print("Login Success!")
- else:
- for i in range(3,0,-1):
- print("Wrong password, " + "you have " + str(i)+" tries remaining!")
- test = passwords()
- if test == 1:
- break
- if i == 1:
- start(0)
- else:
- print("Username does not exist!")
- start_count += 1
- if start_count == 2:
- dec =input('Would you like to sign up? yes/no: ')
- if dec.upper() == ('YES'):
- start(3)
- elif dec.upper() == 'NO': start_count = 0
- else:
- dec =input('Would you like to sign up? yes/no: ')
- else:
- start(1)
- elif Log_Reg.upper() == "SIGN UP":
- username = input("Choose your username: ")
- while ',' in username or '[' in username or ']' in username or '(' in username or ')' in username or ' ' in username or username == '':
- if(username == ''):
- pass
- else:
- print("Username cannot contain spaces or special characters: , [ ] ( )")
- username = input("Choose your username: ")
- if cloud_user_credentials.get(username) == None:
- save_password()
- local_user_credentials.update({username:password})
- save(encrypt(local_user_credentials), file_name)
- print("Sign Up Success!")
- decode_user_cred(load_value(file_name))
- cloud_user_credentials = new_dict
- else:
- print("Username taken")
- start(1)
- else: print("wrong input!"), start(0)
- def send_recieve():
- global user_index, cloud_user_credentials, new_dict
- file_name = 'user_data.txt'
- user_index = str(get_index(username))
- s_r = input("Would you like to send or recieve a message?: ")
- if s_r.upper() == 'SEND':
- file_name = 'user_data.txt'
- decrypt(load_value(file_name))
- cloud_user_credentials = new_dict
- sender = username
- recipient = ''
- while cloud_user_credentials.get(recipient) == None or recipient == sender:
- recipient = input(username + ", who would you like to send to?: ")
- if cloud_user_credentials.get(recipient) == None:
- print("""'""" + recipient + """'"""+ " is not an existing user")
- elif sender == recipient:
- print("You cannot send to yourself!")
- recipient_index = str(get_index(recipient))
- message = input("What would you like to send to " +recipient + "?: ")
- local_message.update({recipient_index: user_index + ':' + message})
- file_name = 'messages.txt'
- save(encrypt(local_message), file_name)
- print(local_message)
- print(username)
- print("Done!")
- elif s_r.upper() == 'RECIEVE':
- file_name = 'messages.txt'
- decrypt(load_value(file_name))
- cloud_message = new_dict
- if cloud_message.get(str(user_index)) != None:
- recived_message = cloud_message.get(str(user_index))
- msgtoprint = ''
- count = ''
- decrypt(load_value('user_data.txt'))
- for i in recived_message:
- if i != ':':
- count += i
- else:
- if (count != '0'): print(count) ,'From: ' + str(msgtoprint = get_username(count))
- else: msgtoprint = 'From: ' + str(get_username(0))
- print(msgtoprint) #prints message sender
- break
- msgtoprint = ''
- for i in (str(recived_message).replace((count + ':') , '')):
- msgtoprint += i
- print(str(recived_message).replace((count + ':') , '')) # prints recieved message
- else:
- print("You have no messages")
- else: send_recieve()
- import string
- i_ = 0
- characters = list("""~[`! #$%^&*()-_=+]'"|:<>/?.""") + list("{") + list("}")+list(",") + list('0123456789')
- letters = list(string.ascii_lowercase) + list(string.ascii_uppercase)
- characters += letters
- encoded_letters = list('gkynufcrbeljzavwdthxspimoq') + list('gkynufcrbeljzavwdthxspimoq'.upper())
- encoded_characters = list('7963841250') + list(""" )?$=:+&{"[|%-!'*>.~`_]^#<(/}""") + list(",")
- encoded_characters = encoded_letters + encoded_characters
- decrypt(load_value(file_name))
- local_message = {}
- recived_message = ''
- cloud_message = {}
- cloud_user_credentials = new_dict
- local_user_credentials = {}
- list_user_credentials = list_2
- user_data = []
- start(0)
- send_recieve()
Advertisement