Compare commits

..

2 commits

Author SHA1 Message Date
f728070815
Show user times + single level preview 2022-10-30 13:03:14 +01:00
1663a060d9
Add convert_times function to jinja2
(useful, if you want to include times in templates)
2022-10-30 12:55:24 +01:00
4 changed files with 51 additions and 20 deletions

View file

@ -8,6 +8,7 @@ import httpx
import json import json
import os import os
import re import re
from . import utils
basedir = os.path.dirname(__file__) basedir = os.path.dirname(__file__)
app = FastAPI() app = FastAPI()
app.mount("/static", StaticFiles(directory=basedir + "/static"), name="static") app.mount("/static", StaticFiles(directory=basedir + "/static"), name="static")
@ -17,6 +18,8 @@ template_env = jinja2.Environment(
auto_reload=True auto_reload=True
) )
template_env.globals['convert_times'] = utils.convert_times
BASE_URL = "http://make.fangam.es" BASE_URL = "http://make.fangam.es"
THUMB_URL = "https://images.make.fangam.es" THUMB_URL = "https://images.make.fangam.es"

View file

@ -26,6 +26,9 @@
.searchResults { .searchResults {
font-size: 16px; font-size: 16px;
} }
.times {
display: none;
}
} }
@ -77,6 +80,21 @@
margin-bottom: 0.3rem; margin-bottom: 0.3rem;
} }
.levelTitle a:link, a:visited {
color: inherit;
text-decoration: initial;
cursor: auto;
}
.levelTitle a:hover {
outline: 2px dotted blue;
}
.levelTitle a:link:active {
color: inherit;
outline: 2px dotted blue;
}
.creatorName { .creatorName {
justify-self: left; justify-self: left;
text-align: left; text-align: left;
@ -84,10 +102,11 @@
} }
.levelDescription { .levelDescription {
overflow-x: scroll;
text-align: left; text-align: left;
background-color: rgba(245, 222, 179, 0.128); background-color: #30303a;
padding: 1em; padding: 0.5rem;
font-size: 1rem; font-size: small;
/* justify-self: right; /* justify-self: right;

View file

@ -33,10 +33,13 @@
<div class="levelDifficulty"><span>Difficulty: {{ '▲' * map['AverageUserDifficulty']|int }}</span></div> <div class="levelDifficulty"><span>Difficulty: {{ '▲' * map['AverageUserDifficulty']|int }}</span></div>
<div class="creatorName">by <b>{{ map['CreatorName'] }}</b></div> <div class="creatorName">by <b>{{ map['CreatorName'] }}</b></div>
<div class="levelRating">{{ map['NumThumbsUp'] }} 👍 {{ map['NumThumbsDown'] }} 👎</div> <div class="levelRating">{{ map['NumThumbsUp'] }} 👍 {{ map['NumThumbsDown'] }} 👎</div>
{% if map['Description'] != ''%}<div class="levelDescription">{{ map['Description'] }}</div>{% endif %}
<div class="levelCode">Code: <input type="text" onclick="copy(this)" readonly=1 value="{{ map['MapCode'] }}" /></div> <div class="levelCode">Code: <input type="text" onclick="copy(this)" readonly=1 value="{{ map['MapCode'] }}" /></div>
</div> </div>
<div class="times"> <div class="times">
<div class="FirstClear">First Clear: <b>{{ map['FirstClearUsername'] }}</b></div> <div class="FirstClear">First Clear: <b>{{ map['FirstClearUsername'] }}</b></div>
{% set BestTime = convert_times(map['BestTimePlaytime']) %}
<div class="BestTime">Best Time: <b>{{ map['BestTimeUsername'] }}</b> [{{ BestTime[0] }}:{{ BestTime[1] }}:{{ BestTime[2] }}]</div>
</div> </div>
</div> </div>

View file

@ -64,17 +64,23 @@
<div class="thumbnail"><img src="{{ THUMB_URL }}/{{ map['ID'] }}.png"></div> <div class="thumbnail"><img src="{{ THUMB_URL }}/{{ map['ID'] }}.png"></div>
<div class="details"> <div class="details">
<div class="basic"> <div class="basic">
<div class="levelTitle">{{ map['Name'] }}</div> <div class="levelTitle"><a href="/level/{{ map['ID'] }}">{{ map['Name'] }}</a></div>
<div class="levelDifficulty"><span>Difficulty: {{ '▲' * map['AverageUserDifficulty']|int }}</span></div> <div class="levelDifficulty"><span>Difficulty: {{ '▲' * map['AverageUserDifficulty']|int }}</span></div>
<div class="creatorName">by <b>{{ map['CreatorName'] }}</b></div> <div class="creatorName">by <b>{{ map['CreatorName'] }}</b></div>
<div class="levelRating">{{ map['NumThumbsUp'] }} 👍 {{ map['NumThumbsDown'] }} 👎</div> <div class="levelRating">{{ map['NumThumbsUp'] }} 👍 {{ map['NumThumbsDown'] }} 👎</div>
{% if map['Description'] != ''%}<div class="levelDescription">{{ map['Description'] }}</div>{% endif %}
<div class="levelCode">Code: <input type="text" onclick="copy(this)" readonly=1 value="{{ map['MapCode'] }}" /></div> <div class="levelCode">Code: <input type="text" onclick="copy(this)" readonly=1 value="{{ map['MapCode'] }}" /></div>
</div> </div>
<div class="times">
<div class="FirstClear">First Clear: <b>{{ map['FirstClearUsername'] }}</b></div>
{% set BestTime = convert_times(map['BestTimePlaytime']) %}
<div class="BestTime">Best Time: <b>{{ map['BestTimeUsername'] }}</b> [{{ BestTime[0] }}:{{ BestTime[1] }}:{{ BestTime[2] }}]</div>
</div> </div>
</div> </div>
</div>
{% endfor %} {% endfor %}
</div> </div>
<div class="searchResultsFooter"> <div class="searchResultsFooter">
<p>Page {{ searchPage+1 }}</p> <p>Page {{ searchPage+1 }}</p>