Repository files navigation

MMM-NewsAPI

A MagicMirror² module to to get news from NewsAPi.org.

license

Support

If you like my module you can support my work by giving me a star ir buy me a coffee.

Buy Me A Beer

Example

Updates

  • Make sortBy an optional parameter for both headlines and everything
  • Add DEBUG Handling.
    • Only add debug: true to the config section if you are experiencing issues and require more information to find issues.
  • Replaced moment with luxon
  • Replaced request with node-fetch
  • Remove the following line from your config className: "NEWS",. It is no longer required and module will stop working if not removed.
  • Optional QR code via QRious

Dependencies

  • luxon@2.0.2
  • node-fetch@2.6.1
  • qrious@4.0.2

Installation

In your terminal, go to your MagicMirror's Module folder:

cd ~/MagicMirror/modules

Clone this repository:

git clone https://github.com/mumblebaj/MMM-NewsAPI.git

Add the module to the modules array in the config/config.js file:

{module: "MMM-NewsAPI",header: "NEWS",position: "bottom_bar",},

Configuration options

The following properties can be configured:

OptionDescription
headerThe header text

Default value:'NEWS'
choiceType of query to be instantiated

Possible values:headlines or everything
Default value:headlines
typeOrientation

Possible values:horizontal or vertical
Default value:horizontal. Module does currently not cater for vertical
pageSizeThe number of articles to be returned. Max = 100
Default value:20
sortByThe order to sort the articles in.
Possible values:relevancy, popularity, publishedAt
only available for choice: "everything"
drawIntervalThe amount of time each article is displayed
Default value:30 seconds
templateFileThe template file to use. You can create your own template file and reference here. For now use template.html
fetchIntervalThe time interval between fetching new articles. There is a daily limit of 100 calls per apiKey. Best to set this to 1006060
apiKeyYou can obtain an API Key from NewsAPi.org
QRCodeBoolean true/false value to display QR code for article URL. Default is false.

Query Options

The following query options can be defined
When specifying the query options take note of the following:
When using headlines, country and sources cannot be used together.
The domains option cannot be used on it's own, you have to specify any of the following parameters with it: sources, q, language, country, category.
When using everything, you cannot use the country option.
To try more combinations you can visit NewsAPi.org

OptionDescription
countryThe 2-letter ISO 3166-1 code of the country you want to get headlines for.
Possible options:
aearataubebgbrcachcn
cocuczdeegfrgbgrhkhuidieveza
ilinitjpkrltlvmamxmyngnl
nonzphplptrorsrusasesgsi
skthtrtwuaus.
Note: you can't mix this param with the sources param
categoryThe category you want to get headlines for.
Possible options: businessentertainmentgeneralhealthsciencesportstechnology.
Note: you can't mix this param with the sources param.
qKeywords or phrases to search for in the article title and body
qInTitleKeywords or phrases to search for in the article title only
sourcesA comma-seperated string of identifiers (maximum 20) for the news sources or blogs you want headlines from
domainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to restrict the search to.
excludeDomainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to remove from the results.
languageThe 2-letter ISO-639-1 code of the language you want to get headlines for. Possible options:
ardeenesfrheitnlnoptruseudzh

Config Example

everything Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "everything",pageSize: 10,sortBy: "publishedAt",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,QRCode: true,query: {country: "",category: "",q: "",qInTitle: "",sources: "",domains: "cnn.com,nytimes.com,news24.com",excludeDomains: "",language: ""}}},

headlines Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "headlines",pageSize: 10,sortBy: "relevance",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,query: {country: "us",category: "",q: "covid",qInTitle: "",sources: "",domains: "nytimes.com",excludeDomains: "",language: ""}}},

Notes

Updating

To update the module to the latest version, use your terminal to go to your MMM-NewsAPI module folder and type the following command:

cd MMM-NewsAPI
git pull
npm install

About

MagicMirror² module - displaying news articles from Newsapi.org API V2

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

MMM-NewsAPI

