Guest User

Untitled

a guest
Dec 20th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.20 KB | None | 0 0
  1. import socket
  2. import argparse
  3. import json
  4. import sys
  5. import getpass
  6.  
  7. def menuConnexion():
  8. print("""
  9. Menu de connexion
  10. 1. Se connecter
  11. 2. Creer un compte
  12. """)
  13.  
  14. reponse = input("Que voulez-vous faire ? ")
  15.  
  16. if reponse == "1":
  17. Login()
  18. #actionMenuConnexion(reponse)
  19.  
  20. elif reponse == "2":
  21. Inscription()
  22. #actionMenuConnexion(reponse)
  23.  
  24. else:
  25. print("Commande non reconnue. Veuillez entrer une commande valide.")
  26. menuConnexion()
  27.  
  28. def menuPrincipal():
  29. print("""
  30. Menu principal
  31. 1. Envoi de courriels
  32. 2. Consultation de courriels
  33. 3. Statistiques
  34. 4. Quitter
  35. """)
  36.  
  37. reponse = input("Que voulez-vous faire ? ")
  38. actionMenuPrincipal(reponse)
  39.  
  40. def menuBoiteReception():
  41. print("Boite de reception : \n")
  42.  
  43. def actionMenuPrincipal(reponse):
  44.  
  45. # Envoi de courriel
  46. if reponse == "1":
  47. adresseDestination = input("adresse de destination : ")
  48. sujet = input("sujet du message : ")
  49. corpsMessage = input('corps du message : ')
  50.  
  51. message = json.dumps({"adresseDestination": adresseDestination, "sujet": sujet, "corpsMessage": corpsMessage, "action" : "3" })
  52. SendMessage(message)
  53. reponseServeur = ReceiveMessage()
  54. print (reponseServeur)
  55.  
  56. print("")
  57. input("Entrez sur une touche pour retourner au menu principal.")
  58. menuPrincipal()
  59.  
  60. #Lecture courriels
  61. elif reponse == "2":
  62. message = json.dumps({"action" : "4"})
  63. SendMessage(message)
  64.  
  65. repListeFichiers = ReceiveMessage()
  66. repListeFichiers = json.loads(repListeFichiers)
  67. lstMessages = repListeFichiers.get("Sujets")
  68.  
  69. if not lstMessages:
  70. print ("Il ny a aucun message dans la boite de reception.")
  71. else:
  72. countmsg = 1
  73. for msg in lstMessages:
  74. print(countmsg.__str__() + " : " + msg)
  75. countmsg += 1
  76.  
  77. msgToRead = input("Veuillez entrer le numero du message a lire : ")
  78.  
  79. IdFichier = int(msgToRead)
  80.  
  81. if(IdFichier > 0 and IdFichier <= len(lstMessages)):
  82. msgId = json.dumps({"Message" : IdFichier})
  83. SendMessage(msgId)
  84.  
  85. ContenuMsg = ReceiveMessage()
  86. ContenuMsg = json.loads(ContenuMsg)
  87. strContenuMsg = ContenuMsg.get("Contenu")
  88.  
  89. print("Contenu du message " + lstMessages[IdFichier - 1])
  90. print (strContenuMsg)
  91.  
  92. print("")
  93. input("Entrez sur une touche pour retourner au menu principal.")
  94. menuPrincipal()
  95.  
  96. # Statistiques
  97. elif reponse == "3":
  98. message = json.dumps({"action": "5"})
  99. SendMessage(message)
  100.  
  101. repListeFichiers = ReceiveMessage()
  102. repListeFichiers = json.loads(repListeFichiers)
  103.  
  104. NbMessages = repListeFichiers.get("NbMessages")
  105. lstMessages = repListeFichiers.get("Sujets")
  106. Size = repListeFichiers.get("Size")
  107.  
  108. print ("")
  109. print("Nombre de messages : " + str(NbMessages))
  110. print("Taille de la boite de reception : " + Size + " bytes")
  111. print("")
  112. print("Fichiers dans la boite de messages : ")
  113.  
  114. for msg in lstMessages:
  115. print(msg)
  116.  
  117. menuPrincipal()
  118.  
  119. elif reponse == "4":
  120. conn.close()
  121. sys.exit("A la prochaine !")
  122.  
  123. else:
  124. print ("Commande non reconnue. Veuillez entrer une commande valide")
  125. menuPrincipal()
  126.  
  127.  
  128. def Login():
  129. userName = ''
  130. while userName == '':
  131. userName = input("Nom d'utilisateur : ")
  132.  
  133. passWord = ''
  134. while passWord == '':
  135. #passWord = getpass.getpass('Mot de passe : ')
  136. passWord = input('Mot de passe : ')
  137.  
  138. msg = json.dumps({"username": userName, "password": passWord, "action": "1"})
  139. SendMessage(msg)
  140. Reponse = ReceiveMessage()
  141. print(Reponse)
  142.  
  143. if Reponse == ("Bienvenue : " + userName):
  144. menuPrincipal()
  145. else:
  146. menuConnexion()
  147.  
  148. def Inscription():
  149. userName = ''
  150. while userName == '':
  151. userName = input("Nom d'utilisateur : ")
  152.  
  153. passWord = ''
  154. while passWord == '':
  155. # passWord = getpass.getpass('Mot de passe : ')
  156. passWord = input('Mot de passe : ')
  157.  
  158. msg = json.dumps({"username": userName, "password": passWord, "action": "2"})
  159. SendMessage(msg)
  160. Reponse = ReceiveMessage()
  161. print(Reponse)
  162.  
  163. if Reponse == ("Bienvenue : " + userName):
  164. menuPrincipal()
  165. else:
  166. menuConnexion()
  167.  
  168.  
  169. def SendMessage(msg):
  170. conn.send(msg.encode())
  171.  
  172. def ReceiveMessage():
  173. Reponse = conn.recv(1024).decode()
  174. return Reponse
  175.  
  176. parser = argparse.ArgumentParser()
  177. parser.add_argument("-d", "--address", action="store", dest="address", default="localhost")
  178. parser.add_argument("-p", "--port", action="store", dest="port", type=int, default=15556)
  179. port = vars(parser.parse_args())["port"]
  180. address = vars(parser.parse_args())["address"]
  181. msgsize = 64
  182.  
  183. dest = (address, port)
  184. conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  185. conn.connect(dest)
  186.  
  187. menuConnexion()
Add Comment
Please, Sign In to add comment