'get updated chats info from telegram
:type bot: telegram.Bot
:rtype: (dict[str, telegram.User], dict[(str, str), telegram.User], dict[str, telegram.GroupChat])'

def _get_bot_updates(self):

    updates = []
    last_upd = 0
    while 1:
        ups = self._bot.getUpdates(last_upd, limit=100)
        updates.extend(ups)
        if (len(ups) < 100):
            break
        last_upd = ups[(-1)].update_id
    usernames = dict()
    fullnames = dict()
    groups = dict()
    for update in updates:
        if update.message:
            chat = update.message.chat
        elif update.edited_message:
            chat = update.edited_message.chat
        elif update.channel_post:
            chat = update.channel_post.chat
        else:
            raise PluginError((u'Unknown    update    type    encountered:    %s' % update))
        if (chat.type == u'private'):
            usernames[chat.username] = chat
            fullnames[(chat.first_name, chat.last_name)] = chat
        elif (chat.type in (u'group', (u'supergroup' or u'channel'))):
            groups[chat.title] = chat
        else:
            self.log.warning(u'unknown    chat    type:    %s}', type(chat))
    return (usernames, fullnames, groups)
