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";
import axios from "axios";
import { Processor } from "./processor";
import { CutData } from "./utility";
import _ from 'underscore';
async function getRealUsername(originalUsername: string) {
try {
const { data: {user: { name, username }} } = (await axios.get(`https://ygobbs.com/users/${encodeURIComponent(originalUsername)}.json`, {
responseType: "json"
}));
return [name, username];
return _.uniq([originalUsername, username, name]);
} catch (e) {
console.error(`User ${originalUsername} not found: ${e.toString()}`);
return [originalUsername];
......@@ -19,10 +20,11 @@ async function getRealUsername(originalUsername: string) {
async function getAvatarURL(usernames: string[]): Promise<string> {
for (const username of usernames) {
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"
}));
if (avatar?.match(/^http(s)?:\/\//)) {
const avatar = _avatar as string;
if (avatar?.match(/^http(s)?:\/\//) && !avatar.endsWith('default_avatar.jpg')) {
return avatar;
}
} catch (e) {
......@@ -33,8 +35,8 @@ async function getAvatarURL(usernames: string[]): Promise<string> {
}
async function getURLFromUsername(username: string) {
//const possibleNames = await getRealUsername(username);
return getAvatarURL([username]);
const possibleNames = await getRealUsername(username);
return getAvatarURL(possibleNames);
}
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