A MagicMirror² module to to get news from NewsAPi.org.

license

Support

If you like my module you can support my work by giving me a star ir buy me a coffee.

Buy Me A Beer

Example

Updates

  • Make sortBy an optional parameter for both headlines and everything
  • Add DEBUG Handling.
    • Only add debug: true to the config section if you are experiencing issues and require more information to find issues.
  • Replaced moment with luxon
  • Replaced request with node-fetch
  • Remove the following line from your config className: "NEWS",. It is no longer required and module will stop working if not removed.
  • Optional QR code via QRious

Dependencies

  • luxon@2.0.2
  • node-fetch@2.6.1
  • qrious@4.0.2

Installation

In your terminal, go to your MagicMirror's Module folder:

cd ~/MagicMirror/modules

Clone this repository:

git clone https://github.com/mumblebaj/MMM-NewsAPI.git

Add the module to the modules array in the config/config.js file:

{module: "MMM-NewsAPI",header: "NEWS",position: "bottom_bar",},

Configuration options

The following properties can be configured:

OptionDescription
headerThe header text

Default value:'NEWS'
choiceType of query to be instantiated

Possible values:headlines or everything
Default value:headlines
typeOrientation

Possible values:horizontal or vertical
Default value:horizontal. Module does currently not cater for vertical
pageSizeThe number of articles to be returned. Max = 100
Default value:20
sortByThe order to sort the articles in.
Possible values:relevancy, popularity, publishedAt
only available for choice: "everything"
drawIntervalThe amount of time each article is displayed
Default value:30 seconds
templateFileThe template file to use. You can create your own template file and reference here. For now use template.html
fetchIntervalThe time interval between fetching new articles. There is a daily limit of 100 calls per apiKey. Best to set this to 1006060
apiKeyYou can obtain an API Key from NewsAPi.org
QRCodeBoolean true/false value to display QR code for article URL. Default is false.

Query Options

The following query options can be defined
When specifying the query options take note of the following:
When using headlines, country and sources cannot be used together.
The domains option cannot be used on it's own, you have to specify any of the following parameters with it: sources, q, language, country, category.
When using everything, you cannot use the country option.
To try more combinations you can visit NewsAPi.org

OptionDescription
countryThe 2-letter ISO 3166-1 code of the country you want to get headlines for.
Possible options:
aearataubebgbrcachcn
cocuczdeegfrgbgrhkhuidieveza
ilinitjpkrltlvmamxmyngnl
nonzphplptrorsrusasesgsi
skthtrtwuaus.
Note: you can't mix this param with the sources param
categoryThe category you want to get headlines for.
Possible options: businessentertainmentgeneralhealthsciencesportstechnology.
Note: you can't mix this param with the sources param.
qKeywords or phrases to search for in the article title and body
qInTitleKeywords or phrases to search for in the article title only
sourcesA comma-seperated string of identifiers (maximum 20) for the news sources or blogs you want headlines from
domainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to restrict the search to.
excludeDomainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to remove from the results.
languageThe 2-letter ISO-639-1 code of the language you want to get headlines for. Possible options:
ardeenesfrheitnlnoptruseudzh

Config Example

everything Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "everything",pageSize: 10,sortBy: "publishedAt",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,QRCode: true,query: {country: "",category: "",q: "",qInTitle: "",sources: "",domains: "cnn.com,nytimes.com,news24.com",excludeDomains: "",language: ""}}},

headlines Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "headlines",pageSize: 10,sortBy: "relevance",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,query: {country: "us",category: "",q: "covid",qInTitle: "",sources: "",domains: "nytimes.com",excludeDomains: "",language: ""}}},

Notes

Updating

To update the module to the latest version, use your terminal to go to your MMM-NewsAPI module folder and type the following command:

cd MMM-NewsAPI
git pull
npm install

About

MagicMirror² module - displaying news articles from Newsapi.org API V2

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

MMM-NewsAPI

A MagicMirror² module to to get news from NewsAPi.org.

