Read the statement by Michael Teeuw here.
MMM-NewsAPI
-
Hi all, setting up this amazing module but it seems to not work for me and I have no idea why. I tried already:
- Test api on postman. It works perfectly
- Check on the console. Nothing seems to be wrong
- Delete all modules except this one. Nothing changes
I´m also using it on an vertical screen but I don´t thing the type can make any changes to it. Tried already and nothing.
This is my config at the moment.
{ module: "MMM-NewsAPI", header: "news", position: "bottom_bar", pages: { "sport": "bottom_bar" }, config: { apiKey: "MYAPIKEY", type: "horizontal", choice: "everything", pageSize: 20, sortBy: "publishedAt", drawInterval: 1000 * 30, templateFile: "template.html", fetchInterval: 1000 * 60 * 60, query: { country: "", category: "", q: "", qInTitle: "", sources: "", domains: "bbc.co.uk", excludeDomains: "", language: "" } } },
Thanks for the help !!
-
Hi. What is the below config for?
@ufransa said in MMM-NewsAPI:pages: { “sport”: “bottom_bar” },
-
@mumblebaj I think he was doing MMM-pages but got the name wrong, should be classes:
-
@sdetweil Ah, got you.
-
@sdetweil I am assuming he is using your fork of MMM-pages and was probably trying to do the below.
{ module:"MMM-NewsAPI", classes:"sport", }
If I remember the README from your fork it calls for page1 page2 etc. I kinda remember carousel has the type of config he was trying to implement but a little different.
@ufransa can you confirm what you are trying to achieve or which module you using for page control?
-
@mumblebaj said in MMM-NewsAPI:
If I remember the README from your fork it calls for page1 page2 etc. I kinda remember carousel has the type of config he was trying to implement but a little different.
yes, the default pages and carousel use the module name in the ‘modules’ or ‘slides’ config. in the pages module this is really the module CLASSname (carousel can ONLY use module NAME in the ‘slides’ config )
which puts all the config in the pages module, but makes it hard for multi-instance as module name doesn’t work there , so you HAVE to use classes to ADD something unique
but when looking at config.js, you cant TELL what is where, you have to toggle back and forth between the text and the pages config… (I find this maddening)
so, just add a name for the page name (page1, dad, mom, billy, sue, stocks, weather, whatever)and use that in the classes field on each appropriate module…
then you can see it right there…
oh, dad AND weather… easy
oh, this is the calendar instance I created for billys schedule… easy,… add that to the classes field… done
I just used page1, page2 as examples to distinguish the groupings of modules
------ mmm-carousel does this to look thru the modules
modules = MM.getModules().exceptModule(this).filter(function (module) { // this looks thru modules, code uses module name
------ mmm-pages does this
MM.getModules()
.exceptWithClass(modulesToShow) // this filters modules by classname -
Hi ! Nono, I´m not using pages, it´s that another module I assume, right?
-
@ufransa You will need to advise which other module you are using. I am assuming that the config you passing in may not be correct. When I run
domains: "bbc.co.uk"
it worked fine for me without that extra config. Can you confirm which other module you are using so I can check if you have specified that config setting correct. -
@mumblebaj Of course ! This is all my config file:
/* Config Sample * * For more information on how you can configure this file * see https://docs.magicmirror.builders/configuration/introduction.html * and https://docs.magicmirror.builders/modules/configuration.html * * You can use environment variables using a `config.js.template` file instead of `config.js` * which will be converted to `config.js` while starting. For more information * see https://docs.magicmirror.builders/configuration/introduction.html#enviromnent-variables */ let config = { address: "localhost", // Address to listen on, can be: // - "localhost", "127.0.0.1", "::1" to listen on loopback interface // - another specific IPv4/6 to listen on a specific interface // - "0.0.0.0", "::" to listen on any interface // Default, when address config is left out or empty, is "localhost" port: 8080, basePath: "/", // The URL path where MagicMirror² is hosted. If you are using a Reverse proxy // you must set the sub path here. basePath must end with a / ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], // Set [] to allow all IP addresses // or add a specific IPv4 of 192.168.1.5 : // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"], // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format : // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"], useHttps: false, // Support HTTPS or not, default "false" will use HTTP httpsPrivateKey: "", // HTTPS private key path, only require when useHttps is true httpsCertificate: "", // HTTPS Certificate path, only require when useHttps is true language: "es", locale: "es-ES", logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging timeFormat: 24, units: "metric", modules: [ { module: "alert", }, { module: "clock", position: "top_left" }, { module: "calendar", position: "top_left", config: { broadcastPastEvents: true, calendars: [ { url: "calendar.ics", name: "ufransa", color: "orange" }, { url: "calendar.ics", name: "lupita", color: "green" }, ] } }, { module: "MMM-CustomElementTime" }, { module: "MMM-CountEvents", position: "top_right", config: { /* Common default properties */ locale: null, refresh: 1000 * 60, unit: "days", repeat: false, ignoreBefore: false, ignoreAfter: false, className: "default", output: `<dl><dt class="title"></dt><dd class="output"></dd></dl>`, numericAlways: false, reverse: false, numberOnly: false, numberSign: false, useQuarter: false, onPassed: null, onUpdated: null, events: [ { title: "the event", targetTime: "2025-07-12", ignoreAfter: 1000 * 60 * 60 * 24, }, ] } }, { module: "weather", position: "top_right", config: { weatherProvider: "openmeteo", type: "current", lat: 40.5290869, lon: -3.4765786 } }, { module: "weather", position: "top_right", header: "Weather Forecast", config: { weatherProvider: "openmeteo", type: "forecast", lat: 40.5290869, lon: -3.4765786 } }, { module: "MMM-CalendarExt3", position: "bottom_bar", title: "", config: { mode: "month", instanceId: "basicCalendar", locale: 'es-ES', maxEventLines: 5, firstDayOfWeek: 1, // eventHeight: 22, fontSize: 50, calendarSet: ['ufransa', 'lupita'], } }, { module: "MMM-NewsAPI", header: "Noticias del mundo", position: "bottom_bar", config: { apiKey: "APIKEY", type: "horizontal", choice: "everything", pageSize: 20, sortBy: "publishedAt", drawInterval: 1000 * 30, templateFile: "template.html", fetchInterval: 1000 * 60 * 60, query: { country: "", category: "", q: "", qInTitle: "", sources: "", domains: "", excludeDomains: "", language: "en" } } }, ] }; /*************** DO NOT EDIT THE LINE BELOW ***************/ if (typeof module !== "undefined") { module.exports = config; }
-
@ufransa Ok, I don’t see anything in your config that would cause a problem. However, you do have both MMM-NewsAPI and MMM-calendarExt3 in the exact same position. I am thinking that MMM-CalendarExt3 may be pushing the module off the screen, they both cannot occupy the same space. Try using it in a different position and use the
vertical
option.