コード例 #1
0
 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
     })
コード例 #2
0
        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)
コード例 #3
0
    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)
コード例 #4
0
    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)
コード例 #5
0
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)