mns-scheduler 1.0.8.7__py3-none-any.whl → 1.4.3.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. mns_scheduler/__init__.py +1 -3
  2. mns_scheduler/company_info/announce/company_announce_sync_service.py +65 -0
  3. mns_scheduler/company_info/{company_info_sync_api.py → base/sync_company_base_info_api.py} +239 -227
  4. mns_scheduler/company_info/base/sync_company_hold_info_api.py +37 -0
  5. mns_scheduler/company_info/base/sync_company_product_area_industry.py +161 -0
  6. mns_scheduler/company_info/clean/company_info_clean_api.py +133 -0
  7. mns_scheduler/company_info/constant/company_constant_data.py +497 -0
  8. mns_scheduler/company_info/{de_list_stock_service.py → de_list_stock/de_list_stock_service.py} +1 -1
  9. mns_scheduler/company_info/em_stock_info/__init__.py +7 -0
  10. mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py +80 -0
  11. mns_scheduler/company_info/remark/__init__.py +7 -0
  12. mns_scheduler/company_info/remark/company_remark_info_sync.py +46 -0
  13. mns_scheduler/concept/clean/kpl_concept_clean_api.py +1 -1
  14. mns_scheduler/concept/clean/ths_concept_clean_api.py +74 -51
  15. mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +112 -56
  16. mns_scheduler/concept/ths/common/ths_concept_update_common_api.py +6 -6
  17. mns_scheduler/concept/ths/detaill/__init__.py +0 -0
  18. mns_scheduler/concept/ths/detaill/ths_concept_detail_api.py +226 -0
  19. mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_new_index_api.py +169 -0
  20. mns_scheduler/concept/ths/update_concept_info/sync_one_concept_all_symbols_api.py +11 -23
  21. mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py +19 -15
  22. mns_scheduler/db/col_move_service.py +10 -7
  23. mns_scheduler/db/db_status.py +1 -1
  24. mns_scheduler/db/script/__init__.py +7 -0
  25. mns_scheduler/db/script/col_move_script.py +45 -0
  26. mns_scheduler/db/script/db_move/__init__.py +7 -0
  27. mns_scheduler/db/script/db_move/col_move_one_service.py +34 -0
  28. mns_scheduler/db/script/sync/__init__.py +7 -0
  29. mns_scheduler/db/script/sync/local_mongo_util.py +231 -0
  30. mns_scheduler/db/script/sync/remote_data_sync_to_local.py +105 -0
  31. mns_scheduler/db/script/sync/remote_mongo_util.py +306 -0
  32. mns_scheduler/db/script/sync/sync_hui_ce_test_data.py +80 -0
  33. mns_scheduler/db/script/sync/sync_hui_ce_test_data_01.py +69 -0
  34. mns_scheduler/db/script/update/__init__.py +7 -0
  35. mns_scheduler/db/script/update/update_col_field.py +36 -0
  36. mns_scheduler/finance/__init__.py +1 -1
  37. mns_scheduler/finance/{em_financial_asset_liability_sync_service_api.py → em/em_financial_asset_liability_sync_service_api.py} +3 -3
  38. mns_scheduler/finance/{em_financial_profit_sync_service_api.py → em/em_financial_profit_sync_service_api.py} +30 -25
  39. mns_scheduler/finance/{finance_common_api.py → em/finance_common_api.py} +4 -4
  40. mns_scheduler/finance/sync_financial_report_service_task.py +202 -0
  41. mns_scheduler/finance/xue_qiu/down_load_xueqiu_report_api.py +77 -0
  42. mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py +161 -0
  43. mns_scheduler/hk/__init__.py +1 -1
  44. mns_scheduler/hk/hk_company_info_sync_service_api.py +49 -5
  45. mns_scheduler/hk/hk_industry_info_sync_service_api.py +68 -0
  46. mns_scheduler/industry/__init__.py +7 -0
  47. mns_scheduler/industry/ths/__init__.py +7 -0
  48. mns_scheduler/industry/ths/ths_industry_index_service.py +58 -0
  49. mns_scheduler/industry/ths/ths_industry_sync_service.py +68 -0
  50. mns_scheduler/irm/__init__.py +1 -1
  51. mns_scheduler/irm/api/__init__.py +1 -1
  52. mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py +1 -1
  53. mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py +1 -1
  54. mns_scheduler/irm/stock_irm_cninfo_service.py +15 -13
  55. mns_scheduler/k_line/clean/daily/__init__.py +1 -1
  56. mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +57 -7
  57. mns_scheduler/k_line/clean/daily/daily_k_line_service.py +16 -3
  58. mns_scheduler/k_line/clean/k_line_info_clean_impl.py +3 -2
  59. mns_scheduler/k_line/clean/k_line_info_clean_task.py +42 -31
  60. mns_scheduler/k_line/clean/week_month/__init__.py +1 -1
  61. mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +125 -27
  62. mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py +72 -17
  63. mns_scheduler/k_line/common/__init__.py +7 -0
  64. mns_scheduler/k_line/common/k_line_common_api.py +188 -0
  65. mns_scheduler/k_line/hot_stocks/__init__.py +1 -1
  66. mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py +1 -1
  67. mns_scheduler/k_line/month_week_daily/bfq_k_line_sync.py +77 -0
  68. mns_scheduler/k_line/{sync → month_week_daily}/daily_week_month_line_sync.py +14 -14
  69. mns_scheduler/k_line/sync_status/__init__.py +7 -0
  70. mns_scheduler/k_line/sync_status/k_line_sync_status_check.py +54 -0
  71. mns_scheduler/k_line/test/__init__.py +7 -0
  72. mns_scheduler/k_line/test/k_line_info_clean_his_data.py +41 -0
  73. mns_scheduler/k_line/year_quarter/__init__.py +7 -0
  74. mns_scheduler/k_line/year_quarter/year_quarter_line_sync.py +76 -0
  75. mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +4 -2
  76. mns_scheduler/kpl/selection/symbol/sync_kpl_concept_symbol_choose_reason_api.py +108 -0
  77. mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +12 -7
  78. mns_scheduler/lhb/__init__.py +1 -1
  79. mns_scheduler/lhb/stock_lhb_sync_service.py +1 -1
  80. mns_scheduler/open/__init__.py +1 -1
  81. mns_scheduler/open/sync_one_day_open_data_to_db_service.py +6 -22
  82. mns_scheduler/risk/__init__.py +1 -1
  83. mns_scheduler/risk/compliance/__init__.py +0 -0
  84. mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +71 -0
  85. mns_scheduler/risk/financial/__init__.py +0 -0
  86. mns_scheduler/risk/financial/annual_report_audit_check_api.py +54 -0
  87. mns_scheduler/risk/financial/net_assets_check_api.py +75 -0
  88. mns_scheduler/risk/financial/profit_income_check_api.py +80 -0
  89. mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py +1 -0
  90. mns_scheduler/risk/financial_report_risk_check_api.py +42 -0
  91. mns_scheduler/risk/major_violations/__init__.py +0 -0
  92. mns_scheduler/risk/{register_and_investigate_stock_sync_api.py → major_violations/register_and_investigate_stock_sync_api.py} +17 -8
  93. mns_scheduler/risk/self/__init__.py +0 -0
  94. mns_scheduler/risk/{wei_pan_stock_api.py → self/wei_pan_stock_api.py} +10 -4
  95. mns_scheduler/risk/test/__init__.py +7 -0
  96. mns_scheduler/{finance → risk}/test/fix_blask_list.py +6 -10
  97. mns_scheduler/risk/transactions/__init__.py +0 -0
  98. mns_scheduler/risk/transactions/transactions_check_api.py +183 -0
  99. mns_scheduler/self_choose/__init__.py +7 -0
  100. mns_scheduler/self_choose/ths_self_choose_service.py +158 -0
  101. mns_scheduler/trade/auto_ipo_buy_api.py +2 -2
  102. mns_scheduler/trade/auto_login/__init__.py +7 -0
  103. mns_scheduler/trade/auto_login/trader_auto_service.py +32 -0
  104. mns_scheduler/trade/auto_sell_service_api.py +10 -8
  105. mns_scheduler/trade/balance/__init__.py +7 -0
  106. mns_scheduler/trade/balance/ths_account_balance_service.py +7 -0
  107. mns_scheduler/trade/sync_position_api.py +41 -8
  108. mns_scheduler/trade/task/__init__.py +7 -0
  109. mns_scheduler/trade/task/trader_task_service.py +65 -0
  110. mns_scheduler/trade/tfp/__init__.py +7 -0
  111. mns_scheduler/trade/tfp/stock_tfp_info_sync.py +56 -0
  112. mns_scheduler/zb/stock_zb_pool_sync.py +1 -15
  113. mns_scheduler/zt/high_chg/sync_high_chg_pool_service.py +2 -3
  114. mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py +12 -8
  115. mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py +10 -25
  116. mns_scheduler/zt/script/__init__.py +1 -1
  117. mns_scheduler/zt/script/fix_error_deal_day.py +41 -0
  118. mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py +2 -11
  119. mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +2 -2
  120. mns_scheduler/zt/script/sync_now_higt_chg_zt.py +43 -0
  121. mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +413 -0
  122. mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py +193 -0
  123. mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py +58 -0
  124. mns_scheduler/zz_task/compensation/__init__.py +0 -0
  125. mns_scheduler/zz_task/compensation/compensate_task.py +161 -0
  126. mns_scheduler/zz_task/compensation/compensate_task_one_day.py +142 -0
  127. mns_scheduler/zz_task/data_sync_task.py +271 -121
  128. {mns_scheduler-1.0.8.7.dist-info → mns_scheduler-1.4.3.2.dist-info}/METADATA +1 -1
  129. mns_scheduler-1.4.3.2.dist-info/RECORD +169 -0
  130. {mns_scheduler-1.0.8.7.dist-info → mns_scheduler-1.4.3.2.dist-info}/WHEEL +1 -1
  131. mns_scheduler/backup/app/ths_new_concept_sync_app.py +0 -122
  132. mns_scheduler/backup/em/em_new_concept_his_sync.py +0 -99
  133. mns_scheduler/backup/em/em_new_concept_sync_common_api.py +0 -139
  134. mns_scheduler/backup/em/em_new_concept_sync_web.py +0 -55
  135. mns_scheduler/backup/wen_cai/wen_cai_concept_sync.py +0 -51
  136. mns_scheduler/big_deal/ths_big_deal_sync.py +0 -98
  137. mns_scheduler/company_info/company_constant_data.py +0 -322
  138. mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_by_ak_api.py +0 -103
  139. mns_scheduler/concept/ths/sync_new_index/sync_ths_new_concept_by_web_api.py +0 -89
  140. mns_scheduler/finance/financial_high_risk_stock_clean_service_api.py +0 -202
  141. mns_scheduler/finance/sync_financial_report_service_api.py +0 -113
  142. mns_scheduler/real_time/realtime_quotes_now_create_db_index.py +0 -27
  143. mns_scheduler/real_time/realtime_quotes_now_sync.py +0 -232
  144. mns_scheduler/risk/stock_equity_mortgage_sync_api.py +0 -32
  145. mns_scheduler/zt/zt_pool/zt_pool_sync_api.py +0 -151
  146. mns_scheduler/zz_task/sync_realtime_quotes_task.py +0 -28
  147. mns_scheduler-1.0.8.7.dist-info/RECORD +0 -112
  148. /mns_scheduler/{backup/app → company_info/announce}/__init__.py +0 -0
  149. /mns_scheduler/{backup/em → company_info/base}/__init__.py +0 -0
  150. /mns_scheduler/{backup/wen_cai → company_info/clean}/__init__.py +0 -0
  151. /mns_scheduler/{big_deal → company_info/constant}/__init__.py +0 -0
  152. /mns_scheduler/{real_time → company_info/de_list_stock}/__init__.py +0 -0
  153. /mns_scheduler/{backup → finance/em}/__init__.py +0 -0
  154. /mns_scheduler/finance/{test → xue_qiu}/__init__.py +0 -0
  155. /mns_scheduler/k_line/{sync → month_week_daily}/__init__.py +0 -0
  156. {mns_scheduler-1.0.8.7.dist-info → mns_scheduler-1.4.3.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,169 @@
1
+ mns_scheduler/__init__.py,sha256=_nhtk1b00OsMAiqRATNrb3HD44RmgjSG5jqS-QLNMrQ,130
2
+ mns_scheduler/company_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
3
+ mns_scheduler/company_info/announce/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
4
+ mns_scheduler/company_info/announce/company_announce_sync_service.py,sha256=q8zYOZJmRin_QU2uPk52wngNdgnZooabnfrnqzqFIrM,3055
5
+ mns_scheduler/company_info/base/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
6
+ mns_scheduler/company_info/base/sync_company_base_info_api.py,sha256=QAwzK7lex_BuDYwA02XNWiS8xCB402LEisdCnbcUzfo,24393
7
+ mns_scheduler/company_info/base/sync_company_hold_info_api.py,sha256=XEdJzDt6RQqzZOv4mEOFfeh7q7LPTTNWNwT0AR1zHJc,1409
8
+ mns_scheduler/company_info/base/sync_company_product_area_industry.py,sha256=fEWvYjknjC19yUiitfCdQeFKt77tfYQDSJv1bv1ZSXY,7295
9
+ mns_scheduler/company_info/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
10
+ mns_scheduler/company_info/clean/company_info_clean_api.py,sha256=vm6gr2yKoMpIFRmsz_EvKfd_7ItbfInjkISHhKWHqBA,6102
11
+ mns_scheduler/company_info/constant/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
12
+ mns_scheduler/company_info/constant/company_constant_data.py,sha256=7emiXUeAla8nfyYYauGjsMarfY3ckN4TgYlON477jQE,22566
13
+ mns_scheduler/company_info/de_list_stock/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
14
+ mns_scheduler/company_info/de_list_stock/de_list_stock_service.py,sha256=QNtKc1ZI6xHjupcxbOBN7fBhi6oAGtL7X1TQZVzfpnk,1993
15
+ mns_scheduler/company_info/em_stock_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
16
+ mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py,sha256=9NIv8HRAgjGFcTnw_i9YGQzQBZc57T2hdt66ciZcMZY,3922
17
+ mns_scheduler/company_info/remark/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
18
+ mns_scheduler/company_info/remark/company_remark_info_sync.py,sha256=L8wC8LU7-GYZb1TyKLjODJURROOEO4izZBxnWEM7Ahc,2334
19
+ mns_scheduler/concept/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
20
+ mns_scheduler/concept/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
21
+ mns_scheduler/concept/clean/kpl_concept_clean_api.py,sha256=NuTJnu1uF7uQ4LcMpXHRKfdNBd-FC4rDmVWsFBj1n2I,4512
22
+ mns_scheduler/concept/clean/ths_concept_clean_api.py,sha256=BlAfu9zyeWmzbDKtgmhBiOyFKRNpA_iXVNKsP7S92wc,6933
23
+ mns_scheduler/concept/ths/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
24
+ mns_scheduler/concept/ths/common/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
25
+ mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py,sha256=mJHFdZGpkVn9xiby2eCYvapZAhQuxSfxQGrGsr3dso0,10222
26
+ mns_scheduler/concept/ths/common/ths_concept_update_common_api.py,sha256=Mwy2g5bXWJBbcS_qS7bY_yx7g41mIQ36GIwa0Qbrd0E,4577
27
+ mns_scheduler/concept/ths/detaill/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ mns_scheduler/concept/ths/detaill/ths_concept_detail_api.py,sha256=O99zE0QHGedcCdY_PKWtOYhR4BCAD2hJRO7lCD7gNfg,10865
29
+ mns_scheduler/concept/ths/sync_new_index/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
30
+ mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_new_index_api.py,sha256=wllTGr3HfP4HSg776I5v6XcMGZMrunSTJCmWwTnT1VU,7923
31
+ mns_scheduler/concept/ths/update_concept_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
32
+ mns_scheduler/concept/ths/update_concept_info/sync_one_concept_all_symbols_api.py,sha256=wwuLfjj9AnFcHP-oQPC5AhpwgZ8IsPiNUh-Z6swcngA,1380
33
+ mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py,sha256=uOB8blinBrQ2LRVxFSfOMaUn9G3PwOwEy_XaSReHhCY,9392
34
+ mns_scheduler/db/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
35
+ mns_scheduler/db/col_move_service.py,sha256=9pOrHJ6rQuMPQdGFho1IJMEy2xvpQ20iku3p20MuAhg,4238
36
+ mns_scheduler/db/db_status.py,sha256=e5eW5ZSm5J7tHvmxxhFmFdbZb2_oB_SAcdcFqc4KDmw,733
37
+ mns_scheduler/db/script/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
38
+ mns_scheduler/db/script/col_move_script.py,sha256=Qgo4rktcxJECXwQ4o1lxRj0g306lQhlRCs-0ngyUi70,1163
39
+ mns_scheduler/db/script/db_move/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
40
+ mns_scheduler/db/script/db_move/col_move_one_service.py,sha256=v-4qzgIy95iI0EVFBEh4XXJH5jCzDsMUtImFpz8yqJE,913
41
+ mns_scheduler/db/script/sync/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
42
+ mns_scheduler/db/script/sync/local_mongo_util.py,sha256=MFG-S7aUBLKe4tkhKNklUzpiZef2n078YXd39dfOMy0,7540
43
+ mns_scheduler/db/script/sync/remote_data_sync_to_local.py,sha256=1o2xR0Av9NvTFrxpIVfvclgJI2wiVslutj3-SkxB8cw,3675
44
+ mns_scheduler/db/script/sync/remote_mongo_util.py,sha256=-BCR2zeQ9z0zeZg6wO0aCS4bGnsGIohFRH7QR8XXJSo,10966
45
+ mns_scheduler/db/script/sync/sync_hui_ce_test_data.py,sha256=oymZRnt-cMnrrHod796XqSvc8vWSsCCpwx2Lbf0-jBc,2395
46
+ mns_scheduler/db/script/sync/sync_hui_ce_test_data_01.py,sha256=32F7kmxgube7F-_9-QhAHdjqWAQfRZZ51p7MdKi1u6I,2172
47
+ mns_scheduler/db/script/update/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
48
+ mns_scheduler/db/script/update/update_col_field.py,sha256=m7RJbNLTcaeknwHR50i3aebT--Rc6udpbOqyGwt61qg,1274
49
+ mns_scheduler/dt/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
50
+ mns_scheduler/dt/stock_dt_pool_sync.py,sha256=5ivRUOnFtOapZniwTbujf1lVq3y4btm2Cmd5R6JJAVo,3466
51
+ mns_scheduler/finance/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
52
+ mns_scheduler/finance/sync_financial_report_service_task.py,sha256=ROJ4aOtv3lRqMIhCyy9uV54Of5Q-LhzvvJslu33Jp08,8867
53
+ mns_scheduler/finance/em/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
54
+ mns_scheduler/finance/em/em_financial_asset_liability_sync_service_api.py,sha256=1e5VIdQV4U19CBJP0Ow_fp3WvfUF8sPQQQXG8zv5qjo,19420
55
+ mns_scheduler/finance/em/em_financial_profit_sync_service_api.py,sha256=j5xnzcSthy6qc5dYr52DnxqN2T4zf_rldlRWbLyz90I,14550
56
+ mns_scheduler/finance/em/finance_common_api.py,sha256=rqsVJZEklJjvM9ogl-9GQaWxyh1LE6IKoTkQkN5cBvE,2453
57
+ mns_scheduler/finance/xue_qiu/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
58
+ mns_scheduler/finance/xue_qiu/down_load_xueqiu_report_api.py,sha256=r_RtfM2SBzQcvO1MH8Dt8mOXg2tbZOLz0sNwqne9jFs,2769
59
+ mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py,sha256=aRqNPqnyCP_sKl7afdk3Xrfa9IRCbU6MDK3_AlxTDBQ,7218
60
+ mns_scheduler/hk/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
61
+ mns_scheduler/hk/hk_company_info_sync_service_api.py,sha256=MGIKodN9oXaY0iwtdsrg4wwHXkMglFvY8eyeTpbas6k,3724
62
+ mns_scheduler/hk/hk_industry_info_sync_service_api.py,sha256=WdCTaBi4GDicWfmiYbI-byBCXZwknkYZHk6y2IloMys,2275
63
+ mns_scheduler/industry/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
64
+ mns_scheduler/industry/ths/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
65
+ mns_scheduler/industry/ths/ths_industry_index_service.py,sha256=MHvzUsDHnmdQn-mJc_D2uBKP0qvVWWagDV568xChPqg,2686
66
+ mns_scheduler/industry/ths/ths_industry_sync_service.py,sha256=r0jLbY3JcnCGgLWYzRrXiqIbeT8PBGnG2dT_INuN824,2762
67
+ mns_scheduler/irm/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
68
+ mns_scheduler/irm/stock_irm_cninfo_service.py,sha256=ChOl_zWNSCXpj-NlveLaSsfie8hARusU4Ut1V_LAeOc,9759
69
+ mns_scheduler/irm/api/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
70
+ mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py,sha256=EE09q9iIPNAEzxhKCM-2tsm1FZID3-fqdfikK1VS6H8,4931
71
+ mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py,sha256=iJ9K8FhatQpCx5PqusIH5x4MAw3F1v3fYC1Ztsp_2Zw,6199
72
+ mns_scheduler/k_line/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UMP6VF0X2M,161
73
+ mns_scheduler/k_line/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
74
+ mns_scheduler/k_line/clean/k_line_info_clean_impl.py,sha256=ZTnSpQ2zKnNPWCkHKPJkLdkxVK29szgufxNV6uvXG7s,1344
75
+ mns_scheduler/k_line/clean/k_line_info_clean_task.py,sha256=i-6XSHUC6NxgZubCfU8NGyA0YHHMgi1b-xxlrRhg-is,9026
76
+ mns_scheduler/k_line/clean/daily/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
77
+ mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py,sha256=gIoInwd1eCKCmhIOJHo8MuNEwj8ehMxYw83j52pxmxk,20447
78
+ mns_scheduler/k_line/clean/daily/daily_k_line_service.py,sha256=1S-6sih0KptZEWYBN3jgVJHlv5y11QPONYjR-MpOQn8,6906
79
+ mns_scheduler/k_line/clean/week_month/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
80
+ mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py,sha256=n2osY8dozHClIlSOE7NR6S_oK_8GV-z72Az13D3fhCQ,10160
81
+ mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py,sha256=0rc2Rz_EoqoqpVvgPe4daCe09JtHBlJsQr1bMIlBQ2o,5526
82
+ mns_scheduler/k_line/common/__init__.py,sha256=itoGlqKhsx7EVXQoD1vchDKQ5GPB16vDjofTSuQtrXg,161
83
+ mns_scheduler/k_line/common/k_line_common_api.py,sha256=2CPQxGfYxwMrTkjpEwywQTsuAMh10NKQysUxWM0bWvY,7116
84
+ mns_scheduler/k_line/hot_stocks/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
85
+ mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py,sha256=8woZzGVORYX9KZr6xtfiYYgApDKissnzYM6hS2k6XBA,2628
86
+ mns_scheduler/k_line/month_week_daily/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UMP6VF0X2M,161
87
+ mns_scheduler/k_line/month_week_daily/bfq_k_line_sync.py,sha256=ccHC9W3tQsZJI6BEpeH5DJ_Zvb6PZb5hYgF_OlGM-14,2668
88
+ mns_scheduler/k_line/month_week_daily/daily_week_month_line_sync.py,sha256=xhPgLUhb-pGg-nYXvsiJzsPAnIzQuQ46es6oWsDiiqg,5619
89
+ mns_scheduler/k_line/sync_status/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
90
+ mns_scheduler/k_line/sync_status/k_line_sync_status_check.py,sha256=GXKUiRggwk9phisd_QzPgC8gVezEpPbjitUJYxYjAXs,2218
91
+ mns_scheduler/k_line/test/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
92
+ mns_scheduler/k_line/test/k_line_info_clean_his_data.py,sha256=eWtzWL1geX5rrwfrlvDCuaTvy1CI9Zgk7CC4zlsncD4,1663
93
+ mns_scheduler/k_line/year_quarter/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
94
+ mns_scheduler/k_line/year_quarter/year_quarter_line_sync.py,sha256=XjugLj0nzzp6ZHNjZW5zAWud1Sd6zgJaIwJtMCgiAko,3286
95
+ mns_scheduler/kpl/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
96
+ mns_scheduler/kpl/selection/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
97
+ mns_scheduler/kpl/selection/index/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
98
+ mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py,sha256=Cle5cU90HVo-vulFCRwaAFDG-J3dCriXmWm1OKHPnr4,4748
99
+ mns_scheduler/kpl/selection/index/sync_best_choose_index.py,sha256=-34drqAMsx792DxR8P1A8DrGCM5yIVGsop3UzDNzsPw,8016
100
+ mns_scheduler/kpl/selection/symbol/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
101
+ mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py,sha256=Z0p3r-JWpxlEK2u00HIzVqEEg64r5AE72KQ2Bivwv_k,4756
102
+ mns_scheduler/kpl/selection/symbol/sync_kpl_concept_symbol_choose_reason_api.py,sha256=KHFo3v_xpjHqWTmXw0P1kP14DXJxIcXVj3c3AtIC6W8,5622
103
+ mns_scheduler/kpl/selection/total/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
104
+ mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py,sha256=ljacoCP2gGtiwOT89FywE38vGGwZv1FmHNxS0PSx6-A,10755
105
+ mns_scheduler/lhb/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
106
+ mns_scheduler/lhb/stock_lhb_sync_service.py,sha256=-nJBWo7LMyB4oCZE9BWX_aRyh5c6iAljPe7t4okSBZg,641
107
+ mns_scheduler/open/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
108
+ mns_scheduler/open/sync_one_day_open_data_to_db_service.py,sha256=4ghPSJaeSZB974TGLUWFIpBIy_5nSppCfVWFY4Ofurk,2638
109
+ mns_scheduler/risk/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
110
+ mns_scheduler/risk/financial_report_risk_check_api.py,sha256=cOW_zh0bGn432cjj_kLlXW1Yp66Ne17aPwwg77yzOmE,1648
111
+ mns_scheduler/risk/compliance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
+ mns_scheduler/risk/compliance/undisclosed_annual_report_api.py,sha256=nlA4Mc6rhuCt_cveaVpKtbSTN1JJtzJcXudUAzJyCkE,3873
113
+ mns_scheduler/risk/financial/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
+ mns_scheduler/risk/financial/annual_report_audit_check_api.py,sha256=bNiMXDNt88XEsk0W8oUOQ4OdBvJzwRGjN9SNAygYlhI,2580
115
+ mns_scheduler/risk/financial/net_assets_check_api.py,sha256=glhBAyixc4mNfFUCRyT22wsAQC20R67jthyg8uvsOS4,4737
116
+ mns_scheduler/risk/financial/profit_income_check_api.py,sha256=PAKAcDlau3PCPlQxL1lJ_fsL6HMHqN0Ew5s4L1DfKkE,4568
117
+ mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py,sha256=SQ7dieSCOf1z42Wi1zDEii3poAT5wfyBrV43dXkAaaw,22
118
+ mns_scheduler/risk/major_violations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
+ mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py,sha256=Mf_jrNE7m2kVILfj-SukVpZ4d2a-BBZrXhPK1oR_vkw,5672
120
+ mns_scheduler/risk/self/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
+ mns_scheduler/risk/self/wei_pan_stock_api.py,sha256=ac_hhdwoK8-uI_ag40YEj4iTOkB8GZ9vzT9mB8Rlwbc,1899
122
+ mns_scheduler/risk/test/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
123
+ mns_scheduler/risk/test/fix_blask_list.py,sha256=IRDedHWuTi9y8EIZSwdiRxEUZcYAY3TH15GgJRmnQEw,1245
124
+ mns_scheduler/risk/transactions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
+ mns_scheduler/risk/transactions/transactions_check_api.py,sha256=8lXid7P8NTVW9aPKS-v6Tv0wiseCnasVQQzD9sR49XI,7379
126
+ mns_scheduler/self_choose/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
127
+ mns_scheduler/self_choose/ths_self_choose_service.py,sha256=g3w4DBE_BGo-ey4Sj_Z5wqjUugTrMBAjEpGcoDGPyHE,7155
128
+ mns_scheduler/trade/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
129
+ mns_scheduler/trade/auto_ipo_buy_api.py,sha256=jVe5ZiXwzkDy_j_4X4rUamSzJpmzhV16lNKwbeWgpQw,386
130
+ mns_scheduler/trade/auto_sell_service_api.py,sha256=A2RB3WFxVHqbNPaPvhIgO-3uaicFZVmBKUy2TsfMU90,4624
131
+ mns_scheduler/trade/sync_position_api.py,sha256=o73_qdh_2uzOed6HFzAipM5hKOLqVhThph2DcAri3Oc,4136
132
+ mns_scheduler/trade/auto_login/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
133
+ mns_scheduler/trade/auto_login/trader_auto_service.py,sha256=bsagj26s74Zv5OEyGahhBX_OK4Iuo5ZmuItsON9DDmY,795
134
+ mns_scheduler/trade/balance/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
135
+ mns_scheduler/trade/balance/ths_account_balance_service.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
136
+ mns_scheduler/trade/task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
137
+ mns_scheduler/trade/task/trader_task_service.py,sha256=1vdjfs-M9y0ana2OLwWdlkB9YS-hm9LrChlw3Ectyeg,2305
138
+ mns_scheduler/trade/tfp/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
139
+ mns_scheduler/trade/tfp/stock_tfp_info_sync.py,sha256=7sHUhvMW_5vEyfVhFGDP7It2F27STb0OcpNnBCQjZ8I,2574
140
+ mns_scheduler/zb/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
141
+ mns_scheduler/zb/stock_zb_pool_sync.py,sha256=YXXmofkOsXxTQSUboy7AfEQUeszXVop5oZxLKBqQpJE,1272
142
+ mns_scheduler/zt/__init__.py,sha256=Rzolrn2R5RZIj-eOmu9KcL6oZBY9Wjz_uBFXPlzirQc,1641
143
+ mns_scheduler/zt/connected_boards/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
144
+ mns_scheduler/zt/connected_boards/zt_five_boards_sync_api.py,sha256=HfjPHKD99fU9c37kSenEX2_qNvFAjQGgy8ERuacSxwk,10916
145
+ mns_scheduler/zt/export/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
146
+ mns_scheduler/zt/export/export_kcx_high_chg_open_data_to_excel.py,sha256=9LK1s2BCzsXLMAYMmiMAZsmz8iha88JVcp6SKqIW37s,4063
147
+ mns_scheduler/zt/high_chg/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
148
+ mns_scheduler/zt/high_chg/sync_high_chg_pool_service.py,sha256=rrvFgxduBTRdJig5KKd-BoepKpCn5SKDSRo6A4U3LFI,13329
149
+ mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py,sha256=IvP8tTtWTuMvTdIGFGLmhf9MH_Qfa8P5IpRuHfxTkdw,6351
150
+ mns_scheduler/zt/open_data/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
151
+ mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py,sha256=wZiqOre2UK9CxIR7dDk11DmqRY3n2_eE2pe0JfmMcjk,11616
152
+ mns_scheduler/zt/script/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
153
+ mns_scheduler/zt/script/fix_error_deal_day.py,sha256=7GrCfI_XCq5G69_17JS5i4FE0l3pwWVkL-ZnqmH5FVA,1624
154
+ mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py,sha256=k2nrBjG41LU4ASXsFwbceg_WaROyB85XBmuccmre7Z0,5571
155
+ mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=WX5ZlV0x2kkXiLTep8fcs2ZkWY5BMWS8lQv8xpq4DlY,1685
156
+ mns_scheduler/zt/script/sync_now_higt_chg_zt.py,sha256=7qUtn58ty9Vc6kY33BooCDIOojDGmSf9U5ncAtZt4cc,1853
157
+ mns_scheduler/zt/zt_pool/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
158
+ mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=HMPFX4vf80XEE5RIByF0GEXsWIKWyj7CRZTzHIecC0g,19192
159
+ mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=LI4o4_sovmLj1tMROPRQRCj5gaITKLGoYH-nUCuysbU,7501
160
+ mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=A-qohVTrnSd8Bs9gubjxScGjB7zEZOBLJuVZfuIwLeU,2445
161
+ mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
162
+ mns_scheduler/zz_task/data_sync_task.py,sha256=GbOJ0DhHVxTAz9W09POLZl3AzYFlTsPP7Q1VikSfQkY,23545
163
+ mns_scheduler/zz_task/compensation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
+ mns_scheduler/zz_task/compensation/compensate_task.py,sha256=Dyo66NcSnXZ-Cne4_v77BBb27SemAiuGXRLnvQ26X0E,6464
165
+ mns_scheduler/zz_task/compensation/compensate_task_one_day.py,sha256=jvaYpUS8AyJHgJTNchbco6eXMSzW1o4YNHgUBqrRTDk,5753
166
+ mns_scheduler-1.4.3.2.dist-info/METADATA,sha256=WFmT7oEk8SMVpymzgqqdx7mr0DeZ4UAeJRWCLMiS9wo,64
167
+ mns_scheduler-1.4.3.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
168
+ mns_scheduler-1.4.3.2.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
169
+ mns_scheduler-1.4.3.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: bdist_wheel (0.45.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,122 +0,0 @@
1
- import sys
2
- import os
3
-
4
- file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 17
6
- project_path = file_path[0:end]
7
- sys.path.append(project_path)
8
- import mns_common.api.ths.ths_stock_api as ths_stock_api
9
- import datetime
10
- import time
11
- import mns_common.api.msg.push_msg_api as push_msg_api
12
- from loguru import logger
13
- import mns_scheduler.concept.ths.common.ths_concept_sync_common_api as ths_concept_sync_common_api
14
- import pandas as pd
15
- from mns_common.db.MongodbUtil import MongodbUtil
16
-
17
- mongodb_util = MongodbUtil('27017')
18
-
19
-
20
- # app 端获取新增概念信息 接口不稳定
21
-
22
- # 获取最大概念代码
23
- def get_max_concept_name():
24
- query = {"symbol": {'$ne': 'null'}, "success": True}
25
- return mongodb_util.descend_query(query, 'ths_concept_list', 'symbol', 1)
26
-
27
-
28
- # 获取app端新概念名称
29
- def get_concept_detail_info_app(concept_code):
30
- return ths_stock_api.get_new_concept_code_app(concept_code)
31
-
32
-
33
- # 获取app端新概念详细列表
34
- def get_new_concept_detail_list_app(concept_code):
35
- new_concept_symbol_list = ths_stock_api.get_new_concept_list_app(concept_code)
36
- if new_concept_symbol_list is None or new_concept_symbol_list.shape == 0:
37
- return None
38
- new_concept_symbol_list = new_concept_symbol_list[ths_concept_sync_common_api.order_fields]
39
- new_concept_symbol_list['_id'] = str(concept_code) + '-' + new_concept_symbol_list['symbol']
40
- return new_concept_symbol_list
41
-
42
-
43
- # 推送新概念信息到微信
44
- def push_msg_to_we_chat_app(concept_code, concept_name):
45
- url = f'https://m.10jqka.com.cn/hq/industry.html#code={concept_code}&refCountId=R_55ba2964_186'
46
- msg = "概念代码:" + str(concept_code) + "," + "概念名称:" + concept_name + "," + "url: " + url
47
- title = "新增概念:" + str(concept_code) + "-" + concept_name
48
- push_msg_api.push_msg_to_wechat(title, msg)
49
-
50
-
51
- # 保存新概念信息到数据库
52
- def save_ths_concept_list_app(concept_code, concept_name, str_day, str_now_time, success):
53
- concept_code = int(concept_code)
54
- url = 'https://m.10jqka.com.cn/hq/industry.html#code=' + str(concept_code) + '&refCountId=R_55ba2964_186'
55
- ths_concept_list = pd.DataFrame([
56
- [concept_code, concept_code, concept_name, str_day, url, str_now_time, success],
57
- ], columns=['_id', 'symbol', 'name', 'str_day', 'url', 'str_now_time', 'success'])
58
-
59
- mongodb_util.save_mongo(ths_concept_list, 'ths_concept_list')
60
-
61
-
62
- # 同步新概念信息 从app爬取
63
- def sync_new_concept_data():
64
- max_concept_name = get_max_concept_name()
65
- try:
66
- now_date = datetime.datetime.now()
67
- str_day = now_date.strftime('%Y-%m-%d')
68
- str_now_time = now_date.strftime('%Y-%m-%d %H:%M:%S')
69
- concept_code = list(max_concept_name['symbol'])[0]
70
- success = list(max_concept_name['success'])[0]
71
- if success:
72
- concept_code = concept_code + 1
73
-
74
- new_concept_df = get_concept_detail_info_app(concept_code)
75
- if new_concept_df is None or new_concept_df.shape[0] == 0:
76
- time.sleep(1)
77
- return None
78
-
79
- concept_name = list(new_concept_df['concept_name'])[0]
80
- concept_code = list(new_concept_df['concept_code'])[0]
81
- if success:
82
- # 推送新概念信息到微信
83
- push_msg_to_we_chat_app(concept_code, concept_name)
84
- # 获取新概念详细信息
85
- new_concept_symbol_list = get_new_concept_detail_list_app(concept_code)
86
-
87
- if new_concept_symbol_list is None or new_concept_symbol_list.shape[0] == 0:
88
- # 保存新概念信息到数据库
89
- query = {"symbol": int(concept_code), "success": True}
90
- exist_success = mongodb_util.exist_data_query('ths_concept_list', query)
91
- if bool(1 - exist_success):
92
- save_ths_concept_list_app(concept_code, concept_name, str_day, str_now_time, False)
93
- time.sleep(1)
94
-
95
- else:
96
- # 保存新概念信息到数据库
97
- save_ths_concept_list_app(concept_code, concept_name, str_day, str_now_time, True)
98
- new_concept_symbol_list.loc[:, 'way'] = 'index_sync'
99
- # 保存新概念详细信息到数据库
100
- ths_concept_sync_common_api.save_ths_concept_detail(new_concept_symbol_list, concept_name, str_day,
101
- str_now_time, concept_code)
102
- time.sleep(1)
103
-
104
- except BaseException as e:
105
- logger.error("同步新概念异常:{},concept_code:{}", e, concept_code)
106
-
107
-
108
- if __name__ == '__main__':
109
- # myquery1 = {"symbol": {"$ne": 'null'}}
110
- # newvalues1 = {"$set": {"success": True}}
111
- #
112
- # mongodb_util_remote.update_many(myquery1, newvalues1, 'ths_concept_list')
113
- # concept_df = get_concept_detail_info_app('886033')
114
- df = get_new_concept_detail_list_app('883418')
115
- print(df)
116
- # sync_new_concept_data()
117
- # code = 886026
118
- # while True:
119
- # symbol_new_concept = get_concept_detail_info_app(code)
120
- # logger.info(symbol_new_concept)
121
- # new_concept_symbols = ths_stock_api.get_new_concept_list_app(code)
122
- # logger.info(new_concept_symbols)
@@ -1,99 +0,0 @@
1
- import sys
2
- import os
3
-
4
- file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 17
6
- project_path = file_path[0:end]
7
- sys.path.append(project_path)
8
-
9
- import akshare as ak
10
- from loguru import logger
11
- from datetime import datetime
12
- import mns_common.utils.date_handle_util as date_handle_util
13
- import mns_common.db.MongodbUtil as MongodbUtil
14
- import mns_scheduler.backup.em.em_new_concept_sync_common_api as em_new_concept_sync_common_api
15
- import mns_common.api.em.em_concept_index_api as em_concept_index_api
16
-
17
- mongodb_util = MongodbUtil('27017')
18
-
19
-
20
- # 同步概念k线
21
- def sync_concept_k_line(symbol, period, start_date, end_date, adjust):
22
- try:
23
- stock_board_concept_hist_em_df = ak.stock_board_concept_hist_em(
24
- symbol=symbol, period=period, start_date=start_date, end_date=end_date, adjust=adjust
25
- )
26
- stock_board_concept_hist_em_df = stock_board_concept_hist_em_df.rename(columns={"日期": "date",
27
- "开盘": "open",
28
- "收盘": "close",
29
- "最高": "high",
30
- "最低": "low",
31
- "涨跌幅": "chg",
32
- "涨跌额": "change",
33
- "成交量": "volume",
34
- "成交额": "amount",
35
- "振幅": "pct_chg",
36
- "换手率": "exchange"
37
- })
38
-
39
- return stock_board_concept_hist_em_df
40
- except BaseException as e:
41
- logger.error("同步东方财富概念信息异常:{}", e)
42
- return None
43
-
44
-
45
- # 同步所有历史概念数据
46
- def sync_his_em_concept():
47
- now_date = datetime.now()
48
- str_day = now_date.strftime('%Y-%m-%d')
49
-
50
- all_concept_list = em_concept_index_api.sync_all_concept()
51
- for stock_one in all_concept_list.itertuples():
52
- try:
53
- stock_one_df_copy = all_concept_list.loc[all_concept_list['concept_code'] == stock_one.concept_code]
54
- stock_one_df = stock_one_df_copy.copy()
55
-
56
- stock_board_concept_hist_em_df = sync_concept_k_line(
57
- symbol=stock_one.concept_name, period="daily", start_date="19980729",
58
- end_date=date_handle_util.no_slash_date(str_day), adjust="qfq"
59
- )
60
- stock_board_concept_hist_em_df = stock_board_concept_hist_em_df.sort_values(by=['date'], ascending=True)
61
- stock_board_concept_hist_em_df_first_day = stock_board_concept_hist_em_df.iloc[0:1]
62
-
63
- list_date = list(stock_board_concept_hist_em_df_first_day['date'])[0]
64
- str_now_time = list_date + " " + "09:10:00"
65
- stock_one_df.loc[:, 'str_now_time'] = str_now_time
66
-
67
- stock_one_df.loc[:, 'str_day'] = list_date
68
-
69
- stock_one_df['_id'] = stock_one_df['concept_code']
70
- stock_one_df['url'] = "http://quote.eastmoney.com/center/boardlist.html#boards-" + stock_one.concept_code
71
- stock_one_df['success'] = True
72
-
73
- mongodb_util.save_mongo(stock_one_df, 'em_concept_list')
74
- #
75
- concept_detail_list = em_new_concept_sync_common_api.sync_concept_detail(stock_one.concept_code)
76
-
77
- concept_detail_list.loc[:, 'concept_code'] = stock_one.concept_code
78
- concept_detail_list.loc[:, 'concept_name'] = stock_one.concept_name
79
- concept_detail_list.loc[:, 'str_day'] = list_date
80
-
81
- concept_detail_list.loc[:, 'str_now_time'] = str_now_time
82
-
83
- concept_detail_list['_id'] = concept_detail_list['symbol'] + '-' + concept_detail_list['concept_code']
84
-
85
- mongodb_util.insert_mongo(concept_detail_list, 'em_stock_concept_detail')
86
- except BaseException as e:
87
- logger.error("发生异常:{}", e)
88
- continue
89
-
90
-
91
- if __name__ == '__main__':
92
- # all_concept = sync_all_concept()
93
- # all_concept = all_concept.loc[~(all_concept['list_day'] == '-')]
94
- # all_concept = all_concept.sort_values(by=['list_day'], ascending=False)
95
- sync_his_em_concept()
96
- # stock_board_concept_hist_em_df = sync_concept_k_line(
97
- # symbol="车联网", period="daily", start_date="20220101", end_date="20221128", adjust=""
98
- # )
99
- # sync_concept_detail('MLOps概念')
@@ -1,139 +0,0 @@
1
- import sys
2
- import os
3
-
4
- file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 17
6
- project_path = file_path[0:end]
7
- sys.path.append(project_path)
8
-
9
- from mns_common.db.MongodbUtil import MongodbUtil
10
- import mns_common.api.msg.push_msg_api as push_msg_api
11
- import mns_common.api.em.em_concept_index_api as em_concept_index_api
12
-
13
-
14
- import pandas as pd
15
- import mns_common.utils.data_frame_util as data_frame_util
16
- from loguru import logger
17
- mongodb_util = MongodbUtil('27017')
18
-
19
- max_concept_code = 1200
20
-
21
-
22
- # 获取最大概念代码
23
- def get_max_concept_code():
24
- query = {"concept_code": {'$ne': 'null'}, "success": True}
25
- ths_concept_max = mongodb_util.descend_query(query, 'em_concept_list', 'concept_code', 1)
26
- if ths_concept_max.shape[0] == 0:
27
- concept_code = 'BK1134'
28
- else:
29
- concept_code = list(ths_concept_max['concept_code'])[0]
30
- concept_code = concept_code.replace('BK', '')
31
- return concept_code
32
-
33
-
34
- # 获取概念名称
35
- def get_concept_name(concept_code):
36
- concept_df = em_concept_index_api.sync_all_concept()
37
- concept_df_one = concept_df.loc[concept_df['concept_code'] == concept_code]
38
- if data_frame_util.is_empty(concept_df_one):
39
- return ""
40
- else:
41
- return concept_df_one
42
-
43
-
44
- # 获取概念详情
45
- def sync_concept_detail(concept_code):
46
- try:
47
- stock_board_concept_cons_em_df = em_concept_index_api.stock_board_concept_cons_em(concept_code)
48
- if data_frame_util.is_empty(stock_board_concept_cons_em_df):
49
- return None
50
- stock_board_concept_cons_em_df = stock_board_concept_cons_em_df.rename(columns={"序号": "index",
51
- "代码": "symbol",
52
- "名称": "name",
53
- "最新价": "now_price",
54
- "涨跌幅": "chg",
55
- "涨跌额": "change",
56
- "成交量": "volume",
57
- "成交额": "amount",
58
- "振幅": "pct_chg",
59
- "最高": "high",
60
- "最低": "low",
61
- "今开": "open",
62
- "昨收": "last_price",
63
- "换手率": "exchange",
64
- "市盈率-动态": 'pe',
65
- "市净率": 'pb'
66
- })
67
- return stock_board_concept_cons_em_df
68
- except BaseException as e:
69
- logger.error("同步东方财富概念信息异常:{}", e)
70
- return None
71
-
72
-
73
- # web端获取新概念消息推送
74
- def push_msg_to_we_chat_web(concept_code, concept_name):
75
- url = 'http://quote.eastmoney.com/center/boardlist.html#boards-' + str(concept_code)
76
- msg = "概念代码:" + str(concept_code) + "," + "概念名称:" + concept_name + "," + "url: " + url
77
- title = "新增东财概念:" + str(concept_code) + "-" + concept_name
78
- push_msg_api.push_msg_to_wechat(title, msg)
79
-
80
-
81
- # 保存新概念信息到数据库
82
- def save_em_concept_list(concept_code, concept_name, str_day, str_now_time, concept_df_one):
83
- url = 'https://quote.eastmoney.com/center/boardlist.html#boards-' + str(concept_code)
84
- if data_frame_util.is_empty(concept_df_one):
85
- em_concept_list = pd.DataFrame([
86
- [concept_code, concept_code, concept_name, str_day, url, str_now_time, True],
87
- ], columns=['_id', 'concept_code', 'concept_name', 'str_day', 'url', 'str_now_time', 'success'])
88
-
89
- mongodb_util.save_mongo(em_concept_list, 'em_concept_list')
90
- else:
91
- concept_df_one['_id'] = concept_df_one['concept_code']
92
- concept_df_one.loc[:, 'str_now_time'] = str_now_time
93
- concept_df_one.loc[:, 'str_day'] = str_day
94
- concept_df_one.loc[:, 'url'] = url
95
- concept_df_one.loc[:, 'success'] = True
96
- mongodb_util.save_mongo(concept_df_one, 'em_concept_list')
97
-
98
-
99
- # 保存新概念详细信息到数据库
100
- def save_ths_concept_detail(new_concept_symbol_df, concept_name, str_day, str_now_time, concept_code):
101
- new_concept_symbol_df['_id'] = new_concept_symbol_df['symbol'] + '-' + concept_code
102
-
103
- new_concept_symbol_df['concept_code'] = concept_code
104
- new_concept_symbol_df['concept_name'] = concept_name
105
- new_concept_symbol_df['str_day'] = str_day
106
- new_concept_symbol_df['str_now_time'] = str_now_time
107
-
108
- new_concept_symbol_list = list(new_concept_symbol_df['symbol'])
109
-
110
- query_company_info = {'symbol': {'$in': new_concept_symbol_list}}
111
- query_field = {"first_industry": 1, "first_industry": 1, "industry": 1, "company_type": 1, "flow_mv_sp": 1,
112
- "total_mv_sp": 1}
113
- company_info = mongodb_util.find_query_data_choose_field('company_info', query_company_info, query_field)
114
-
115
- company_info = company_info.set_index(['_id'], drop=True)
116
- new_concept_symbol_df = new_concept_symbol_df.set_index(['symbol'], drop=False)
117
-
118
- new_concept_symbol_df = pd.merge(new_concept_symbol_df, company_info, how='outer',
119
- left_index=True, right_index=True)
120
- query = {'concept_code': concept_code}
121
- exist_concept_detail = mongodb_util.find_query_data('em_stock_concept_detail', query)
122
- if data_frame_util.is_empty(exist_concept_detail):
123
- mongodb_util.save_mongo(new_concept_symbol_df, 'em_stock_concept_detail')
124
- else:
125
- exist_concept_detail_symbol_list = list(exist_concept_detail['symbol'])
126
- new_concept_symbol_df = new_concept_symbol_df.loc[~(
127
- new_concept_symbol_df['symbol'].isin(exist_concept_detail_symbol_list))]
128
- if new_concept_symbol_df.shape[0] > 0:
129
- mongodb_util.save_mongo(new_concept_symbol_df, 'em_stock_concept_detail')
130
- # update_company_info(new_concept_symbol_df, concept_code, concept_name, str_day)
131
- # # 公司缓存信息清除
132
- # common_service_fun_api.company_info_industry_cache_clear()
133
-
134
-
135
- if __name__ == '__main__':
136
- get_concept_name('BK1134')
137
-
138
- sync_concept_detail('BK1055')
139
- get_max_concept_code()
@@ -1,55 +0,0 @@
1
- import sys
2
- import os
3
-
4
- file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 17
6
- project_path = file_path[0:end]
7
- sys.path.append(project_path)
8
-
9
- import datetime
10
- import time
11
- from loguru import logger
12
- import mns_scheduler.backup.em.em_new_concept_sync_common_api as em_new_concept_sync_common_api
13
-
14
-
15
- # 同步东财新概念
16
- def sync_new_concept_data():
17
- concept_code = em_new_concept_sync_common_api.get_max_concept_code()
18
- # 装换为数字
19
- concept_code = int(concept_code)
20
-
21
- concept_code = concept_code + 1
22
-
23
- while concept_code < em_new_concept_sync_common_api.max_concept_code:
24
- try:
25
- now_date = datetime.datetime.now()
26
- str_day = now_date.strftime('%Y-%m-%d')
27
- str_now_time = now_date.strftime('%Y-%m-%d %H:%M:%S')
28
- str_concept_code = 'BK' + str(concept_code)
29
- new_concept_symbol_df = em_new_concept_sync_common_api.sync_concept_detail(str_concept_code)
30
- if new_concept_symbol_df is None or new_concept_symbol_df.shape[0] == 0:
31
- concept_code = concept_code + 1
32
- time.sleep(1)
33
- continue
34
- time.sleep(2)
35
- concept_df_one = em_new_concept_sync_common_api.get_concept_name(str_concept_code)
36
- # 获取概念名称
37
- concept_name = list(concept_df_one['concept_name'])[0]
38
-
39
- # 推送新概念信息到微信
40
- em_new_concept_sync_common_api.push_msg_to_we_chat_web(str_concept_code, concept_name)
41
- # 保存新概念信息到数据库
42
- em_new_concept_sync_common_api.save_em_concept_list(str_concept_code, concept_name, str_day, str_now_time,
43
- concept_df_one)
44
- # 保存新概念详细信息到数据库
45
- em_new_concept_sync_common_api.save_ths_concept_detail(new_concept_symbol_df, concept_name, str_day,
46
- str_now_time, str_concept_code)
47
-
48
- concept_code = concept_code + 1
49
- except BaseException as e:
50
- logger.error("同步新概念异常:{},concept_code:{}", e, concept_code)
51
- concept_code = concept_code + 1
52
-
53
-
54
- if __name__ == '__main__':
55
- sync_new_concept_data()
@@ -1,51 +0,0 @@
1
- import sys
2
- import os
3
-
4
- file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 17
6
- project_path = file_path[0:end]
7
- sys.path.append(project_path)
8
- from datetime import datetime
9
- import mns_common.api.ths.ths_stock_api as ths_stock_api
10
- import mns_common.utils.date_handle_util as date_handle_util
11
- import mns_common.utils.data_frame_util as data_frame_util
12
-
13
-
14
- def sync_wei_concept_data():
15
- now_date = datetime.now()
16
- str_day = now_date.strftime('%Y-%m-%d')
17
- number = 1
18
- result = None
19
- while True:
20
- wen_cai_concept_df = ths_stock_api.ths_concept_wen_cai(date_handle_util.no_slash_date(str_day),
21
- str(number))
22
- result = data_frame_util.merge_choose_data_no_drop(result, wen_cai_concept_df)
23
- if wen_cai_concept_df.shape[0] < 50:
24
- break
25
- number = number + 1
26
- result = result.rename(columns={"股票代码": "symbol",
27
- "股票简称": "name",
28
- "最新价": "price",
29
- "最新涨跌幅": "chg",
30
- "所属概念": "concepts",
31
- "所属概念数量": "concept_num"
32
- })
33
- result = result[[
34
- 'symbol',
35
- 'name',
36
- 'price',
37
- 'chg',
38
- 'concepts',
39
- 'concept_num',
40
- 'market_code',
41
- 'code',
42
- ]]
43
- result['chg'].fillna(0, inplace=True)
44
- result['price'].fillna(0, inplace=True)
45
- result['concepts'].fillna(0, inplace=True)
46
- return result
47
-
48
-
49
- if __name__ == '__main__':
50
- df = sync_wei_concept_data()
51
- print(df)