• 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 11.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.
  • 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
        • A Offline
          AxLed Module Developer
          last edited by Jun 15, 2018, 5:12 PM

          @paulb said in Fifa World Cup overview:

          “sudo nano /home/pi/MagicMirror/MMM-SoccerLiveScore/node_helper.js”

          Hi Paul,
          there is a folder missing in your command, there must be a /modules/ between MagicMirror and MMM-Soccer…
          “sudo nano /home/pi/MagicMirror/modules/MMM-SoccerLiveScore/node_helper.js”

          AxLED

          1 Reply Last reply Reply Quote 0
          • R Offline
            robert @conkhidot
            last edited by Jun 15, 2018, 9:32 PM

            @conkhidot

            I tried your code but only get loading… window…

            Robert

            1 Reply Last reply Reply Quote 0
            • P Offline
              PaulB
              last edited by Jun 16, 2018, 2:45 PM

              @AxLed , thank for providing your code.

              Unfortunately the module is shown while runnin MM but no data is loaded. I have adjusted the config,js as well as node_helper.js as you said. Do you have an idea what could ve been wrong?

              Kind regards,
              Paul

              1 Reply Last reply Reply Quote 0
              • R Offline
                rak
                last edited by Jun 16, 2018, 3:25 PM

                I created a fork and a pull request with all necessary changes.

                1 Reply Last reply Reply Quote 0
                • A Offline
                  AxLed Module Developer
                  last edited by Jun 16, 2018, 3:49 PM

                  @PaulB

                  Hi,

                  what are the logs showing? (npm start dev [on Raspberry]) or (F12 [on broser like Firefox]).

                  AxLED

                  P 1 Reply Last reply Jun 19, 2018, 7:58 PM Reply Quote 0
                  • A Offline
                    AxLed Module Developer
                    last edited by Jun 16, 2018, 3:53 PM

                    @rak

                    I think your fork is only working for league 4000 (Worldcup/WM 2018), as the other leagues have still use the old links. I didnt have the time to do a fork for all leagues.
                    I guess you have to some if then else statements, if league 4000 ist used.

                    AxLED

                    R 1 Reply Last reply Jun 16, 2018, 4:57 PM Reply Quote 0
                    • R Offline
                      robert @AxLed
                      last edited by Jun 16, 2018, 4:57 PM

                      @axled

                      Tried it with “4000” for World cup but not showing scores, only shows other league scores.

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