4
4
import json
5
5
sys .path .append (os .path .abspath (os .path .join (os .path .dirname (__file__ ), '..' )))
6
6
from models .SQLiteManager import SQLiteManager
7
+ from models .OracleManagerSQL import OracleManagerSQL
8
+
7
9
from models .FirmInfo import FirmInfo
8
10
from modules .LS_0 import LS_detail
9
11
from modules .DBfi_19 import fetch_detailed_url
@@ -15,60 +17,67 @@ async def update_firm_telegram_url_by_date(date_str=None):
15
17
firm_names 배열의 모든 인덱스를 순회하며, telegram_update_required가 True인 경우 TELEGRAM_URL 컬럼을 업데이트합니다.
16
18
"""
17
19
print ('update_firm_telegram_url_by_date' )
18
- db = SQLiteManager ()
20
+ sqliteDB = SQLiteManager ()
21
+ oracleDB = OracleManagerSQL ()
19
22
all_records = [] # 모든 회사의 레코드를 저장할 리스트
20
23
21
- # firm_names 배열의 모든 인덱스를 순회
22
24
for sec_firm_order in range (len (FirmInfo .firm_names )):
23
25
firm_info = FirmInfo (sec_firm_order = sec_firm_order , article_board_order = 0 )
24
26
25
- # 회사 이름이 공백이 아니고, telegram_update_required가 True인 경우만 처리
26
27
if firm_info .get_firm_name () and firm_info .telegram_update_required :
27
- records = await db . fetch_daily_articles_by_date ( firm_info = firm_info , date_str = date_str )
28
- print ( f"Total records count { len ( records ) } " )
29
- # records가 빈 리스트가 아닌 경우에만 처리 진행
28
+ # === SQLite 처리 ===
29
+ records = await sqliteDB . fetch_daily_articles_by_date ( firm_info = firm_info , date_str = date_str )
30
+ print ( f"[SQLite] Total records count: { len ( records ) } " )
30
31
if records :
31
- print (f"Fetched records for SEC_FIRM_ORDER { sec_firm_order } : records count { len ( records ) } " )
32
+ print (f"[SQLite] Fetched records for SEC_FIRM_ORDER { sec_firm_order } " )
32
33
all_records .extend (records )
33
34
34
- # 조건에 따라 추가 작업 수행
35
35
if sec_firm_order == 19 :
36
- # sec_firm_order가 19인 경우 업데이트 수행
37
- print ("Updating TELEGRAM_URL for records with SEC_FIRM_ORDER 19" )
38
- update_records = await fetch_detailed_url (records ) # all_records 대신 records 사용
36
+ print ("Updating TELEGRAM_URL for SEC_FIRM_ORDER 19 in SQLite" )
37
+ update_records = await fetch_detailed_url (records )
39
38
for record in update_records :
40
- await db .update_telegram_url (record ['id' ], record ['TELEGRAM_URL' ])
41
- print (f"Updated TELEGRAM_URL for id { record ['id' ] } with { record [ 'TELEGRAM_URL ' ]} " )
42
-
39
+ await sqliteDB .update_telegram_url (record ['id' ], record ['TELEGRAM_URL' ])
40
+ print (f"[SQLite] Updated TELEGRAM_URL for id { record ['id' ]} " )
41
+
43
42
elif sec_firm_order == 0 :
44
- # sec_firm_order가 0인 경우 추가 작업 수행
45
- print ("Additional processing for SEC_FIRM_ORDER 0" )
46
- print (f"records{ len (records )} " )
43
+ print ("Additional processing for SEC_FIRM_ORDER 0 in SQLite" )
47
44
for record in records :
48
- await LS_detail (articles = record , firm_info = firm_info ) # all_records 대신 records 사용
49
- r = await db .update_telegram_url (record ['id' ], record ['TELEGRAM_URL' ], record ['ARTICLE_TITLE' ])
45
+ await LS_detail (articles = record , firm_info = firm_info )
46
+ r = await sqliteDB .update_telegram_url (record ['id' ], record ['TELEGRAM_URL' ], record ['ARTICLE_TITLE' ])
50
47
print (r )
51
48
52
- # update_records = LS_detail(articles=records, firm_info=firm_info) # all_records 대신 records 사용
53
-
54
- # for record in update_records:
55
- # await db.update_telegram_url(record['id'], record['TELEGRAM_URL'], record['ARTICLE_TITLE'])
56
- # print(f"Updated TELEGRAM_URL for id {record['id']} with {record['TELEGRAM_URL']}")
49
+ # === Oracle 처리 ===
50
+ oracle_records = await oracleDB .fetch_daily_articles_by_date (firm_info = firm_info , date_str = date_str )
51
+ print (f"[Oracle] Total records count: { len (oracle_records )} " )
52
+ if oracle_records :
53
+ print (f"[Oracle] Fetched records for SEC_FIRM_ORDER { sec_firm_order } " )
54
+ all_records .extend (oracle_records )
55
+
56
+ if sec_firm_order == 19 :
57
+ print ("Updating TELEGRAM_URL for SEC_FIRM_ORDER 19 in Oracle" )
58
+ update_records = await fetch_detailed_url (oracle_records )
59
+ for record in update_records :
60
+ await oracleDB .update_telegram_url (record ['id' ], record ['TELEGRAM_URL' ])
61
+ print (f"[Oracle] Updated TELEGRAM_URL for id { record ['id' ]} " )
62
+
63
+ elif sec_firm_order == 0 :
64
+ print ("Additional processing for SEC_FIRM_ORDER 0 in Oracle" )
65
+ for record in oracle_records :
66
+ await LS_detail (articles = record , firm_info = firm_info )
67
+ r = await oracleDB .update_telegram_url (record ['id' ], record ['TELEGRAM_URL' ], record ['ARTICLE_TITLE' ])
68
+ print (r )
57
69
58
- # 전체 회사들의 레코드가 JSON 리스트로 모임
59
- if all_records : # all_records가 비어 있지 않은 경우에만 JSON 변환 및 출력 수행
70
+ if all_records :
60
71
json_records = json .dumps (all_records , indent = 2 )
61
72
print (f"Combined JSON Records size:\n { len (json_records )} " )
62
73
74
+ # 메인 함수
63
75
# 메인 함수
64
76
async def main ():
65
- # firm_info = FirmInfo(
66
- # sec_firm_order=19,
67
- # article_board_order=0
68
- # )
69
- # TELEGRAM_URL 업데이트 함수 호출
70
- print ('?????????????' )
77
+ print ('Starting TELEGRAM_URL update for all firms...' )
71
78
await update_firm_telegram_url_by_date ()
79
+ print ('All updates completed.' )
80
+
72
81
73
82
if __name__ == "__main__" :
74
83
asyncio .run (main ())
0 commit comments