import time import kik_unofficial.datatypes.xmpp.chatting as chatting from kik_unofficial.client import KikClient from kik_unofficial.callbacks import KikClientCallback from kik_unofficial.datatypes.xmpp.errors import LoginError from kik_unofficial.datatypes.xmpp.login import ConnectionFailedResponse, LoginResponse global kik_authenticated, client, online_status, my_jid online_status = None def login(username, password): def main(): YourBot() global client, my_jid class YourBot(KikClientCallback): global client, my_jid def __init__(self): global client client = KikClient(self, username, password) def on_login_ended(self, response: LoginResponse): global my_jid my_jid = str(response.kik_node) + "@talk.kik.com" print("Saved JID \"" + my_jid + "\" for refreshing!") def on_authenticated(self): print("Kik login successful!") global kik_authenticated kik_authenticated = True def on_chat_message_received(self, chat_message: chatting.IncomingChatMessage): global online_status online_status = True def on_connection_failed(self, response: ConnectionFailedResponse): global kik_authenticated print("Connection failed!") kik_authenticated = False def on_login_error(self, login_error: LoginError): global kik_authenticated print("Kik login failed!") kik_authenticated = False if __name__ == '__main__': main() def refresh(username, password): global online_status, my_jid try: online_status = False client.send_chat_message(my_jid, "This is a message to myself to check if I am online.") time.sleep(2) if online_status == True: print("Bot is online!") return True elif online_status == False: kik_authenticated = None print("Reconnecting...") login(username, password) while kik_authenticated == None: pass if kik_authenticated == False: return False elif kik_authenticated == True: return True except: print("Something went wrong while refreshing!") return False username = input("Enter a username: ") password = input("Enter a password: ") login(username, password) time.sleep(300) keepalive = True while keepalive == True: #refreshes every 5 minutes print("Refreshing...") result = refresh(username, password) while result == False: #Retries every minute if refresh fails result = refresh(username, password) time.sleep(60) time.sleep(300)