KristjanESPERANTO / MagicMirror-3rd-Party-Modules

This project provides an overview of all MagicMirror² modules and puts the modules through a few tests.
https://kristjanesperanto.github.io/MagicMirror-3rd-Party-Modules/
MIT License
18 stars 5 forks source link
magic-mirror-modules magicmirror magicmirror2

MagicMirror² Modules List & Checks

The goals of this project are to create a nice looking and useful list of modules for MagicMirror² and to do some rudimentary testing of the modules (to generate improvement suggestions for the developers).

Feedback and pull requests are very welcome.

List of modules

The official list in the wiki is a simple text list without filters and images. This list now contains over 1000 modules, so it is not so easy for users to pick out modules.

Based on the official list, we automatically create a website with filter functions and integrated images. You can check it out here: https://kristjanesperanto.github.io/MagicMirror-3rd-Party-Modules/

How do I get my module presented in the new list?

Add your module to the official list in the wiki. Twice a day the new list will be updated based on the official list.

How do I get my module presented perfectly in the new list?

This is a list of information that we can display on the web page and where the information comes from. This should help you to improve the presentation of your module. Keep in mind that the web page will not be updated immediately, it may take a few days for your changes to arrive.

Also check the result file to see if there are any notes on your module.

Module tests

The aim of the tests is to increase the quality of the modules, also in order to be able to present them optimally in the module list. Due to the huge number of modules, the tests can only remain rudimentary.

If you have ideas for further tests, you are welcome to create an issue or pull request. And if you as a developer do not like a test, you are welcome to give feedback or simply ignore the result.

The results of the tests you can see in the result.md.

Here are some test results:

Prerequisites

For running the scripts and developing you need:

Installation

  1. Clone this repository: git clone https://github.com/KristjanESPERANTO/MagicMirror-3rd-Party-Modules
  2. Change into the created directory: cd MagicMirror-3rd-Party-Modules
  3. Install dependencies: npm install

Scripts

With npm start you can call up a cli menu that offers you options for execution.

You can run all scripts in the right order by npm run all.

Note: Running all scripts requires a lot of time (> 10 min) and space on your hard drive (> 2 GB).

create_module_list.js

This script reads the GitHub info of the modules from the respective GitHub repo and writes it to a json file.

updateGitHubApiData.js

This script reads data, such as the number of stars, via the GitHub API for a few modules.

get_modules.py

This script reads the module list (created by the script before) and clones all modules.

Note: This script takes a long time (> 10 min) to download all modules and also takes up a lot of space on your hard drive (> 2 GB).

expand_module_list_with_repo_data.js

This script expands the module list with information from the package.json files from the modules (if available).

The script also adds an image. To do this, it searches the module's repo for an image that contains "screenshot" or "example" in it's name. If it doesn't find anything like that, it takes the first image it finds in the repo.

Note: Images will only be included if a free license is specified in the package.json.

check_modules.py

This script goes through all cloned modules and performs various checks. The result is written to the files result.md and modules.json.

Special script: create_own_module_list.js

This script is for developers who want to test their own modules themselves. It can also be used to test other branches.

This script replaces the first script create_module_list.js for this case.

How can you use it?

  1. Write the module or modules you want to test in a new file ownModuleList.json (use ownModuleList_sample.json as template). The only obligatory field is "url", but you can also enter a "branch".
  2. Execute npm run ownList.
  3. You can see the result in result.md.

Ideas / To do

Templates for the creation of issues

Discarded ideas