Exemplo n.º 1
0
def delete_tweet_by_id(tweet_id):
    # トランザクション開始
    session = common_repository.create_session()
    # 削除処理
    row = session.query(TwitterTweet).filter_by(tweet_id=tweet_id).one()
    session.delete(row)
    # 変更をコミット
    session.commit()
def search_user(user_screen_name):
    # トランザクション開始
    session = common_repository.create_session()
    # user_screen_nameからuserを取得する(存在しなければNoneを返す)
    user = TwitterUser
    target_user = session.query(user).filter(
        user.user_screen_name == user_screen_name).one_or_none()
    session.close()
    return target_user
def add_user(user_id, screen_name, created_at):
    # トランザクション開始
    session = common_repository.create_session()
    # user追加
    user = TwitterUser(user_id=user_id,
                       user_screen_name=screen_name,
                       created_at=created_at)
    session.add(user)
    # 変更をコミット
    session.commit()
Exemplo n.º 4
0
def search_user_id(user_screen_name):
    # トランザクション開始
    session = common_repository.create_session()
    # user_screen_nameからuser_idを取得する
    user = twitter_user_repository.search_user(user_screen_name)
    if user is None:
        print('{}はDBに登録されていませんでした'.format(user_screen_name))
        return
    user_id = user.twitter_user_id
    session.close()
    return user_id
Exemplo n.º 5
0
def add_tweet(twitter_user_id, tweet_id, text, datetime):
    # トランザクション開始
    session = common_repository.create_session()
    # user追加
    test_user = TwitterTweet(twitter_user_id=twitter_user_id,
                             twitter_tweet_id=tweet_id,
                             tweet_text=text,
                             tweet_datetime=datetime)
    session.add(test_user)
    # 変更をコミット
    session.commit()
    session.close()
def add_users(users):
    # トランザクション開始
    session = common_repository.create_session()
    # bulkで一括user追加
    session.bulk_save_objects([
        TwitterUser(user_id=user[0],
                    user_screen_name=user[1],
                    profile_image_link=user[2]) for user in users
    ],
                              return_defaults=True)
    # 変更をコミット
    session.commit()
def add_follow(friend_id, follower_id):
    """
    friend_idのユーザーがfollower_idのユーザーをフォローしたことを追加
    :param friend_id: フォローユーザー
    :param follower_id: 被フォローユーザー
    """
    # トランザクション開始
    session = common_repository.create_session()
    # followレコード登録
    follow = TwitterFollow(friend_id=friend_id, follower_id=follower_id)
    session.add(follow)
    # 変更をコミット
    session.commit()
    print('friend_id:{}がfollower_id:{}をフォローしたことをDB登録しました'.format(
        follow.friend_id, follow.follower_id))
Exemplo n.º 8
0
def add_tweets(user_id, tweets):
    # トランザクション開始
    session = common_repository.create_session()
    # bulkで一括user追加
    print('ツイートの一括登録処理開始!!!')
    session.bulk_save_objects([
        TwitterTweet(twitter_user_id=user_id,
                     twitter_tweet_id=tweet.id,
                     tweet_text=tweet.text,
                     tweet_datetime=tweet.created_at) for tweet in tweets
    ],
                              return_defaults=True)
    # 変更をコミット
    print('ツイートの一括登録処理完了!!!')
    session.commit()
def search_follow(friend_id, follower_id):
    """
    friend_idのユーザーがfollower_idのユーザーをフォローテーブルを返す
    :param friend_id: フォローユーザー
    :param follower_id: 被フォローユーザー
    :return: フォローしているか否か True or False
    """
    # トランザクション開始
    session = common_repository.create_session()
    # 該当のfollowレコード取得。存在しなければNoneを返す
    follow = TwitterFollow
    follow_relation = session.query(follow).filter(
        and_(follow.friend_id == friend_id,
             follow.follower_id == follower_id)).one_or_none()
    session.close()
    return follow_relation
def update_follow_delete_flg(friend_id, follower_id, is_delete):
    """
    friend_idのユーザーのfollower_idのユーザーフォロー状態を変更する(delete_flgをTrue or Falseに更新)
    :param friend_id: フォローユーザー
    :param follower_id: 被フォローユーザー
    :param is_delete アンフォローフラグ
    """
    # トランザクション開始
    session = common_repository.create_session()
    # followレコード更新
    follow = TwitterFollow
    update(follow).where(follow.friend_id == friend_id
                         and follow.follower_id == follower_id).values(
                             delete_flg=is_delete, upd_datetime=datetime.now())
    print('friend_id:{}がfollower_id:{}をフォローしたことを削除(delete_flgをTrue)に更新しました'.
          format(follow.friend_id, follow.follower_id))
    # 変更をコミット
    session.commit()
Exemplo n.º 11
0
def search_oldest_tweet(user_screen_name):
    # トランザクション開始
    session = common_repository.create_session()
    # user_screen_nameからuser_idを取得する
    user = twitter_user_repository.search_user(user_screen_name)
    if user is None:
        print('{}はDBに登録されていませんでした'.format(user_screen_name))
        return
    user_id = user.twitter_user_id
    # 最古のツイートを取得する
    tweet = TwitterTweet
    oldest_tweet = session.query(tweet).filter(
        tweet.twitter_user_id == user_id).order_by(
            tweet.twitter_tweet_id).first()
    if oldest_tweet is None:
        session.close()
        return None
    else:
        oldest_tweet_id = oldest_tweet.twitter_tweet_id
        session.close()
        print('------------------- oldest_tweet_id:{}'.format(oldest_tweet_id))
        return oldest_tweet_id