license

Support

If you like my module you can support my work by giving me a star ir buy me a coffee.

Buy Me A Beer

Example

Updates

  • Make sortBy an optional parameter for both headlines and everything
  • Add DEBUG Handling.
    • Only add debug: true to the config section if you are experiencing issues and require more information to find issues.
  • Replaced moment with luxon
  • Replaced request with node-fetch
  • Remove the following line from your config className: "NEWS",. It is no longer required and module will stop working if not removed.
  • Optional QR code via QRious

Dependencies

  • luxon@2.0.2
  • node-fetch@2.6.1
  • qrious@4.0.2

Installation

In your terminal, go to your MagicMirror's Module folder:

cd ~/MagicMirror/modules

Clone this repository:

git clone https://github.com/mumblebaj/MMM-NewsAPI.git

Add the module to the modules array in the config/config.js file:

{module: "MMM-NewsAPI",header: "NEWS",position: "bottom_bar",},

Configuration options

The following properties can be configured:

OptionDescription
headerThe header text

Default value:'NEWS'
choiceType of query to be instantiated

Possible values:headlines or everything
Default value:headlines
typeOrientation

Possible values:horizontal or vertical
Default value:horizontal. Module does currently not cater for vertical
pageSizeThe number of articles to be returned. Max = 100
Default value:20
sortByThe order to sort the articles in.
Possible values:relevancy, popularity, publishedAt
only available for choice: "everything"
drawIntervalThe amount of time each article is displayed
Default value:30 seconds
templateFileThe template file to use. You can create your own template file and reference here. For now use template.html
fetchIntervalThe time interval between fetching new articles. There is a daily limit of 100 calls per apiKey. Best to set this to 1006060
apiKeyYou can obtain an API Key from NewsAPi.org
QRCodeBoolean true/false value to display QR code for article URL. Default is false.

Query Options

The following query options can be defined
When specifying the query options take note of the following:
When using headlines, country and sources cannot be used together.
The domains option cannot be used on it's own, you have to specify any of the following parameters with it: sources, q, language, country, category.
When using everything, you cannot use the country option.
To try more combinations you can visit NewsAPi.org

OptionDescription
countryThe 2-letter ISO 3166-1 code of the country you want to get headlines for.
Possible options:
aearataubebgbrcachcn
cocuczdeegfrgbgrhkhuidieveza
ilinitjpkrltlvmamxmyngnl
nonzphplptrorsrusasesgsi
skthtrtwuaus.
Note: you can't mix this param with the sources param
categoryThe category you want to get headlines for.
Possible options: businessentertainmentgeneralhealthsciencesportstechnology.
Note: you can't mix this param with the sources param.
qKeywords or phrases to search for in the article title and body
qInTitleKeywords or phrases to search for in the article title only
sourcesA comma-seperated string of identifiers (maximum 20) for the news sources or blogs you want headlines from
domainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to restrict the search to.
excludeDomainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to remove from the results.
languageThe 2-letter ISO-639-1 code of the language you want to get headlines for. Possible options:
ardeenesfrheitnlnoptruseudzh

Config Example

everything Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "everything",pageSize: 10,sortBy: "publishedAt",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,QRCode: true,query: {country: "",category: "",q: "",qInTitle: "",sources: "",domains: "cnn.com,nytimes.com,news24.com",excludeDomains: "",language: ""}}},

headlines Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "headlines",pageSize: 10,sortBy: "relevance",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,query: {country: "us",category: "",q: "covid",qInTitle: "",sources: "",domains: "nytimes.com",excludeDomains: "",language: ""}}},

Notes

Updating

To update the module to the latest version, use your terminal to go to your MMM-NewsAPI module folder and type the following command:

cd MMM-NewsAPI
git pull
npm install

About

MagicMirror² module - displaying news articles from Newsapi.org API V2

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

MMM-NewsAPI

A MagicMirror² module to to get news from NewsAPi.org.

license

Support

If you like my module you can support my work by giving me a star ir buy me a coffee.

Buy Me A Beer

Example

Updates

  • Make sortBy an optional parameter for both headlines and everything
  • Add DEBUG Handling.
    • Only add debug: true to the config section if you are experiencing issues and require more information to find issues.
  • Replaced moment with luxon
  • Replaced request with node-fetch
  • Remove the following line from your config className: "NEWS",. It is no longer required and module will stop working if not removed.
  • Optional QR code via QRious

Dependencies

  • luxon@2.0.2
  • node-fetch@2.6.1
  • qrious@4.0.2

Installation

In your terminal, go to your MagicMirror's Module folder:

cd ~/MagicMirror/modules

Clone this repository:

git clone https://github.com/mumblebaj/MMM-NewsAPI.git

Add the module to the modules array in the config/config.js file:

{module: "MMM-NewsAPI",header: "NEWS",position: "bottom_bar",},

Configuration options

The following properties can be configured:

OptionDescription
headerThe header text

Default value:'NEWS'
choiceType of query to be instantiated

Possible values:headlines or everything
Default value:headlines
typeOrientation

Possible values:horizontal or vertical
Default value:horizontal. Module does currently not cater for vertical
pageSizeThe number of articles to be returned. Max = 100
Default value:20
sortByThe order to sort the articles in.
Possible values:relevancy, popularity, publishedAt
only available for choice: "everything"
drawIntervalThe amount of time each article is displayed
Default value:30 seconds
templateFileThe template file to use. You can create your own template file and reference here. For now use template.html
fetchIntervalThe time interval between fetching new articles. There is a daily limit of 100 calls per apiKey. Best to set this to 1006060
apiKeyYou can obtain an API Key from NewsAPi.org
QRCodeBoolean true/false value to display QR code for article URL. Default is false.

Query Options

The following query options can be defined
When specifying the query options take note of the following:
When using headlines, country and sources cannot be used together.
The domains option cannot be used on it's own, you have to specify any of the following parameters with it: sources, q, language, country, category.
When using everything, you cannot use the country option.
To try more combinations you can visit NewsAPi.org

OptionDescription
countryThe 2-letter ISO 3166-1 code of the country you want to get headlines for.
Possible options:
aearataubebgbrcachcn
cocuczdeegfrgbgrhkhuidieveza
ilinitjpkrltlvmamxmyngnl
nonzphplptrorsrusasesgsi
skthtrtwuaus.
Note: you can't mix this param with the sources param
categoryThe category you want to get headlines for.
Possible options: businessentertainmentgeneralhealthsciencesportstechnology.
Note: you can't mix this param with the sources param.
qKeywords or phrases to search for in the article title and body
qInTitleKeywords or phrases to search for in the article title only
sourcesA comma-seperated string of identifiers (maximum 20) for the news sources or blogs you want headlines from
domainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to restrict the search to.
excludeDomainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to remove from the results.
languageThe 2-letter ISO-639-1 code of the language you want to get headlines for. Possible options:
ardeenesfrheitnlnoptruseudzh

Config Example

everything Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "everything",pageSize: 10,sortBy: "publishedAt",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,QRCode: true,query: {country: "",category: "",q: "",qInTitle: "",sources: "",domains: "cnn.com,nytimes.com,news24.com",excludeDomains: "",language: ""}}},

headlines Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "headlines",pageSize: 10,sortBy: "relevance",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,query: {country: "us",category: "",q: "covid",qInTitle: "",sources: "",domains: "nytimes.com",excludeDomains: "",language: ""}}},

Notes

Updating

To update the module to the latest version, use your terminal to go to your MMM-NewsAPI module folder and type the following command:

cd MMM-NewsAPI
git pull
npm install

About

MagicMirror² module - displaying news articles from Newsapi.org API V2

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

MMM-NewsAPI

A MagicMirror² module to to get news from NewsAPi.org.

license

Support

If you like my module you can support my work by giving me a star ir buy me a coffee.

Buy Me A Beer

Example

Updates

  • Make sortBy an optional parameter for both headlines and everything
  • Add DEBUG Handling.
    • Only add debug: true to the config section if you are experiencing issues and require more information to find issues.
  • Replaced moment with luxon
  • Replaced request with node-fetch
  • Remove the following line from your config className: "NEWS",. It is no longer required and module will stop working if not removed.
  • Optional QR code via QRious

Dependencies

  • luxon@2.0.2
  • node-fetch@2.6.1
  • qrious@4.0.2

Installation

In your terminal, go to your MagicMirror's Module folder:

cd ~/MagicMirror/modules

Clone this repository:

git clone https://github.com/mumblebaj/MMM-NewsAPI.git

Add the module to the modules array in the config/config.js file:

{module: "MMM-NewsAPI",header: "NEWS",position: "bottom_bar",},

Configuration options

The following properties can be configured:

OptionDescription
headerThe header text

Default value:'NEWS'
choiceType of query to be instantiated

Possible values:headlines or everything
Default value:headlines
typeOrientation

Possible values:horizontal or vertical
Default value:horizontal. Module does currently not cater for vertical
pageSizeThe number of articles to be returned. Max = 100
Default value:20
sortByThe order to sort the articles in.
Possible values:relevancy, popularity, publishedAt
only available for choice: "everything"
drawIntervalThe amount of time each article is displayed
Default value:30 seconds
templateFileThe template file to use. You can create your own template file and reference here. For now use template.html
fetchIntervalThe time interval between fetching new articles. There is a daily limit of 100 calls per apiKey. Best to set this to 1006060
apiKeyYou can obtain an API Key from NewsAPi.org
QRCodeBoolean true/false value to display QR code for article URL. Default is false.

Query Options

The following query options can be defined
When specifying the query options take note of the following:
When using headlines, country and sources cannot be used together.
The domains option cannot be used on it's own, you have to specify any of the following parameters with it: sources, q, language, country, category.
When using everything, you cannot use the country option.
To try more combinations you can visit NewsAPi.org

OptionDescription
countryThe 2-letter ISO 3166-1 code of the country you want to get headlines for.
Possible options:
aearataubebgbrcachcn
cocuczdeegfrgbgrhkhuidieveza
ilinitjpkrltlvmamxmyngnl
nonzphplptrorsrusasesgsi
skthtrtwuaus.
Note: you can't mix this param with the sources param
categoryThe category you want to get headlines for.
Possible options: businessentertainmentgeneralhealthsciencesportstechnology.
Note: you can't mix this param with the sources param.
qKeywords or phrases to search for in the article title and body
qInTitleKeywords or phrases to search for in the article title only
sourcesA comma-seperated string of identifiers (maximum 20) for the news sources or blogs you want headlines from
domainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to restrict the search to.
excludeDomainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to remove from the results.
languageThe 2-letter ISO-639-1 code of the language you want to get headlines for. Possible options:
ardeenesfrheitnlnoptruseudzh

Config Example

everything Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "everything",pageSize: 10,sortBy: "publishedAt",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,QRCode: true,query: {country: "",category: "",q: "",qInTitle: "",sources: "",domains: "cnn.com,nytimes.com,news24.com",excludeDomains: "",language: ""}}},

headlines Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "headlines",pageSize: 10,sortBy: "relevance",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,query: {country: "us",category: "",q: "covid",qInTitle: "",sources: "",domains: "nytimes.com",excludeDomains: "",language: ""}}},

Notes

Updating

To update the module to the latest version, use your terminal to go to your MMM-NewsAPI module folder and type the following command:

cd MMM-NewsAPI
git pull
npm install

About

MagicMirror² module - displaying news articles from Newsapi.org API V2

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

MMM-NewsAPI

A MagicMirror² module to to get news from NewsAPi.org.

license

Support

If you like my module you can support my work by giving me a star ir buy me a coffee.

Buy Me A Beer

