Exemplo n.º 1
0
    def update_status(self, user, provider, status_type, time):
        if not isinstance(time, dt):
            time = dt.strptime(time, '%Y-%m-%dT%H:%M:%S.%f')

        self.logger.debug("Time: %s" % time)

        try:
            status = self.session.query(Status).filter(and_(
                Status.user == user,
                Status.provider == provider)).one()

            status.status = status_type
            status.update_time = time

            self.session.merge(status)
            self.session.commit()
        except MultipleResultsFound:
            self.logger.debug("Multiple results found for %s, %s" % (user,
                provider))

            raise
        except NoResultFound:
            self.logger.debug("Status missing for %s, %s in database, adding" \
                    % (user.display_name, provider))

            status = Status(provider, status_type, time)

            status.user = user

            self.session.add(status)
            self.session.commit()
Exemplo n.º 2
0
def set_status(username, status_type):
    try:
        user = session.query(User).filter(
            User.account == username).one()
    except MultipleResultsFound:
        raise
    except NoResultFound:
        raise

    try:
        status = session.query(Status).filter(and_(
            Status.user == user,
            Status.provider == 'web-update')).one()

        status.status = status_type
        status.update_time = dt.now()

        session.merge(status)
        session.commit()
    except MultipleResultsFound:
        raise
    except NoResultFound:
        status = Status('web-update', status_type, dt.now())

        status.user = user

        session.add(status)
        session.commit()