43 lines
1.0 KiB
Plaintext
43 lines
1.0 KiB
Plaintext
# coding:utf-8
|
|
"""
|
|
更新事件表视图
|
|
"""
|
|
import json
|
|
import os
|
|
|
|
from settings import settings
|
|
|
|
game = ''
|
|
db = settings.GAME
|
|
svrid_file = f'{game}_svrid.json'
|
|
server_list_url = f'http://gametools.legu.cc/?app=api&act=getServerList&game={game}'
|
|
|
|
import pandas as pd
|
|
from clickhouse_driver import Client
|
|
|
|
client = Client(**settings.CK_CONFIG)
|
|
|
|
df = pd.read_json(server_list_url)
|
|
df = df[~df['hostname'].isin(['119.3.89.14', '119.3.105.109'])]
|
|
serverid = tuple((str(i) for i in df['serverid'].to_list()))
|
|
|
|
# if os.path.exists(svrid_file):
|
|
# with open(svrid_file, 'r') as f:
|
|
# old_svrid = json.load(f)
|
|
# if set(old_svrid) == set(serverid):
|
|
# exit(0)
|
|
|
|
sql = f"""drop table if exists {db}.event_view"""
|
|
res1 = client.execute(sql)
|
|
# 筛选有效数据
|
|
sql = f"""create view {db}.event_view as
|
|
select *
|
|
from {db}.event
|
|
where (`#os`is null or lower(`#os`) != 'windows')
|
|
and svrindex in {serverid}
|
|
and not startsWith(`orderid`,'debugPay')
|
|
"""
|
|
res2 = client.execute(sql)
|
|
with open(svrid_file, 'w') as f:
|
|
json.dump(sorted(serverid), f)
|