Example

Updates

  • Make sortBy an optional parameter for both headlines and everything
  • Add DEBUG Handling.
    • Only add debug: true to the config section if you are experiencing issues and require more information to find issues.
  • Replaced moment with luxon
  • Replaced request with node-fetch
  • Remove the following line from your config className: "NEWS",. It is no longer required and module will stop working if not removed.
  • Optional QR code via QRious

Dependencies

  • luxon@2.0.2
  • node-fetch@2.6.1
  • qrious@4.0.2

Installation

In your terminal, go to your MagicMirror's Module folder:

cd ~/MagicMirror/modules

Clone this repository:

git clone https://github.com/mumblebaj/MMM-NewsAPI.git

Add the module to the modules array in the config/config.js file:

{module: "MMM-NewsAPI",header: "NEWS",position: "bottom_bar",},

Configuration options

The following properties can be configured:

OptionDescription
headerThe header text

Default value:'NEWS'
choiceType of query to be instantiated

Possible values:headlines or everything
Default value:headlines
typeOrientation

Possible values:horizontal or vertical
Default value:horizontal. Module does currently not cater for vertical
pageSizeThe number of articles to be returned. Max = 100
Default value:20
sortByThe order to sort the articles in.
Possible values:relevancy, popularity, publishedAt
only available for choice: "everything"
drawIntervalThe amount of time each article is displayed
Default value:30 seconds
templateFileThe template file to use. You can create your own template file and reference here. For now use template.html
fetchIntervalThe time interval between fetching new articles. There is a daily limit of 100 calls per apiKey. Best to set this to 1006060
apiKeyYou can obtain an API Key from NewsAPi.org
QRCodeBoolean true/false value to display QR code for article URL. Default is false.

Query Options

The following query options can be defined
When specifying the query options take note of the following:
When using headlines, country and sources cannot be used together.
The domains option cannot be used on it's own, you have to specify any of the following parameters with it: sources, q, language, country, category.
When using everything, you cannot use the country option.
To try more combinations you can visit NewsAPi.org

OptionDescription
countryThe 2-letter ISO 3166-1 code of the country you want to get headlines for.
Possible options:
aearataubebgbrcachcn
cocuczdeegfrgbgrhkhuidieveza
ilinitjpkrltlvmamxmyngnl
nonzphplptrorsrusasesgsi
skthtrtwuaus.
Note: you can't mix this param with the sources param
categoryThe category you want to get headlines for.
Possible options: businessentertainmentgeneralhealthsciencesportstechnology.
Note: you can't mix this param with the sources param.
qKeywords or phrases to search for in the article title and body
qInTitleKeywords or phrases to search for in the article title only
sourcesA comma-seperated string of identifiers (maximum 20) for the news sources or blogs you want headlines from
domainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to restrict the search to.
excludeDomainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to remove from the results.
languageThe 2-letter ISO-639-1 code of the language you want to get headlines for. Possible options:
ardeenesfrheitnlnoptruseudzh

Config Example

everything Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "everything",pageSize: 10,sortBy: "publishedAt",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,QRCode: true,query: {country: "",category: "",q: "",qInTitle: "",sources: "",domains: "cnn.com,nytimes.com,news24.com",excludeDomains: "",language: ""}}},

headlines Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "headlines",pageSize: 10,sortBy: "relevance",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,query: {country: "us",category: "",q: "covid",qInTitle: "",sources: "",domains: "nytimes.com",excludeDomains: "",language: ""}}},

Notes

Updating

To update the module to the latest version, use your terminal to go to your MMM-NewsAPI module folder and type the following command:

cd MMM-NewsAPI
git pull
npm install

About

MagicMirror² module - displaying news articles from Newsapi.org API V2

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

MMM-NewsAPI

A MagicMirror² module to to get news from NewsAPi.org.

license

Support

If you like my module you can support my work by giving me a star ir buy me a coffee.

Buy Me A Beer

Example

