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 55f5ec2

Browse files
flexible top list
1 parent 724d264 commit 55f5ec2

File tree

2 files changed

+51
-39
lines changed

2 files changed

+51
-39
lines changed

‎web/index.html‎

Lines changed: 41 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -109,22 +109,16 @@ <h2>本站数据库<b><a style="text-decoration: none;color: skyblue" href="http
109109
<input type="submit" value="搜索">
110110
</form>
111111
<br>
112-
<div id="tv">
113-
<h2>大家都在看......</h2>
114-
<div class="tab">
115-
<button class="tablinks" onclick="openCity(event, 'US')">美剧</button>
116-
<button class="tablinks" onclick="openCity(event, 'JP')">日剧</button>
117-
</div>
112+
<h2>大家都在看......</h2>
113+
<div class="tab">
118114

115+
</div>
119116

120-
<div id="US" class="tabcontent">
121-
</div>
122-
123-
<div id="JP" class="tabcontent">
124-
</div>
117+
<div id="topContent">
125118

126119
</div>
127120

121+
128122
<h2>相关资源</h2>
129123
<h3>
130124
联系我 <a style="text-decoration: none;color: green" href="https://t.me/BennyThink">Benny 小可爱</a>
@@ -138,11 +132,13 @@ <h3>
138132
<script src="js/analytics.js"></script>
139133

140134
<script>
135+
accessMetrics();
136+
141137
// get top
142-
axios.get('/api/top?type=all')
138+
axios.get('/api/top')
143139
.then(function (response) {
144140
// handle success
145-
showTop(response.data.data)
141+
showTop(response.data)
146142
// console.log(response.data);
147143
})
148144
.catch(function (error) {
@@ -155,29 +151,44 @@ <h3>
155151

156152

157153
function showTop(data) {
158-
159-
for (let i = 0; i < data.length; i++) {
160-
let info = data[i].data.info
161-
console.log(info.area)
162-
let div = HTMLElement
163-
164-
if (info.area === "美国") {
165-
div = document.getElementById("US");
166-
} else if (info.area === "日本") {
167-
div = document.getElementById("JP");
154+
const code2Name = data["class"];
155+
let buttonParent = document.getElementsByClassName("tab")[0]
156+
let topParent = document.getElementById("topContent")
157+
delete data["class"];
158+
for (let code in data) {
159+
let button = `<button class="tablinks" onclick="openCity(event, '${code}')">${code2Name[code]}</button>`;
160+
let div = `<div id="${code}" class="tabcontent"></div>`;
161+
162+
let buttonChild = document.createElement('button');
163+
buttonChild.innerHTML = button;
164+
buttonChild = buttonChild.firstChild;
165+
buttonParent.appendChild(buttonChild);
166+
167+
let divChild = document.createElement('div');
168+
divChild.innerHTML = div;
169+
divChild = divChild.firstChild;
170+
topParent.appendChild(divChild);
171+
172+
// render data
173+
let countryInfo = data[code]
174+
// let div = HTMLElement
175+
for (let each in countryInfo) {
176+
let info = countryInfo[each]["data"]["info"];
177+
let divParent = document.getElementById(code);
178+
let name = `${info.cnname} ${info.enname} ${info.aliasname}`;
179+
let html = `<h4><a title="浏览量 ${info.views}" style="text-decoration: none;color: cornflowerblue" href="/resource.html?id=${info.id}">${name}</a></h4>`;
180+
181+
let divChild = document.createElement('h4');
182+
divChild.innerHTML = html;
183+
divChild = divChild.firstChild;
184+
divParent.appendChild(divChild);
168185
}
169-
let name = `${info.cnname} ${info.enname} ${info.aliasname}`;
170-
let html = `<h4><a title="浏览量 ${info.views}" style="text-decoration: none;color: cornflowerblue" href="/resource.html?id=${info.id}">${name}</a></h4>`;
171-
let backup = div.innerHTML;
172-
div.innerHTML = backup + html;
173186

174187
}
175-
a = document.getElementById("US");
176188
document.getElementsByClassName("tab")[0].firstElementChild.className += " active"
177-
a.style.display = "block"
189+
document.getElementById("ALL").style.display = "block"
178190
}
179191

180-
accessMetrics();
181192

182193
function openCity(evt, cityName) {
183194
var i, tabcontent, tablinks;

‎web/server.py‎

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,16 @@ def get_top_resource(self):
129129
'data.info': True,
130130
}
131131

132-
us = self.mongo.db["yyets"].find({"data.info.area": "美国"}, projection).sort("data.info.views",
133-
pymongo.DESCENDING).limit(10)
134-
135-
jp = self.mongo.db["yyets"].find({"data.info.area": "日本"}, projection).sort("data.info.views",
136-
pymongo.DESCENDING).limit(10)
137-
us_data = list(us)
138-
jp_data = list(jp)
139-
us_data.extend(jp_data)
140-
return dict(data=us_data)
132+
area_dict = dict(ALL={"$regex": ".*"}, US="美国", JP="日本", KR="韩国", UK="英国")
133+
all_data = {}
134+
for abbr, area in area_dict.items():
135+
data = self.mongo.db["yyets"].find({"data.info.area": area}, projection).sort("data.info.views",
136+
pymongo.DESCENDING).limit(10)
137+
all_data[abbr] = list(data)
138+
139+
area_dict["ALL"] = "全部"
140+
all_data["class"] = area_dict
141+
return all_data
141142

142143
@gen.coroutine
143144
def get(self):

0 commit comments

Comments
(0)

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