Advertisement
Guest User

Untitled

a guest
Dec 20th, 2018
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.17 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. elif reponse == "2":
  61. message = json.dumps({"action" : "4"})
  62. SendMessage(message)
  63.  
  64. repListeFichiers = ReceiveMessage()
  65. repListeFichiers = json.loads(repListeFichiers)
  66. lstMessages = repListeFichiers.get("Sujets")
  67.  
  68. if not lstMessages:
  69. print ("Il ny a aucun message dans la boite de reception.")
  70. else:
  71. countmsg = 1
  72. for msg in lstMessages:
  73. print(countmsg.__str__() + " : " + msg)
  74. countmsg += 1
  75.  
  76. msgToRead = input("Veuillez entrer le numero du message a lire : ")
  77.  
  78. IdFichier = int(msgToRead)
  79.  
  80. if(IdFichier > 0 and IdFichier < len(lstMessages)):
  81. msgId = json.dumps({"Message" : IdFichier})
  82. SendMessage(msgId)
  83.  
  84. ContenuMsg = ReceiveMessage()
  85. ContenuMsg = json.loads(ContenuMsg)
  86. strContenuMsg = ContenuMsg.get("Contenu")
  87.  
  88. print("Contenu du message " + lstMessages[IdFichier])
  89. print (strContenuMsg)
  90.  
  91. print("")
  92. input("Entrez sur une touche pour retourner au menu principal.")
  93. menuPrincipal()
  94.  
  95. # Statistiques
  96. elif reponse == "3":
  97. message = json.dumps({"action": "5"})
  98. SendMessage(message)
  99.  
  100. repListeFichiers = ReceiveMessage()
  101. repListeFichiers = json.loads(repListeFichiers)
  102.  
  103. NbMessages = repListeFichiers.get("NbMessages")
  104. lstMessages = repListeFichiers.get("Sujets")
  105. Size = repListeFichiers.get("Size")
  106.  
  107. print ("")
  108. print("Nombre de messages : " + str(NbMessages))
  109. print("Taille de la boite de reception : " + Size + " bytes")
  110. print("")
  111. print("Fichiers dans la boite de messages : ")
  112.  
  113. for msg in lstMessages:
  114. print(msg)
  115.  
  116. menuPrincipal()
  117.  
  118. elif reponse == "4":
  119. conn.close()
  120. sys.exit("A la prochaine !")
  121.  
  122. else:
  123. print ("Commande non reconnue. Veuillez entrer une commande valide")
  124. menuPrincipal()
  125.  
  126.  
  127. def Login():
  128. userName = ''
  129. while userName == '':
  130. userName = input("Nom d'utilisateur : ")
  131.  
  132. passWord = ''
  133. while passWord == '':
  134. #passWord = getpass.getpass('Mot de passe : ')
  135. passWord = input('Mot de passe : ')
  136.  
  137. msg = json.dumps({"username": userName, "password": passWord, "action": "1"})
  138. SendMessage(msg)
  139. Reponse = ReceiveMessage()
  140. print(Reponse)
  141.  
  142. if Reponse == ("Bienvenue : " + userName):
  143. menuPrincipal()
  144. else:
  145. menuConnexion()
  146.  
  147. def Inscription():
  148. userName = ''
  149. while userName == '':
  150. userName = input("Nom d'utilisateur : ")
  151.  
  152. passWord = ''
  153. while passWord == '':
  154. # passWord = getpass.getpass('Mot de passe : ')
  155. passWord = input('Mot de passe : ')
  156.  
  157. msg = json.dumps({"username": userName, "password": passWord, "action": "2"})
  158. SendMessage(msg)
  159. Reponse = ReceiveMessage()
  160. print(Reponse)
  161.  
  162. if Reponse == ("Bienvenue : " + userName):
  163. menuPrincipal()
  164. else:
  165. menuConnexion()
  166.  
  167.  
  168. def SendMessage(msg):
  169. conn.send(msg.encode())
  170.  
  171. def ReceiveMessage():
  172. Reponse = conn.recv(1024).decode()
  173. return Reponse
  174.  
  175. parser = argparse.ArgumentParser()
  176. parser.add_argument("-d", "--address", action="store", dest="address", default="localhost")
  177. parser.add_argument("-p", "--port", action="store", dest="port", type=int, default=15556)
  178. port = vars(parser.parse_args())["port"]
  179. address = vars(parser.parse_args())["address"]
  180. msgsize = 64
  181.  
  182. dest = (address, port)
  183. conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  184. conn.connect(dest)
  185.  
  186. menuConnexion()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement