@@ -8,6 +8,7 @@ import { Router, Request } from 'express';
8
8
9
9
import { createCamera , createModel } from '../utils/modelRender' ;
10
10
import { db } from '../index' ;
11
+ import { getRequestOptions } from '../utils/web' ;
11
12
import { importByTexture , importCapeByURL } from './skindb' ;
12
13
import { MinecraftProfile , MinecraftUser , MinecraftNameHistoryElement , UserAgent , CapeType , SkinArea } from '../global' ;
13
14
import { restful , isUUID , toBoolean , Image , ErrorBuilder , ApiError , HttpError , setCaching , isNumber , toInt , isHttpURL , getFileNameFromURL , generateHash } from '../utils/utils' ;
@@ -357,7 +358,7 @@ router.all('/skin/:user?', (req, res, next) => {
357
358
const skinURL = mcUser . getSecureSkinURL ( ) ;
358
359
359
360
if ( skinURL ) {
360
- request . get ( skinURL , { encoding : null , jar : true , gzip : true } , ( err , httpRes , httpBody ) => {
361
+ request . get ( skinURL , Object . assign ( getRequestOptions ( ) , { encoding : null } ) , ( err , httpRes , httpBody ) => {
361
362
if ( err ) return next ( err ) ;
362
363
363
364
if ( httpRes . statusCode == 200 ) {
@@ -393,7 +394,7 @@ router.all('/skin/:user?', (req, res, next) => {
393
394
} else {
394
395
const skinURL : string = MinecraftUser . getSecureURL ( req . query . url as string ) ;
395
396
396
- request . get ( skinURL , { encoding : null , jar : true , gzip : true } , ( err , httpRes , httpBody ) => {
397
+ request . get ( skinURL , Object . assign ( getRequestOptions ( ) , { encoding : null } ) , ( err , httpRes , httpBody ) => {
397
398
if ( err ) return next ( err ) ;
398
399
399
400
if ( httpRes . statusCode == 200 ) {
@@ -459,7 +460,7 @@ router.all('/skin/:user?/:skinArea?/:3d?', (req, res, next) => {
459
460
const skinURL = mcUser . getSecureSkinURL ( ) ;
460
461
461
462
if ( skinURL ) {
462
- request . get ( skinURL , { encoding : null , jar : true , gzip : true } , ( err , httpRes , httpBody ) => {
463
+ request . get ( skinURL , Object . assign ( getRequestOptions ( ) , { encoding : null } ) , ( err , httpRes , httpBody ) => {
463
464
if ( err ) return next ( err ) ;
464
465
465
466
if ( httpRes . statusCode != 200 && httpRes . statusCode != 404 ) ApiError . log ( `${ skinURL } returned HTTP-Code ${ httpRes . statusCode } ` ) ;
@@ -497,7 +498,7 @@ router.all('/skin/:user?/:skinArea?/:3d?', (req, res, next) => {
497
498
// if (skinURL.toLowerCase().startsWith('https://cdn.skindb.net/skins/')) {
498
499
// }
499
500
500
- request . get ( skinURL , { encoding : null , jar : true , gzip : true } , ( err , httpRes , httpBody ) => {
501
+ request . get ( skinURL , Object . assign ( getRequestOptions ( ) , { encoding : null } ) , ( err , httpRes , httpBody ) => {
501
502
if ( err ) return next ( err ) ;
502
503
503
504
if ( httpRes . statusCode == 200 ) {
@@ -540,7 +541,7 @@ router.all('/capes/:capeType/:user?', (req, res, next) => {
540
541
capeType == CapeType . LABYMOD ? mcUser . getLabyModCapeURL ( ) : null ;
541
542
542
543
if ( capeURL ) {
543
- request . get ( capeURL , { encoding : null , jar : true , gzip : true } , ( err , httpRes , httpBody ) => {
544
+ request . get ( capeURL , Object . assign ( getRequestOptions ( ) , { encoding : null } ) , ( err , httpRes , httpBody ) => {
544
545
if ( err ) return next ( err ) ;
545
546
546
547
if ( httpRes . statusCode == 200 ) {
@@ -631,7 +632,7 @@ router.all('/capes/:capeType/:user?/render', (req, res, next) => {
631
632
capeType == CapeType . LABYMOD ? mcUser . getLabyModCapeURL ( ) : null ;
632
633
633
634
if ( capeURL ) {
634
- request . get ( capeURL , { encoding : null , jar : true , gzip : true } , ( err , httpRes , httpBody ) => {
635
+ request . get ( capeURL , Object . assign ( getRequestOptions ( ) , { encoding : null } ) , ( err , httpRes , httpBody ) => {
635
636
if ( err ) return next ( err ) ;
636
637
637
638
if ( httpRes . statusCode != 200 && httpRes . statusCode != 404 ) ApiError . log ( `${ capeURL } returned HTTP-Code ${ httpRes . statusCode } ` ) ;
@@ -651,7 +652,7 @@ router.all('/capes/:capeType/:user?/render', (req, res, next) => {
651
652
} else {
652
653
const capeURL : string = MinecraftUser . getSecureURL ( req . query . url as string ) ;
653
654
654
- request . get ( capeURL , { encoding : null , jar : true , gzip : true } , ( err , httpRes , httpBody ) => {
655
+ request . get ( capeURL , Object . assign ( getRequestOptions ( ) , { encoding : null } ) , ( err , httpRes , httpBody ) => {
655
656
if ( err ) return next ( err ) ;
656
657
657
658
if ( httpRes . statusCode == 200 ) {
@@ -795,7 +796,7 @@ export function getByUsername(username: string, at: number | string | null = nul
795
796
const get = ( callback : ( err : Error | null , apiRes : { id : string , name : string } | null ) => void ) => {
796
797
const cacheValue : { id : string , name : string } | Error | null | undefined = uuidCache . get ( cacheKey ) ;
797
798
if ( cacheValue == undefined ) {
798
- request . get ( `https://api.mojang.com/users/profiles/minecraft/${ username } ${ at != null ? `?at=${ at } ` : '' } ` , { jar : true , gzip : true } , ( err , httpRes , httpBody ) => {
799
+ request . get ( `https://api.mojang.com/users/profiles/minecraft/${ username } ${ at != null ? `?at=${ at } ` : '' } ` , getRequestOptions ( ) , ( err , httpRes , httpBody ) => {
799
800
if ( err ) {
800
801
uuidCache . set ( cacheKey , err ) ;
801
802
return callback ( err , null ) ;
@@ -808,7 +809,7 @@ export function getByUsername(username: string, at: number | string | null = nul
808
809
809
810
// Contact fallback api (should not be necessary but is better than returning an 429 or 500)
810
811
ApiError . log ( `Contacting api.ashcon.app for username lookup: ${ username } ` ) ;
811
- request . get ( `https://api.ashcon.app/mojang/v1/user/${ username } ` , { jar : true , gzip : true } , ( err , httpRes , httpBody ) => {
812
+ request . get ( `https://api.ashcon.app/mojang/v1/user/${ username } ` , getRequestOptions ( ) , ( err , httpRes , httpBody ) => {
812
813
if ( err || ( httpRes . statusCode != 200 && httpRes . statusCode != 404 ) ) {
813
814
return callback ( err || new ErrorBuilder ( ) . serverErr ( `The server got rejected (${ HttpError . getName ( httpRes . statusCode ) || httpRes . statusCode } )` ) , null ) ;
814
815
}
@@ -871,7 +872,7 @@ export function getByUUID(uuid: string, req: Request | null, callback: (err: Err
871
872
// TODO: Reduce duplicate code
872
873
if ( rateLimitedNameHistory > 6 ) {
873
874
// Contact fallback api (should not be necessary but is better than returning an 429 or 500
874
- request . get ( `https://api.ashcon.app/mojang/v2/user/${ mcUser . id } ` , { jar : true , gzip : true } , ( err , httpRes , httpBody ) => { // FIXME: This api never returns legacy-field
875
+ request . get ( `https://api.ashcon.app/mojang/v2/user/${ mcUser . id } ` , getRequestOptions ( ) , ( err , httpRes , httpBody ) => { // FIXME: This api never returns legacy-field
875
876
if ( err || ( httpRes . statusCode != 200 && httpRes . statusCode != 404 ) ) {
876
877
return callback ( err || new ErrorBuilder ( ) . serverErr ( `The server got rejected (${ HttpError . getName ( httpRes . statusCode ) || httpRes . statusCode } )` , true ) , null ) ;
877
878
}
@@ -888,15 +889,15 @@ export function getByUUID(uuid: string, req: Request | null, callback: (err: Err
888
889
return callback ( null , result ) ;
889
890
} ) ;
890
891
} else {
891
- request . get ( `https://api.mojang.com/user/profiles/${ mcUser . id } /names` , { jar : true , gzip : true } , ( err , httpRes , httpBody ) => {
892
+ request . get ( `https://api.mojang.com/user/profiles/${ mcUser . id } /names` , getRequestOptions ( ) , ( err , httpRes , httpBody ) => {
892
893
if ( err ) return callback ( err , null ) ;
893
894
894
895
if ( httpRes . statusCode != 200 && httpRes . statusCode != 204 ) {
895
896
// Contact fallback api (should not be necessary but is better than returning an 429 or 500
896
897
ApiError . log ( `Mojang returned ${ httpRes . statusCode } on name history lookup for ${ mcUser . id } ` ) ;
897
898
rateLimitedNameHistory ++ ;
898
899
899
- request . get ( `https://api.ashcon.app/mojang/v2/user/${ mcUser . id } ` , { jar : true , gzip : true } , ( err , httpRes , httpBody ) => { // FIXME: This api never returns legacy-field
900
+ request . get ( `https://api.ashcon.app/mojang/v2/user/${ mcUser . id } ` , getRequestOptions ( ) , ( err , httpRes , httpBody ) => { // FIXME: This api never returns legacy-field
900
901
if ( err || ( httpRes . statusCode != 200 && httpRes . statusCode != 404 ) ) {
901
902
return callback ( err || new ErrorBuilder ( ) . serverErr ( `The server got rejected (${ HttpError . getName ( httpRes . statusCode ) || httpRes . statusCode } )` , true ) , null ) ;
902
903
}
@@ -930,7 +931,7 @@ export function getByUUID(uuid: string, req: Request | null, callback: (err: Err
930
931
}
931
932
} ;
932
933
933
- request . get ( `https://sessionserver.mojang.com/session/minecraft/profile/${ uuid } ?unsigned=false` , { jar : true , gzip : true } , ( err , httpRes , httpBody ) => {
934
+ request . get ( `https://sessionserver.mojang.com/session/minecraft/profile/${ uuid } ?unsigned=false` , getRequestOptions ( ) , ( err , httpRes , httpBody ) => {
934
935
if ( err ) {
935
936
userCache . set ( uuid , err ) ;
936
937
return callback ( err , null ) ;
@@ -968,7 +969,7 @@ export function getByUUID(uuid: string, req: Request | null, callback: (err: Err
968
969
ApiError . log ( `Contacting api.ashcon.app for profile lookup: ${ uuid } ` ) ;
969
970
970
971
// Contact fallback api (should not be necessary but is better than returning an 429 or 500
971
- request . get ( `https://api.ashcon.app/mojang/v2/user/${ uuid } ` , { jar : true , gzip : true } , ( err , httpRes , httpBody ) => { // FIXME: This api never returns legacy-field
972
+ request . get ( `https://api.ashcon.app/mojang/v2/user/${ uuid } ` , getRequestOptions ( ) , ( err , httpRes , httpBody ) => { // FIXME: This api never returns legacy-field
972
973
if ( err || ( httpRes . statusCode != 200 && httpRes . statusCode != 404 ) ) {
973
974
return callback ( err || new ErrorBuilder ( ) . serverErr ( `The server got rejected (${ HttpError . getName ( httpRes . statusCode ) || httpRes . statusCode } )` , true ) , null ) ;
974
975
}
@@ -1079,7 +1080,7 @@ export function isUUIDCached(uuid: string): boolean {
1079
1080
}
1080
1081
1081
1082
function getBlockedServers ( callback : ( err : Error | null , hashes : string [ ] | null ) => void ) : void {
1082
- request . get ( `https://sessionserver.mojang.com/blockedservers` , { jar : true , gzip : true } , ( err , httpRes , httpBody ) => {
1083
+ request . get ( `https://sessionserver.mojang.com/blockedservers` , getRequestOptions ( ) , ( err , httpRes , httpBody ) => {
1083
1084
if ( err ) return callback ( err , null ) ;
1084
1085
if ( httpRes . statusCode != 200 ) return callback ( null , null ) ;
1085
1086
0 commit comments