Commit eb9a946c authored by nanahira's avatar nanahira

fix username loading

parent 9e9f72f0
Pipeline #6732 passed with stages
in 25 seconds
...@@ -3,13 +3,14 @@ import mysql, { ConnectionConfig } from "promise-mysql"; ...@@ -3,13 +3,14 @@ import mysql, { ConnectionConfig } from "promise-mysql";
import axios from "axios"; import axios from "axios";
import { Processor } from "./processor"; import { Processor } from "./processor";
import { CutData } from "./utility"; import { CutData } from "./utility";
import _ from 'underscore';
async function getRealUsername(originalUsername: string) { async function getRealUsername(originalUsername: string) {
try { try {
const { data: {user: { name, username }} } = (await axios.get(`https://ygobbs.com/users/${encodeURIComponent(originalUsername)}.json`, { const { data: {user: { name, username }} } = (await axios.get(`https://ygobbs.com/users/${encodeURIComponent(originalUsername)}.json`, {
responseType: "json" responseType: "json"
})); }));
return [name, username]; return _.uniq([originalUsername, username, name]);
} catch (e) { } catch (e) {
console.error(`User ${originalUsername} not found: ${e.toString()}`); console.error(`User ${originalUsername} not found: ${e.toString()}`);
return [originalUsername]; return [originalUsername];
...@@ -19,10 +20,11 @@ async function getRealUsername(originalUsername: string) { ...@@ -19,10 +20,11 @@ async function getRealUsername(originalUsername: string) {
async function getAvatarURL(usernames: string[]): Promise<string> { async function getAvatarURL(usernames: string[]): Promise<string> {
for (const username of usernames) { for (const username of usernames) {
try { try {
const { data: { user: { avatar } } } = (await axios.get(`https://api.moecube.com/accounts/users/${encodeURIComponent(username)}.json`, { const { data: { user: { avatar: _avatar } } } = (await axios.get(`https://api.moecube.com/accounts/users/${encodeURIComponent(username)}.json`, {
responseType: "json" responseType: "json"
})); }));
if (avatar?.match(/^http(s)?:\/\//)) { const avatar = _avatar as string;
if (avatar?.match(/^http(s)?:\/\//) && !avatar.endsWith('default_avatar.jpg')) {
return avatar; return avatar;
} }
} catch (e) { } catch (e) {
...@@ -33,8 +35,8 @@ async function getAvatarURL(usernames: string[]): Promise<string> { ...@@ -33,8 +35,8 @@ async function getAvatarURL(usernames: string[]): Promise<string> {
} }
async function getURLFromUsername(username: string) { async function getURLFromUsername(username: string) {
//const possibleNames = await getRealUsername(username); const possibleNames = await getRealUsername(username);
return getAvatarURL([username]); return getAvatarURL(possibleNames);
} }
interface QueryResult{ interface QueryResult{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment