rpa_atom_handler.py 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. import json
  2. from cubic.cubic_simple_action import cubic_simple_action
  3. from dongchedi.simple_comment import simple_comment
  4. from douyin.douyin_officail_account_interact import douyin_random_watch_video
  5. from kuaishou.gifmaker_random_watch_video import gifmaker_random_watch_video
  6. from tools import loggerKit
  7. from strategy.rpa_enum import media_type, task_sub_type, task_key, task_type
  8. from douyin.douyin_random_search import douyin_random_search
  9. from douyin.simple_browser_video import douyin_spider as douyin_sign_browser_video
  10. from douyin.douyin_sign import douyin_spider as douyin_sign
  11. from douyin.douyin_watch_advise import douyin_spider as douyin_watch_advise
  12. from douyin.douyin_boxes_advise import douyin_spider as douyin_boxes_advise
  13. from douyin.douyin_user_operate import douyin_spider as douyin_user_demo
  14. from douyin.douyin_train_home_comment import douyin_spider as douyin_train_home_comment
  15. from douyin.douyin_interaction_urgent import douyin_spider as douyin_interact_urgent
  16. from douyin.douyin_live_comment import douyin_spider as douyin_live_comment
  17. from douyin.douyin_train_home_page import douyin_spider as douyin_train_home_page
  18. from douyin.douyin_comments_operate import douyin_spider as douyin_comments_operate
  19. from dongchedi.random_browse import random_browse as dongchedi_content_interaction
  20. from dongchedi.dongchedi_sign import dongchedi_sign as dongchedi_sign
  21. from toutiao.search_double import search_task as search_task
  22. from toutiao.search_random import search_random_task as search_random_task
  23. from toutiao.watch_novel import watch_novel_task as watch_novel_task
  24. from toutiao.meal_allowance import meal_allowance_task as meal_allowance_task
  25. from xiaohongshu.xingin_random_watch_video import xingin_random_watch_video
  26. from yiche.yiche_direction_action import yiche_direction_action
  27. # 定义策略过程
  28. class rpa_processor_strategy:
  29. def process_rpa(self, task):
  30. pass
  31. # 抖音看视频领金币操作
  32. class douyin_browser_operation(rpa_processor_strategy):
  33. def process_rpa(self, task):
  34. loggerKit.info("taskId:{0},设备号:{1},开始进行抖音demo脚本操作,请求信息:{2}", task.task_id, task.device_id,
  35. json.dumps(task.to_dict(), ensure_ascii=False))
  36. return douyin_sign_browser_video(task.device_id, task.task_id, task.resource_name, task.media_channel,
  37. task.request_data)
  38. # 抖音签到操作
  39. class douyin_sign_operation(rpa_processor_strategy):
  40. def process_rpa(self, task):
  41. loggerKit.info("taskId:{0},设备号:{1},开始进行抖音demo脚本操作,请求信息:{2}", task.task_id, task.device_id,
  42. json.dumps(task.to_dict(), ensure_ascii=False))
  43. return douyin_sign(task.device_id, task.execute_robot_name, task.task_id, task.resource_name,
  44. task.media_channel, task.request_data)
  45. # 抖音看广告操作
  46. class douyin_watch_advise_operation(rpa_processor_strategy):
  47. def process_rpa(self, task):
  48. loggerKit.info("taskId:{0},设备号:{1},开始进行抖音demo脚本操作,请求信息:{2}", task.task_id, task.device_id,
  49. json.dumps(task.to_dict(), ensure_ascii=False))
  50. return douyin_watch_advise(task.device_id, task.task_id, task.resource_name, task.media_channel,
  51. task.request_data)
  52. # 抖音开宝箱+看广告操作
  53. class douyin_boxes_advise_operation(rpa_processor_strategy):
  54. def process_rpa(self, task):
  55. loggerKit.info("taskId:{0},设备号:{1},开始进行抖音demo脚本操作,请求信息:{2}", task.task_id, task.device_id,
  56. json.dumps(task.to_dict(), ensure_ascii=False))
  57. return douyin_boxes_advise(task.device_id, task.execute_robot_name, task.task_id,
  58. task.resource_name, task.media_channel, task.request_data)
  59. # 懂车帝随机养号
  60. class dongchedi_content_interaction_operation(rpa_processor_strategy):
  61. def process_rpa(self, task):
  62. loggerKit.info("taskId:{0},设备号:{1},开始进行懂车帝养号脚本操作,请求信息:{2}", task.task_id, task.device_id,
  63. json.dumps(task.to_dict(), ensure_ascii=False))
  64. return dongchedi_content_interaction(task.task_id, task.execute_robot_name, task.request_data)
  65. # 头条搜一搜赚钱任务
  66. class toutiao_search_task_interaction_operation(rpa_processor_strategy):
  67. def process_rpa(self, task):
  68. loggerKit.info("taskId:{0},设备号:{1},开始进行头条搜一搜赚钱脚本操作,请求信息:{2}", task.task_id,
  69. task.device_id,
  70. json.dumps(task.to_dict(), ensure_ascii=False))
  71. return search_task(task.task_id, task.request_data)
  72. # 头条随机搜赚钱任务
  73. class toutiao_search_random_task_interaction_operation(rpa_processor_strategy):
  74. def process_rpa(self, task):
  75. loggerKit.info("taskId:{0},设备号:{1},开始进行头条搜一搜赚钱脚本操作,请求信息:{2}", task.task_id,
  76. task.device_id,
  77. json.dumps(task.to_dict(), ensure_ascii=False))
  78. return search_random_task(task.task_id, task.request_data)
  79. # 头条看小说赚钱任务
  80. class toutiao_watch_novel_task_interaction_operation(rpa_processor_strategy):
  81. def process_rpa(self, task):
  82. loggerKit.info("taskId:{0},设备号:{1},开始进行头条看小说赚钱脚本操作,请求信息:{2}", task.task_id,
  83. task.device_id,
  84. json.dumps(task.to_dict(), ensure_ascii=False))
  85. return watch_novel_task(task.task_id, task.request_data)
  86. # 头条吃饭补贴任务
  87. class toutiao_meal_allwance_task_interaction_operation(rpa_processor_strategy):
  88. def process_rpa(self, task):
  89. loggerKit.info("taskId:{0},设备号:{1},开始进行头条吃饭补贴脚本操作,请求信息:{2}", task.task_id,
  90. task.device_id,
  91. json.dumps(task.to_dict(), ensure_ascii=False))
  92. return meal_allowance_task(task.task_id, task.request_data)
  93. # 抖音用户demo任务
  94. class douyin_user_demo_operation(rpa_processor_strategy):
  95. def process_rpa(self, task):
  96. loggerKit.info("taskId:{0},设备号:{1},开始进行抖音搜一搜赚钱脚本操作,请求信息:{2}", task.task_id,
  97. task.device_id,
  98. json.dumps(task.to_dict(), ensure_ascii=False))
  99. return douyin_user_demo(task.task_id, task.resource_name, task.request_data)
  100. """
  101. 抖音极速版
  102. 随机搜索
  103. """
  104. class douyin_random_search_operation(rpa_processor_strategy):
  105. def process_rpa(self, task):
  106. loggerKit.info("taskId:{0},设备号:{1},开始进行抖音随机搜索操作,请求信息:{2}", task.task_id, task.device_id,
  107. json.dumps(task.to_dict(), ensure_ascii=False))
  108. return douyin_random_search(task.task_id, task.resource_name, task.request_data)
  109. # 懂车帝签到操作
  110. class dongchedi_sign_operation(rpa_processor_strategy):
  111. def process_rpa(self, task):
  112. loggerKit.info("taskId:{0},设备号:{1},开始进行懂车帝签到操作,请求信息:{2}", task.task_id, task.device_id,
  113. json.dumps(task.to_dict(), ensure_ascii=False))
  114. return dongchedi_sign(task.task_id, task.resource_name, task.request_data)
  115. """
  116. 懂车帝简单互动
  117. """
  118. class dongchedi_simple_comment(rpa_processor_strategy):
  119. def process_rpa(self, task):
  120. loggerKit.info("taskId:{0},设备号:{1},开始进行懂车帝简单互动操作,请求信息:{2}", task.task_id, task.device_id,
  121. json.dumps(task.to_dict(), ensure_ascii=False))
  122. return simple_comment(task.task_id, task.resource_name, task.request_data)
  123. """
  124. 快手简单养号
  125. """
  126. class kuaishou_random_watch_video_operation(rpa_processor_strategy):
  127. def process_rpa(self, task):
  128. loggerKit.info("taskId:{0},设备号:{1},开始进行快手简单养号操作,请求信息:{2}", task.task_id, task.device_id,
  129. json.dumps(task.to_dict(), ensure_ascii=False))
  130. return gifmaker_random_watch_video(task.task_id, task.resource_name, task.request_data)
  131. """
  132. 小红书简单养号
  133. """
  134. class xiaohongshu_random_watch_video_operation(rpa_processor_strategy):
  135. def process_rpa(self, task):
  136. loggerKit.info("taskId:{0},设备号:{1},开始进行快手简单养号操作,请求信息:{2}", task.task_id, task.device_id,
  137. json.dumps(task.to_dict(), ensure_ascii=False))
  138. return xingin_random_watch_video(task.task_id, task.resource_name, task.request_data)
  139. """
  140. 易车官媒
  141. """
  142. class yiche_direction_action_operation(rpa_processor_strategy):
  143. def process_rpa(self, task):
  144. loggerKit.info("taskId:{0},设备号:{1},开始进行易车官媒操作,请求信息:{2}", task.task_id, task.device_id,
  145. json.dumps(task.to_dict(), ensure_ascii=False))
  146. return yiche_direction_action(task.task_id, task.resource_name, task.request_data)
  147. """
  148. 汽车之家官媒
  149. """
  150. class cubic_simple_action_operation(rpa_processor_strategy):
  151. def process_rpa(self, task):
  152. loggerKit.info("taskId:{0},设备号:{1},开始进行汽车之家官媒操作,请求信息:{2}", task.task_id, task.device_id,
  153. json.dumps(task.to_dict(), ensure_ascii=False))
  154. return cubic_simple_action(task.task_id, task.resource_name, task.request_data)
  155. """
  156. 抖音常规版官媒
  157. """
  158. class douyin_random_watch_video_operation(rpa_processor_strategy):
  159. def process_rpa(self, task):
  160. loggerKit.info("taskId:{0},设备号:{1},开始进行快手简单养号操作,请求信息:{2}", task.task_id, task.device_id,
  161. json.dumps(task.to_dict(), ensure_ascii=False))
  162. return douyin_random_watch_video(task.task_id, task.resource_name, task.request_data)
  163. # 抖音养号首页(浏览30 - 50视频随机时长和点赞收藏)
  164. class douyin_train_home_page_operation(rpa_processor_strategy):
  165. def process_rpa(self, task):
  166. loggerKit.info("taskId:{0},设备号:{1},开始进行抖音养号首页操作,请求信息:{2}", task.task_id, task.device_id,
  167. json.dumps(task.to_dict(), ensure_ascii=False))
  168. return douyin_train_home_page(task.task_id, task.resource_name, task.request_data)
  169. # 抖音养号首页帖子评论(浏览30-50帖子 随机时长 对其评论进行观看)
  170. class douyin_train_home_comment_operation(rpa_processor_strategy):
  171. def process_rpa(self, task):
  172. loggerKit.info("taskId:{0},设备号:{1},开始进行抖音养号首页帖子评论操作,请求信息:{2}", task.task_id, task.device_id,
  173. json.dumps(task.to_dict(), ensure_ascii=False))
  174. return douyin_train_home_comment(task.task_id, task.resource_name, task.request_data)
  175. # 抖音紧急互动
  176. class douyin_urgent_interact_operation(rpa_processor_strategy):
  177. def process_rpa(self, task):
  178. loggerKit.info("taskId:{0},设备号:{1},开始进行抖音紧急互动,请求信息:{2}", task.task_id, task.device_id,
  179. json.dumps(task.to_dict(), ensure_ascii=False))
  180. return douyin_interact_urgent(task.task_id, task.resource_name, task.request_data)
  181. # 抖音直播间操作
  182. class douyin_live_operation(rpa_processor_strategy):
  183. def process_rpa(self, task):
  184. loggerKit.info("taskId:{0},设备号:{1},开始进行抖音直播间操作,请求信息:{2}", task.task_id, task.device_id,
  185. json.dumps(task.to_dict(), ensure_ascii=False))
  186. return douyin_live_comment(task.task_id, task.resource_name, task.request_data)
  187. # 抖音评论点赞操作
  188. class douyin_comment_like_operation(rpa_processor_strategy):
  189. def process_rpa(self, task):
  190. loggerKit.info("taskId:{0},设备号:{1},开始进行抖音评论点赞操作,请求信息:{2}", task.task_id, task.device_id,
  191. json.dumps(task.to_dict(), ensure_ascii=False))
  192. return douyin_comments_operate(task.task_id, task.resource_name, task.request_data)
  193. # 定义上下文类
  194. class rpa_processor:
  195. def __init__(self, strategy):
  196. self.strategy = strategy
  197. def set_strategy(self, strategy):
  198. self.strategy = strategy
  199. def process_rpa(self, task):
  200. return self.strategy.process_rpa(task)
  201. class rpa_handler:
  202. @staticmethod
  203. def set_processor(task):
  204. loggerKit.info(
  205. 'media_channel:{0}, action_type:{1},answer_type:{2}, task_type:{3} task_sub_type:{4} ,task_id:{5}',
  206. task.media_channel, task.action_type,
  207. task.answer_type, task.task_type, task.task_sub_type, task.task_id)
  208. default_strategy = None # 默认策略类
  209. # 添加其他映射关系
  210. strategy_mapping = {
  211. # (media_type.douyin.value, task_sub_type.douyin_sign_browser_video.value): douyin_browser_operation(),
  212. # (media_type.douyin.value, task_sub_type.douyin_sign.value): douyin_sign_operation(),
  213. # (media_type.douyin.value, task_sub_type.douyin_watch_advise.value): douyin_watch_advise_operation(),
  214. # (media_type.douyin.value, task_sub_type.douyin_boxes_advise.value): douyin_boxes_advise_operation(),
  215. (task_type.dongchediAccountBoosting.value,
  216. task_key.DCD_RANDOM_BROWSE.value): dongchedi_content_interaction_operation(),
  217. # (media_type.toutiao.value,
  218. # task_sub_type.toutiao_search_task.value): toutiao_search_task_interaction_operation(),
  219. # (media_type.toutiao.value,
  220. # task_sub_type.toutiao_search_random_task.value): toutiao_search_random_task_interaction_operation(),
  221. # (media_type.toutiao.value,
  222. # task_sub_type.toutiao_watch_novel_task.value): toutiao_watch_novel_task_interaction_operation(),
  223. # (media_type.toutiao.value,
  224. # task_sub_type.toutiao_meal_allowance_task.value): toutiao_meal_allwance_task_interaction_operation(),
  225. # (media_type.douyin.value, task_sub_type.douyin_user_demo.value): douyin_user_demo_operation(),
  226. # (media_type.dongchedi.value, task_sub_type.dongchedi_sign.value): dongchedi_sign_operation(),
  227. (task_type.douyinAccountBoosting.value, task_key.DY_SEARCH_RANDOM_BROWSE.value): douyin_random_search_operation(),
  228. (task_type.douyinAccountBoosting.value,
  229. task_key.DY_RANDOM_BROWSE_VIEW_COMMENTS.value): douyin_train_home_comment_operation(),
  230. (task_type.douyinAccountBoosting.value, task_key.DY_RANDOM_BROWSE_LIKE_COLLECTION.value): douyin_train_home_page_operation(),
  231. (task_type.douyinCommentInteraction.value, task_key.DY_SPECIFIC_TRANSFER_LIKE_COMMENT.value): douyin_urgent_interact_operation(),
  232. (task_type.dongchediManyOperationInteraction.value,
  233. task_key.DCD_SPECIFIC_SERARCH_TRANSFER_LIKE_COMMENT.value): dongchedi_simple_comment(),
  234. # (media_type.kuaishou.value,
  235. # task_sub_type.kuaishou_train_home.value): kuaishou_random_watch_video_operation(),
  236. # (media_type.xiaohongshu.value,
  237. # task_sub_type.xiaohongshu.xiaohongshu_train_home.value): xiaohongshu_random_watch_video_operation(),
  238. (task_type.douyinOfficialMediaInteraction.value,
  239. task_key.DY_OFFICIAL_MEDIA.value): douyin_random_watch_video_operation(),
  240. (task_type.yicheOfficialMediaInteraction.value,
  241. task_key.YC_SPECIFIC_SERARCH_TRANSFER_LIKE_COMMENT.value): yiche_direction_action_operation(),
  242. (task_type.qichezhijiaOfficialMediaInteraction.value,
  243. task_key.QCZJ_SPECIFIC_SERARCH_TRANSFER_LIKE_COMMENT.value): cubic_simple_action_operation(),
  244. (task_type.douyinDirectorInteraction.value,
  245. task_key.DY_COMING_BROADCASTING_ROOM.value): douyin_live_operation(),
  246. (task_type.douyinCommentLikeOperate.value,
  247. task_key.DY_COMMENT_LIKE_OPERATE.value): douyin_comment_like_operation()
  248. }
  249. # 根据task.action_type和task.answer_type获取相应的策略类
  250. strategy = strategy_mapping.get((task.task_type, task.task_key), default_strategy)
  251. if strategy is None:
  252. # 处理没有匹配到任何策略类的情况
  253. raise ValueError("No strategy found for the given task")
  254. we_strategy = rpa_processor(strategy)
  255. return we_strategy