Working diva frontend

pull/150/head
= 2024-06-16 14:08:59 +02:00
parent da55e3e877
commit d456ed365c
5 changed files with 86 additions and 15 deletions

View File

@ -1,6 +1,10 @@
# Changelog # Changelog
Documenting updates to ARTEMiS, to be updated every time the master branch is pushed to. Documenting updates to ARTEMiS, to be updated every time the master branch is pushed to.
## 20240616
### DIVA
+ Working frontend with name and level strings edit and playlog
## 20240530 ## 20240530
### DIVA ### DIVA
+ Fix reader for when dificulty is not a int + Fix reader for when dificulty is not a int

View File

@ -56,7 +56,7 @@ class DivaFrontend(FE_Base):
), media_type="text/html; charset=utf-8") ), media_type="text/html; charset=utf-8")
return resp return resp
else: else:
return RedirectResponse("/login") return RedirectResponse("/gate")
async def render_GET_playlog(self, request: Request) -> bytes: async def render_GET_playlog(self, request: Request) -> bytes:
template = self.environment.get_template( template = self.environment.get_template(
@ -86,15 +86,15 @@ class DivaFrontend(FE_Base):
for record in playlog: for record in playlog:
song = await self.data.static.get_music_chart(record[2], record[3], record[4]) song = await self.data.static.get_music_chart(record[2], record[3], record[4])
if song: if song:
title = song[4] title = song.title
artist = song[5] vocaloid_arranger = song.vocaloid_arranger
else: else:
title = "Unknown" title = "Unknown"
artist = "Unknown" vocaloid_arranger = "Unknown"
playlog_with_title.append({ playlog_with_title.append({
"raw": record, "raw": record,
"title": title, "title": title,
"artist": artist "vocaloid_arranger": vocaloid_arranger
}) })
return Response(template.render( return Response(template.render(
title=f"{self.core_config.server.name} | {self.nav_name}", title=f"{self.core_config.server.name} | {self.nav_name}",
@ -110,7 +110,7 @@ class DivaFrontend(FE_Base):
async def update_name(self, request: Request) -> Response: async def update_name(self, request: Request) -> Response:
usr_sesh = self.validate_session(request) usr_sesh = self.validate_session(request)
if not usr_sesh: if not usr_sesh:
return RedirectResponse("/login") return RedirectResponse("/gate")
form_data = await request.form() form_data = await request.form()
new_name: str = form_data.get("new_name") new_name: str = form_data.get("new_name")
@ -147,7 +147,7 @@ class DivaFrontend(FE_Base):
async def update_lv(self, request: Request) -> Response: async def update_lv(self, request: Request) -> Response:
usr_sesh = self.validate_session(request) usr_sesh = self.validate_session(request)
if not usr_sesh: if not usr_sesh:
return RedirectResponse("/login") return RedirectResponse("/gate")
form_data = await request.form() form_data = await request.form()
new_lv: str = form_data.get("new_lv") new_lv: str = form_data.get("new_lv")

View File

@ -240,8 +240,8 @@ class DivaScoreData(BaseData):
return None return None
return result.fetchall() return result.fetchall()
async def get_playlogs(self, user_id: int, idx: int = 0, limit: int = 0) -> Optional[List[Row]]: async def get_playlogs(self, aime_id: int, idx: int = 0, limit: int = 0) -> Optional[Row]:
sql = playlog.select(playlog.c.user == user_id) sql = select(playlog).where(playlog.c.user == aime_id).order_by(playlog.c.date_scored.desc())
if limit: if limit:
sql = sql.limit(limit) sql = sql.limit(limit)

View File

@ -28,14 +28,26 @@
<tr> <tr>
<td>Lvl:</td> <td>Lvl:</td>
<td>{{ profile[5] }}</td> <td>{{ profile[5] }}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr> </tr>
<tr> <tr>
<td>Lvl points:</td> <td>Lvl points:</td>
<td>{{ profile[6] }}</td> <td>{{ profile[6] }}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr> </tr>
<tr> <tr>
<td>Vocaloid points:</td> <td>Vocaloid points:</td>
<td>{{ profile[7] }}</td> <td>{{ profile[7] }}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr> </tr>
</table> </table>
</div> </div>

View File

@ -9,16 +9,71 @@
<div class="row"> <div class="row">
<h4 style="text-align: center;">Score counts: {{ playlog_count }}</h4> <h4 style="text-align: center;">Score counts: {{ playlog_count }}</h4>
{% set difficultyName = ['easy', 'normal', 'hard', 'extreme', 'extra extreme'] %} {% set difficultyName = ['easy', 'normal', 'hard', 'extreme', 'extra extreme'] %}
{% set clearState = ['MISSxTAKE', 'STANDARD', 'GREAT', 'EXELLENT', 'PERFECT'] %}
{% for record in playlog %} {% for record in playlog %}
<div class="col-lg-6 mt-3"> <div class="col-lg-6 mt-3">
<div class="card bg-card rounded card-hover"> <div class="card bg-card rounded card-hover">
<div class="card bg-card rounded card-hover">
<div class="card-header row">
<div class="col-8 scrolling-text"> <div class="col-8 scrolling-text">
<h5 class="card-text">{{ record.title }}</h5> <h5 class="card-text">{{ record.title }}</h5>
<br> <br>
<h6 class="card-text"> {{ record.artist }} </h6> <h6 class="card-text">{{ record.vocaloid_arranger }}</h6>
</div> </div>
<div class="col-4"> <div class="col-4">
<h6 class="card-text"> {{ difficultyName[record.raw[4]] }} </h6> <h6 class="card-text">{{record.raw.date_scored}}</h6>
</div>
</div>
<div class="card-body row">
<div class="col-3" style="text-align: center;">
<h4 class="card-text">{{ record.raw.score }}</h4>
<h2>{{ record.raw.atn_pnt / 100 }}%</h2>
<h6>{{ difficultyName[record.raw.difficulty] }}</h6>
</div>
<div class="col-6" style="text-align: center;">
<table class="table-small table-rowdistinc">
<tr>
<td>COOL</td>
<td>{{ record.raw.cool }}</td>
</tr>
<tr>
<td>FINE</td>
<td>{{ record.raw.fine }}</td>
</tr>
<tr>
<td>SAFE</td>
<td>{{ record.raw.safe }}</td>
</tr>
<tr>
<td>SAD</td>
<td>{{ record.raw.sad }}</td>
</tr>
<tr>
<td>WORST</td>
<td>{{ record.raw.worst }}</td>
</tr>
</table>
</div>
<div class="col-3" style="text-align: center;">
<h6>{{ record.raw.max_combo }}</h6>
{% if record.raw.clr_kind == -1 %}
<h6>{{ clearState[0] }}</h6>
{% elif record.raw.clr_kind == 2 %}
<h6>{{ clearState[1] }}</h6>
{% elif record.raw.clr_kind == 3 %}
<h6>{{ clearState[2] }}</h6>
{% elif record.raw.clr_kind == 4 %}
<h6>{{ clearState[3] }}</h6>
{% elif record.raw.clr_kind == 5 %}
<h6>{{ clearState[4] }}</h6>
{% endif %}
{% if record.raw.clr_kind == -1 %}
<h6>NOT CLEAR</h6>
{% else %}
<h6>CLEAR</h6>
{% endif %}
</div>
</div>
</div> </div>
</div> </div>
</div> </div>