def test_is_typing_message(self): message = IsTypingMessage(is_typing=True, to='aleem').to_json() self.assertEqual(message, { 'type': 'is-typing', 'to': 'aleem', 'isTyping': True })
def main(): if not self.kik.verify_signature( request.headers.get('X-Kik-Signature'), request.get_data()): return Response(status=403) messages = messages_from_json(request.json['messages']) print "--Received Messages", messages to_send = None for message in messages: self.kik.send_messages([ IsTypingMessage(to=message.from_user, chat_id=message.chat_id, is_typing=True) ]) if isinstance(message, TextMessage): split = message.body.split(" ") command = split[0] if not self.case_sensitive: command = command.lower() text_data = " ".join(split[1:]) if command == self.command_list_command: r = [ TextMessage(to=message.from_user, chat_id=message.chat_id, body=self.command_list()) ] elif self.functions.has_key(command): r = self.functions[command](text_data) else: r = [ TextMessage(to=message.from_user, chat_id=message.chat_id, body="Unknown command.") ] for m in r: if m.to == None: m.to = message.from_user if m.chat_id == None: m.chat_id = message.chat_id if m.keyboards == []: keyboard = self.make_keyboard() if len(keyboard.responses) > 0: m.keyboards.append(keyboard) self.kik.send_messages(r) return Response(status=200)
def test_is_typing_incoming(self): message = IsTypingMessage.from_json({ 'from': 'aleem', 'participants': ['aleem'], 'mention': None, 'chatId': 'c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2', 'isTyping': True, 'id': '8e7fc0ad-36aa-43dd-8c5f-e72f5f2ed7e0', 'timestamp': 1458336131, 'readReceiptRequested': False }) self.assertEqual(message.from_user, 'aleem') self.assertEqual(message.participants, ['aleem']) self.assertIsNone(message.mention) self.assertEqual(message.chat_id, 'c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2') self.assertIs(True, message.is_typing) self.assertEqual(message.id, '8e7fc0ad-36aa-43dd-8c5f-e72f5f2ed7e0') self.assertEqual(message.timestamp, 1458336131) self.assertIs(False, message.read_receipt_requested)
def test_is_typing_incoming(self): message = IsTypingMessage.from_json({ 'from': 'aleem', 'participants': ['aleem'], 'mention': None, 'chatId': 'c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2', 'isTyping': True, 'id': '8e7fc0ad-36aa-43dd-8c5f-e72f5f2ed7e0', 'timestamp': 1458336131, 'readReceiptRequested': False }) self.assertEqual(message.from_user, 'aleem') self.assertEqual(message.participants, ['aleem']) self.assertIs(None, message.mention) self.assertEqual(message.chat_id, 'c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2') self.assertIs(True, message.is_typing) self.assertEqual(message.id, '8e7fc0ad-36aa-43dd-8c5f-e72f5f2ed7e0') self.assertEqual(message.timestamp, 1458336131) self.assertIs(False, message.read_receipt_requested)
def inc(): if not kik.verify_signature(request.headers.get('X-Kik-Signature'), request.get_data()): return Response(status=403) #chatID = None chatMessage = None greetingMessage = "Welcome to LeagueStats! Type in your summoner name in order to find out your\ worst 3 champions!" userNotExist = "This user doesn't exist, please try to enter another summoner name." messages = messages_from_json(request.json['messages']) for message in messages: if isinstance(message, StartChattingMessage): kik.send_messages([ TextMessage(to=message.from_user, chat_id=message.chat_id, body=greetingMessage) ]) if isinstance(message, TextMessage): kik.send_messages([ IsTypingMessage(to=message.from_user, chat_id=message.chat_id, is_typing=True) ]) searchName = (message.body).lower() summInfoJson = requests.get( 'https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/' + searchName + '?api_key=' + riotKey) if summInfoJson.status_code == 404: chatMessage = userNotExist kik.send_messages([ TextMessage(to=message.from_user, chat_id=message.chat_id, body=chatMessage) ]) break summInfoId = str(summInfoJson.json()[searchName]['id']) summChampInfoJson = requests.get( 'https://na.api.pvp.net/api/lol/na/v1.3/stats/by-summoner/' + summInfoId + '/ranked?season=SEASON2017&api_key=' + riotKey) summChampInfo = summChampInfoJson.json() if summChampInfoJson.status_code == 404: chatMessage = userNotExist kik.send_messages([ TextMessage(to=message.from_user, chat_id=message.chat_id, body=chatMessage) ]) break champInfo = summChampInfo['champions'] champArray = [] for champion in champInfo: if champion['id'] == 0: break temp = Champion(champion['id'], champion['stats']['totalDeathsPerSession'], champion['stats']['totalChampionKills'], champion['stats']['totalAssists'], champion['stats']['totalSessionsPlayed']) champArray.append(temp) # sorted by KDA sortedChampInfo = sorted(champArray, key=lambda x: x.getKDA()) #sort out the champions -> take top 3 worst KDA. top3 = sortedChampInfo[:3] finalList = [] for champion in top3: temp = [ champion.championName, champion.getChampionImgURL(), champion.getKDA(), champion.numDeaths, champion.numKills, champion.totalSessions ] finalList.append(temp) print(finalList) champ1 = finalList[0][0] champ2 = finalList[1][0] champ3 = finalList[2][0] kik.send_messages([ TextMessage(to=message.from_user, chat_id=message.chat_id, body="Your top 3 worst champions are " + champ1 + ' , ' + champ2 + ' , ' + champ3), TextMessage( to=message.from_user, chat_id=message.chat_id, body="Send another message to search for another summoner." ) ]) return Response(status=200)