def __init__(self, parent=None): super(RegisterWidget, self).__init__(parent) self.kik_client = KikClient() self.interceptor = RequestInterceptor(self) self.error_label = QLabel() self.webview = QWebEngineView() self.login_button = QPushButton() self.birthday_edit = QDateEdit() self.password_edit = QLineEdit() self.email_edit = QLineEdit() self.username_edit = QLineEdit() self.last_name_edit = QLineEdit() self.first_name_edit = QLineEdit() self.init_ui()
def execute(cmd=sys.argv[1:]): parser = ArgumentParser(description="Unofficial Kik api") parser.add_argument('-u', '--username', help="Kik username", required=True) parser.add_argument('-p', '--password', help="Kik password", required=True) args = parser.parse_args(cmd) kik = KikClient(args.username, args.password) CmdLine(kik).run()
def login(self, username, password): print("Attempt login") try: kik_client = KikClient(username, password, debug_level=DebugLevel.VERBOSE) except Exception as e: print("Login failed") traceback.print_exc() self.login_widget.login_failed() return self.kik_thread = KikThread(kik_client) self.init_kik_thread() self.kik_thread.start() self.central_widget.setCurrentWidget(self.main_widget) self.config['username'] = username self.config['password'] = password self.save()
def main(): username, password = "******", "your_kik_password" kik_client = KikClient(username, password) print("[+] Listening for incoming events.") # main events loop while True: info = kik_client.get_next_event() if "type" not in info: continue if info["type"] == "message_read": print("[+] Human has read the message (user " + info["from"] + ", message id: " + info["message_id"] + ")") elif info["type"] == "is_typing": if info["is_typing"]: print("[+] Human is typing (user " + info["from"] + ")") else: print("[+] Human is not typing (user " + info["from"] + ")") elif info["type"] == "message": partner = info["from"] print("[+] Human says: \"" + info["body"] + "\" (user " + partner + ")") kik_client.send_read_confirmation(partner, info["message_id"]) replay = "You said '" + info["body"] + "'!" kik_client.send_is_typing(partner, "true") time.sleep(0.2 * len(replay)) kik_client.send_is_typing(partner, "false") kik_client.send_message(partner, replay) elif info["type"] == "end": print("[!] Server ended communication.") break print("[+] Done!") kik_client.close()
def main(): username, password = "******", "password" kik_client = KikClient(username, password) chat_partners = kik_client.get_chat_partners() print("[+] Chats\n{}".format("\n".join( [peer['jid'] for peer in chat_partners.values()]))) # let's talk username = "******" kik_client.send_is_typing(username, "true") time.sleep(0.5) kik_client.send_is_typing(username, "false") kik_client.send_message(username, "hi from bot!") print("[+] Done!") kik_client.close()
class RegisterWidget(QWidget): login_request = pyqtSignal(str, str) def __init__(self, parent=None): super(RegisterWidget, self).__init__(parent) self.kik_client = KikClient() self.interceptor = RequestInterceptor(self) self.error_label = QLabel() self.webview = QWebEngineView() self.login_button = QPushButton() self.birthday_edit = QDateEdit() self.password_edit = QLineEdit() self.email_edit = QLineEdit() self.username_edit = QLineEdit() self.last_name_edit = QLineEdit() self.first_name_edit = QLineEdit() self.init_ui() def init_ui(self): main_box = QVBoxLayout() main_box.setSpacing(20) main_box.setAlignment(Qt.AlignCenter) label = QLabel("Sign up") main_box.addWidget(label, alignment=Qt.AlignCenter) self.first_name_edit.setPlaceholderText("First name") main_box.addWidget(self.first_name_edit, alignment=Qt.AlignCenter) self.last_name_edit.setPlaceholderText("Last name") main_box.addWidget(self.last_name_edit, alignment=Qt.AlignCenter) self.username_edit.setPlaceholderText("Username") self.username_edit.setValidator(UserNameValidator(self.kik_client)) main_box.addWidget(self.username_edit, alignment=Qt.AlignCenter) self.email_edit.setPlaceholderText("Email") main_box.addWidget(self.email_edit, alignment=Qt.AlignCenter) self.password_edit.setEchoMode(QLineEdit.Password) self.password_edit.setPlaceholderText("Password") main_box.addWidget(self.password_edit, alignment=Qt.AlignCenter) self.birthday_edit.setCalendarPopup(True) self.birthday_edit.setDisplayFormat("yyyy-MM-dd") birthday_layout = QHBoxLayout() birthday_label = QLabel("Birthday:") birthday_layout.addWidget(birthday_label, alignment=Qt.AlignCenter) birthday_layout.addWidget(self.birthday_edit, alignment=Qt.AlignCenter) birthday_layout.setAlignment(Qt.AlignCenter) main_box.addLayout(birthday_layout) self.login_button.setText("Sign up") self.login_button.clicked.connect(self.sign_up) main_box.addWidget(self.login_button, alignment=Qt.AlignCenter) self.error_label.setObjectName("errorLabel") main_box.addWidget(self.error_label, alignment=Qt.AlignCenter) main_box.addWidget(self.webview, alignment=Qt.AlignCenter) self.setLayout(main_box) self.show() def sign_up(self): self.error_label.setText("") first_name = self.first_name_edit.text() last_name = self.last_name_edit.text() username = self.username_edit.text() email = self.email_edit.text() password = self.password_edit.text() birthday = self.birthday_edit.date() try: self.kik_client.sign_up(email, username, password, first_name, last_name, birthday.toString("yyyy-MM-dd")) except KikCaptchaException as e: url = e.captcha_url + "&callback_url=https://kik.com/captcha-url" self.webview.load(QUrl(url)) self.webview.page().profile().setHttpUserAgent( "Mozilla/5.0 (Linux; Android 7.1.2; Nexus 7 Build/NJH47F; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/60.0.3112.78 Safari/537.36" ) self.webview.page().profile().setRequestInterceptor( self.interceptor) except Exception as e: self.error_label.setText(str(e)) return False def on_captcha_response(self, captcha_result): print("Received response: {}".format(captcha_result)) self.sign_up_captcha(captcha_result) def sign_up_captcha(self, captcha_result): self.error_label.setText("") first_name = self.first_name_edit.text() last_name = self.last_name_edit.text() username = self.username_edit.text() email = self.email_edit.text() password = self.password_edit.text() birthday = self.birthday_edit.date() try: node = self.kik_client.sign_up(email, username, password, first_name, last_name, birthday.toString("yyyy-MM-dd"), captcha_result) print(node) self.login_request.emit(username, password) except: self.error_label.setText("Account creation failed")