get_vx_message.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. # -*- coding: utf-8 -*-
  2. # @Time: 2024/03/27
  3. import datetime
  4. import os
  5. import sys
  6. import time
  7. from datetime import datetime
  8. sys.path.append(os.getcwd())
  9. from common import MysqlHelper, Feishu, Common
  10. from single_video.gongzhonghao.gongzhonghao_video import gongzhonghaoVdieo
  11. from single_video.shipinhao.shipinhao_author import shipinhaoVdieo
  12. from single_video.douyin.douyin_video import douyinVideo
  13. from single_video.kuaishou.kuaishou_video import kuaishouVideo
  14. from single_video.xigua.xigua_video import xiguaVideo
  15. class VxMessage():
  16. @classmethod
  17. def read_id(cls):
  18. with open('/root/single_video_crawler/id', 'r') as file:
  19. # 读取文件的全部内容
  20. content = file.read()
  21. return int(content)
  22. @classmethod
  23. def get_vx_message(cls, id):
  24. url_list = f"""select msg_type, content, nick_name, pq_uid, id, create_time from work_wx_kf_msg_info WHERE is_delete = 0 and id = {id} """
  25. url_list = MysqlHelper.get_values(url_list)
  26. return url_list
  27. @classmethod
  28. def vx_data(cls):
  29. id = cls.read_id()
  30. vx_list = cls.get_vx_message(id)
  31. if vx_list:
  32. print("开始执行")
  33. Common.logger().info(f"查询到数据{vx_list}")
  34. for vx_message in vx_list:
  35. msg_type = vx_message[0]
  36. content = vx_message[1]
  37. channle = ''
  38. data = ''
  39. if msg_type == 'text':
  40. if "https://v.douyin.com" in content:
  41. channle = "douyin"
  42. data = douyinVideo.get_videoList(vx_message, channle)
  43. elif "https://v.ixigua.com" in content:
  44. channle = "xigua"
  45. data = xiguaVideo.get_videoList(vx_message, channle)
  46. elif "https://v.kuaishou.com" in content:
  47. channle = "kuaishou"
  48. data = kuaishouVideo.get_videoList(vx_message, channle)
  49. else:
  50. data = "该消息类型不做处理"
  51. elif msg_type == 'link':
  52. if "mp.weixin.qq.com/s" in content:
  53. channle = "gongzhonghao"
  54. data = gongzhonghaoVdieo.get_videoList(vx_message, channle)
  55. else:
  56. data = "该消息类型不做处理"
  57. elif msg_type == 'channels':
  58. if "nickname" in content:
  59. channle = "shipinhao"
  60. data = shipinhaoVdieo.get_videoList(vx_message, channle)
  61. else:
  62. data = "该消息类型不做处理"
  63. with open('/root/single_video_crawler/id', 'w') as file:
  64. file.write(str(id+1))
  65. # 获取当前时间
  66. current_time = datetime.now()
  67. formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
  68. if data == ' ':
  69. data = '无'
  70. values = [[
  71. vx_message[3],
  72. vx_message[2],
  73. channle,
  74. vx_message[4],
  75. str(vx_message),
  76. str(vx_message[5]),
  77. formatted_time,
  78. data
  79. ]]
  80. Feishu.insert_columns('video', "edd0a8", "ROWS", 1, 2)
  81. time.sleep(0.5)
  82. Feishu.update_values('video', "edd0a8", "A2:Z2", values)
  83. else:
  84. print("数据库没有查询到数据")
  85. Common.logger().info("数据库没有查询到数据")
  86. if __name__ == '__main__':
  87. url_list = VxMessage.vx_data()