@@ -68,7 +68,7 @@ async function cors(req, res) {
68
68
* @returns {object } An object specifying name and value of the headers.
69
69
*/
70
70
function getHeadersToSend ( url ) {
71
- const headersToSend = { "User-Agent" : `Mozilla/5.0 MagicMirror/ ${ global . version } ` } ;
71
+ const headersToSend = { "User-Agent" : getUserAgent ( ) } ;
72
72
const headersToSendMatch = new RegExp ( "sendheaders=(.+?)(&|$)" , "g" ) . exec ( url ) ;
73
73
if ( headersToSendMatch ) {
74
74
const headers = headersToSendMatch [ 1 ] . split ( "," ) ;
@@ -127,4 +127,25 @@ function getVersion(req, res) {
127
127
res . send ( global . version ) ;
128
128
}
129
129
130
- module . exports = { cors, getConfig, getHtml, getVersion, getStartup } ;
130
+ /**
131
+ * Gets the preferred `User-Agent`
132
+ * @returns {string } `User-Agent` to be used
133
+ */
134
+ function getUserAgent ( ) {
135
+ const defaultUserAgent = `Mozilla/5.0 (Node.js ${ Number ( process . version . match ( / ^ v ( \d + \. \d + ) / ) [ 1 ] ) } ) MagicMirror/${ global . version } ` ;
136
+
137
+ if ( typeof config === "undefined" ) {
138
+ return defaultUserAgent ;
139
+ }
140
+
141
+ switch ( typeof config . userAgent ) {
142
+ case "function" :
143
+ return config . userAgent ( ) ;
144
+ case "string" :
145
+ return config . userAgent ;
146
+ default :
147
+ return defaultUserAgent ;
148
+ }
149
+ }
150
+
151
+ module . exports = { cors, getConfig, getHtml, getVersion, getStartup, getUserAgent } ;
0 commit comments