sql_help.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. import os
  2. import sys
  3. from typing import Optional
  4. from common.mysql_db_aigc import AigcMysqlHelper
  5. sys.path.append(os.getcwd())
  6. from datetime import datetime
  7. from common.mysql_db import MysqlHelper
  8. class sqlCollect():
  9. """
  10. 视频信息写入库中
  11. """
  12. @classmethod
  13. def insert_task(cls, task_mark, video_id, mark, channel):
  14. current_time = datetime.now()
  15. formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
  16. insert_sql = f"""INSERT INTO pj_video_data (task_name, used_video_id, mark_name, data_time, channel) values ('{task_mark}' ,'{video_id}','{mark}', '{formatted_time}', '{channel}')"""
  17. MysqlHelper.update_values(
  18. sql=insert_sql
  19. )
  20. """
  21. 判断该任务id是否用过
  22. """
  23. @classmethod
  24. def is_used(cls, video_id, mark_name, channel):
  25. sql = """
  26. SELECT used_video_id
  27. FROM pj_video_data
  28. WHERE used_video_id = %s AND mark_name = %s AND channel = %s
  29. ORDER BY data_time DESC
  30. LIMIT 1
  31. """
  32. data = MysqlHelper.get_values(sql, (str(video_id), mark_name, channel))
  33. if len(data) == 0 or data == ():
  34. return True
  35. return False
  36. @classmethod
  37. def get_history_id(cls, channel, url):
  38. """
  39. 从数据库表中读取 id
  40. """
  41. sql = f"""select name_id from accounts where name = %s and platform = %s and useful = 1 limit 1"""
  42. data = MysqlHelper.get_values(sql, (url, channel))
  43. if data:
  44. return data[0][0]
  45. else:
  46. return False
  47. @classmethod
  48. def insert_history_id(cls, account_name, target, channel):
  49. insert_sql = f"""INSERT INTO accounts (name, name_id, platform, useful) values ("{account_name}", "{target}", "{channel}", 1 )"""
  50. MysqlHelper.update_values(
  51. sql=insert_sql
  52. )
  53. @classmethod
  54. def insert_machine_making_data(cls, name: str, task_mark: str, channel_id: str, url: str, v_id: str, piaoquan_id: str, new_title: str, code: str, formatted_time, old_title: str, oss_object_key: str):
  55. insert_sql = f"""INSERT INTO machine_making_data (name, task_mark, channel, user, v_id, pq_uid, title, pq_vid, data_time, old_title, oss_object_key) values ("{name}", "{task_mark}", "{channel_id}", "{url}", "{v_id}" , "{piaoquan_id}", "{new_title}", "{code}", "{formatted_time}", "{old_title}", "{oss_object_key}")"""
  56. MysqlHelper.update_values(
  57. sql=insert_sql
  58. )
  59. """
  60. 判断该任务id是否用过
  61. """
  62. @classmethod
  63. def ks_is_used(cls, photo_id):
  64. sql = """
  65. SELECT photo_id
  66. FROM ks_category_video
  67. WHERE photo_id = %s
  68. """
  69. data = MysqlHelper.get_values(sql, (str(photo_id)))
  70. if len(data) == 0 or data == ():
  71. return False
  72. return True
  73. """查询视频号user是否添加过"""
  74. @classmethod
  75. def sph_channel_user(cls, user_id):
  76. sql = """
  77. SELECT user_id
  78. FROM sph_channel_user
  79. WHERE user_id = %s
  80. """
  81. data = MysqlHelper.get_values(sql, (str(user_id)))
  82. if len(data) == 0 or data == ():
  83. return True
  84. return False
  85. """抓取视频号数据入库"""
  86. @classmethod
  87. def sph_data_info(cls, channel: str, objectId: str, video_url: str, cover: str, video_title: str, share_cnt: str, like_cnt: str, oss_video_key: str, oss_cover_key: str, nick_name: str, user_name: str, comment_count: str, fav_count: str, create_time: str):
  88. insert_sql = f"""INSERT INTO sph_data_info (channel, video_id, video_url, video_cover, video_title, share_cnt, like_cnt, oss_url, oss_cover, nick_name, user_name, comment_count, fav_count, create_time)
  89. values
  90. ("{channel}", "{objectId}", "{video_url}", "{cover}", "{video_title}", "{share_cnt}", "{like_cnt}", "{oss_video_key}", "{oss_cover_key}", "{nick_name}", "{user_name}", "{comment_count}", "{fav_count}", "{create_time}")"""
  91. res = MysqlHelper.update_values(
  92. sql=insert_sql
  93. )
  94. return res
  95. """查询是否有视频号是否插入过数据库"""
  96. @classmethod
  97. def sph_data_info_v_id(cls, video_id, channel):
  98. sql = """
  99. SELECT video_id
  100. FROM sph_data_info
  101. WHERE video_id = %s and channel = %s
  102. """
  103. data = MysqlHelper.get_values(sql, (str(video_id), channel))
  104. if data:
  105. return True
  106. return False
  107. @classmethod
  108. def sph_data_info_count(cls, user, channel):
  109. sql = """SELECT count(*) FROM sph_data_info WHERE nick_name = %s and channel = %s """
  110. data = MysqlHelper.get_values(sql, (user, channel))
  111. return data[0]
  112. """查询是否有视频号数据"""
  113. @classmethod
  114. def sph_channel_user_list(cls):
  115. sql = """
  116. SELECT user_id
  117. FROM sph_channel_user
  118. WHERE status = %s
  119. """
  120. data = MysqlHelper.get_values(sql, (0))
  121. if len(data) == 0 or data == ():
  122. return None
  123. return data
  124. @classmethod
  125. def update_sph_channel_user_status(cls, user):
  126. """
  127. 视频号账号状态改为1 代表已经抓取过
  128. """
  129. sql = f"""UPDATE sph_channel_user set status = 1 where user_id = '{user}'"""
  130. res = AigcMysqlHelper.update_values(
  131. sql=sql
  132. )
  133. return res
  134. """插入视频号信息"""
  135. @classmethod
  136. def insert_sph_channel_user(cls, channel, user_id):
  137. insert_sql = f"""INSERT INTO sph_channel_user (channel, user_id, status) values ("{channel}", "{user_id}", 0)"""
  138. res = MysqlHelper.update_values(
  139. sql=insert_sql
  140. )
  141. @classmethod
  142. def insert_ks_data(cls, user_name: str, user_sex: str, time_data, caption: str, view_count: str, like_count: str,
  143. share_count: str, duration: str, main_mv_url: str, thumbnail_url: str, user_id: str, status: str,
  144. photo_id: str, category_name: str, age: str, oss_object: Optional[str] = None,
  145. video_uid: Optional[str] = None):
  146. current_time = datetime.now()
  147. formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
  148. insert_sql = f"""INSERT INTO ks_category_video (user_name, user_sex, time_data, caption, view_count, like_count, share_count, duration, main_mv_url, thumbnail_url, user_id, status, age_proportion, video_oss_path, pq_video_id, update_time, photo_id, category_name) values ("{user_name}", "{user_sex}", "{time_data}", "{caption}", "{view_count}", "{like_count}", "{share_count}", "{duration}", "{main_mv_url}", "{thumbnail_url}", "{user_id}", "{status}", "{age}", "{oss_object}", "{video_uid}", "{formatted_time}", "{photo_id}", "{category_name}")"""
  149. res = MysqlHelper.update_values(
  150. sql=insert_sql
  151. )
  152. @classmethod
  153. def get_shp_dd_data(cls, url):
  154. """
  155. 获取视频号单点内容
  156. """
  157. sql = f"""select video_id,title,author_id,author_name,cover_url,video_url,video_duration,from_user_id,from_user_name,from_group_id,from_group_name,source from dandian_content where from_user_name = %s and has_used = 0 """
  158. data = AigcMysqlHelper.get_values(sql, (url))
  159. return data
  160. @classmethod
  161. def update_shp_dd_vid(cls, vid):
  162. """
  163. 视频号单点修改状态为1
  164. """
  165. sql = f"""UPDATE dandian_content set has_used = 1 where video_id = '{vid}'"""
  166. res = AigcMysqlHelper.update_values(
  167. sql=sql
  168. )
  169. return res
  170. @classmethod
  171. def insert_ks_star_data(cls, user_id: str, star_id: str, name, kwai_id: str, gender: str, fans_number: str,
  172. profile_id: str, star_tag_str: str, industry_tag_str: str, photo_expect_play: str, photo_expect_cpm: str, photo_interaction_rate: str,
  173. photo_complete_play_rate: str, fans_increase_num: str, fans_increase_rate: str,):
  174. insert_sql = f"""INSERT INTO ks_star_info (user_id, star_id, name, kwai_id, gender, fans_number, profile_id, star_tag_str, industry_tag_str, photo_expect_play, photo_expect_cpm, photo_interaction_rate, photo_complete_play_rate, fans_increase_num, fans_increase_rate) values ("{user_id}", "{star_id}", "{name}", "{kwai_id}", "{gender}", "{fans_number}", "{profile_id}", "{star_tag_str}", "{industry_tag_str}", "{photo_expect_play}", "{photo_expect_cpm}", "{photo_interaction_rate}", "{photo_complete_play_rate}", "{fans_increase_num}", "{fans_increase_rate}")"""
  175. res = MysqlHelper.update_values(
  176. sql=insert_sql
  177. )
  178. return res
  179. @classmethod
  180. def insert_ks_star_works_info(cls, star_id: str, profile_id: str, pplay_median_data_90: str, pplay_median_data_30: str, pphoto_cnt_data_90: str, pphoto_cnt_data_30: str, pavg_video_duration_data_90: str, pavg_video_duration_data_30: str, star_work_report_90: str, star_work_report_30: str, pavg_share_cnt_90: str, pavg_share_cnt_30: str):
  181. insert_sql = f"""INSERT INTO ks_star_works_info
  182. (star_id, profile_id, pplay_median_data_90, pplay_median_data_30, pphoto_cnt_data_90, pphoto_cnt_data_30, pavg_video_duration_data_90, pavg_video_duration_data_30, star_work_report_90, star_work_report_30, pavg_share_cnt_90, pavg_share_cnt_30)
  183. values
  184. ("{star_id}", "{profile_id}", "{pplay_median_data_90}", "{pplay_median_data_30}", "{pphoto_cnt_data_90}", "{pphoto_cnt_data_30}", "{pavg_video_duration_data_90}", "{pavg_video_duration_data_30}", "{star_work_report_90}", "{star_work_report_30}", "{pavg_share_cnt_90}", "{pavg_share_cnt_30}")"""
  185. res = MysqlHelper.update_values(
  186. sql=insert_sql
  187. )
  188. return res
  189. @classmethod
  190. def insert_ks_list_portrait_info(cls, star_id: str, profile_id: str, type: str,
  191. name: str, proportion: str):
  192. insert_sql = f"""INSERT INTO ks_list_portrait_info
  193. (star_id, profile_id, type, name, proportion)
  194. values
  195. ("{star_id}", "{profile_id}", "{type}", "{name}", "{proportion}")"""
  196. res = MysqlHelper.update_values(
  197. sql=insert_sql
  198. )
  199. return res
  200. """
  201. 获取相似溯源基础账号
  202. """
  203. @classmethod
  204. def get_machine_making_reflux(cls, channel, channel1):
  205. sql = """SELECT user FROM machine_making_reflux WHERE (channel = %s or channel = %s) and status = 0"""
  206. data = MysqlHelper.get_values(sql, (channel, channel1))
  207. if len(data) == 0 or data == ():
  208. return None
  209. return data
  210. """
  211. 修改相似溯源基础账号状态
  212. """
  213. @classmethod
  214. def update_machine_making_reflux(cls, user_id):
  215. sql = f"""UPDATE machine_making_reflux set status = 1 where user = '{user_id}'"""
  216. res = MysqlHelper.update_values(
  217. sql=sql
  218. )
  219. return res
  220. """插入符合规则的用户主页"""
  221. @classmethod
  222. def insert_user_data(cls, uid, name, account_id, channel, status):
  223. insert_sql = f"""INSERT INTO machine_making_traceability (old_account_id, name, new_account_id, channel, status) values ("{uid}", "{name}","{account_id}","{channel}", {status})"""
  224. MysqlHelper.update_values(
  225. sql=insert_sql
  226. )