user.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from conf.config import logger,OUTPUT
  2. from dataset import Table
  3. class User:
  4. def __init__(self, db=ai_yunying_db) -> None:
  5. self.db = db
  6. self.table_user:Table = self.db.get_table("user")
  7. # 解析来自这个包请求返回的信息: https://www.douyin.com/aweme/v1/web/user/profile/other/
  8. # 返回的包内容如: .\testm\user_profile_response.py
  9. def filter_from_user_profile(self, body:dict):
  10. user = body['user']
  11. save_data = {
  12. "uid": user.get('uid'),
  13. "nickname": user.get('nickname'),
  14. "avatar_medium": user.get("avatar_medium"),
  15. "sec_uid": user.get('sec_uid'),
  16. "signature": user.get('signature'),
  17. "city": user.get('city'),
  18. "ip_location": user.get('ip_location'),
  19. "province": user.get('province'),
  20. "school_name" : user.get('school_name'),
  21. "follow_status": user.get('follow_status'),
  22. "follower_count" : user.get('follower_count'),
  23. "total_favorited" : user.get('total_favorited'),
  24. "aweme_count": user.get('aweme_count'),
  25. }
  26. return save_data
  27. def save_user_profile_to_db(self, body:dict):
  28. save_data = self.filter_from_user_profile(body)
  29. id = self.table_user.insert_ignore(save_data, keys=["uid"])
  30. logger.debug(f"插入/存在则忽略用户 id {id}")
  31. if id:
  32. return self.table_user.find_one(id=id)
  33. else:
  34. return self.table_user.find_one(uid=save_data['uid'])
  35. user = User()