Advertisement
Guest User

Untitled

a guest
Feb 19th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.18 KB | None | 0 0
  1. import csv
  2. import base64
  3. import webbrowser
  4. import os
  5. import time
  6.  
  7. global Direc
  8.  
  9. def enc(txt):
  10. binary=txt.encode()
  11. return base64.b64encode(binary).decode()
  12.  
  13. def dec(cyp):
  14. txt=base64.b64decode(cyp.encode())
  15. return txt.decode()
  16.  
  17. #######
  18. global Direc
  19. Direc =enc("C://Users//Max//Documents//Server//V4 (Clean)//")
  20. #######
  21.  
  22. def giveDirectory():
  23. return Direc
  24.  
  25. def newUser(username,password,Nick,Rank):
  26. with open(dec(Direc)+"Records.csv", "a") as file:
  27. write=csv.writer(file)
  28. write.writerow([enc(username), enc(password), enc(Nick), enc(Rank)])
  29. print("Sucessful User Creation.")
  30.  
  31. def login():
  32. nickname=""
  33. with open(dec(Direc)+"Records.csv", "r") as file:
  34. reader=csv.DictReader(file)
  35. while True:
  36. print("-------Login------- \n")
  37. username=input("Username: ")
  38. password=input("Password: ")
  39. for i in reader:
  40. if str(enc(username)) in i["Username"] and str(enc(password)) in i["Password"]:
  41. nickname=dec(i["Nickname"])
  42. rank=dec(i["Rank"])
  43. print("Logged in")
  44. return nickname + "###!!" + rank
  45. print("Incorrect Username or Password. Try again.")
  46.  
  47.  
  48. def register():
  49. with open(dec(Direc)+"Records.csv", "r") as file:
  50. reader=csv.DictReader(file)
  51. print("-------Register------- \n")
  52. x=True
  53. while x==True:
  54. count=0
  55. username=input("Username: ")
  56. if len(username)<5:
  57. print("That username is too short (5 chars min)")
  58. else:
  59. for i in reader:
  60. if str(enc(username)) in i["Username"]:
  61. count=1
  62. if count==1:
  63. print("That username is taken. Choose another.")
  64. else:
  65. print("Username accepted")
  66. x=False
  67. x=True
  68. while x==True:
  69. password=input("Password: ")
  70. if len(password)<5:
  71. print("That password is too short (5 chars min)")
  72. else:
  73. print("Password accepted")
  74. x=False
  75. with open("Records.csv", "r") as file:
  76. reader=csv.DictReader(file)
  77. x=True
  78. while x==True:
  79. count=0
  80. Nick=input("Nickname: ")
  81. if len(Nick)<5 or " " in Nick:
  82. print("That Nickname is too short (5 chars min) / you have a SPACE in your nickname.")
  83. else:
  84. for i in reader:
  85. if str(enc(Nick)) in i["Nickname"]:
  86. count=1
  87. if count==1:
  88. print("That Nickname is taken. Choose another.")
  89. else:
  90. x=False
  91. print("Nickname accepted")
  92. if username[0:5] == "Admin":
  93. Rank="Admin"
  94. print("Special One!")
  95. else:
  96. Rank="User"
  97. newUser(username, password, Nick, Rank)
  98.  
  99.  
  100. def sendMessage(Text, nickname, rank):
  101. #Just for sending messages. No commands.
  102. #From - Who is sending the message
  103. #To - WHo is it going to
  104. #Type - What type of message is it, command or message
  105. #Text - Everything they typed
  106. with open(dec(Direc)+"chat.txt","w", encoding = "utf-8") as file:
  107. #-FROM TO TYPE TEXT
  108. code="~~##@^@**"
  109. From = nickname
  110. if Text[0] == "/":
  111. try:
  112. sections=Text.split()
  113. Type = "Command"
  114.  
  115. if "/browser" in Text:
  116. #/browser (All/Name of user) (reps) (url)
  117. To=sections[1]
  118. if rank == "Admin":
  119. file.write(str(enc(From+code+To+code+Type+code+Text)))
  120.  
  121. elif "/openfile" in Text:
  122. #/openfile (All/Name of user) (direc)
  123. To=sections[1]
  124. if rank == "Admin":
  125. file.write(str(enc(From+code+To+code+Type+code+Text)))
  126.  
  127. elif "/sudo" in Text:
  128. #Allows an admin to send a message from anyones's name
  129. #sudo (name of user) (message)
  130. if rank == "Admin":
  131. To = "All"
  132. Type = "Message"
  133. From = sections[1]
  134. Text = sections[2]
  135. file.write(str(enc(From+code+To+code+Type+code+Text)))
  136.  
  137. elif "/dm" in Text:
  138. #/dm (Name of user) (message)
  139. To = sections[1]
  140. file.write(str(enc(From+code+To+code+Type+code+Text)))
  141.  
  142. elif "/freeze" in Text:
  143. #/freeze (All/Name of user) (time)
  144. To = sections[1]
  145. if rank == "Admin":
  146. file.write(str(enc(From+code+To+code+Type+code+Text)))
  147. except:
  148. pass
  149.  
  150. else:
  151. To="All"
  152. Type = "Message"
  153. file.write(str(enc(From+code+To+code+Type+code+Text)))
  154.  
  155. def displayMessage(nick,rank):
  156. history=[]
  157. while True:
  158. with open(dec(Direc)+"chat.txt","r", encoding = "utf-8") as file:
  159. for i in file:
  160. temp=i
  161. break
  162. if temp not in history:
  163. history.append(temp)
  164. parts = dec(temp).split("~~##@^@**")
  165. #plain messages
  166. if parts[1] == "All" and parts[2]=="Message":
  167. print(parts[0]+"]"+parts[3])
  168. #commands
  169. elif parts[1] == "All" or parts[1] == nick:
  170. params=parts[3].split()
  171. if "/browser" in parts[3]:
  172. try:
  173. if rank != "Admin":
  174. for i in range(int(params[2])):
  175. webbrowser.open(params[3])
  176. except:
  177. pass
  178.  
  179. elif "/openfile" in parts[3]:
  180. ###if not admin for later
  181. try:
  182. #if rank != "Admin":
  183. os.startfile(params[2])
  184. except:
  185. pass
  186. elif "/dm" in parts[3]:
  187. try:
  188. print("[DM] FROM- " + parts[0]+ ": "+ " ".join(params[2:len(params)]))
  189. except:
  190. pass
  191.  
  192. elif "/freeze" in parts[3]:
  193. print("SERVER: CHAT HAS BEEN FROZEN")
  194. time.sleep(int(params[2]))
  195. print("SERVER: CHAT IS UNFROZEN")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement