mns-scheduler 1.0.1.1__py3-none-any.whl → 1.0.1.3__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.

Potentially problematic release.


This version of mns-scheduler might be problematic. Click here for more details.

@@ -40,9 +40,8 @@ def push_msg_to_we_chat_web(concept_code, concept_name, url):
40
40
  def save_ths_concept_list(concept_code, concept_name, str_day, str_now_time):
41
41
  url = 'http://q.10jqka.com.cn/thshy/detail/code/' + str(concept_code)
42
42
  ths_concept_list = pd.DataFrame([
43
- [concept_code, concept_code, concept_name, str_day, url, str_now_time, True],
44
- ], columns=['_id', 'symbol', 'name', 'str_day', 'url', 'str_now_time', 'success'])
45
- ths_concept_list['name'] = ths_concept_list['name'].replace(" ", "")
43
+ [concept_code, concept_code, concept_name, str_day, url, str_now_time, True, True],
44
+ ], columns=['_id', 'symbol', 'name', 'str_day', 'url', 'str_now_time', 'success', 'valid'])
46
45
  mongodb_util.save_mongo(ths_concept_list, 'ths_concept_list')
47
46
 
48
47
 
@@ -18,7 +18,7 @@ project_path = file_path[0:end]
18
18
  sys.path.append(project_path)
19
19
  mongodb_util = MongodbUtil('27017')
20
20
  # 分页大小
21
- MAX_PAGE_NUMBER = 2500
21
+ MAX_PAGE_NUMBER = 12500
22
22
  # 获取单只股票新增概念
23
23
 
24
24
  db_name = 'ths_stock_concept_detail_app'
@@ -81,7 +81,7 @@ def choose_type_new_concept(ths_concept_df):
81
81
 
82
82
 
83
83
  # 同步新概念 多线程实现
84
- def update_symbol_new_update(symbol_df, page_number):
84
+ def update_symbol_new_concept(symbol_df, page_number):
85
85
  for stock_one in symbol_df.itertuples():
86
86
  try:
87
87
  ths_concept_json = ths_stock_api.get_symbol_add_new_concept(stock_one.symbol)
@@ -159,7 +159,7 @@ def sync_symbol_all_concept(symbol):
159
159
  end_count = (page + 1) * MAX_PAGE_NUMBER
160
160
  begin_count = page * MAX_PAGE_NUMBER
161
161
  page_df = real_time_quotes_now.loc[begin_count:end_count]
162
- thread = threading.Thread(target=update_symbol_new_update, args=(page_df, page_number))
162
+ thread = threading.Thread(target=update_symbol_new_concept, args=(page_df, page_number))
163
163
  threads.append(thread)
164
164
  thread.start()
165
165
 
@@ -30,54 +30,52 @@ def sync_new_ths_concept_by_ak_api():
30
30
  })
31
31
 
32
32
  stock_board_concept_name_ths_df['str_day'].fillna(datetime(1970, 1, 1), inplace=True)
33
+ stock_board_concept_name_ths_df.concept_name = stock_board_concept_name_ths_df.concept_name.str.replace('(', '(')
34
+ stock_board_concept_name_ths_df.concept_name = stock_board_concept_name_ths_df.concept_name.str.replace(')', ')')
33
35
 
34
36
  stock_board_concept_name_ths_df['str_day'] = stock_board_concept_name_ths_df['str_day'].apply(
35
37
  lambda x: datetime.strftime(x, '%Y-%m-%d'))
36
38
 
37
39
  # 同花顺概念列表
38
- ths_concept_list = mongodb_util.find_all_data('ths_concept_list')
40
+ ths_concept_list_exist = mongodb_util.find_all_data('ths_concept_list')
39
41
 
40
42
  for concept_one in stock_board_concept_name_ths_df.itertuples():
41
43
  try:
42
- exist_concept_df_one = ths_concept_list.loc[ths_concept_list['name'] == concept_one.concept_name]
43
- str_now_time = concept_one.str_day + " 00:00:00"
44
+ exist_concept_df_one = ths_concept_list_exist.loc[
45
+ (ths_concept_list_exist['name'] == concept_one.concept_name)
46
+ | (ths_concept_list_exist['web_concept_code'] == concept_one.concept_code)]
47
+ now_date = datetime.now()
48
+ str_now_time = now_date.strftime('%Y-%m-%d %H:%M:%S')
44
49
  str_day = concept_one.str_day
45
50
  if data_frame_util.is_empty(exist_concept_df_one):
51
+ concept_code = concept_one.concept_code
52
+
46
53
  diff_one = {
47
- '_id': int(concept_one.concept_code),
48
- 'symbol': int(concept_one.concept_code),
54
+ '_id': int(concept_code),
55
+ 'symbol': int(concept_code),
49
56
  'name': concept_one.concept_name,
50
57
  'url': concept_one.url,
51
58
  'str_day': str_day,
52
59
  'success': True,
53
60
  'str_now_time': str_now_time,
54
61
  'web_concept_code': concept_one.concept_code,
55
- 'web_concept_url': concept_one.url
62
+ 'web_concept_url': concept_one.url,
63
+ 'valid': True
56
64
  }
57
65
  diff_one_df = pd.DataFrame(diff_one, index=[1])
58
66
  mongodb_util.save_mongo(diff_one_df, 'ths_concept_list')
59
67
  url = 'http://q.10jqka.com.cn/gn/detail/code/' + str(concept_one.concept_code)
60
68
  # 推送新概念信息到微信
61
- ths_concept_sync_common_api.push_msg_to_we_chat_web(concept_one.concept_code, concept_one.concept_name,
69
+ ths_concept_sync_common_api.push_msg_to_we_chat_web(concept_code, concept_one.concept_name,
62
70
  url)
63
- new_concept_symbol_df = get_concept_detail_info_web(concept_one.concept_code)
71
+ new_concept_symbol_df = get_concept_detail_info_web(concept_code)
64
72
  if new_concept_symbol_df is None or new_concept_symbol_df.shape[0] == 0:
65
73
  return None
66
74
  new_concept_symbol_df.loc[:, 'way'] = 'index_sync'
67
75
  ths_concept_sync_common_api.save_ths_concept_detail(new_concept_symbol_df, concept_one.concept_name,
68
76
  str_day,
69
- str_now_time, concept_one.concept_code)
70
-
77
+ str_now_time, concept_code)
71
78
  logger.info("新增同花顺新概念:{}", concept_one.concept_name)
72
- else:
73
- # 更新概念关联关系
74
- web_concept_code = concept_one.concept_code
75
- web_concept_url = concept_one.url
76
- concept_code = list(exist_concept_df_one['symbol'])[0]
77
-
78
- update_query = {'_id': concept_code}
79
- new_values = {"$set": {"web_concept_code": int(web_concept_code), 'web_concept_url': web_concept_url}}
80
- mongodb_util.update_many(update_query, new_values, 'ths_concept_list')
81
79
  except BaseException as e:
82
80
  logger.error("同步概念:{},信息异常:{}", concept_one.concept_name, e)
83
81
 
@@ -93,4 +91,5 @@ def get_concept_detail_info_web(concept_code):
93
91
 
94
92
 
95
93
  if __name__ == '__main__':
94
+ get_concept_detail_info_web(886068)
96
95
  sync_new_ths_concept_by_ak_api()
@@ -53,6 +53,9 @@ def sync_new_concept_data_by_web():
53
53
  continue
54
54
  time.sleep(2)
55
55
  concept_name = ths_stock_api.get_concept_name(concept_code)
56
+ concept_name = concept_name.replace('(', '(')
57
+ concept_name = concept_name.replace(')', ')')
58
+
56
59
  url = 'http://q.10jqka.com.cn/thshy/detail/code/' + str(concept_code)
57
60
  # 推送新概念信息到微信
58
61
  ths_concept_sync_common_api.push_msg_to_we_chat_web(concept_code, concept_name, url)
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.0.1.1
3
+ Version: 1.0.1.3
4
4
 
@@ -15,13 +15,13 @@ mns_scheduler/concept/ths/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlIm
15
15
  mns_scheduler/concept/ths/app/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
16
16
  mns_scheduler/concept/ths/app/ths_new_concept_sync_app.py,sha256=yBr3RN24zCWgmRVCKgY6fwm0tdJA5XKliK3CSB-75tY,5148
17
17
  mns_scheduler/concept/ths/common/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
18
- mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py,sha256=f3g8mx1Ii5QrPVStsnXa68hrsGlvhbVc9v4gOdS9SWk,10349
18
+ mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py,sha256=PCwqAwJs5bAg2U4kyH6xs8ETJN7svHk8LLrRcn4R9xQ,10290
19
19
  mns_scheduler/concept/ths/symbol/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
20
20
  mns_scheduler/concept/ths/symbol/sync_concept_all_symbols_api.py,sha256=ipRtiihpHlbxuces7YpHfvBtCDxgzrVXjcCKZiFBPaw,1928
21
- mns_scheduler/concept/ths/symbol/sync_symbol_all_concepts_api.py,sha256=-FyzLcuP8H-_G6IyH1rLb1078apS4HtaMsksyX1D37I,8261
21
+ mns_scheduler/concept/ths/symbol/sync_symbol_all_concepts_api.py,sha256=9-cp2ZmZJ7ZQwQUJNVBY99DthA-7gtwvDRQxIQ-QF4Q,8264
22
22
  mns_scheduler/concept/ths/web/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
23
- mns_scheduler/concept/ths/web/sync_ths_concept_by_ak_api.py,sha256=z5zQUWp4QJFprCdpw8ky16MvncdW5rNUZyYMOWfKOzk,5017
24
- mns_scheduler/concept/ths/web/sync_ths_new_concept_by_web_api.py,sha256=U5e-TJtNTuM5ux2QB6mbndyITMsV79GYv2IoAXN_7gg,3481
23
+ mns_scheduler/concept/ths/web/sync_ths_concept_by_ak_api.py,sha256=Ge5fQZ8cSfZhkXUW-lbzjs6zM5ilZCFnO2fw_ZopQIA,4996
24
+ mns_scheduler/concept/ths/web/sync_ths_new_concept_by_web_api.py,sha256=Yv3Gp6qwAnpg3qM_MguWNSH7NDpxQkvH_SLWcsJfYo8,3605
25
25
  mns_scheduler/concept/ths/wen_cai/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
26
26
  mns_scheduler/concept/ths/wen_cai/wen_cai_concept_sync.py,sha256=boKtgOIXIsRny5n1keZm4luDFCiooudbPDsEFIGImIw,1747
27
27
  mns_scheduler/db/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -59,7 +59,7 @@ mns_scheduler/zt/zt_pool_sync_api.py,sha256=AhWYrpHzO3KOKecyGqQFvopYd2KFmf1ykRiv
59
59
  mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
60
60
  mns_scheduler/zz_task/data_sync_task.py,sha256=jWwmUZ47ZZ6zdVriqiftkV22b8iyfYtlsGbX8lIFDTo,13619
61
61
  mns_scheduler/zz_task/sync_realtime_quotes_task.py,sha256=DN3bq2XCDZC-PHlbD2NTog48bR44EruIEc2QVGKg7Tk,932
62
- mns_scheduler-1.0.1.1.dist-info/METADATA,sha256=Qhib_Y49WyCDAQGe3v64mqGImHwkI6LNlxC-vfHL9pk,64
63
- mns_scheduler-1.0.1.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
64
- mns_scheduler-1.0.1.1.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
65
- mns_scheduler-1.0.1.1.dist-info/RECORD,,
62
+ mns_scheduler-1.0.1.3.dist-info/METADATA,sha256=CQ9Zml0ww6pRAXdKR52iZnQSMSo3nq_5LTuybAttAuo,64
63
+ mns_scheduler-1.0.1.3.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
64
+ mns_scheduler-1.0.1.3.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
65
+ mns_scheduler-1.0.1.3.dist-info/RECORD,,