Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 2.22.0 #2983

Merged
merged 39 commits into from
Jan 1, 2023
Merged

Release 2.22.0 #2983

merged 39 commits into from
Jan 1, 2023

Commits on Oct 1, 2022

  1. Prepare 2.22.0-develop

    MichMich committed Oct 1, 2022
    Configuration menu
    Copy the full SHA
    7694d6f View commit details
    Browse the repository at this point in the history

Commits on Oct 4, 2022

  1. improve tests (#2923)

    use es6 syntax in all tests, split weather tests, remove callbacks
    khassel committed Oct 4, 2022
    Configuration menu
    Copy the full SHA
    f04d578 View commit details
    Browse the repository at this point in the history
  2. fix(weather/smhi) Correctly reference apparent temp method (#2931)

    This PR addresses [this
    comment](48756e8#commitcomment-85772193),
    which points out an issue with #2902.
    
    Looks like the apparent temp calculation method was incorrectly
    referenced 😅
    SkySails committed Oct 4, 2022
    Configuration menu
    Copy the full SHA
    8212d30 View commit details
    Browse the repository at this point in the history
  3. Add test in compliments module for remotFile option (#2932)

    nothing fancy here, just a simple test after @khassel's changes to the
    test setup :-)
    
    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Oct 4, 2022
    Configuration menu
    Copy the full SHA
    ce4906d View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2022

  1. Update da.json (#2930)

    as proposed in
    05f0d18#commitcomment-85730050
    
    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Oct 6, 2022
    Configuration menu
    Copy the full SHA
    f434be3 View commit details
    Browse the repository at this point in the history
  2. Added fetchWeatherHourly functionality to Weather.gov provider (#2933)

    Added fetchWeatherHourly functionality to:
     modules/default/weather/providers/weathergov.js
    dWoolridge committed Oct 6, 2022
    Configuration menu
    Copy the full SHA
    a86e27a View commit details
    Browse the repository at this point in the history
  3. Use fetch instead of XMLHttpRequest in weatherprovider (#2935)

    small update to the fetchData method to use the fetch helper instead of
    the old XCMLHttpRequest.
    Also fixes some typos :-)
    
    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Oct 6, 2022
    Configuration menu
    Copy the full SHA
    d5e855d View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2022

  1. weathergov.js: Removed weatherEndpoint definition (#2936)

    Removed weatherEnpoint definition in defaults. It is not used in the
    weathergov.js provider.
    dWoolridge committed Oct 7, 2022
    Configuration menu
    Copy the full SHA
    21ae79b View commit details
    Browse the repository at this point in the history
  2. Cleanup test directory (#2937)

    Moves files around and renames some so that the structure is cleaner and
    more consistent
    rejas committed Oct 7, 2022
    Configuration menu
    Copy the full SHA
    a328ce5 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2022

  1. Added css class names "today" and "tomorrow" for calendar (#2939)

    Added class names "today" and "tomorrow" on the calendar module tr
    elements (i.e. calendar items).
    This way you can for example color your events today and/or tomorrow to
    more easily see what's happening in the near future.
    
    Implemented by adding an event.tomorrow variable (similar to
    event.today) that can be used for other things in the future. Also
    replaced a few hardcoded values (hours, seconds etc.) with constants to
    make the code more consistent.
    
    Edit: tested with normal events, split day events and events with
    locations.
    retroflex committed Oct 11, 2022
    Configuration menu
    Copy the full SHA
    85a9f14 View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2022

  1. Ensure updatenotification module isn't shown when local is *ahead* of…

    … remote (#2943)
    
    This PR resolves a small bug in the updatenotification module if a local
    git repo is ahead of the remote (for example I have made local commits
    for my personal needs).
    
    Currently, if `git status -sb` reports a status like: `##
    master...origin/master [ahead 2]` then updatenotification treats this as
    though it's "behind".
    
    This PR uses a single Regex to match `git status -sb` output and uses
    capture groups to extract info to populate the `gitInfo` object to avoid
    needing to do string manipulation to extract this information.
    
    Co-authored-by: Dario Mratovich <dario.mratovich@outlook.com>
    dariom and Dario Mratovich committed Oct 12, 2022
    Configuration menu
    Copy the full SHA
    1eb2965 View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2022

  1. Wait till all node_helper are started before finishing startup (#2928)

    In response to #2487 this implements a Promise.all for the node_helper
    start calls
    
    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Oct 13, 2022
    Configuration menu
    Copy the full SHA
    7bbf8c1 View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2022

  1. Support for configuring FontAwesome class in calendar-module: (#2949)

    Some icons in FontAwesome, like the Facebook-logo, requires a different
    class than `fas fa-fw fa-`. Added support for specifying the
    `className`:
    ```js
    {
        symbol: "facebook-square",
        symbolClassName: "fab fa-",
        url: "https://www.facebook.com/events/ical/upcoming/?uid=<some_uid>"
    }
    ```
    MagMar94 committed Oct 16, 2022
    Configuration menu
    Copy the full SHA
    835c893 View commit details
    Browse the repository at this point in the history
  2. Convert moment(..., "X") to moment.unix(...) (#2950)

    because I thought it was more readable and I found a little bug when
    calculatin suntimes on the way....
    
    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Oct 16, 2022
    Configuration menu
    Copy the full SHA
    fc59ed2 View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2022

  1. added new electron tests supporting date mocking (#2947)

    first PR for #2942 
    
    - added new electron tests for calendar which test new css classes from
    #2939
    - moved some compliments tests from `e2e` to `electron` because of date
    mocking
    - removed mock stuff from compliments module
    khassel committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    ad4dbd7 View commit details
    Browse the repository at this point in the history
  2. fix cors problems with newsfeed articles (#2940)

    solves #2840 as far as possible. There could still be errors on the
    embedded iframe when the owner of the site has set `X-Frame-Options` or
    `Access-Control-Allow-Origin` headers (as already mentioned in the
    docs).
    khassel committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    7bd9443 View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2022

  1. Add error handling to node_helper startup sequence (#2945)

    Fixes #2944
    
    Also splits the Server js into a constrcutor and an open call to remove
    one callback parameter :-)
    
    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Oct 19, 2022
    Configuration menu
    Copy the full SHA
    64ed5a5 View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2022

  1. Use metric units internally in all weatherproviders (#2849)

    So finally I think this refactorin is ready to be reviewed :-)
    
    DONE:
    - [x] Removed all conversion functions for wind and temperature from
    specific weatherproviders
    - [x] Use internally only metric units: celsius for temperature, meters
    per seconds for wind
    - [x] Convert temp and wind into the configured units when displaying
    data on the UI
    - [x] look how beaufort calculation uses metrics, added knots as new
    windunit
    - [x] add more e2e tests 
    
    Checked providers:
    - [x] Darksky
    - [x] EnvCanada
    - [x] OpenWeatherMap
    - [x] SMHI provider 
    - [x] UK Met Office
    - [x] UK Met Office DataHub
    - [x] WeatherBit
    - [x] WeatherFlow
    - [x] WeatherGov
    
    TODO in different tickets:
    - check weatherproviders for usage of weatherEndpoint (as seen in
    MagicMirrorOrg/MagicMirror-Documentation#131) -> see
    #2926
    - cleanup precipations -> #2953
    
    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Oct 24, 2022
    Configuration menu
    Copy the full SHA
    2d3940a View commit details
    Browse the repository at this point in the history
  2. Make sure smhi provider api only gets a maximimum of 6 digits coordin…

    …ates (#2956)
    
    Fixes #2955
    
    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Oct 24, 2022
    Configuration menu
    Copy the full SHA
    dde8860 View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2022

  1. Refactor common weather methods into utils class (#2958)

    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Oct 28, 2022
    Configuration menu
    Copy the full SHA
    c191ff0 View commit details
    Browse the repository at this point in the history
  2. Cleanup jest config (#2959)

    Some small cleanups with regards to jest
    - call jest directly (nyc is integrated in jest these days)
    - move jest config into seperate file so we dont clutter up the
    package.json
    - remove empty test file for newsletter-unit-tests
    - update dependencies that touch jest
    - try out v8 as coverageProvider
    
    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Oct 28, 2022
    Configuration menu
    Copy the full SHA
    f79d3f0 View commit details
    Browse the repository at this point in the history
  3. Add dependency review action (#2862)

    > Dependency Review GitHub Action in your repository to enforce
    dependency
    > reviews on your pull requests.
    > The action scans for vulnerable versions of dependencies introduced by
    package version
    > changes in pull requests,
    > and warns you about the associated security vulnerabilities.
    > This gives you better visibility of what's changing in a pull request,
    > and helps prevent vulnerabilities being added to your repository.
    
    
    https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
    Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
    
    Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
    Co-authored-by: Karsten Hassel <hassel@gmx.de>
    naveensrinivasan and khassel committed Oct 28, 2022
    Configuration menu
    Copy the full SHA
    00bc6eb View commit details
    Browse the repository at this point in the history
  4. Update dependencies (#2960)

    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Oct 28, 2022
    Configuration menu
    Copy the full SHA
    7058fc5 View commit details
    Browse the repository at this point in the history

Commits on Oct 29, 2022

  1. Make the e2e tests wait for the app to start and close before running…

    … next test (#2952)
    
    When trying to debug why the tests broke for
    #2946 I found that the tests
    does not wait for the app to start and close. So if the startup isn't
    blocking that would fail.
    
    So I added a callback for `close()` too and converted them to promises
    for the `startApplication()` and `stopApplication()` and updated all the
    e2e tests to await both. Will try to refactor all these callbacks to
    promises in a later PR.
    buxxi committed Oct 29, 2022
    Configuration menu
    Copy the full SHA
    f25abfd View commit details
    Browse the repository at this point in the history
  2. Switch back to third party fetch lib for all node versions (#2961)

    As discussed in #2952
    
    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Oct 29, 2022
    Configuration menu
    Copy the full SHA
    3879949 View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2022

  1. Support HTTP headers with CORS-method (#2957)

    Adds support for sending and receiving HTTP-headers when using the
    CORS-method.
    
    This change is required for the Yr weather-provider introduced in
    #2948.
    
    To make it easier to add unit tests I moved the server-functions into a
    separate file.
    MagMar94 committed Oct 30, 2022
    Configuration menu
    Copy the full SHA
    4d47c08 View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2022

  1. Add Collaboration.md (#2954)

    As already discussed here the first shot of the collaboration rules.
    
    We can discuss this in the comments until ready to merge.
    
    Co-authored-by: Veeck <github@veeck.de>
    khassel and rejas committed Oct 31, 2022
    Configuration menu
    Copy the full SHA
    4fecffc View commit details
    Browse the repository at this point in the history

Commits on Nov 6, 2022

  1. Fix jsdoc error

    veeck committed Nov 6, 2022
    Configuration menu
    Copy the full SHA
    0b01e9d View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2022

  1. Add option to remove "x-frame-options" and "content-security-policy" …

    …response headers (#2963)
    
    Many users like me do have the problem that they want to embed other
    sites to their mirror by "iframe".
    As some developers set the "x-frame-options" and
    "content-security-policy" for security reasons these sites can not be
    embedded.
    Electron provides the "webview" element additionally to "iframe" which
    allows to embed these sites although. The main difference is that a new
    process is started which handles the "webview" element.
    BUT: As the "webview" process needs to be started and is isolated
    "webview" is slower and the elements can not be accessed from the
    embedding website.
    
    As an alternative i implemented a small callback function in electron.js
    which removes the response headers that forbid the embedding.
    
    The removing can be controlled with the new config options:
    * ignoreXOriginHeader
    * ignoreContentSecurityPolicy
    Tom-Hirschberger committed Nov 7, 2022
    Configuration menu
    Copy the full SHA
    b9b7d2c View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2022

  1. New weather provider: Yr.no (#2948)

    # Added Yr.no as a weather provider
    
    Yr.no is a free Norwegian weather service. The configuration is quite
    simple:
    ```js
    {
        weatherProvider: "yr",
        lat: 59.9171,
        lon: 10.7276,
        altitude: 30
    }
    ```
    The latitude and longitude cannot have more than 4 decimals, but that
    should be plenty. To quote yr: "There is no need to ask for weather
    forecasts with nanometer precision!". The altitude should be meters
    above sea level and defaults to 0. If `type` is set to `current` the
    symbol can display the next 1, 6 or 12 hours by setting
    `currentForecastHours` (default is 1).
    
    It states in [Getting
    started-guide](https://developer.yr.no/doc/GettingStarted/) that users
    of the API should cache the results and use the `Expires`-header to know
    when to ask for new data. By using the `If-Modified-Since`-header we can
    avoid downloading the same data over and over again. I chose not to
    override the `User-Agent`-header set in
    [`server.js`](https://github.com/MichMich/MagicMirror/blob/a328ce5/js/server.js#L97)
    even though it does not comply with [the terms of
    service](https://developer.yr.no/doc/TermsOfService/). It currently
    works with the default header, and by searching the web for MagicMirror
    the GitHub-repo should be easy to find without an explicit link.
    
    I also had to make some minor changes to `server.js` and
    `weatherprovider.js` to be able to send and return HTTP headers. To
    handle the HTTP 304 response without body I chose to return `undefined`
    so we easily can use the response as a condition: `if (response) ...`.
    
    The documentation for the API is available here:
    - [API Reference overview](https://api.met.no/weatherapi/)
    -
    [Locationforecast](https://api.met.no/weatherapi/locationforecast/2.0/)
    - Used to get the weather forecast
    - [Sunrise](https://api.met.no/weatherapi/sunrise/2.0/documentation) -
    used to find sunrise and sunset times
    
    Co-authored-by: Veeck <github@veeck.de>
    MagMar94 and rejas committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    bd0b3c0 View commit details
    Browse the repository at this point in the history

Commits on Dec 8, 2022

  1. update dependencies: electron to v22, fix playwright to v1.27.1 (#2976)

    Changes:
    - as discussed in #2903: update to electron v22 (we can revert it before
    next release if we find any problems)
    - update other dependencies
    - set playwright to version v1.27.1 until #2969 is solved
    khassel committed Dec 8, 2022
    Configuration menu
    Copy the full SHA
    abbae90 View commit details
    Browse the repository at this point in the history

Commits on Dec 10, 2022

  1. Only add clock type wrappers to DOM when they are used (#2971)

    Fixes a layout gap when digital clock is displayd on the left
    
    Reported via discord:
    https://discord.com/channels/545884423703494657/545884914982322177/1044376412997562418
    
    Co-authored-by: veeck <michael@veeck.de>
    rejas and veeck committed Dec 10, 2022
    Configuration menu
    Copy the full SHA
    eee289a View commit details
    Browse the repository at this point in the history
  2. Cleanup compliments module (#2965)

    Lots of small fixes and cleanups:
    - only render something when there is a compliment
    - cleanup naming
    - use es6 notations
    - use fetch instead of XMLHttpRequest in compliments
    
    Co-authored-by: veeck <michael@veeck.de>
    Co-authored-by: Karsten Hassel <hassel@gmx.de>
    3 people committed Dec 10, 2022
    Configuration menu
    Copy the full SHA
    a262444 View commit details
    Browse the repository at this point in the history
  3. Replace &hellip; with (#2973)

    I think it is clearer if we don't use the HTML entity.
    
    Co-authored-by: Karsten Hassel <hassel@gmx.de>
    KristjanESPERANTO and khassel committed Dec 10, 2022
    Configuration menu
    Copy the full SHA
    3124b0a View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2022

  1. improve electron tests (avoid errors in github workflows) (#2977)

    Fix electron tests failing sometimes in github workflow.
    khassel committed Dec 12, 2022
    Configuration menu
    Copy the full SHA
    2fec314 View commit details
    Browse the repository at this point in the history

Commits on Dec 22, 2022

  1. Configuration menu
    Copy the full SHA
    76d9042 View commit details
    Browse the repository at this point in the history

Commits on Dec 26, 2022

  1. Added a WeatherProvider for Open-Meteo (#2964)

    ## Added Weather Provider for Open-Meteo.
    
    I've found a completely free weather REST API (event with option of
    self-hosting) after having problems with API keys from all MagicMirror
    weather providers currently implemented (the remote services, not the
    providers themselves).
    
    This API doesn't return information about reverse geocode from latitude
    and longitude options like others. I solved that issue using another
    free API.
    
    ### APIs used
    - [Open-Meteo Weather Forecast API](https://open-meteo.com/en/docs)
    - [BigDataCloud’s Free Client-Side Reverse Geocoding
    API](https://www.bigdatacloud.com/docs/api/free-reverse-geocode-to-city-api)
    
    ### Considerations
    - This provider is config reliable so, be free to use the same config
    you can found in the official MagicMirror Weather module documentation.
    - This module config skips the `apiKey` parameter. It's not used at all.
    Only `latitude` and `longitude` are required.
    
    #### Config examples:
    ```
    modules: [
      {
        module: "weather",
        position: "top_right",
        header: "Weather Forecast",
        config: {
          updateInterval: <number here>, 
          weatherProvider: "openmeteo",
          type: "current",
          lat: <number here>,
          lon: <number here>,
          showHumidity: true,
          showWindDirectionAsArrow: true,
          showWindDirection: true,
          degreeLabel: true,
        }
      },
      {
        module: "weather",
        position: "top_right",
        header: "Weather Forecast",
        config: {
          updateInterval: <number here>,
          weatherProvider: "openmeteo",
          type: "daily",
          lat: <number here>,
          lon: <number here>
          colored: true,
          maxNumberOfDays: <number here>,
          showPrecipitationAmount: true,
          appendLocationNameToHeader: true
        }
      },
      {
        module: "weather",
        position: "top_right",
        header: "Weather Forecast",
        config: {
          updateInterval: <number here>,
          weatherProvider: "openmeteo",
          type: "hourly",
          lat: <number here>,
          lon: <number here>,
          maxEntries: <number here>,
          showPrecipitationAmount: true,
          degreeLabel: true,
          appendLocationNameToHeader: true
        }
      },
    ]
    ```
    
    Co-authored-by: Michael Teeuw <michael@xonaymedia.nl>
    angeldeejay and MichMich committed Dec 26, 2022
    Configuration menu
    Copy the full SHA
    e9be668 View commit details
    Browse the repository at this point in the history

Commits on Jan 1, 2023

  1. Prepare Release 2.22.0

    MichMich committed Jan 1, 2023
    Configuration menu
    Copy the full SHA
    0ebedd0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cd739b6 View commit details
    Browse the repository at this point in the history