Updates

  • Make sortBy an optional parameter for both headlines and everything
  • Add DEBUG Handling.
    • Only add debug: true to the config section if you are experiencing issues and require more information to find issues.
  • Replaced moment with luxon
  • Replaced request with node-fetch
  • Remove the following line from your config className: "NEWS",. It is no longer required and module will stop working if not removed.
  • Optional QR code via QRious

Dependencies

  • luxon@2.0.2
  • node-fetch@2.6.1
  • qrious@4.0.2

Installation

In your terminal, go to your MagicMirror's Module folder:

cd ~/MagicMirror/modules

Clone this repository:

git clone https://github.com/mumblebaj/MMM-NewsAPI.git

Add the module to the modules array in the config/config.js file:

{module: "MMM-NewsAPI",header: "NEWS",position: "bottom_bar",},

Configuration options

The following properties can be configured:

OptionDescription
headerThe header text

Default value:'NEWS'
choiceType of query to be instantiated

Possible values:headlines or everything
Default value:headlines
typeOrientation

Possible values:horizontal or vertical
Default value:horizontal. Module does currently not cater for vertical
pageSizeThe number of articles to be returned. Max = 100
Default value:20
sortByThe order to sort the articles in.
Possible values:relevancy, popularity, publishedAt
only available for choice: "everything"
drawIntervalThe amount of time each article is displayed
Default value:30 seconds
templateFileThe template file to use. You can create your own template file and reference here. For now use template.html
fetchIntervalThe time interval between fetching new articles. There is a daily limit of 100 calls per apiKey. Best to set this to 1006060
apiKeyYou can obtain an API Key from NewsAPi.org
QRCodeBoolean true/false value to display QR code for article URL. Default is false.

Query Options

The following query options can be defined
When specifying the query options take note of the following:
When using headlines, country and sources cannot be used together.
The domains option cannot be used on it's own, you have to specify any of the following parameters with it: sources, q, language, country, category.
When using everything, you cannot use the country option.
To try more combinations you can visit NewsAPi.org

OptionDescription
countryThe 2-letter ISO 3166-1 code of the country you want to get headlines for.
Possible options:
aearataubebgbrcachcn
cocuczdeegfrgbgrhkhuidieveza
ilinitjpkrltlvmamxmyngnl
nonzphplptrorsrusasesgsi
skthtrtwuaus.
Note: you can't mix this param with the sources param
categoryThe category you want to get headlines for.
Possible options: businessentertainmentgeneralhealthsciencesportstechnology.
Note: you can't mix this param with the sources param.
qKeywords or phrases to search for in the article title and body
qInTitleKeywords or phrases to search for in the article title only
sourcesA comma-seperated string of identifiers (maximum 20) for the news sources or blogs you want headlines from
domainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to restrict the search to.
excludeDomainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to remove from the results.
languageThe 2-letter ISO-639-1 code of the language you want to get headlines for. Possible options:
ardeenesfrheitnlnoptruseudzh

Config Example

everything Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "everything",pageSize: 10,sortBy: "publishedAt",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,QRCode: true,query: {country: "",category: "",q: "",qInTitle: "",sources: "",domains: "cnn.com,nytimes.com,news24.com",excludeDomains: "",language: ""}}},

headlines Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "headlines",pageSize: 10,sortBy: "relevance",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,query: {country: "us",category: "",q: "covid",qInTitle: "",sources: "",domains: "nytimes.com",excludeDomains: "",language: ""}}},

Notes

Updating

To update the module to the latest version, use your terminal to go to your MMM-NewsAPI module folder and type the following command:

cd MMM-NewsAPI
git pull
npm install

About

MagicMirror² module - displaying news articles from Newsapi.org API V2

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

MMM-NewsAPI

A MagicMirror² module to to get news from NewsAPi.org.

license

Support

If you like my module you can support my work by giving me a star ir buy me a coffee.

Buy Me A Beer

Example

