mirror of
https://github.com/samuelthomas2774/nxapi.git
synced 2026-03-21 18:04:10 -05:00
Only request data necessary to appear as if opening Nintendo's app
This commit is contained in:
parent
77f07eb1b3
commit
65d1069edf
|
|
@ -2,7 +2,7 @@ import createDebug from 'debug';
|
|||
import type { Arguments as ParentArguments } from '../nso.js';
|
||||
import { ArgumentsCamelCase, Argv, YargsArguments } from '../../util/yargs.js';
|
||||
import { initStorage } from '../../util/storage.js';
|
||||
import { getToken } from '../../common/auth/coral.js';
|
||||
import { getToken, Login } from '../../common/auth/coral.js';
|
||||
|
||||
const debug = createDebug('cli:nso:friendcode');
|
||||
|
||||
|
|
@ -35,10 +35,12 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
|
|||
await storage.getItem('NintendoAccountToken.' + usernsid);
|
||||
const {nso, data} = await getToken(storage, token, argv.zncProxyUrl);
|
||||
|
||||
const announcements = await nso.getAnnouncements();
|
||||
const friends = await nso.getFriendList();
|
||||
const webservices = await nso.getWebServices();
|
||||
const activeevent = await nso.getActiveEvent();
|
||||
if (data[Login]) {
|
||||
const announcements = await nso.getAnnouncements();
|
||||
const friends = await nso.getFriendList();
|
||||
const webservices = await nso.getWebServices();
|
||||
const activeevent = await nso.getActiveEvent();
|
||||
}
|
||||
|
||||
const friendcodeurl = await nso.getFriendCodeUrl();
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import type { Arguments as ParentArguments } from '../nso.js';
|
|||
import { ArgumentsCamelCase, Argv, YargsArguments } from '../../util/yargs.js';
|
||||
import { initStorage } from '../../util/storage.js';
|
||||
import { hrduration } from '../../util/misc.js';
|
||||
import { getToken } from '../../common/auth/coral.js';
|
||||
import { getToken, Login } from '../../common/auth/coral.js';
|
||||
|
||||
const debug = createDebug('cli:nso:friends');
|
||||
|
||||
|
|
@ -40,10 +40,13 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
|
|||
await storage.getItem('NintendoAccountToken.' + usernsid);
|
||||
const {nso, data} = await getToken(storage, token, argv.zncProxyUrl);
|
||||
|
||||
const announcements = await nso.getAnnouncements();
|
||||
if (data[Login]) {
|
||||
const announcements = await nso.getAnnouncements();
|
||||
const webservices = await nso.getWebServices();
|
||||
const activeevent = await nso.getActiveEvent();
|
||||
}
|
||||
|
||||
const friends = await nso.getFriendList();
|
||||
const webservices = await nso.getWebServices();
|
||||
const activeevent = await nso.getActiveEvent();
|
||||
|
||||
if (argv.jsonPrettyPrint) {
|
||||
console.log(JSON.stringify(friends.result.friends, null, 4));
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import createDebug from 'debug';
|
|||
import type { Arguments as ParentArguments } from '../nso.js';
|
||||
import { ArgumentsCamelCase, Argv, YargsArguments } from '../../util/yargs.js';
|
||||
import { initStorage } from '../../util/storage.js';
|
||||
import { getToken } from '../../common/auth/coral.js';
|
||||
import { getToken, Login } from '../../common/auth/coral.js';
|
||||
|
||||
const debug = createDebug('cli:nso:lookup');
|
||||
|
||||
|
|
@ -39,6 +39,13 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
|
|||
await storage.getItem('NintendoAccountToken.' + usernsid);
|
||||
const {nso, data} = await getToken(storage, token, argv.zncProxyUrl);
|
||||
|
||||
if (data[Login]) {
|
||||
const announcements = await nso.getAnnouncements();
|
||||
const friends = await nso.getFriendList();
|
||||
const webservices = await nso.getWebServices();
|
||||
const activeevent = await nso.getActiveEvent();
|
||||
}
|
||||
|
||||
const user = await nso.getUserByFriendCode(argv.id);
|
||||
|
||||
if (argv.jsonPrettyPrint) {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { PresencePermissions } from '../../api/coral-types.js';
|
|||
import type { Arguments as ParentArguments } from '../nso.js';
|
||||
import { ArgumentsCamelCase, Argv, YargsArguments } from '../../util/yargs.js';
|
||||
import { initStorage } from '../../util/storage.js';
|
||||
import { getToken } from '../../common/auth/coral.js';
|
||||
import { getToken, Login } from '../../common/auth/coral.js';
|
||||
|
||||
const debug = createDebug('cli:nso:permissions');
|
||||
|
||||
|
|
@ -43,6 +43,13 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
|
|||
await storage.getItem('NintendoAccountToken.' + usernsid);
|
||||
const {nso, data} = await getToken(storage, token, argv.zncProxyUrl);
|
||||
|
||||
if (data[Login]) {
|
||||
const announcements = await nso.getAnnouncements();
|
||||
const friends = await nso.getFriendList();
|
||||
const webservices = await nso.getWebServices();
|
||||
const activeevent = await nso.getActiveEvent();
|
||||
}
|
||||
|
||||
const permissions = await nso.getCurrentUserPermissions();
|
||||
|
||||
if (argv.presence) {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import createDebug from 'debug';
|
|||
import type { Arguments as ParentArguments } from '../nso.js';
|
||||
import { ArgumentsCamelCase, Argv, YargsArguments } from '../../util/yargs.js';
|
||||
import { initStorage } from '../../util/storage.js';
|
||||
import { getToken } from '../../common/auth/coral.js';
|
||||
import { getToken, Login } from '../../common/auth/coral.js';
|
||||
|
||||
const debug = createDebug('cli:nso:user');
|
||||
|
||||
|
|
@ -33,7 +33,14 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
|
|||
await storage.getItem('NintendoAccountToken.' + usernsid);
|
||||
const {nso, data} = await getToken(storage, token, argv.zncProxyUrl);
|
||||
|
||||
if (argv.forceRefresh && 'expires_at' in data) {
|
||||
if (data[Login]) {
|
||||
const announcements = await nso.getAnnouncements();
|
||||
const friends = await nso.getFriendList();
|
||||
const webservices = await nso.getWebServices();
|
||||
const activeevent = await nso.getActiveEvent();
|
||||
}
|
||||
|
||||
if (argv.forceRefresh && !data[Login]) {
|
||||
const user = await nso.getCurrentUser();
|
||||
|
||||
console.log('Nintendo Account', data.user);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import Table from '../util/table.js';
|
|||
import type { Arguments as ParentArguments } from '../nso.js';
|
||||
import { ArgumentsCamelCase, Argv, YargsArguments } from '../../util/yargs.js';
|
||||
import { initStorage } from '../../util/storage.js';
|
||||
import { getToken } from '../../common/auth/coral.js';
|
||||
import { getToken, Login } from '../../common/auth/coral.js';
|
||||
|
||||
const debug = createDebug('cli:nso:webservices');
|
||||
|
||||
|
|
@ -38,7 +38,10 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
|
|||
await storage.getItem('NintendoAccountToken.' + usernsid);
|
||||
const {nso, data} = await getToken(storage, token, argv.zncProxyUrl);
|
||||
|
||||
const announcements = await nso.getAnnouncements();
|
||||
if (data[Login]) {
|
||||
const announcements = await nso.getAnnouncements();
|
||||
}
|
||||
|
||||
const friends = await nso.getFriendList();
|
||||
const webservices = await nso.getWebServices();
|
||||
const activeevent = await nso.getActiveEvent();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import createDebug from 'debug';
|
|||
import type { Arguments as ParentArguments } from '../nso.js';
|
||||
import { ArgumentsCamelCase, Argv, YargsArguments } from '../../util/yargs.js';
|
||||
import { initStorage } from '../../util/storage.js';
|
||||
import { getToken } from '../../common/auth/coral.js';
|
||||
import { getToken, Login } from '../../common/auth/coral.js';
|
||||
|
||||
const debug = createDebug('cli:nso:webservicetoken');
|
||||
|
||||
|
|
@ -39,7 +39,10 @@ export async function handler(argv: ArgumentsCamelCase<Arguments>) {
|
|||
await storage.getItem('NintendoAccountToken.' + usernsid);
|
||||
const {nso, data} = await getToken(storage, token, argv.zncProxyUrl);
|
||||
|
||||
const announcements = await nso.getAnnouncements();
|
||||
if (data[Login]) {
|
||||
const announcements = await nso.getAnnouncements();
|
||||
}
|
||||
|
||||
const friends = await nso.getFriendList();
|
||||
const webservices = await nso.getWebServices();
|
||||
const activeevent = await nso.getActiveEvent();
|
||||
|
|
|
|||
|
|
@ -10,9 +10,13 @@ import { checkUseLimit, SHOULD_LIMIT_USE } from './util.js';
|
|||
|
||||
const debug = createDebug('nxapi:auth:coral');
|
||||
|
||||
export const Login = Symbol('Login');
|
||||
|
||||
export interface SavedToken extends CoralAuthData {
|
||||
expires_at: number;
|
||||
proxy_url?: string;
|
||||
/** Indicates we just logged in and didn't use a cached token */
|
||||
[Login]?: boolean;
|
||||
}
|
||||
|
||||
export async function getToken(
|
||||
|
|
@ -74,6 +78,8 @@ export async function getToken(
|
|||
await storage.setItem('NsoToken.' + token, existingToken);
|
||||
await storage.setItem('NintendoAccountToken.' + data.user.id, token);
|
||||
|
||||
existingToken[Login] = true;
|
||||
|
||||
return {nso, data: existingToken};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import createDebug from 'debug';
|
||||
import persist from 'node-persist';
|
||||
import { getToken } from './coral.js';
|
||||
import { getToken, Login } from './coral.js';
|
||||
import NooklinkApi, { NooklinkUserApi } from '../../api/nooklink.js';
|
||||
import { AuthToken, Users } from '../../api/nooklink-types.js';
|
||||
import { WebServiceToken } from '../../api/coral-types.js';
|
||||
|
|
@ -47,6 +47,13 @@ export async function getWebServiceToken(
|
|||
|
||||
const {nso, data} = await getToken(storage, token, proxy_url);
|
||||
|
||||
if (data[Login]) {
|
||||
const announcements = await nso.getAnnouncements();
|
||||
const friends = await nso.getFriendList();
|
||||
const webservices = await nso.getWebServices();
|
||||
const activeevent = await nso.getActiveEvent();
|
||||
}
|
||||
|
||||
const existingToken: SavedToken = await NooklinkApi.loginWithCoral(nso, data.user);
|
||||
|
||||
await storage.setItem('NookToken.' + token, existingToken);
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import process from 'node:process';
|
|||
import * as fs from 'node:fs';
|
||||
import createDebug from 'debug';
|
||||
import persist from 'node-persist';
|
||||
import { getToken } from './coral.js';
|
||||
import { getToken, Login } from './coral.js';
|
||||
import SplatNet2Api, { SplatNet2AuthData, updateIksmSessionLastUsed } from '../../api/splatnet2.js';
|
||||
import { checkUseLimit, SHOULD_LIMIT_USE } from './util.js';
|
||||
import { Jwt } from '../../util/jwt.js';
|
||||
|
|
@ -44,6 +44,13 @@ export async function getIksmToken(
|
|||
|
||||
const {nso, data} = await getToken(storage, token, proxy_url);
|
||||
|
||||
if (data[Login]) {
|
||||
const announcements = await nso.getAnnouncements();
|
||||
const friends = await nso.getFriendList();
|
||||
const webservices = await nso.getWebServices();
|
||||
const activeevent = await nso.getActiveEvent();
|
||||
}
|
||||
|
||||
const existingToken: SavedIksmSessionToken = await SplatNet2Api.loginWithCoral(nso, data.user);
|
||||
|
||||
await storage.setItem('IksmToken.' + token, existingToken);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user