Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit bd67dc3

Browse files
add code
1 parent 35ebcbb commit bd67dc3

File tree

10 files changed

+1511
-4
lines changed

10 files changed

+1511
-4
lines changed

‎doudou/2020-04-04-greedy-snake/greedy_snake.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ def run():
154154
# 按 origin_direction 方向运动
155155
snake_body.insert(0, list(snake_head))
156156
# 吃到食物后重新生成
157-
if snake_head[0] == food_position[0] andsnake_head[1] ==food_position[1]:
157+
if snake_head == food_position:
158158
food_position = create_food()
159159
current_score += score
160160
else:
@@ -174,7 +174,7 @@ def run():
174174
# 更新分数
175175
display_message(f"{current_score}/{max_score}", text_color, 30, (pixel * 2, pixel * 2))
176176
if is_dead:
177-
display_message(f"Game Over", text_color, 50, (pixel * 16, pixel * 15))
177+
display_message("Game Over", text_color, 50, (pixel * 16, pixel * 15))
178178
# 控制游戏速度
179179
time_clock.tick(speed)
180180

6 KB
Binary file not shown.
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
from flask import Flask, render_template
2+
import datetime
3+
import json
4+
import redis
5+
import pandas as pd
6+
7+
app = Flask(__name__)
8+
9+
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
10+
r = redis.Redis(connection_pool=pool)
11+
12+
13+
@app.route('/')
14+
def index():
15+
return render_template('a.html')
16+
17+
18+
@app.route('/global')
19+
def global_index():
20+
context = {
21+
'date': get_date(),
22+
'statistics_data': json.loads(r.get('foreign_data')),
23+
'country_data': get_rank_data(),
24+
'article_data': json.loads(r.get('article_data'))
25+
}
26+
return render_template('global.html', **context)
27+
28+
29+
@app.route('/china')
30+
def china_index():
31+
china_data = get_china_data()
32+
context = {
33+
'date': get_date(),
34+
'statistics_data': china_data[0],
35+
'country_data': china_data[1],
36+
'article_data': json.loads(r.get('article_data'))
37+
}
38+
return render_template('china.html', **context)
39+
40+
41+
def get_date():
42+
today = datetime.date.today()
43+
yesterday = today + datetime.timedelta(days=-1)
44+
return {'today': today.strftime('%Y.%m.%d'), 'yesterday': yesterday.strftime('%m月%d日')}
45+
46+
47+
# 国外详细数据
48+
def get_rank_data():
49+
df = pd.DataFrame(json.loads(r.get('rank_data')), columns=['name', 'confirmAdd', 'confirm', 'heal', 'dead'])
50+
return df.sort_values('confirm', ascending=False).values.tolist()
51+
52+
53+
# 国内详细数据
54+
def get_china_data():
55+
china_data = json.loads(r.get('china_data'))
56+
statistics_data = {'nowConfirmAdd': china_data['chinaAdd']['confirm'],
57+
'healAdd': china_data['chinaAdd']['heal'],
58+
'deadAdd': china_data['chinaAdd']['dead'],
59+
'nowConfirm': china_data['chinaTotal']['nowConfirm'],
60+
'confirm': china_data['chinaTotal']['confirm'],
61+
'heal': china_data['chinaTotal']['heal'],
62+
'dead': china_data['chinaTotal']['dead'],
63+
}
64+
65+
df = pd.DataFrame(china_data['province'],
66+
columns=['name', 'import_abroad', 'now_confirm', 'confirm', 'heal', 'dead'])
67+
province_list = df.sort_values('now_confirm', ascending=False).values.tolist()
68+
69+
return statistics_data, province_list
70+
71+
72+
@app.route('/global_top10')
73+
def get_global_top10():
74+
df = pd.DataFrame(json.loads(r.get('rank_data')), columns=['name', 'confirmAdd', 'confirm', 'heal', 'dead'])
75+
top10 = df.sort_values('confirmAdd', ascending=True).tail(10)
76+
result = {'country': top10['name'].values.tolist(), 'data': top10['confirmAdd'].values.tolist()}
77+
return json.dumps(result)
78+
79+
80+
@app.route('/global_map')
81+
def get_global_map():
82+
df = pd.DataFrame(json.loads(r.get('rank_data')), columns=['name', 'confirmAdd', 'confirm', 'heal', 'dead'])
83+
records = df.to_dict(orient="records")
84+
china_data = json.loads(r.get('china_data'))
85+
result = {
86+
'confirmAdd': [{'name': '中国', 'value': china_data['chinaAdd']['confirm']}],
87+
'confirm': [{'name': '中国', 'value': china_data['chinaTotal']['confirm']}],
88+
'heal': [{'name': '中国', 'value': china_data['chinaTotal']['heal']}],
89+
'dead': [{'name': '中国', 'value': china_data['chinaTotal']['dead']}]
90+
}
91+
92+
for item in records:
93+
result['confirmAdd'].append({'name': item['name'], 'value': item['confirmAdd']})
94+
result['confirm'].append({'name': item['name'], 'value': item['confirm']})
95+
result['heal'].append({'name': item['name'], 'value': item['heal']})
96+
result['dead'].append({'name': item['name'], 'value': item['dead']})
97+
98+
return json.dumps(result)
99+
100+
101+
@app.route('/china_top10')
102+
def get_china_top10():
103+
china_data = json.loads(r.get('china_data'))
104+
df = pd.DataFrame(china_data['province'],
105+
columns=['name', 'import_abroad', 'now_confirm', 'confirm', 'heal', 'dead'])
106+
top10 = df.sort_values('import_abroad', ascending=True).tail(10)
107+
result = {'country': top10['name'].values.tolist(), 'data': top10['import_abroad'].values.tolist()}
108+
return json.dumps(result)
109+
110+
111+
@app.route('/china_map')
112+
def get_china_map():
113+
china_data = json.loads(r.get('china_data'))
114+
df = pd.DataFrame(china_data['province'], columns=['name', 'import_abroad', 'now_confirm', 'confirm', 'heal', 'dead'])
115+
records = df.to_dict(orient="records")
116+
result = {
117+
'now_confirm': [],
118+
'confirm': [],
119+
'heal': [],
120+
'dead': []
121+
}
122+
123+
for item in records:
124+
result['now_confirm'].append({'name': item['name'], 'value': item['now_confirm']})
125+
result['confirm'].append({'name': item['name'], 'value': item['confirm']})
126+
result['heal'].append({'name': item['name'], 'value': item['heal']})
127+
result['dead'].append({'name': item['name'], 'value': item['dead']})
128+
129+
return json.dumps(result)
130+
131+
132+
if __name__ == '__main__':
133+
app.run(host='127.0.0.1', port=5200, debug=True)
134+
# print(get_china_data()[1])
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
"""
2+
右侧:最新动态
3+
https://api.inews.qq.com/newsqa/v1/automation/modules/list?modules=FAutoNewsArticleList
4+
5+
左侧:地区柱状图:新增 确诊 死亡
6+
https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist
7+
8+
9+
中间上方:国内:现有确诊 确诊 治愈 死亡 境外输入 无症状感染者 国外:现有确诊 确诊 治愈 死亡
10+
# 国内数据 https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5
11+
# 国外数据 https://api.inews.qq.com/newsqa/v1/automation/modules/list?modules=FAutoGlobalStatis
12+
13+
14+
中间下方:地图:确诊、治愈、死亡
15+
# 国内数据:https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5
16+
# 国外数据:https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist
17+
18+
"""
19+
20+
import requests
21+
import json
22+
import redis
23+
24+
header = {
25+
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
26+
}
27+
28+
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
29+
r = redis.Redis(connection_pool=pool)
30+
31+
32+
def pull_data_from_web(url):
33+
response = requests.get(url, headers=header)
34+
return json.loads(response.text) if response.status_code == 200 else None
35+
36+
37+
# 获取最新动态数据
38+
def get_article_data():
39+
data = pull_data_from_web('https://api.inews.qq.com/newsqa/v1/automation/modules/list?modules=FAutoNewsArticleList')
40+
if data is None:
41+
return ''
42+
return [[item['publish_time'], item['url'], item['title']] for item in data['data']['FAutoNewsArticleList']]
43+
44+
45+
# 获取各个国家当前【新增、确诊、治愈、死亡】数据
46+
def get_rank_data():
47+
data = pull_data_from_web('https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist')
48+
if data is None:
49+
return ''
50+
return [[item['name'], item['confirmAdd'], item['confirm'], item['heal'], item['dead']] for item in data['data']]
51+
52+
53+
# 获取国内统计数据【现有确诊 确诊 治愈 死亡 境外输入 无症状感染者】 & 各省份详细数据(确诊、治愈、死亡)
54+
def get_china_data():
55+
data = pull_data_from_web('https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5')
56+
if data is None:
57+
return ''
58+
dict = json.loads(data['data'])
59+
province_res = []
60+
for province in dict['areaTree'][0]['children']:
61+
name = province['name']
62+
now_confirm = province['total']['nowConfirm']
63+
confirm = province['total']['confirm']
64+
heal = province['total']['heal']
65+
dead = province['total']['dead']
66+
import_abroad = 0
67+
for item in province['children']:
68+
if item['name'] == '境外输入':
69+
import_abroad = item['total']['confirm']
70+
break
71+
province_res.append([name, import_abroad, now_confirm, confirm, heal, dead])
72+
return {'chinaTotal': dict['chinaTotal'], 'chinaAdd': dict['chinaAdd'], 'province': province_res}
73+
74+
75+
# 获取国外统计数据【现有确诊 确诊 治愈 死亡】
76+
def get_foreign_data():
77+
data = pull_data_from_web('https://api.inews.qq.com/newsqa/v1/automation/modules/list?modules=FAutoGlobalStatis')
78+
if data is None:
79+
return ''
80+
return data['data']['FAutoGlobalStatis']
81+
82+
83+
article_data = get_article_data()
84+
r.set('article_data', json.dumps(article_data))
85+
86+
rank_data = get_rank_data()
87+
r.set('rank_data', json.dumps(rank_data))
88+
89+
china_data = get_china_data()
90+
r.set('china_data', json.dumps(china_data))
91+
92+
foreign_data = get_foreign_data()
93+
r.set('foreign_data', json.dumps(foreign_data))
6 KB
Binary file not shown.
1.18 KB
Loading[フレーム]
6 KB
Binary file not shown.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /