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()
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
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))
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()
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