@@ -68,7 +68,7 @@ async function cors(req, res) {
6868 * @returns {object } An object specifying name and value of the headers.
6969 */
7070function getHeadersToSend ( url ) {
71- const headersToSend = { "User-Agent" : `Mozilla/5.0 MagicMirror/ ${ global . version } ` } ;
71+ const headersToSend = { "User-Agent" : getUserAgent ( ) } ;
7272 const headersToSendMatch = new RegExp ( "sendheaders=(.+?)(&|$)" , "g" ) . exec ( url ) ;
7373 if ( headersToSendMatch ) {
7474 const headers = headersToSendMatch [ 1 ] . split ( "," ) ;
@@ -127,4 +127,25 @@ function getVersion(req, res) {
127127 res . send ( global . version ) ;
128128}
129129
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