feat: adjust Sociogram to new DB

This commit is contained in:
julius 2025-03-11 12:37:16 +01:00
parent 95e66e5d73
commit c42231907d
Signed by: julius
GPG Key ID: C80A63E6A5FD7092

View File

@ -108,8 +108,10 @@ def graph_json():
def sociogram_data(show: int | None = 2):
G = nx.DiGraph()
with Session(engine) as session:
players = {}
for p in session.exec(select(P)).fetchall():
G.add_node(p.name)
G.add_node(p.display_name)
players[p.id] = p.display_name
subquery = (
select(C.user, func.max(C.time).label("latest")).group_by(C.user).subquery()
)
@ -120,10 +122,12 @@ def sociogram_data(show: int | None = 2):
)
for c in session.exec(statement2):
if show >= 1:
for i, p in enumerate(c.love):
for i, p_id in enumerate(c.love):
p = players[p_id]
G.add_edge(c.user, p, group="love", rank=i, popularity=1 - 0.08 * i)
if show <= 1:
for i, p in enumerate(c.hate):
for i, p_id in enumerate(c.hate):
p = players[p_id]
G.add_edge(c.user, p, group="hate", rank=8, popularity=-0.16)
return G