Venqul

Local message thingy

Aug 7th, 2024 (edited)
151
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.47 KB | None | 0 0
  1. import ast
  2. s_r = ''
  3. Log_Reg = ''
  4. print("Messages storer")
  5. new_dict = {}
  6. recipient = ''
  7. file_name = 'user_data.txt'
  8. test = 0
  9. username = ''
  10. password = ''
  11. user_index = ''
  12. msgtoprint = ''
  13. start_count = 0
  14.  
  15. def encode_user_cred(input):
  16.     list_ = list(input.items())
  17.     return str(list_)
  18.  
  19. def decode_user_cred(input):
  20.     test = 0
  21.     input = str(input)
  22.     input = (input.replace('(', '').replace('[', '').replace(')','').replace(']', '').replace("'", '').replace(' ', '')) + ','
  23.     global new_dict
  24.     global list_2
  25.     list_1 = []
  26.     list_2 = []
  27.     text = ''
  28.     text_ = ''
  29.     for i in input:
  30.         if i != ',':
  31.             text += i
  32.         else:
  33.             list_1.append(text)
  34.             text = ''
  35.             test += 1
  36.             if test % 2 == 0 :
  37.                 list_2 += [list_1]
  38.                 list_1 = []
  39.                 text = ''
  40.     new_dict = dict(list_2)
  41. def encode_char(input):
  42.     global encoded_characters
  43.     global characters
  44.     send = ''
  45.     if input != None:
  46.         for i in input:
  47.             send+= encoded_characters[characters.index(i)]
  48.     return send
  49. def decode_char(input):
  50.     global encoded_characters
  51.     global characters
  52.     send = ''
  53.     if input != None:
  54.         for i in input:
  55.             send+= characters[encoded_characters.index(i)]
  56.     return send
  57. def encrypt(input):
  58.     return encode_char(encode_user_cred(input))
  59. def decrypt(input):
  60.     return decode_user_cred(decode_char(input))
  61.  
  62. def save(input_value, filename):
  63.     global file_name
  64.     with open(filename, 'a') as f:
  65.         f.write(str(input_value) + 'N')
  66. def load_value(filename):
  67.     global file_name
  68.     with open(filename , 'r') as f:
  69.         read = f.read()
  70.     return read
  71. def create(filename):
  72.     global file_name
  73.     with open(filename , 'a') as f:
  74.         pass
  75. try:
  76.     create('user_data.txt')
  77.     create('messages.txt')
  78.     decode_user_cred(load_value(file_name))
  79.  
  80. except:
  81.     pass
  82.    
  83.  
  84. def get_index(username):
  85.     global list_2
  86.     index = 0
  87.     for i in list_2:
  88.         if username == i[0]:
  89.             return index
  90.         index += 1
  91. def get_username(index):
  92.     index = int(index)
  93.     global list_2
  94.     count = 0
  95.     for i in list_2:
  96.         if index == get_index(i[0]):
  97.             return i[0]
  98.     count += 1
  99. def save_password():
  100.     global password
  101.     password = ''
  102.     password = input("Enter a password: ")
  103.     while ',' in password or '[' in password or ']' in password or '(' in password or ')' in password or ' ' in password or password == '':
  104.         if(password == ''):
  105.             pass
  106.         else:
  107.             print("password cannot contain spaces or special characters: , [ ] ( )")
  108.             password = input("Enter a password: ")
  109.     re_enter_password = input("Repeat password: ")
  110.     if re_enter_password != password:
  111.         print("Password mismatch")
  112.         re_enter_password = input("Repeat password: ")
  113.         if re_enter_password != password:
  114.             save_password()
  115. def passwords():
  116.     global password
  117.     password = input("What is the passowrd?: ")
  118.     if password == cloud_user_credentials.get(username):
  119.         print("Login Success!")
  120.         return 1
  121.     else: return 0
  122. def start(mode):
  123.     global password
  124.     global username
  125.     global cloud_user_credentials
  126.     global test
  127.     global Log_Reg
  128.     global start_count
  129.     re_enter_password = ''
  130.     if mode == 0: Log_Reg = input("Log in or Sign up?: ")
  131.     if mode == 3 :Log_Reg = "SIGN UP"
  132.     if Log_Reg.upper() == "LOG IN":
  133.         username = input("What is your username? (CASE SENSITIVE): ")
  134.         if cloud_user_credentials.get(username) != None:
  135.             password = input("What is the passowrd?: ")
  136.             if password == cloud_user_credentials.get(username):
  137.                 print("Login Success!")
  138.             else:
  139.                 for i in range(3,0,-1):
  140.                     print("Wrong password, " + "you have " + str(i)+" tries remaining!")
  141.                     test = passwords()
  142.                     if test == 1:
  143.                         break
  144.                     if i == 1:
  145.                         start(0)
  146.         else:
  147.             print("Username does not exist!")
  148.             start_count += 1
  149.             if start_count == 2:
  150.                 dec =input('Would you like to sign up? yes/no: ')
  151.                 if dec.upper() == ('YES'):
  152.                     start(3)
  153.                 elif dec.upper() == 'NO': start_count = 0
  154.                 else:
  155.                     dec =input('Would you like to sign up? yes/no: ')
  156.             else:
  157.                 start(1)
  158.     elif Log_Reg.upper() == "SIGN UP":
  159.         username = input("Choose your username: ")
  160.         while ',' in username or '[' in username or ']' in username or '(' in username or ')' in username or ' ' in username or username == '':
  161.             if(username == ''):
  162.                     pass
  163.             else:
  164.                 print("Username cannot contain spaces or special characters: , [ ] ( )")
  165.             username = input("Choose your username: ")
  166.         if cloud_user_credentials.get(username) == None:
  167.             save_password()
  168.             local_user_credentials.update({username:password})
  169.             save(encrypt(local_user_credentials), file_name)
  170.             print("Sign Up Success!")
  171.             decode_user_cred(load_value(file_name))
  172.             cloud_user_credentials = new_dict
  173.         else:
  174.             print("Username taken")
  175.             start(1)
  176.     else: print("wrong input!"), start(0)
  177.  
  178. def send_recieve():
  179.     global user_index, cloud_user_credentials, new_dict
  180.     file_name = 'user_data.txt'
  181.     user_index = str(get_index(username))
  182.     s_r = input("Would you like to send or recieve a message?: ")
  183.     if s_r.upper() == 'SEND':
  184.         file_name = 'user_data.txt'
  185.         decrypt(load_value(file_name))
  186.         cloud_user_credentials = new_dict
  187.         sender = username
  188.         recipient = ''
  189.         while cloud_user_credentials.get(recipient) == None or recipient == sender:
  190.             recipient = input(username + ", who would you like to send to?: ")
  191.             if cloud_user_credentials.get(recipient) == None:
  192.                 print("""'""" + recipient + """'"""+ " is not an existing user")
  193.             elif sender == recipient:
  194.                 print("You cannot send to yourself!")
  195.         recipient_index = str(get_index(recipient))
  196.         message = input("What would you like to send to " +recipient + "?: ")
  197.         local_message.update({recipient_index: user_index + ':' + message})
  198.         file_name = 'messages.txt'
  199.         save(encrypt(local_message), file_name)
  200.         print(local_message)
  201.         print(username)
  202.        
  203.         print("Done!")
  204.     elif s_r.upper() == 'RECIEVE':
  205.         file_name = 'messages.txt'
  206.         decrypt(load_value(file_name))
  207.         cloud_message = new_dict
  208.         if cloud_message.get(str(user_index)) != None:
  209.             recived_message = cloud_message.get(str(user_index))
  210.             msgtoprint = ''
  211.             count = ''
  212.             decrypt(load_value('user_data.txt'))
  213.             for i in recived_message:
  214.  
  215.                 if i != ':':
  216.                     count += i
  217.                 else:
  218.                     if (count != '0'):  print(count) ,'From: ' + str(msgtoprint = get_username(count))
  219.                     else: msgtoprint = 'From: ' + str(get_username(0))
  220.                     print(msgtoprint) #prints message sender
  221.                     break
  222.                 msgtoprint = ''
  223.                 for i in (str(recived_message).replace((count + ':') , '')):
  224.                     msgtoprint += i
  225.             print(str(recived_message).replace((count + ':') , '')) # prints recieved message
  226.            
  227.         else:
  228.             print("You have no messages")
  229.     else: send_recieve()
  230.  
  231. import string
  232. i_ = 0
  233. characters = list("""~[`! #$%^&*()-_=+]'"|:<>/?.""") + list("{") + list("}")+list(",") + list('0123456789')
  234. letters = list(string.ascii_lowercase) + list(string.ascii_uppercase)
  235. characters += letters
  236. encoded_letters = list('gkynufcrbeljzavwdthxspimoq') + list('gkynufcrbeljzavwdthxspimoq'.upper())
  237. encoded_characters = list('7963841250') + list(""" )?$=:+&{"[|%-!'*>.~`_]^#<(/}""") + list(",")
  238. encoded_characters = encoded_letters + encoded_characters
  239. decrypt(load_value(file_name))
  240. local_message = {}
  241. recived_message = ''
  242. cloud_message = {}
  243. cloud_user_credentials = new_dict
  244. local_user_credentials = {}
  245. list_user_credentials = list_2
  246. user_data = []
  247.  
  248. start(0)
  249. send_recieve()
  250.  
  251.  
  252.  
  253.    
  254.    
  255.  
  256.  
  257.  
  258.            
  259.        
  260.  
  261.  
  262.  
  263.  
  264.  
Advertisement
Comments
Add Comment
Please, Sign In to add comment