|
@@ -0,0 +1,345 @@
|
|
|
+import os
|
|
|
+from typing import Optional
|
|
|
+from dataset.util import ResultIter
|
|
|
+from datetime import tzinfo
|
|
|
+import datetime
|
|
|
+#import mysql.connector
|
|
|
+#from mysql.connector import Error
|
|
|
+import dataset
|
|
|
+import json
|
|
|
+from pytube import extract
|
|
|
+
|
|
|
+
|
|
|
+hhhMBPath = '../hhh-home-mb'
|
|
|
+hhhPCPath = '../hhh-home-pc'
|
|
|
+
|
|
|
+db = dataset.connect('mysql://hhh7796hhh:lYmWsu^ujcA1@hhh-v57.cmab1ctkglka.ap-northeast-2.rds.amazonaws.com:3306/xoops?charset=utf8mb4')
|
|
|
+# charset='utf8',
|
|
|
+# collation='utf8_unicode_ci'
|
|
|
+
|
|
|
+
|
|
|
+#@app.get("/genjson")
|
|
|
+def genjson(filename: str = "realtime.json"):
|
|
|
+
|
|
|
+ jData = json.load(open('../json/data.json', encoding='utf8'))
|
|
|
+
|
|
|
+ records = db.query("SELECT * FROM _had where (now() between start_time and end_time or ( start_time is null and end_time is null) or ( start_time = '0000-00-00 00:00:00' and end_time = '0000-00-00 00:00:00')) and onoff='1' and adtype like '首八大%' ")
|
|
|
+
|
|
|
+
|
|
|
+ for x in jData:
|
|
|
+
|
|
|
+ # 頂部輪播區-新刊頭
|
|
|
+ if x['id'] == 0:
|
|
|
+ records = db.query("""SELECT adlogo lo,adlogo_mobile mlo, adhref lk, adlogo_mobile_webp lomwebp, adlogo_webp dwebp FROM _had
|
|
|
+ WHERE adtype LIKE '新刊頭%'
|
|
|
+ AND onoff='1'
|
|
|
+ AND(NOW() BETWEEN start_time AND end_time OR(start_time='0000-00-00 00:00:00' and end_time='0000-00-00 00:00:00') or (start_time is null and end_time is NULL))
|
|
|
+ ORDER BY cast(SUBSTR(adtype,4) AS DECIMAL)""")
|
|
|
+
|
|
|
+ x["data"] = []
|
|
|
+ for c in records:
|
|
|
+ a = {'imgUrl': c['mlo'], 'link': str(
|
|
|
+ c['lk']), 'DimgUrl': c['lo'], 'webp': str(c['lomwebp']), 'Dwebp': str(c['dwebp'])}
|
|
|
+ x["data"].append(a)
|
|
|
+ # print(x["data"])
|
|
|
+
|
|
|
+ # 主要輪播區-首八大
|
|
|
+ if x['id'] == 1:
|
|
|
+ records = db.query("""SELECT adlogo lo,adlogo_mobile mlo, adhref lk, adlogo_mobile_webp lomwebp, adlogo_webp dwebp FROM _had
|
|
|
+ WHERE adtype LIKE '首八大%'
|
|
|
+ AND onoff='1'
|
|
|
+ AND(NOW() BETWEEN start_time AND end_time OR(start_time='0000-00-00 00:00:00' and end_time='0000-00-00 00:00:00') or (start_time is null and end_time is NULL))
|
|
|
+ ORDER BY cast(SUBSTR(adtype,4) AS DECIMAL)""")
|
|
|
+
|
|
|
+ x["data"] = []
|
|
|
+ for c in records:
|
|
|
+ a = {'imgUrl': c['mlo'], 'link': str(
|
|
|
+ c['lk']), 'DimgUrl': c['lo'], 'webp': str(c['lomwebp']), 'Dwebp': str(c['dwebp'])}
|
|
|
+ x["data"].append(a)
|
|
|
+ # print(x["data"])
|
|
|
+
|
|
|
+ #tab區塊-最夯設計, 影音實錄, 專欄文章
|
|
|
+ if x['id'] == 2:
|
|
|
+ x["data"] = []
|
|
|
+ records = db.query("""SELECT caption TT ,cover IMG, CONCAT('https://hhh.com.tw/cases/detail/',hcase_id,'/') LK, short_desc txt
|
|
|
+ from _hcase
|
|
|
+ left join _hdesigner ON _hcase.hdesigner_id=_hdesigner.hdesigner_id
|
|
|
+ WHERE
|
|
|
+ _hcase.onoff='1' AND _hdesigner.onoff='1'
|
|
|
+ AND(NOW() > sdate)
|
|
|
+ ORDER BY hcase_id DESC
|
|
|
+ LIMIT 3""")
|
|
|
+ a = {'tab': '最夯設計', 'data': []}
|
|
|
+ for c in records:
|
|
|
+ ad = {'imgUrl': c['IMG'], 'link': c['LK'],
|
|
|
+ 'title': c['TT'], 'description': c['txt']}
|
|
|
+ a['data'].append(ad)
|
|
|
+ x["data"].append(a)
|
|
|
+
|
|
|
+ records = db.query("""SELECT title TT,iframe IMG , CONCAT('https://hhh.com.tw/video-post.php?id=',hvideo_id) LK , name
|
|
|
+ from _hvideo
|
|
|
+ ORDER BY hvideo_id DESC
|
|
|
+ LIMIT 4""")
|
|
|
+ a = {'tab': '影音實錄', 'data': []}
|
|
|
+ cnt = 0
|
|
|
+ for c in records:
|
|
|
+ if cnt == 0:
|
|
|
+ cnt += 1
|
|
|
+ continue
|
|
|
+ tid = extract.video_id(c['IMG'])
|
|
|
+ timg = "https://img.youtube.com/vi/" + tid+"/hqdefault.jpg"
|
|
|
+ ad = {'imgUrl': timg, 'link': c['LK'],
|
|
|
+ 'title': c['name'], 'description': c['TT']}
|
|
|
+ a['data'].append(ad)
|
|
|
+ x["data"].append(a)
|
|
|
+
|
|
|
+ records = db.query("""SELECT ctitle TT,clogo IMG, CONCAT('https://hhh.com.tw/columns/detail/',hcolumn_id,'/') LK, cdesc
|
|
|
+ from _hcolumn
|
|
|
+ WHERE onoff='1'
|
|
|
+ AND NOW() > sdate
|
|
|
+ ORDER BY hcolumn_id DESC
|
|
|
+ LIMIT 3""")
|
|
|
+ a = {'tab': '專欄文章', 'data': []}
|
|
|
+ for c in records:
|
|
|
+ ad = {'imgUrl': c['IMG'], 'link': c['LK'],
|
|
|
+ 'title': c['TT'], 'description': c['cdesc']}
|
|
|
+ a['data'].append(ad)
|
|
|
+ x["data"].append(a)
|
|
|
+ # print(x["data"])
|
|
|
+
|
|
|
+ # 主題企劃區
|
|
|
+ if x['id'] == 3:
|
|
|
+ records = db.query("""SELECT logo lo, CONCAT('https://hhh.com.tw/topic/detail/',htopic_id,'/') lk, `desc`, title FROM _htopic
|
|
|
+WHERE onoff = '1'
|
|
|
+ORDER BY htopic_id DESC limit 3""")
|
|
|
+
|
|
|
+ x["data"] = []
|
|
|
+ for c in records:
|
|
|
+ a = {'imgUrl': c['lo'], 'link': str(
|
|
|
+ c['lk']), 'video': 'false', 'description': c['desc'], 'title': c['title']}
|
|
|
+ x["data"].append(a)
|
|
|
+ # print(x["data"])
|
|
|
+
|
|
|
+ # 編輯精選
|
|
|
+ if x['id'] == 4:
|
|
|
+ records = db.query("""SELECT hcolumn_id, ctitle, clogo,cdesc
|
|
|
+ FROM homepage_set
|
|
|
+ LEFT JOIN _hcolumn ON mapping_id = hcolumn_id
|
|
|
+ WHERE outer_set=8
|
|
|
+ AND homepage_set.onoff='Y'
|
|
|
+ AND(NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR(homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL))
|
|
|
+ ORDER BY inner_sort""")
|
|
|
+
|
|
|
+ x["data"] = []
|
|
|
+ for c in records:
|
|
|
+ a = {'imgUrl': c['clogo'], 'link': "https://hhh.com.tw/columns/detail/" + str(
|
|
|
+ c['hcolumn_id']) + "/", 'title': c['ctitle'], 'video': 'false', 'description': c['cdesc']}
|
|
|
+ x["data"].append(a)
|
|
|
+ # print(x["data"])
|
|
|
+
|
|
|
+ # 來選好物區
|
|
|
+ if x['id'] == 6:
|
|
|
+
|
|
|
+ records = db.query(
|
|
|
+ "SELECT max_row from outer_site_set WHERE title='來選好貨'")
|
|
|
+
|
|
|
+ maxrow = 1
|
|
|
+ for c in records:
|
|
|
+ maxrow = c['max_row']
|
|
|
+
|
|
|
+ records = db.query("""(SELECT theme_type, mapping_id, IFNULL(ifnull(ifnull(_hcase.caption,_hcolumn.ctitle),_hproduct.name),_hvideo.title) COLLATE utf8_general_ci caption , IFNULL(ifnull(_hcase.cover,_hcolumn.clogo),_hproduct.cover) COLLATE utf8_general_ci J, iframe , IFNULL(ifnull(ifnull(_hcase.short_desc,_hcolumn.cdesc),_hproduct.descr),_hvideo.`desc`) COLLATE utf8_general_ci short_desc
|
|
|
+, (case when theme_type='case' then CONCAT('https://hhh.com.tw/cases/detail/d/',mapping_id) when theme_type='column' then CONCAT('https://hhh.com.tw/columns/detail/',mapping_id) when theme_type='product' then CONCAT('https://hhh.com.tw/product-post.php?id=',mapping_id) when theme_type='video' then CONCAT('https://hhh.com.tw/video-post.php?id=',mapping_id) ELSE '' END) url
|
|
|
+-- SELECT *
|
|
|
+FROM homepage_set
|
|
|
+left join _hcase ON _hcase.hcase_id=homepage_set.mapping_id AND theme_type='case'-- AND _hcase.onoff = '1'
|
|
|
+LEFT JOIN _hproduct ON mapping_id = _hproduct.id AND theme_type='product'-- AND _hproduct.onoff = '1'
|
|
|
+LEFT JOIN _hcolumn ON mapping_id = _hcolumn.hcolumn_id AND theme_type='column'-- AND _hcolumn.onoff = '1'
|
|
|
+LEFT JOIN _hvideo ON mapping_id = _hvideo.hvideo_id AND theme_type='video'
|
|
|
+WHERE homepage_set.onoff='Y'
|
|
|
+AND outer_set = (SELECT oss_id from outer_site_set WHERE title='來選好貨')
|
|
|
+AND(NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR(homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL))
|
|
|
+ORDER BY outer_set, inner_sort)
|
|
|
+UNION
|
|
|
+(SELECT 'product', id, `name`, cover, NULL ,descr ,CONCAT('https://hhh.com.tw/product-post.php?id=',id) FROM _hproduct WHERE onoff='1' ORDER BY id DESC LIMIT """ + str(maxrow) + """)
|
|
|
+ LIMIT """ + str(maxrow))
|
|
|
+
|
|
|
+ x["data"] = []
|
|
|
+ for c in records:
|
|
|
+ print(c)
|
|
|
+ if c['iframe'] is None:
|
|
|
+ if isinstance(c['J'], bytearray) or isinstance(c['J'], bytes):
|
|
|
+ c['J'] = c['J'].decode('utf8')
|
|
|
+ if isinstance(c['caption'], bytearray) or isinstance(c['caption'], bytes):
|
|
|
+ c['caption'] = c['caption'].decode('utf8')
|
|
|
+ if isinstance(c['short_desc'], bytearray) or isinstance(c['short_desc'], bytes):
|
|
|
+ c['short_desc'] = c['short_desc'].decode('utf8')
|
|
|
+ a = {'imgUrl': c['J'], 'link': c['url'], 'title': c['caption'],
|
|
|
+ 'description': c['short_desc'], 'video': 'false'}
|
|
|
+ else:
|
|
|
+ tid = extract.video_id(str(c['iframe']))
|
|
|
+ timg = "https://img.youtube.com/vi/" + tid+"/hqdefault.jpg"
|
|
|
+ ccaption = ""
|
|
|
+ cdescription = ""
|
|
|
+ if isinstance(c['caption'], bytearray):
|
|
|
+ ccaption = str(c['caption'].decode('utf8'))
|
|
|
+ else:
|
|
|
+ ccaption = str(c['caption'])
|
|
|
+ if c['short_desc'] is not None:
|
|
|
+ if isinstance(c['short_desc'], bytes):
|
|
|
+ cdescription = str(c['short_desc'].decode('utf8'))
|
|
|
+ else:
|
|
|
+ cdescription = str(c['short_desc'])
|
|
|
+ a = {'imgUrl': timg, 'link': c['url'], 'title': ccaption,
|
|
|
+ 'description': cdescription, 'video': tid}
|
|
|
+ x["data"].append(a)
|
|
|
+ # print(x["data"])
|
|
|
+
|
|
|
+ # 本週推薦
|
|
|
+ if x['id'] == 7:
|
|
|
+ records = db.query(
|
|
|
+ "SELECT max_row from outer_site_set WHERE title='本週推薦'")
|
|
|
+
|
|
|
+ maxrow = 1
|
|
|
+ for c in records:
|
|
|
+ maxrow = c['max_row']
|
|
|
+
|
|
|
+ records = db.query("""SELECT theme_type, mapping_id, IFNULL(ifnull(ifnull(_hcase.caption,_hcolumn.ctitle),_hproduct.name),_hvideo.title) caption , IFNULL(ifnull(_hcase.cover,_hcolumn.clogo),_hproduct.cover) J, iframe , IFNULL(ifnull(ifnull(_hcase.short_desc,_hcolumn.cdesc),_hproduct.descr),_hvideo.`desc`) short_desc
|
|
|
+, (case when theme_type='case' then CONCAT('https://hhh.com.tw/cases/detail/d/',mapping_id) when theme_type='column' then CONCAT('https://hhh.com.tw/columns/detail/',mapping_id) when theme_type='product' then CONCAT('https://hhh.com.tw/product-post.php?id=',mapping_id) when theme_type='video' then CONCAT('https://hhh.com.tw/video-post.php?id=',mapping_id) ELSE '' END) url
|
|
|
+-- SELECT *
|
|
|
+FROM homepage_set
|
|
|
+left join _hcase ON _hcase.hcase_id=homepage_set.mapping_id AND theme_type='case'-- AND _hcase.onoff = '1'
|
|
|
+LEFT JOIN _hproduct ON mapping_id = _hproduct.id AND theme_type='product'-- AND _hproduct.onoff = '1'
|
|
|
+LEFT JOIN _hcolumn ON mapping_id = _hcolumn.hcolumn_id AND theme_type='column'-- AND _hcolumn.onoff = '1'
|
|
|
+LEFT JOIN _hvideo ON mapping_id = _hvideo.hvideo_id AND theme_type='video'
|
|
|
+WHERE homepage_set.onoff='Y'
|
|
|
+AND outer_set = (SELECT oss_id from outer_site_set WHERE title='本週推薦')
|
|
|
+AND(NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR(homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL))
|
|
|
+ORDER BY outer_set, inner_sort
|
|
|
+ LIMIT """ + str(maxrow))
|
|
|
+
|
|
|
+ x["data"] = []
|
|
|
+ for c in records:
|
|
|
+ if c['iframe'] is None:
|
|
|
+ if isinstance(c['J'], bytearray) or isinstance(c['J'], bytes):
|
|
|
+ c['J'] = c['J'].decode('utf8')
|
|
|
+ if isinstance(c['caption'], bytearray) or isinstance(c['caption'], bytes):
|
|
|
+ c['caption'] = c['caption'].decode('utf8')
|
|
|
+ if isinstance(c['short_desc'], bytearray) or isinstance(c['short_desc'], bytes):
|
|
|
+ c['short_desc'] = c['short_desc'].decode('utf8')
|
|
|
+ a = {'imgUrl': c['J'], 'link': c['url'], 'title': c['caption'],
|
|
|
+ 'description': c['short_desc'], 'video': 'false'}
|
|
|
+ else:
|
|
|
+ tid = extract.video_id(str(c['iframe']))
|
|
|
+ timg = "https://img.youtube.com/vi/" + tid+"/hqdefault.jpg"
|
|
|
+ ccaption = ""
|
|
|
+ cdescription = ""
|
|
|
+ if isinstance(c['caption'], bytearray):
|
|
|
+ ccaption = str(c['caption'].decode('utf8'))
|
|
|
+ else:
|
|
|
+ ccaption = str(c['caption'])
|
|
|
+ if c['short_desc'] is not None:
|
|
|
+ if isinstance(c['short_desc'], bytes):
|
|
|
+ cdescription = str(c['short_desc'].decode('utf8'))
|
|
|
+ else:
|
|
|
+ cdescription = str(c['short_desc'])
|
|
|
+ a = {'imgUrl': timg, 'link': c['url'], 'title': ccaption,
|
|
|
+ 'description': cdescription, 'video': tid}
|
|
|
+ x["data"].append(a)
|
|
|
+ # print(x["data"])
|
|
|
+
|
|
|
+ # 粉絲推薦
|
|
|
+ if x['id'] == 8:
|
|
|
+
|
|
|
+ records = db.query(
|
|
|
+ "SELECT max_row from outer_site_set WHERE title='粉絲推薦'")
|
|
|
+
|
|
|
+ maxrow = 1
|
|
|
+ for c in records:
|
|
|
+ maxrow = c['max_row']
|
|
|
+
|
|
|
+ records = db.query("""SELECT theme_type, mapping_id, IFNULL(ifnull(ifnull(_hcase.caption,_hcolumn.ctitle),_hproduct.name),_hvideo.title) caption , IFNULL(ifnull(_hcase.cover,_hcolumn.clogo),_hproduct.cover) J, iframe , IFNULL(ifnull(ifnull(_hcase.short_desc,_hcolumn.cdesc),_hproduct.descr),_hvideo.`desc`) short_desc
|
|
|
+, (case when theme_type='case' then CONCAT('https://hhh.com.tw/cases/detail/d/',mapping_id) when theme_type='column' then CONCAT('https://hhh.com.tw/columns/detail/',mapping_id) when theme_type='product' then CONCAT('https://hhh.com.tw/product-post.php?id=',mapping_id) when theme_type='video' then CONCAT('https://hhh.com.tw/video-post.php?id=',mapping_id) ELSE '' END) url
|
|
|
+-- SELECT *
|
|
|
+FROM homepage_set
|
|
|
+left join _hcase ON _hcase.hcase_id=homepage_set.mapping_id AND theme_type='case'-- AND _hcase.onoff = '1'
|
|
|
+LEFT JOIN _hproduct ON mapping_id = _hproduct.id AND theme_type='product'-- AND _hproduct.onoff = '1'
|
|
|
+LEFT JOIN _hcolumn ON mapping_id = _hcolumn.hcolumn_id AND theme_type='column'-- AND _hcolumn.onoff = '1'
|
|
|
+LEFT JOIN _hvideo ON mapping_id = _hvideo.hvideo_id AND theme_type='video'
|
|
|
+WHERE homepage_set.onoff='Y'
|
|
|
+AND outer_set = (SELECT oss_id from outer_site_set WHERE title='粉絲推薦')
|
|
|
+AND(NOW() BETWEEN homepage_set.start_time AND homepage_set.end_time OR(homepage_set.start_time='0000-00-00 00:00:00' and homepage_set.end_time='0000-00-00 00:00:00') or (homepage_set.start_time is null and homepage_set.end_time is NULL))
|
|
|
+ORDER BY outer_set, inner_sort
|
|
|
+ LIMIT """ + str(maxrow))
|
|
|
+
|
|
|
+ x["data"] = []
|
|
|
+ for c in records:
|
|
|
+ if c['iframe'] is None:
|
|
|
+ if isinstance(c['J'], bytearray) or isinstance(c['J'], bytes):
|
|
|
+ c['J'] = c['J'].decode('utf8')
|
|
|
+ if isinstance(c['caption'], bytearray) or isinstance(c['caption'], bytes):
|
|
|
+ c['caption'] = c['caption'].decode('utf8')
|
|
|
+ if isinstance(c['short_desc'], bytearray) or isinstance(c['short_desc'], bytes):
|
|
|
+ c['short_desc'] = c['short_desc'].decode('utf8')
|
|
|
+ a = {'imgUrl': c['J'], 'link': c['url'], 'title': c['caption'],
|
|
|
+ 'description': c['short_desc'], 'video': 'false'}
|
|
|
+ else:
|
|
|
+ tid = extract.video_id(str(c['iframe']))
|
|
|
+ timg = "https://img.youtube.com/vi/" + tid+"/hqdefault.jpg"
|
|
|
+ ccaption = ""
|
|
|
+ cdescription = ""
|
|
|
+ if isinstance(c['caption'], bytearray):
|
|
|
+ ccaption = str(c['caption'].decode('utf8'))
|
|
|
+ else:
|
|
|
+ ccaption = str(c['caption'])
|
|
|
+ if c['short_desc'] is not None:
|
|
|
+ if isinstance(c['short_desc'], bytes):
|
|
|
+ cdescription = str(c['short_desc'].decode('utf8'))
|
|
|
+ else:
|
|
|
+ cdescription = str(c['short_desc'])
|
|
|
+ a = {'imgUrl': timg, 'link': c['url'], 'title': ccaption,
|
|
|
+ 'description': cdescription, 'video': tid}
|
|
|
+ x["data"].append(a)
|
|
|
+ # print(x["data"])
|
|
|
+
|
|
|
+ if x['id'] == 9:
|
|
|
+ records = db.query(
|
|
|
+ "SELECT id, (case when youtube_title = '' OR youtube_title IS NULL then (SELECT title FROM _hvideo ORDER BY hvideo_id DESC LIMIT 1) ELSE youtube_title END) T, (case when youtube_id = '' OR youtube_id IS NULL then (SELECT iframe FROM _hvideo ORDER BY hvideo_id DESC LIMIT 1) ELSE youtube_id end) Y FROM site_setup")
|
|
|
+
|
|
|
+ for c in records:
|
|
|
+ x['title'] = ""
|
|
|
+ if isinstance(c['T'], bytearray):
|
|
|
+ x['title'] = str(c['T'].decode('utf8'))
|
|
|
+ else:
|
|
|
+ x['title'] = str(c['T'])
|
|
|
+ x['yt'] = extract.video_id(str(c['Y']))
|
|
|
+ # print(id)
|
|
|
+
|
|
|
+ if x['id'] == 10:
|
|
|
+ records = db.query(
|
|
|
+ "SELECT all_search_tag ast FROM site_setup")
|
|
|
+
|
|
|
+ x["data"] = []
|
|
|
+ for c in records:
|
|
|
+ x["data"] = c['ast'].split(',')
|
|
|
+ # print(id)
|
|
|
+
|
|
|
+ # print(jData)
|
|
|
+ if not os.path.exists(hhhMBPath):
|
|
|
+ os.mkdir(hhhMBPath)
|
|
|
+ with open('../json/' + filename, 'w', encoding='utf-8') as f:
|
|
|
+ json.dump(jData, f, ensure_ascii=False, indent=4)
|
|
|
+
|
|
|
+ if not os.path.exists(hhhPCPath):
|
|
|
+ os.mkdir(hhhPCPath)
|
|
|
+ with open('../json/' + filename, 'w', encoding='utf-8') as f:
|
|
|
+ json.dump(jData, f, ensure_ascii=False, indent=4)
|
|
|
+
|
|
|
+ return jData
|
|
|
+
|
|
|
+
|
|
|
+genjson("realtime.json")
|
|
|
+cmd="""curl -X POST "https://api.cloudflare.com/client/v4/zones/8cb58022ad5743cfd9f088d5e3a261eb/purge_cache" -H "X-Auth-Email: web.dept.hhh@gmail.com" -H "X-Auth-Key:63e51d9a1638d66afcbfc3320aabec52304de" -H "Content-Type: application/json" --data '{"files":["https://m.hhh.com.tw/hhh-home-mb/json/realtime.json"]}'"""
|
|
|
+os.system(cmd)
|
|
|
+
|
|
|
+#""" if __name__ == "__main__":
|
|
|
+# uvicorn.run(app, host="0.0.0.0", port=8000) """
|