forked from ELowry/StadiaIcons
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gather.js
74 lines (61 loc) · 2.28 KB
/
gather.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
const functions = require('firebase-functions');
const validator = require('validator');
module.exports = function(request, hasGet, uid, params, refs)
{
var data = {
isValid: true,
variantFound: false,
shortcutUrl: null,
webmanifestUrl: null,
fullName: '',
shortName: '',
alt: '',
};
// Alt fallback
if (params.alt)
{
data.alt = refs.other.altSuffix;
}
// Uid fallback & storage
if (!refs.uids.hasOwnProperty(uid))
{
uid = Object.keys(refs.uids)[0];
data.isValid = false;
}
data.uid = uid;
if (hasGet)
{
data.fullName = params.fullName;
data.shortName = params.shortName;
data.shortcutUrl = request.protocol + '://' + request.headers['x-forwarded-host'] +'/' + uid + '/?fullName=' + encodeURI(params.fullName).replace('&', '%26') + '&shortName=' + encodeURI(params.shortName).replace('&', '%26');
data.webmanifestUrl = '/' + uid + '/stadia.webmanifest?fullName=' + encodeURI(params.fullName).replace('&', '%26') + '&shortName=' + encodeURI(params.shortName).replace('&', '%26');
if (params.variant == 0)
{
data.variantFound = true;
}
else if (
params.variant
&&
validator.isInt(validator.toInt(params.variant)) && refs.uids.uid.hasOwnProperty(params.variant)
)
{
data.shortcutUrl += '&variant=' + params.variant;
data.webmanifestUrl += '&variant=' + params.variant;
data.variantFound = true;
}
if (params.alt)
{
data.shortcutUrl += '&alt=' + data.alt;
data.webmanifestUrl += '&alt=' + data.alt;
}
}
data.images = {
icon: refs.datasets.icons.uri + encodeURI(refs.uids[uid][params.variant]) + data.alt + refs.datasets.icons.extension,
image128: refs.datasets['images-128'].uri + encodeURI(refs.uids[uid][params.variant]) + data.alt + refs.datasets['images-128'].extension,
image192: refs.datasets['images-192'].uri + encodeURI(refs.uids[uid][params.variant]) + data.alt + refs.datasets['images-192'].extension,
image512: refs.datasets['images-512'].uri + encodeURI(refs.uids[uid][params.variant]) + data.alt + refs.datasets['images-512'].extension,
image: refs.datasets.images.uri + encodeURI(refs.uids[uid][params.variant]) + data.alt + refs.datasets.images.extension,
webp: refs.datasets.webp.uri + encodeURI(refs.uids[uid][params.variant]) + data.alt + refs.datasets.webp.extension
}
return data;
}