Updates

  • Make sortBy an optional parameter for both headlines and everything
  • Add DEBUG Handling.
    • Only add debug: true to the config section if you are experiencing issues and require more information to find issues.
  • Replaced moment with luxon
  • Replaced request with node-fetch
  • Remove the following line from your config className: "NEWS",. It is no longer required and module will stop working if not removed.
  • Optional QR code via QRious

Dependencies

  • luxon@2.0.2
  • node-fetch@2.6.1
  • qrious@4.0.2

Installation

In your terminal, go to your MagicMirror's Module folder:

cd ~/MagicMirror/modules

Clone this repository:

git clone https://github.com/mumblebaj/MMM-NewsAPI.git

Add the module to the modules array in the config/config.js file:

{module: "MMM-NewsAPI",header: "NEWS",position: "bottom_bar",},

Configuration options

The following properties can be configured:

OptionDescription
headerThe header text

Default value:'NEWS'
choiceType of query to be instantiated

Possible values:headlines or everything
Default value:headlines
typeOrientation

Possible values:horizontal or vertical
Default value:horizontal. Module does currently not cater for vertical
pageSizeThe number of articles to be returned. Max = 100
Default value:20
sortByThe order to sort the articles in.
Possible values:relevancy, popularity, publishedAt
only available for choice: "everything"
drawIntervalThe amount of time each article is displayed
Default value:30 seconds
templateFileThe template file to use. You can create your own template file and reference here. For now use template.html
fetchIntervalThe time interval between fetching new articles. There is a daily limit of 100 calls per apiKey. Best to set this to 1006060
apiKeyYou can obtain an API Key from NewsAPi.org
QRCodeBoolean true/false value to display QR code for article URL. Default is false.

Query Options

The following query options can be defined
When specifying the query options take note of the following:
When using headlines, country and sources cannot be used together.
The domains option cannot be used on it's own, you have to specify any of the following parameters with it: sources, q, language, country, category.
When using everything, you cannot use the country option.
To try more combinations you can visit NewsAPi.org

OptionDescription
countryThe 2-letter ISO 3166-1 code of the country you want to get headlines for.
Possible options:
aearataubebgbrcachcn
cocuczdeegfrgbgrhkhuidieveza
ilinitjpkrltlvmamxmyngnl
nonzphplptrorsrusasesgsi
skthtrtwuaus.
Note: you can't mix this param with the sources param
categoryThe category you want to get headlines for.
Possible options: businessentertainmentgeneralhealthsciencesportstechnology.
Note: you can't mix this param with the sources param.
qKeywords or phrases to search for in the article title and body
qInTitleKeywords or phrases to search for in the article title only
sourcesA comma-seperated string of identifiers (maximum 20) for the news sources or blogs you want headlines from
domainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to restrict the search to.
excludeDomainsA comma-seperated string of domains (eg bbc.co.uk, techcrunch.com, engadget.com) to remove from the results.
languageThe 2-letter ISO-639-1 code of the language you want to get headlines for. Possible options:
ardeenesfrheitnlnoptruseudzh

Config Example

everything Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "everything",pageSize: 10,sortBy: "publishedAt",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,QRCode: true,query: {country: "",category: "",q: "",qInTitle: "",sources: "",domains: "cnn.com,nytimes.com,news24.com",excludeDomains: "",language: ""}}},

headlines Example

{module: "MMM-NewsAPI",header: "news",position: "bottom_bar",config: {apiKey: "",type: "horizontal",choice: "headlines",pageSize: 10,sortBy: "relevance",drawInterval: 1000*30,templateFile: "template.html",fetchInterval: 1000*60*60,query: {country: "us",category: "",q: "covid",qInTitle: "",sources: "",domains: "nytimes.com",excludeDomains: "",language: ""}}},

Notes

Updating

To update the module to the latest version, use your terminal to go to your MMM-NewsAPI module folder and type the following command:

cd MMM-NewsAPI
git pull
npm install

About

MagicMirror² module - displaying news articles from Newsapi.org API V2

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages