• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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.

Fifa World Cup overview

Scheduled Pinned Locked Moved Unsolved Requests
soccerworld cupsport
25 Posts 11 Posters 13.0k 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.
  • C Offline
    conkhidot
    last edited by Jun 14, 2018, 6:12 AM

    I will try to do one. And there’s an API for it.
    http://www.worldcupapi.site/

    1 Reply Last reply Reply Quote 0
    • T Offline
      teegray1124
      last edited by Jun 14, 2018, 9:05 AM

      please make it look like mmm-myscoreboard lol, i love colors

      1 Reply Last reply Reply Quote 0
      • C Offline
        conkhidot
        last edited by conkhidot Jun 14, 2018, 9:27 AM Jun 14, 2018, 9:26 AM

        Here is an alternative. Install MMM-Myscoreboard and the code is below for the WC 2018. I’ll work on it on the weekend. I won’t get time during week days.

        {
          			module: "MMM-MyScoreboard",
          			position: "top_right",
          			classes: "default everyone",
          			header: "FIFA Weltmeisterschaft",
          			config: {
            			showLeagueSeparators: true,
            			colored: true,
            			viewStyle: "mediumLogos",
            				sports: [
              					
              					
                				{
                				league: "FIFAWC",
                				},
                				
        					
            					]
        
          			}
        		},
        

        alt text

        N R 2 Replies Last reply Jun 14, 2018, 5:58 PM Reply Quote 0
        • N Offline
          nem1 @conkhidot
          last edited by Jun 14, 2018, 5:58 PM

          @conkhidot said in Fifa World Cup overview:

          Here is an alternative. Install MMM-Myscoreboard and the code is below for the WC 2018. I’ll work on it on the weekend. I won’t get time during week days.

          {
            			module: "MMM-MyScoreboard",
            			position: "top_right",
            			classes: "default everyone",
            			header: "FIFA Weltmeisterschaft",
            			config: {
              			showLeagueSeparators: true,
              			colored: true,
              			viewStyle: "mediumLogos",
              				sports: [
                					
                					
                  				{
                  				league: "FIFAWC",
                  				},
                  				
          					
              					]
          
            			}
          		},
          

          alt text

          Okay, I will try it tomorrow evening! Thanks

          1 Reply Last reply Reply Quote 0
          • A Offline
            AxLed Module Developer
            last edited by AxLed Jun 14, 2018, 10:14 PM Jun 14, 2018, 10:13 PM

            Hi to all,

            i found a different solution: https://github.com/LukeSkywalker92/MMM-SoccerLiveScore with some modifications.

            node_helper.js:
            change the hyperlinks (or only the …/ta/… part of the links in node_helper.js to …/em4/…)
            Example, Line 52:
            Change

            url: 'https://www.ta4-data.de/ta/data/competitions',
            

            to

            url: 'https://www.ta4-data.de/em4/data/competitions',
            

            Do the replacements on the 5 hyperlinks in node_helper, and here you go.

            config.js
            The league id for WM ist 4000

            {
            			module: "MMM-SoccerLiveScore",
            			position: "top_left",
            			header: "Live-Scores",
            			config: {
            				leagues: [4000],
                    			showNames: true,
                    			showLogos: true,
                    			displayTime: 60 * 1000,
                    			showTables: true
            				}
            		},
            

            Pictures:
            0_1529014299763_wm2018_1.JPG
            0_1529014318658_wm2018_2.JPG

            AxLED

            C 1 Reply Last reply Jun 15, 2018, 6:54 AM Reply Quote 2
            • B Offline
              barnosch
              last edited by Jun 15, 2018, 6:23 AM

              looks nice.

              If i would be interested in this football crap, i would definetely install it on ther mirror ;)

              1 Reply Last reply Reply Quote 0
              • C Offline
                conkhidot @AxLed
                last edited by Jun 15, 2018, 6:54 AM

                @axled It doesn’t work for me :P

                0|mm | Whoops! There was an uncaught exception…
                0|mm | SyntaxError: Unexpected token p in JSON at position 4
                0|mm | at JSON.parse (:null:null)
                0|mm | at Request._callback (/home/pi/Magicmirror/modules/MMM-SoccerLiveScore/node_helper.js:115:29)
                0|mm | at Request.self.callback (/home/pi/Magicmirror/modules/node_modules/request/request.js:186:22)
                0|mm | at emitTwo (events.js:106:13)
                0|mm | at Request.emit (events.js:194:7)
                0|mm | at Request. (/home/pi/Magicmirror/modules/node_modules/request/request.js:1163:10)
                0|mm | at emitOne (events.js:96:13)
                0|mm | at Request.emit (events.js:191:7)
                0|mm | at IncomingMessage. (/home/pi/Magicmirror/modules/node_modules/request/request.js:1085:12)
                0|mm | at Object.onceWrapper (events.js:293:19)
                0|mm | at emitNone (events.js:91:20)
                0|mm | at IncomingMessage.emit (events.js:188:7)
                0|mm | at endReadableNT (_stream_readable.js:975:12)
                0|mm | at _combinedTickCallback (internal/process/next_tick.js:80:11)
                0|mm | at process._tickCallback (internal/process/next_tick.js:104:9)

                1 Reply Last reply Reply Quote 0
                • A Offline
                  AxLed Module Developer
                  last edited by Jun 15, 2018, 7:08 AM

                  @conkhidot
                  here is the code of my modified node_helper.js

                  /* global Module */
                  
                  /* Magic Mirror
                   * Module: MMM-SoccerLiveScore
                   *
                   * By Luke Scheffler https://github.com/LukeSkywalker92
                   * MIT Licensed.
                   */
                  
                  var NodeHelper = require('node_helper');
                  var request = require('request');
                  
                  module.exports = NodeHelper.create({
                      start: function () {
                          console.log('MMM-SoccerLiveScore helper started...')
                      },
                  
                      getTeamLogo: function (teamId) {
                          var self = this;
                          var options = {
                              method: 'GET',
                              url: 'https://www.ta4-images.de/ta/images/teams/' + teamId + '/64',
                              headers: {
                                  'Host': 'www.ta4-images.de',
                                  'Accept': '*/*',
                                  'Accept-Language': 'de-de',
                                  'Connection': 'keep-alive',
                                  'Accept-Encoding': 'gzip, deflate',
                                  'User-Agent': 'TorAlarm/20161206 CFNetwork/808.1.4 Darwin/16.1.0'
                              },
                              encoding: null
                          };
                  
                  
                          request(options, function (error, response, body) {
                              if (error) throw new Error(error);
                              var image = new Buffer(body).toString('base64');
                              self.sendSocketNotification('LOGO', {
                                  teamId: teamId,
                                  image: image
                              });
                  
                          });
                  
                  
                      },
                  
                      getLeagueIds: function (leagues, showLogos) {
                          var self = this;
                          var options = {
                              method: 'POST',
                              //url: 'https://www.ta4-data.de/ta/data/competitions',
                              url: 'https://www.ta4-data.de/em4/data/competitions',
                              headers: {
                                  'Host': 'ta4-data.de',
                                  'Content-Type': 'application/x-www-form-urlencoded',
                                  'Connection': 'keep-alive',
                                  'Accept': '*/*',
                                  'User-Agent': 'TorAlarm/20161202 CFNetwork/808.1.4 Darwin/16.1.0',
                                  'Accept-Language': 'de-de',
                                  'Accept-Encoding': 'gzip',
                                  'Content-Length': '49',
                              },
                              body: '{"lng":"de-DE","device_type":0,"decode":"decode"}',
                              form: false
                          };
                  
                          request(options, function (error, response, body) {
                              var competitions = JSON.parse(body).competitions;
                              var leagueIds = [];
                              for (var i = 0; i < leagues.length; i++) {
                                  for (var j = 0; j < competitions.length; j++) {
                                      if (competitions[j].id == leagues[i]) {
                                          if (showLogos) {
                                              if (competitions[j].has_table) {
                                                  self.getTeams(competitions[j].id);
                                                  self.getTable(competitions[j].id);
                                              } else {
                                                  self.getLogosFromScores(competitions[j].id);
                                              }
                                          }
                                          leagueIds.push(competitions[j].id)
                                          self.sendSocketNotification('LEAGUES', {
                                              name: competitions[j].name,
                                              id: competitions[j].id
                                          });
                                      }
                                  }
                              }
                              for (var i = 0; i < leagueIds.length; i++) {
                                  self.getScores(leagueIds[i]);
                              }
                          });
                      },
                  
                      getTeams: function (leagueId) {
                          var self = this;
                          var options = {
                              method: 'POST',
                              //url: 'https://www.ta4-data.de/ta/data/competitions/' + leagueId.toString() + '/table',
                              url: 'https://www.ta4-data.de/em4/data/competitions/' + leagueId.toString() + '/table',
                              headers: {
                                  'Host': 'ta4-data.de',
                                  'Content-Type': 'application/x-www-form-urlencoded',
                                  'Connection': 'keep-alive',
                                  'Accept': '*/*',
                                  'User-Agent': 'TorAlarm/20161202 CFNetwork/808.1.4 Darwin/16.1.0',
                                  'Accept-Language': 'de-de',
                                  'Accept-Encoding': 'gzip',
                                  'Content-Length': '49',
                              },
                              body: '{"lng":"de-DE","device_type":0,"decode":"decode"}',
                              form: false
                          };
                          request(options, function (error, response, body) {
                              var teamIds = [];
                              var data = JSON.parse(body);
                              for (var i = 0; i < data.data.length; i++) {
                  	    if (data.data[i].type !== 'table') { continue; }
                                  for (var j = 0; j < data.data[i].table.length; j++) {
                                      teamIds.push(data.data[i].table[j].team_id);
                                  }
                              }
                              self.getLogos(teamIds);
                          });
                      },
                  
                      getTable: function (leagueId) {
                          var self = this;
                          var options = {
                              method: 'POST',
                              //url: 'https://www.ta4-data.de/ta/data/competitions/' + leagueId.toString() + '/table',
                              url: 'https://www.ta4-data.de/em4/data/competitions/' + leagueId.toString() + '/table',
                              headers: {
                                  'Host': 'ta4-data.de',
                                  'Content-Type': 'application/x-www-form-urlencoded',
                                  'Connection': 'keep-alive',
                                  'Accept': '*/*',
                                  'User-Agent': 'TorAlarm/20161202 CFNetwork/808.1.4 Darwin/16.1.0',
                                  'Accept-Language': 'de-de',
                                  'Accept-Encoding': 'gzip',
                                  'Content-Length': '49',
                              },
                              body: '{"lng":"de-DE","device_type":0,"decode":"decode"}',
                              form: false
                          };
                          request(options, function (error, response, body) {
                              var teamIds = [];
                              var data = JSON.parse(body);
                              var refreshTime = data.refresh_time*1000;
                              data = data.data;
                  	    for(var i = 0; i < data.length; i++) {
                  		    if (data[i].type === 'table') {
                  			self.sendSocketNotification('TABLE', {
                  			    leagueId: leagueId,
                  			    table: data[i].table
                  			});
                  			setTimeout(function () {
                  			    self.getTable(leagueId);
                  			}, refreshTime);
                  		        return;
                  		    }
                  	    }
                          });
                      },
                  
                      getLogos: function (teamIds) {
                          var self = this;
                          var logos = [];
                          for (var i = 0; i < teamIds.length; i++) {
                              self.getTeamLogo(teamIds[i]);
                          }
                      },
                  
                      getScores: function (leagueId) {
                          var self = this;
                          var options = {
                              method: 'POST',
                              //url: 'https://www.ta4-data.de/ta/data/competitions/' + leagueId.toString() + '/matches/round/0',
                              url: 'https://www.ta4-data.de/em4/data/competitions/' + leagueId.toString() + '/matches/round/0',
                              headers: {
                                  'Host': 'ta4-data.de',
                                  'Content-Type': 'application/x-www-form-urlencoded',
                                  'Connection': 'keep-alive',
                                  'Accept': '*/*',
                                  'User-Agent': 'TorAlarm/20161202 CFNetwork/808.1.4 Darwin/16.1.0',
                                  'Accept-Language': 'de-de',
                                  'Accept-Encoding': 'gzip',
                                  'Content-Length': '49',
                              },
                              body: '{"lng":"de-DE","device_type":0,"decode":"decode"}',
                              form: false
                          }
                  
                          request(options, function (error, response, body) {
                              var data = JSON.parse(body);
                              var refreshTime = data.refresh_time * 1000;
                              var standings = data.data;
                              self.sendSocketNotification('STANDINGS', {
                                  leagueId: leagueId,
                                  standings: standings
                              });
                              setTimeout(function () {
                                  self.getScores(leagueId);
                              }, refreshTime);
                          });
                      },
                  
                      getLogosFromScores: function (leagueId) {
                          var self = this;
                          var options = {
                              method: 'POST',
                              //url: 'https://www.ta4-data.de/ta/data/competitions/' + leagueId.toString() + '/matches/round/0',
                              url: 'https://www.ta4-data.de/em4/data/competitions/' + leagueId.toString() + '/matches/round/0',
                              headers: {
                                  'Host': 'ta4-data.de',
                                  'Content-Type': 'application/x-www-form-urlencoded',
                                  'Connection': 'keep-alive',
                                  'Accept': '*/*',
                                  'User-Agent': 'TorAlarm/20161202 CFNetwork/808.1.4 Darwin/16.1.0',
                                  'Accept-Language': 'de-de',
                                  'Accept-Encoding': 'gzip',
                                  'Content-Length': '49',
                              },
                              body: '{"lng":"de-DE","device_type":0,"decode":"decode"}',
                              form: false
                          }
                  
                          request(options, function (error, response, body) {
                              var data = JSON.parse(body);
                              var standings = data.data;
                              for (var i = 0; i < standings.length; i++) {
                                  if (standings[i].matches !== undefined) {
                                      for (var j = 0; j < standings[i].matches.length; j++) {
                                          self.getTeamLogo(standings[i].matches[j].team1_id);
                                          self.getTeamLogo(standings[i].matches[j].team2_id);
                                      }
                                  }
                              }
                          });
                      },
                  
                      socketNotificationReceived: function (notification, payload) {
                          if (notification === 'CONFIG') {
                              this.getLeagueIds(payload.leagues, payload.showLogos);
                          }
                      }
                  
                  });
                  
                  

                  AxLED

                  1 Reply Last reply Reply Quote 0
                  • P Offline
                    PaulB
                    last edited by Jun 15, 2018, 12:30 PM

                    Hey guys,

                    how do you enter the node_helper.js?

                    When I enter the code “sudo nano /home/pi/MagicMirror/MMM-SoccerLiveScore/node_helper.js” it will create a new file. So therefore the node_helper.js has to be stored in a folder.
                    Does anyone know which folder this is or how to find the file?

                    Kind regards,
                    Paul

                    1 Reply Last reply Reply Quote 0
                    • C Offline
                      cdelaorden
                      last edited by cdelaorden Jun 16, 2018, 12:39 PM Jun 15, 2018, 3:15 PM

                      Im using MagicMirror-FootballLeagues

                      It works by just adding the league 467

                      EDIT:

                      If someone is using it without luck be sure to use an api key and place showUnavailable as true

                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 1 / 3
                      1 / 3
                      • First post
                        7/25
                        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