aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/api.ts1
-rw-r--r--api/user/info.py5
-rw-r--r--pages/user.tsx12
3 files changed, 16 insertions, 2 deletions
diff --git a/api/api.ts b/api/api.ts
index 0902d53..2acc4ea 100644
--- a/api/api.ts
+++ b/api/api.ts
@@ -6,6 +6,7 @@ export interface userInfo {
registered?: number,
type?: string,
username?: string,
+ friends: number,
relation?: "none"|"friends"|"incoming"|"outgoing"|"blocked",
};
diff --git a/api/user/info.py b/api/user/info.py
index e720e56..b60593e 100644
--- a/api/user/info.py
+++ b/api/user/info.py
@@ -18,6 +18,10 @@ def get_relation_to(user_1_id, user_2_id):
if relation[2] == "block" and relation[0] == user_1_id: return "blocked"
return "none"
+def count_friends(user_id):
+ query = cursor.execute("select type from social where (user_1_id = ? or user_2_id = ?) and type = \"friendship\"", [user_id, user_id]).fetchall()
+ return len(query)
+
def format_user(user_id, viewer = ''):
user = cursor.execute("select " + ", ".join([
"username",
@@ -34,6 +38,7 @@ def format_user(user_id, viewer = ''):
"registered": user[3],
"avatar": user[4],
"status": user[5],
+ "friends": count_friends(user_id)
}
if viewer:
formatted_user["relation"] = get_relation_to(viewer, user_id)
diff --git a/pages/user.tsx b/pages/user.tsx
index c963550..01a2d23 100644
--- a/pages/user.tsx
+++ b/pages/user.tsx
@@ -290,7 +290,11 @@ export default function AccountPage() {
return memberSince;
})() }/>
- <InfoModule icon={<PeopleOutlineOutlinedIcon/>} label="2 vrienden"/>
+ <InfoModule icon={<PeopleOutlineOutlinedIcon/>} label={(() => {
+ var label = user?.friends.toString() + " ";
+ label += user?.friends == 1 ? "vriend" : "vrienden";
+ return label;
+ })()}/>
<InfoModule icon={<Icon size={1} path={mdiEarth}/>} label="Nederland"/>
</InfoSection>
<InfoSection>
@@ -298,7 +302,11 @@ export default function AccountPage() {
<InfoModule icon={<Icon size={1} path={mdiEqual}/>} label={ gameInfo?.totals.draw + " keer gelijkspel" }/>
<InfoModule icon={<ArrowDownwardOutlinedIcon style={{ color: "var(--disk-a-text)" }}/>} label={ gameInfo?.totals.lose + " keer verloren" }/>
<InfoModule icon={<Icon size={1} path={mdiClipboardTextOutline}/>} label="Score: 400"/>
- <InfoModule icon={<Icon size={1} path={mdiGamepadSquareOutline}/>} label={ gameInfo?.totals.games + " potjes" }/>
+ <InfoModule icon={<Icon size={1} path={mdiGamepadSquareOutline}/>} label={(() => {
+ var label = gameInfo?.totals.games.toString() + " ";
+ label += gameInfo?.totals.games == 1 ? "potje" : "potjes";
+ return label;
+ })()}/>
</InfoSection>
<Vierkant>
<RecentGames games={gameInfo?.games}/>