Advertisement
Guest User

nnew bot

a guest
Jul 18th, 2019
298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.90 KB | None | 0 0
  1. import subprocess
  2. import pyautogui
  3. import os
  4. import time
  5. from googletrans import Translator
  6. translator = Translator()
  7. listeners = []
  8. def execBatch(arg, feedback):
  9.     if feedback == True:
  10.         p = subprocess.check_output(arg)
  11.         return str(p)[2:][:-1] # remove the first 2 and the last char from the string as they are b' and '
  12.     else:
  13.         p = subprocess.run(arg)
  14.  
  15. minecraft = [x for x in execBatch(("wmctrl", "-l"), True).split("0") if "Minecraft" in x]
  16. minecraft = " ".join("".join(minecraft).split(" ")[2:]).replace("\\n", "")
  17. print(minecraft)
  18. print("Found minecraft as: " + minecraft)
  19. chat = ""
  20. for subdir in os.listdir("/home/"):
  21.     try:
  22.         chat = "/home/" + subdir + "/.minecraft/logs/latest.log"
  23.         execBatch(("tail", "-1", chat), False)
  24.         print("Found chat as: " + chat)
  25.     except:
  26.         pass
  27. latestMessage = ""
  28.  
  29. def focus():
  30.     global minecraft
  31.     arg = ("wmctrl", "-a", minecraft)
  32.     execBatch(arg, False)
  33.  
  34. def readChat():
  35.     global latestMessage
  36.     global chat
  37.     message = execBatch(("tail", "-1", chat), True)
  38.     if message != latestMessage:
  39.         latestMessage = message
  40.         return True # new message
  41.     else:
  42.         return False # no new message
  43.  
  44. def messagePerson(message, reciever):
  45.     focus()
  46.     pyautogui.hotkey("shift", "7")
  47.     pyautogui.typewrite(str("message " + reciever + message))
  48.     pyautogui.press("enter")
  49.     print("Sent: " + message + " To: " + reciever)
  50. def writeToChat(message):
  51.     focus()
  52.     time.sleep(0.1)
  53.     pyautogui.typewrite("t")
  54.     time.sleep(0.1)
  55.     for char in message:
  56.         if char in "/!%&()=?":
  57.             if char == "/":
  58.                 pyautogui.hotkey("shift", "7")
  59.             elif char == "!":
  60.                 pyautogui.hotkey("shift", "1")
  61.             elif char == "%":
  62.                 pyautogui.hotkey("shift", "5")
  63.             elif char == "&":
  64.                 pyautogui.hotkey("shift", "6")
  65.             elif char == "(":
  66.                 pyautogui.hotkey("shift", "8")
  67.             elif char == "(":
  68.                 pyautogui.hotkey("shift", "8")
  69.             elif char == ")":
  70.                 pyautogui.hotkey("shift", "9")
  71.             elif char == "=":
  72.                 pyautogui.hotkey("shift", "0")
  73.             elif char == "?":
  74.                 pyautogui.hotkey("shift", "?")
  75.         else:
  76.             pyautogui.typewrite(char)
  77.     pyautogui.press("enter")
  78. def getMessageToSend(recv, msg, priv):
  79.     global listeners
  80.     if priv == True:
  81.         if "colors" in msg:
  82.             send = "&00&11&22&33&44&55&66&77&88&99&aa&bb&cc&dd&ee&ff&ll&mm&nn&oo&rr"
  83.         elif "ping" in msg:
  84.             send = "pong"
  85.         elif "eval" in msg:
  86.             try:
  87.                 print(msg)
  88.                 send = "That evaluates to: " + eval(msg.split("eval ")[1].replace("\n", ""))
  89.             except Exception as e:
  90.                 print(e)
  91.                 return
  92.         else:
  93.             return
  94.         messagePerson(send, recv)
  95.     else:
  96.         if "colors" in msg:
  97.             send = "&00&11&22&33&44&55&66&77&88&99&aa&bb&cc&dd&ee&ff&ll&mm&nn&oo&rr"
  98.         elif "ping" in msg:
  99.             send = "pong"
  100.         elif "nnew" in msg or "marwenn" in msg:
  101.             if "hi" in msg or "hello" in msg:
  102.                 send = "hello " + recv + "!"
  103.             elif "addListener" in msg:
  104.                 listeners.append((str(msg.split(" ")[2]), str(msg.replace("\\n", "").split(" ")[3:])))
  105.                 return
  106.             elif "delListener" in msg:
  107.                 listeners.remove(str(msg.split(" ")[2]))
  108.                 return
  109.             elif "tp" in msg:
  110.                 if msg.split("tp ")[1].replace("\\n", "") != "":
  111.                     send = "/tp " + msg.split("tp ")[1].replace("\\n", "")
  112.                 else:
  113.                     send = "/tp " + recv
  114.             elif "eval" in msg:
  115.                 try:
  116.                     print(msg)
  117.                     send = "That evaluates to: " + str(eval(str(msg.split("eval ")[1].replace("\\n", ""))))
  118.                 except Exception as e:
  119.                     print(e)
  120.                     return
  121.             else:
  122.                 for listening in listeners:
  123.                     print(listening)
  124.                     if str(listening[0]) in str(msg):
  125.                         print(listening[0])
  126.                         print(str("".join(listening[1:])).replace("']", "").replace("['", ""))
  127.                         eval(str("".join(listening[1:])).replace("']", "").replace("['", ""))
  128.                     else:
  129.                         print(msg + " " + listening[0])
  130.                 else:
  131.                     return
  132.         else:
  133.             return
  134.         writeToChat(send)
  135. def translateAndSend(sender, msg):
  136.     translation = translator.translate(msg.replace("\\n", ""), dest="en")
  137.     if translation.src != "en" and len(msg) > 7 and "nnew" not in msg:
  138.         print(translation.text)
  139.         writeToChat("English: " + translation.text)
  140.     else:
  141.         getMessageToSend(sender, msg, False)
  142. def main():
  143.     global latestMessage
  144.     while True:
  145.         if readChat():
  146.             print(latestMessage)
  147.             toSend = ""
  148.             if " messages you: " in str(latestMessage):
  149.                 sender, msg = latestMessage.replace(" messages you: "," [CHAT] ").split(" [CHAT] ")[1:3]
  150.                 getMessageToSend(sender, msg, True)
  151.             elif "[CHAT]" in latestMessage and "Builder" in latestMessage or "Student" in latestMessage or "Admin" in latestMessage or "Mod" in latestMessage:
  152.                 sender, msg = latestMessage.replace(": ", " | ").split(" | ")[2:4]
  153.                 translateAndSend(sender, msg)
  154.             elif "irc" in latestMessage:
  155.                 sender = latestMessage.replace("\\xc2\\xa77", "\\xc2\\xa7f").split("\\xc2\\xa7f")[1]
  156.                 msg = latestMessage.split("\\xc2\\xa7r")[1]
  157.                 translateAndSend(sender, msg)
  158.             else:
  159.                 pass
  160. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement