Advertisement
redhorsemanwar

Untitled

Oct 14th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.66 KB | None | 0 0
  1. from api import LineClient
  2. from api.services import ttypes
  3. import threading
  4. import traceback
  5. import livejson
  6.  
  7.  
  8. class Bot(threading.Thread):
  9.     client = None
  10.     unpaused = True
  11.     alive = True
  12.  
  13.     def __init__(self, id=None, password=None, token=None, qr=False, debug=False):
  14.         super(Bot, self).__init__()
  15.         if id is not None and password is not None:
  16.             self.client = LineClient(id=id, password=password, qr=qr)
  17.         elif token is not None:
  18.             self.client = LineClient(token=token, qr=qr)
  19.         else:
  20.             self.client = LineClient()
  21.         self.debug = debug
  22.         self.bot_data = livejson.File("%s_data.json" % self.client.profile.mid)
  23.         if "users" not in self.bot_data.keys():
  24.             self.bot_data["users"] = []
  25.             self.bot_data["users"].append(self.client.profile.mid)
  26.             print("First time loading users, created list and added my own UID")
  27.  
  28.     def run(self):
  29.         while self.alive is True:
  30.             while self.unpaused is True:
  31.                 for op in self.client.long_poll():
  32.                     if self.debug is True:
  33.                         print("[%s]:\t%s" % (ttypes.OpType._VALUES_TO_NAMES[op.type], op))
  34.                     if op.type == 26:  # check if message received
  35.                         try:
  36.                             sender = op.message.from_id
  37.                             message = op.message.text
  38.                             op.message.reply_message(message)
  39.                             if sender in self.bot_data["users"]:
  40.                                 print("A user on the list msged me")
  41.                             else:
  42.                                 print("A user not on the list msged me")
  43.                             receiver = op.message.to_id
  44.                             message = op.message.text
  45.                             op.message.reply_message(message)
  46.                         except Exception as e:
  47.                             print(e)
  48.  
  49.     def pause(self):
  50.         if self.unpaused is True:
  51.             self.unpaused = False
  52.         else:
  53.             self.unpaused = True
  54.         print("Bot running: %s" % self.unpaused)
  55.  
  56.     def kill(self):
  57.         self.alive = False
  58.         print("Killed bot thread")
  59.  
  60.  
  61. def main():
  62.     try:
  63.         b = Bot(debug=True)
  64.         b.start()
  65.     except Exception as e:
  66.         print("Failed to login: %s" % e)
  67.         traceback.print_exc()
  68.     while True:
  69.         c = input("pause/kill")
  70.         if c.lower() == "pause":
  71.             b.pause()
  72.         elif c.lower() == "kill":
  73.             b.kill()
  74.             b.join()
  75.             exit()
  76.  
  77.  
  78. if __name__ == '__main__':
  79.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement