コード例 #1
0
def main(vk: "VkUser object provides access to VK API",
         limit: "int number friends per group"):
    user_friends = vk.get_friends_list()
    user_groups = vk.get_groups_list(vk.get_user_id())
    friends_number = len(user_friends)
    print("{}({}) has {} friends and participate in {} groups\n".format(vk.get_user_name(), vk.get_user_id(),
                                                                        friends_number, len(user_groups)))
    friends_groups = list()
    bar = Bar(friends_number, 'loading friends groups')
    for i, friend in enumerate(user_friends):
        groups = vk.get_groups_list(friend)
        if groups:
            friends_groups.extend(groups)
        bar.show_progress(i)
    else:
        bar.show_progress_100("loaded groups data for {} friends".format(friends_number))
    group_counts = Counter(friends_groups)  # count number of friends using each group, place results in the dict
    result = list(set(user_groups) - set(group_counts.keys()))  # unique user groups
    if limit > 0:  # add groups where friends participate
        for group, count in group_counts.items():
            if group in user_groups and count <= limit:
                result.append(group)
    write_json_file(vk.get_user_id(), [vk.get_group_info(group) for group in result])