diff --git a/update_event_view.py.template b/update_event_view.py.template new file mode 100644 index 0000000..1dc9e30 --- /dev/null +++ b/update_event_view.py.template @@ -0,0 +1,39 @@ +# 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 lower(`#os`) != 'windows' + and svrindex in {serverid}""" +res2 = client.execute(sql) +with open(svrid_file, 'w') as f: + json.dump(sorted(serverid), f)