예제 #1
0
def update_users():
    call = slack_client.api_call("users.list")
    if call.get('ok'):
        users_ids = []
        for item in call['members']:
            try:
                user = SlackUser(
                    id=item['id'],
                    team_id=item['team_id'],
                    name=item['name'],
                    deleted=item['deleted'],
                    color=item['color'],
                    real_name=item['real_name'],
                    tz=item['tz'],
                    profile=json.dumps(item['profile']),
                    is_admin=item['is_admin'],
                    is_owner=item['is_owner'],
                    is_primary_owner=item['is_primary_owner'],
                    is_bot=item['is_bot'],
                    updated=datetime.fromtimestamp(item['updated']),
                    is_app_user=item['is_app_user'],
                )
                db.session.merge(user)
                db.session.commit()
                users_ids.append(user.id)
            except:
                continue
        return {'ok': True, 'users_ids': users_ids}
    else:
        return {'ok': False}
예제 #2
0
파일: utils.py 프로젝트: andela/waitress
    def add(cls, **kwargs):
        utype = kwargs.get("utype")
        users = SlackUser.objects.filter(user_type=utype).order_by("id")
        if kwargs.get("utype").lower() != "guest":
            user = SlackUser(
                firstname=kwargs.get("firstname"), lastname=kwargs.get("lastname")
            )
        else:
            # for some reason filter object is not subscriptable
            # last_guest = (
            #     filter(lambda x: x.firstname.startswith("Guest"), list(users))[-1]
            #     if len(users)
            #     else None
            # )
            guests = [x for x in list(users) if x.firstname.startswith("Guest")]
            last_guest = guests[-1] if len(guests) else None

            if not guests:
                username = kwargs.get("name", "Guest 1")
            else:
                last_num = int(
                    re.match("^Guest ([\d]*)".format(), last_guest.firstname).groups()[
                        0
                    ]
                )

                username = "******".format(last_num + 1)

            user = SlackUser(firstname=username)

        user.slack_id = cls.generate_unique(
            utype, [individual.slack_id for individual in users] if len(users) else []
        )
        user.user_type = utype

        try:
            user.save()
            return (
                "{} ({}) was created successfully.".format(user.firstname, utype),
                user.id,
            )

        except Exception as e:
            user_type = utype.upper()
            error_type = type(e)
            return f"{user_type} user couldn't be created. Error: {error_type}"
예제 #3
0
    def add(cls, **kwargs):
        utype = kwargs.get('utype')
        users = SlackUser.objects.filter(user_type=utype).order_by('id')
        if kwargs.get("utype") != "guest":
            user = SlackUser(
                firstname=kwargs.get("firstname"),
                lastname=kwargs.get("lastname"),
            )
        else:
            last_guest = filter(lambda x: x.firstname.startswith("Guest"),
                                list(users))[-1] if len(users) else None

            if not last_guest:
                username = kwargs.get("name", "Guest 1")
            else:
                last_num = int(
                    re.match("^Guest ([\d]*)".format(),
                             last_guest.firstname).groups()[0])

                username = '******'.format(last_num + 1)

            user = SlackUser(firstname=username)

        user.slack_id = cls.generate_unique(
            utype, [individual.slack_id
                    for individual in users] if len(users) else [])
        user.user_type = utype

        try:
            user.save()
            return "{} ({}) was created successfully.".format(
                user.firstname,
                utype,
            ), user.id

        except Exception, e:
            return "{0} user couldn't be created. Error: {1}".format(
                utype.upper(), type(e)), None