Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from api import LineClient
- from api.services import ttypes
- import threading
- import traceback
- import livejson
- class Bot(threading.Thread):
- client = None
- unpaused = True
- alive = True
- def __init__(self, id=None, password=None, token=None, qr=False, debug=False):
- super(Bot, self).__init__()
- if id is not None and password is not None:
- self.client = LineClient(id=id, password=password, qr=qr)
- elif token is not None:
- self.client = LineClient(token=token, qr=qr)
- else:
- self.client = LineClient()
- self.debug = debug
- self.bot_data = livejson.File("%s_data.json" % self.client.profile.mid)
- if "users" not in self.bot_data.keys():
- self.bot_data["users"] = []
- self.bot_data["users"].append(self.client.profile.mid)
- print("First time loading users, created list and added my own UID")
- def run(self):
- while self.alive is True:
- while self.unpaused is True:
- for op in self.client.long_poll():
- if self.debug is True:
- print("[%s]:\t%s" % (ttypes.OpType._VALUES_TO_NAMES[op.type], op))
- if op.type == 26: # check if message received
- try:
- sender = op.message.from_id
- message = op.message.text
- op.message.reply_message(message)
- if sender in self.bot_data["users"]:
- print("A user on the list msged me")
- else:
- print("A user not on the list msged me")
- receiver = op.message.to_id
- message = op.message.text
- op.message.reply_message(message)
- except Exception as e:
- print(e)
- def pause(self):
- if self.unpaused is True:
- self.unpaused = False
- else:
- self.unpaused = True
- print("Bot running: %s" % self.unpaused)
- def kill(self):
- self.alive = False
- print("Killed bot thread")
- def main():
- try:
- b = Bot(debug=True)
- b.start()
- except Exception as e:
- print("Failed to login: %s" % e)
- traceback.print_exc()
- while True:
- c = input("pause/kill")
- if c.lower() == "pause":
- b.pause()
- elif c.lower() == "kill":
- b.kill()
- b.join()
- exit()
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement