misskey/packages/frontend/src/scripts/gen-search-query.ts

31 lines
777 B
TypeScript
Raw Normal View History

2021-11-12 02:02:25 +09:00
import * as Acct from 'misskey-js/built/acct';
import { host as localHost } from '@/config';
2019-04-25 07:46:39 +09:00
export async function genSearchQuery(v: any, q: string) {
let host: string;
let userId: string;
if (q.split(' ').some(x => x.startsWith('@'))) {
for (const at of q.split(' ').filter(x => x.startsWith('@')).map(x => x.substring(1))) {
2019-04-25 07:46:39 +09:00
if (at.includes('.')) {
if (at === localHost || at === '.') {
host = null;
} else {
host = at;
}
} else {
2021-11-12 02:02:25 +09:00
const user = await v.os.api('users/show', Acct.parse(at)).catch(x => null);
2019-04-25 07:46:39 +09:00
if (user) {
userId = user.id;
} else {
// todo: show error
}
}
}
}
return {
query: q.split(' ').filter(x => !x.startsWith('/') && !x.startsWith('@')).join(' '),
host: host,
userId: userId,
2019-04-25 07:46:39 +09:00
};
}