View difference between Paste ID: qZ0BFThF and 4C5JSk5E
SHOW: | | - or go back to the newest paste.
1
import time
2
import kik_unofficial.datatypes.xmpp.chatting as chatting
3
from kik_unofficial.client import KikClient
4
from kik_unofficial.callbacks import KikClientCallback
5
from kik_unofficial.datatypes.xmpp.errors import LoginError
6
from kik_unofficial.datatypes.xmpp.login import ConnectionFailedResponse, LoginResponse
7
8
global kik_authenticated, client, online_status, my_jid
9
online_status = None
10
11
def login(username, password):
12
13
    def main():
14
        YourBot()
15
16
    global client, my_jid
17
18
    class YourBot(KikClientCallback):
19
        global client, my_jid
20
21
        def __init__(self):
22
            global client
23
            client = KikClient(self, username, password)
24
25
        def on_login_ended(self, response: LoginResponse):
26
            global my_jid
27
            my_jid = str(response.kik_node) + "@talk.kik.com"
28
            print("Saved JID \"" + my_jid + "\" for refreshing!")
29
30
        def on_authenticated(self):
31
            print("Kik login successful!")
32
            global kik_authenticated
33
            kik_authenticated = True
34
35
        def on_chat_message_received(self, chat_message: chatting.IncomingChatMessage):
36
            global online_status
37
            online_status = True
38
39
        def on_connection_failed(self, response: ConnectionFailedResponse):
40
            global kik_authenticated
41
            print("Connection failed!")
42
            kik_authenticated = False
43
44
        def on_login_error(self, login_error: LoginError):
45
            global kik_authenticated
46
            print("Kik login failed!")
47
            kik_authenticated = False
48
49
    if __name__ == '__main__':
50
        main()
51
52
def refresh(username, password):
53
    global online_status, my_jid
54
    try:
55
        online_status = False
56
        client.send_chat_message(my_jid, "This is a message to myself to check if I am online.")
57
        time.sleep(2)
58
        if online_status == True:
59
          print("Bot is online!")
60
          return True
61
        elif online_status == False:
62
          kik_authenticated = None
63
          print("Reconnecting...")
64
          login(username, password)
65
          while kik_authenticated == None:
66
            pass
67
          if kik_authenticated == False:
68
            return False
69
          elif kik_authenticated == True:
70
            return True
71
    except:
72
        print("Something went wrong while refreshing!")
73
        return False
74
75
username = input("Enter a username: ")
76
password = input("Enter a password: ")
77
78
login(username, password)
79
time.sleep(300)
80
keepalive = True
81
while keepalive == True: #refreshes every 5 minutes
82
    print("Refreshing...")
83
    result = refresh(username, password)
84
    while result == False: #Retries every minute if refresh fails
85
      result = refresh(username, password)
86
      time.sleep(60)
87
    time.sleep(300)