Guest User

Untitled

a guest
Dec 20th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.26 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. print("")
  118. input("Entrez sur une touche pour retourner au menu principal.")
  119. menuPrincipal()
  120.  
  121. elif reponse == "4":
  122. conn.close()
  123. sys.exit("A la prochaine !")
  124.  
  125. else:
  126. print ("Commande non reconnue. Veuillez entrer une commande valide")
  127. menuPrincipal()
  128.  
  129.  
  130. def Login():
  131. userName = ''
  132. while userName == '':
  133. userName = input("Nom d'utilisateur : ")
  134.  
  135. passWord = ''
  136. while passWord == '':
  137. #passWord = getpass.getpass('Mot de passe : ')
  138. passWord = input('Mot de passe : ')
  139.  
  140. msg = json.dumps({"username": userName, "password": passWord, "action": "1"})
  141. SendMessage(msg)
  142. Reponse = ReceiveMessage()
  143. print(Reponse)
  144.  
  145. if Reponse == ("Bienvenue : " + userName):
  146. menuPrincipal()
  147. else:
  148. menuConnexion()
  149.  
  150. def Inscription():
  151. userName = ''
  152. while userName == '':
  153. userName = input("Nom d'utilisateur : ")
  154.  
  155. passWord = ''
  156. while passWord == '':
  157. # passWord = getpass.getpass('Mot de passe : ')
  158. passWord = input('Mot de passe : ')
  159.  
  160. msg = json.dumps({"username": userName, "password": passWord, "action": "2"})
  161. SendMessage(msg)
  162. Reponse = ReceiveMessage()
  163. print(Reponse)
  164.  
  165. if Reponse == "Compte cree avec succes. : ":
  166. menuPrincipal()
  167. else:
  168. menuConnexion()
  169.  
  170.  
  171. def SendMessage(msg):
  172. conn.send(msg.encode())
  173.  
  174. def ReceiveMessage():
  175. Reponse = conn.recv(1024).decode()
  176. return Reponse
  177.  
  178. parser = argparse.ArgumentParser()
  179. parser.add_argument("-d", "--address", action="store", dest="address", default="localhost")
  180. parser.add_argument("-p", "--port", action="store", dest="port", type=int, default=15556)
  181. port = vars(parser.parse_args())["port"]
  182. address = vars(parser.parse_args())["address"]
  183.  
  184. conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  185. conn.connect((address, port))
  186.  
  187. menuConnexion()
Add Comment
Please, Sign In to add comment