mirror of
https://github.com/samuelthomas2774/nxapi.git
synced 2026-04-17 02:26:55 -05:00
Handle errors opening web services and check NSO membership
This commit is contained in:
parent
2ee7438faa
commit
e999ca85d8
|
|
@ -146,9 +146,13 @@ export default class MenuApp {
|
|||
items.push(new MenuItem({
|
||||
label: webservice.name,
|
||||
click: async () => {
|
||||
const {nso, data} = await getToken(this.store.storage, token, process.env.ZNC_PROXY_URL);
|
||||
try {
|
||||
const {nso, data} = await getToken(this.store.storage, token, process.env.ZNC_PROXY_URL);
|
||||
|
||||
await openWebService(this.store, token, nso, data, webservice);
|
||||
await openWebService(this.store, token, nso, data, webservice);
|
||||
} catch (err) {
|
||||
dialog.showErrorBox('Error loading web service', (err as any).stack ?? (err as any).message);
|
||||
}
|
||||
},
|
||||
}));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,6 +46,14 @@ export default async function openWebService(
|
|||
return;
|
||||
}
|
||||
|
||||
const verifymembership = webservice.customAttributes.find(a => a.attrKey === 'verifyMembership');
|
||||
|
||||
if (verifymembership?.attrValue === 'true') {
|
||||
const membership = data.nsoAccount.user.links.nintendoAccount.membership;
|
||||
const active = typeof membership.active === 'object' ? membership.active.active : membership.active;
|
||||
if (!active) throw new Error('Nintendo Switch Online membership required');
|
||||
}
|
||||
|
||||
const window = createWebServiceWindow(data.nsoAccount.user.nsaId, webservice);
|
||||
|
||||
windows.set(windowid, window);
|
||||
|
|
|
|||
|
|
@ -48,6 +48,14 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
|
|||
throw new Error('Invalid web service');
|
||||
}
|
||||
|
||||
const verifymembership = webservice.customAttributes.find(a => a.attrKey === 'verifyMembership');
|
||||
|
||||
if (verifymembership?.attrValue === 'true') {
|
||||
const membership = data.nsoAccount.user.links.nintendoAccount.membership;
|
||||
const active = typeof membership.active === 'object' ? membership.active.active : membership.active;
|
||||
if (!active) throw new Error('Nintendo Switch Online membership required');
|
||||
}
|
||||
|
||||
const webserviceToken = await nso.getWebServiceToken(argv.id);
|
||||
|
||||
// https://app.splatoon2.nintendo.net/?lang=en-GB&na_country=GB&na_lang=en-GB
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user