ランキング非参加者を匿名表示に
This commit is contained in:
parent
890df5e111
commit
6ae8bed194
3 changed files with 14 additions and 9 deletions
|
@ -23,9 +23,8 @@ export class RankingController {
|
||||||
*/
|
*/
|
||||||
private async getResponse(isCalculating: boolean, limit?: number) {
|
private async getResponse(isCalculating: boolean, limit?: number) {
|
||||||
const ranking = isCalculating ? [] : (await getRanking(limit)).map((u) => ({
|
const ranking = isCalculating ? [] : (await getRanking(limit)).map((u) => ({
|
||||||
id: u.id,
|
username: u.useRanking ? u.username : undefined,
|
||||||
username: u.username,
|
host: u.useRanking ? u.host : undefined,
|
||||||
host: u.host,
|
|
||||||
rating: u.rating,
|
rating: u.rating,
|
||||||
}));
|
}));
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -8,8 +8,7 @@ import { User } from '../models/entities/user.js';
|
||||||
*/
|
*/
|
||||||
export const getRanking = async (limit?: number | null): Promise<User[]> => {
|
export const getRanking = async (limit?: number | null): Promise<User[]> => {
|
||||||
const query = Users.createQueryBuilder('user')
|
const query = Users.createQueryBuilder('user')
|
||||||
.where('"user"."useRanking" IS TRUE')
|
.where('"user"."bannedFromRanking" IS NOT TRUE')
|
||||||
.andWhere('"user"."bannedFromRanking" IS NOT TRUE')
|
|
||||||
.andWhere('"user"."rating" <> \'NaN\'')
|
.andWhere('"user"."rating" <> \'NaN\'')
|
||||||
.orderBy('"user".rating', 'DESC');
|
.orderBy('"user".rating', 'DESC');
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,8 @@ interface RankingResponse {
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Ranking {
|
interface Ranking {
|
||||||
id: number;
|
username?: string;
|
||||||
username: string;
|
host?: string;
|
||||||
host: string;
|
|
||||||
rating: number;
|
rating: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +48,7 @@ export const Ranking: React.VFC<RankingProps> = ({limit}) => {
|
||||||
<p>{t('isCalculating')}</p>
|
<p>{t('isCalculating')}</p>
|
||||||
) : (
|
) : (
|
||||||
<div className="menu large">
|
<div className="menu large">
|
||||||
{response.ranking.map((r, i) => (
|
{response.ranking.map((r, i) => r.username && r.host ? (
|
||||||
<a href={`https://${r.host}/@${r.username}`} target="_blank" rel="noopener noreferrer nofollow" className="item flex" key={i}>
|
<a href={`https://${r.host}/@${r.username}`} target="_blank" rel="noopener noreferrer nofollow" className="item flex" key={i}>
|
||||||
<div className="text-bold pr-2">{i + 1}</div>
|
<div className="text-bold pr-2">{i + 1}</div>
|
||||||
<div>
|
<div>
|
||||||
|
@ -57,6 +56,14 @@ export const Ranking: React.VFC<RankingProps> = ({limit}) => {
|
||||||
<span className="text-dimmed text-75">{t('_missHai.rating')}: {r.rating}</span>
|
<span className="text-dimmed text-75">{t('_missHai.rating')}: {r.rating}</span>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
): (
|
||||||
|
<div className="item flex" key={i}>
|
||||||
|
<div className="text-bold pr-2">{i + 1}</div>
|
||||||
|
<div>
|
||||||
|
████@████.██<br/>
|
||||||
|
<span className="text-dimmed text-75">{t('_missHai.rating')}: {r.rating}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue