MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Automatic checking of all MagicMirror² modules

    Scheduled Pinned Locked Moved Development
    83 Posts 9 Posters 103.8k Views 10 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • JalibuJ Offline
      Jalibu Module Developer @KristjanESPERANTO
      last edited by

      @KristjanESPERANTO said in Automatic checking of all MagicMirror² modules:

      @mumblebaj said in Automatic checking of all MagicMirror² modules:

      Just out of interest, which image does it select as the thumbnail?

      If the script doesn’t find an image with ‘screenshot’ or ‘example’ at the beginning of the name it takes the first it finds .

      Hi @KristjanESPERANTO does it expect the example.png in a specific folder (such as img/ or /) or can it also lookup in docs/?

      KristjanESPERANTOK 1 Reply Last reply Reply Quote 0
      • S Offline
        sdetweil @KristjanESPERANTO
        last edited by

        @KristjanESPERANTO and, this impacts my scripts as i use package.json as the indicator for doing an npm install in the module folder.

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        KristjanESPERANTOK 1 Reply Last reply Reply Quote 0
        • KristjanESPERANTOK Offline
          KristjanESPERANTO Module Developer @Jalibu
          last edited by

          @Jalibu said in Automatic checking of all MagicMirror² modules:

          Hi @KristjanESPERANTO does it expect the example.png in a specific folder (such as img/ or /) or can it also lookup in docs/?

          No, you can put it where ever you want :-)

          1 Reply Last reply Reply Quote 0
          • KristjanESPERANTOK Offline
            KristjanESPERANTO Module Developer @sdetweil
            last edited by

            @sdetweil said in Automatic checking of all MagicMirror² modules:

            @KristjanESPERANTO and, this impacts my scripts as i use package.json as the indicator for doing an npm install in the module folder.

            There are some modules that only have devDependencies, so your script already makes unnecessary npm install calls. Can you adjust your trigger and check whether dependencies are set in the package.json?

            S 1 Reply Last reply Reply Quote 0
            • MZ-BERM Offline
              MZ-BER
              last edited by

              Great work @KristjanESPERANTO. Really, really like this. Is there a way to also publish the github stars and # of forks? I also would love if there is a way to “like” a module.

              1 Reply Last reply Reply Quote 1
              • M Offline
                MMRIZE
                last edited by MMRIZE

                I suggest you and the community expand package.json to regularise the details of the module. (recommended but optional)
                For example;

                {
                  "name": "mmm-something",
                  "version": "1.0.0",
                  ...
                  "mm" : {
                    "communityId" : "johndoe",
                    "community" : "MagicMirror forum",
                    "screenshot" : "https://somewhere.com/screenshot.png",
                    "install" : "https://github.com/johndoe/mmm-something/README.md#installation",
                    "update" : "...",
                    "email" : "johndoe@somewhere",
                    "required: {
                      "mm" : "2.25",
                      "node" : "18.0"
                    },
                    "notice" : [
                      "This will not work in Windows.",
                      "Pre-dependency required. Please readme."
                    ]
                  }
                }
                

                The fields are my imagination. Maybe the community can reach an agreement on rules.

                1 Reply Last reply Reply Quote 2
                • mumblebajM Offline
                  mumblebaj Module Developer @KristjanESPERANTO
                  last edited by

                  @KristjanESPERANTO My MMM-SweepClock doesn’t have a package.json either as all work done in the MMM-SweepClock.js file. I can add one for completeness and conformity. I also notice I did not have an image. I usually name my images image-1.png etc. so the main image is generally the first one.

                  Check out my modules at: https://github.com/mumblebaj?tab=repositories
                  Check my blog-post: https://mumblebaj.xyz/
                  Check my MM Container: https://hub.docker.com/repository/docker/mumblebaj/magicmirror/general

                  1 Reply Last reply Reply Quote 0
                  • S Offline
                    sdetweil @KristjanESPERANTO
                    last edited by

                    @KristjanESPERANTO oh, and one more thing… my MMM-SleepWake module does not have any UI… so there is no photo…

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    KristjanESPERANTOK 1 Reply Last reply Reply Quote 0
                    • KristjanESPERANTOK Offline
                      KristjanESPERANTO Module Developer @sdetweil
                      last edited by

                      @MZ-BER said in Automatic checking of all MagicMirror² modules:

                      Great work @KristjanESPERANTO. Really, really like this. Is there a way to also publish the github stars and # of forks? I also would love if there is a way to “like” a module.

                      Thank you for your appreciation! :-)

                      karsten13 has already suggested the GitHub API and I have tested it, but if you make requests for 1000 modules you’ll got blocked quickly. I haven’t found another good approach yet.

                      @MMRIZE said in Automatic checking of all MagicMirror² modules:

                      I suggest you and the community expand package.json to regularise the details of the module. (recommended but optional)

                      Storing additional data in the package.json is an interesting idea! But I would like to avoid maintaining data redundantly. So before we tackle this, it would be good to have an overview of the data that is already used for the website and where it is taken from. Plus an additional list of data that is still needed, ideally with ideas on how to collect it. What’s not easy to implement could perhaps be addressed by extending the packge.json.

                      @mumblebaj said in Automatic checking of all MagicMirror² modules:

                      My MMM-SweepClock doesn’t have a package.json either as all work done in the MMM-SweepClock.js file. I can add one for completeness and conformity. I also notice I did not have an image. I usually name my images image-1.png etc. so the main image is generally the first one.

                      At the moment the script has no other source for keywords and the license. And without the license information no image will be taken. If you want an image to be displayed on the website, you would have to specify a free license in the package.json.

                      @sdetweil said in Automatic checking of all MagicMirror² modules:

                      my MMM-SleepWake module does not have any UI… so there is no photo…

                      There is no obligation for an image. But perhaps it would be nice to use an icon that symbolizes motion detection instead of a screenshot. Like this maybe: https://openclipart.org/detail/306403/motion-detection?

                      karsten13K 1 Reply Last reply Reply Quote 0
                      • karsten13K Offline
                        karsten13 @KristjanESPERANTO
                        last edited by

                        @KristjanESPERANTO said in Automatic checking of all MagicMirror² modules:

                        karsten13 has already suggested the GitHub API and I have tested it, but if you make requests for 1000 modules you’ll got blocked quickly. I haven’t found another good approach yet.

                        2 ideas:

                        • did you try to authenticate with a user before making the api requests? AFAIR we solved a similar problem at work with authentication …
                        • if first idea doesn’t work an ugly solution is to work with e.g. a timer or sleep statement because these infos are not changed very often this could be a long running nightly job
                        KristjanESPERANTOK 1 Reply Last reply Reply Quote 2
                        • KristjanESPERANTOK Offline
                          KristjanESPERANTO Module Developer @karsten13
                          last edited by

                          @karsten13 said in Automatic checking of all MagicMirror² modules:

                          did you try to authenticate with a user before making the api requests?

                          No, I didn’t. Thanks for the hint! I’ll try that! The documentation sounds promising:

                          Additionally, you can make more requests per hour when you are authenticated.

                          BKeyportB 1 Reply Last reply Reply Quote 0
                          • BKeyportB Offline
                            BKeyport Module Developer @KristjanESPERANTO
                            last edited by

                            @KristjanESPERANTO You know, this is turning more and more into a NPM type project.

                            Perhaps it’s time to work on getting MM into the NPM ecosystem instead?

                            The "E" in "Javascript" stands for "Easy"

                            S karsten13K 2 Replies Last reply Reply Quote 0
                            • S Offline
                              sdetweil @BKeyport
                              last edited by

                              @BKeyport mm is already there but old

                              Sam

                              How to add modules

                              learning how to use browser developers window for css changes

                              1 Reply Last reply Reply Quote 0
                              • karsten13K Offline
                                karsten13 @BKeyport
                                last edited by

                                @BKeyport

                                see https://github.com/MichMich/MagicMirror/issues/2876

                                S 1 Reply Last reply Reply Quote 0
                                • S Offline
                                  sdetweil @karsten13
                                  last edited by

                                  @karsten13

                                  https://www.npmjs.com/package/magicmirror

                                  Sam

                                  How to add modules

                                  learning how to use browser developers window for css changes

                                  BKeyportB 1 Reply Last reply Reply Quote 0
                                  • BKeyportB Offline
                                    BKeyport Module Developer @sdetweil
                                    last edited by

                                    I’ve over simplified as I tend to do.

                                    What I was thinking of was more along the lines of how Homebridge is doing things. Full on NPM integrations across the board. GUI installer/maintainer. bonus points for GUI configuration tool on their “plugins” etc. Can still get into the weeds if you want to mess with operations under the hood.

                                    I honestly think it’s time, but I’ve got nowhere near the skill to do it.
                                    MMM-Config on steroids.

                                    The pieces are there - we’re just missing the core.

                                    https://github.com/homebridge/homebridge-raspbian-image/wiki/Getting-Started#step-5-install-and-configure-plugins

                                    Setting the core up would build in a natural module checking system and weed out the unmaintained stuff for new users, because new users won’t want to install stuff that has no GUI settings and/or unmaintained wouldn’t show in the official repository/search anymore.

                                    The "E" in "Javascript" stands for "Easy"

                                    karsten13K 1 Reply Last reply Reply Quote 0
                                    • karsten13K Offline
                                      karsten13 @BKeyport
                                      last edited by

                                      @BKeyport

                                      sounds pretty much like what mmpm does

                                      S 1 Reply Last reply Reply Quote 0
                                      • S Offline
                                        sdetweil @karsten13
                                        last edited by sdetweil

                                        @karsten13 mmpm doesn’t do config editing
                                        and to do config editing in a reliable way, we need programming standards too.

                                        Sam

                                        How to add modules

                                        learning how to use browser developers window for css changes

                                        BKeyportB 1 Reply Last reply Reply Quote 0
                                        • BKeyportB Offline
                                          BKeyport Module Developer @sdetweil
                                          last edited by

                                          @sdetweil We already have some standards in place (node_helper.js, naming conventions, package.json, etc) - what’s one more (config-schema.json) for the programmer? Think along the lines of the schema.json file used in MMM-Config.

                                          Programmer creates the GUI settings page, using API into a specific file. It’s up to the core to insert result into the main config file. if GUI file isn’t there, then resort to a web based editor.

                                          https://github.com/homebridge/homebridge/wiki/Verified-Plugins describes the process in homebridge’s case. Provide a reward, and bam - We’ve got easier access to the project, making it more widespread, and it completely eclipses the automatic checking process here.

                                          Reward for the programmer is rather simple. A badge set thusly - everywhere - in the built in plugin manager’s search, on websites, etc. 725c9b2e-1442-4642-b75e-141f393a87f4-image.png

                                          Example - No GUI settings page file (the dead module): 497832aa-62f3-4bf5-aee0-9475eed1cee0-image.png

                                          Example - GUI settings page file (my reworked module with more functionality):
                                          5e94c71f-2419-4ac8-bdcc-1c48f867acef-image.png

                                          and the resulting config (I believe they use JSON rather than JS):
                                          63f41904-ff06-4146-9a49-d1988b1bb237-image.png

                                          The "E" in "Javascript" stands for "Easy"

                                          S 1 Reply Last reply Reply Quote 0
                                          • S Offline
                                            sdetweil @BKeyport
                                            last edited by

                                            @BKeyport I believe we use js because you can have comments, json does not support comments

                                            Sam

                                            How to add modules

                                            learning how to use browser developers window for css changes

                                            BKeyportB 1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 3 / 5
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy