Changeset 46


Ignore:
Timestamp:
Sep 12, 2022, 7:34:40 PM (19 months ago)
Author:
chronos
Message:
  • Fixed: Correctly import data from leaderboard.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/index.php

    r45 r46  
    1717  function Run()
    1818  {
    19 
    2019  }
    2120}
     
    3635  function __construct()
    3736  {
    38     $this->LeaderboardURL = 'https://registrace.teribear.cz/Leaderboard';
     37    //$this->LeaderboardURL = 'https://registrace.teribear.cz/Leaderboard';
     38    $this->LeaderboardURL = 'https://leaderboard.teribear.cz/';
    3939    $this->BaseURL = '';
    4040    $this->LinkLocaleExceptions = array();
     
    173173        foreach ($JSON['items'] as $Item)
    174174        {
     175          // Use RegistrationNumber as ChipNumber.
     176          $Item['ChipNumber'] = $Item['RegistrationNumber'] * 1;
     177          unset($Item['RegistrationNumber']);
     178          if ($Item['Name'] != null)
     179          {
     180            // Normalize names
     181            $Item['Name'] = trim($Item['Name']);
     182            while (strpos($Item['Name'], '  ') !== false)
     183            {
     184              $Item['Name'] = str_replace('  ', ' ', $Item['Name']);
     185            }
     186          }
    175187          $Result[] = $Item;
    176188        }
     
    186198  {
    187199    $Output = '';
    188   /*
     200   
    189201    $this->Database->query('DELETE FROM RunnerStat');
    190202    $this->Database->query('DELETE FROM Runner');
     
    192204    $this->Database->query('DELETE FROM Team');
    193205    $this->Database->query('DELETE FROM Import');
    194     */
    195 
     206   
    196207    // Find duplicates
    197208    /*
     
    337348          $Runners[$Item['ChipNumber']] = array('Id' => $RunnerId, 'Distance' => -1, 'Team' => $TeamId);
    338349          $NextRunnerId++;
    339         } else {
     350        } else
     351        {
    340352          $RunnerId = $Runners[$Item['ChipNumber']]['Id'];
    341353
     
    347359          } else
    348360          {
    349             $NewRunnerTeamId = $Teams[$Item['TeamId']]['Id'];
     361            if (!array_key_exists($Item['TeamId'], $Teams))
     362            {
     363              $NewRunnerTeamId = $NextTeamId;
     364              $Queries[] = $this->Database->GetInsert('Team', array(
     365                'Id' => $NewRunnerTeamId,
     366                'Name' => '',
     367                'WebId' => $Item['TeamId'],
     368                'Year' => $Year,
     369                'IsFamily' => 0,
     370              ));
     371              $Teams[$Item['TeamId']] = array('Id' => $NewRunnerTeamId, 'Distance' => -1);
     372              $NextTeamId++;             
     373            } else
     374            {
     375              $NewRunnerTeamId = $Teams[$Item['TeamId']]['Id'];           
     376            }
    350377          }
    351378          if ($OldRunnerTeamId != $NewRunnerTeamId)
     
    369396      if (($Item['Type'] == 'team') or ($Item['Type'] == 'rodina'))
    370397      {
     398        if ($Item['Name'] == null) $Item['Name'] = '';
    371399        if ($Item['Type'] == 'rodina') $IsFamily = 1;
    372400          else $IsFamily = 0;
     
    446474        'Hash' => $Hash,
    447475        'ItemCount' => count($Items)
    448       ));
    449       //file_put_contents('import/'.$Hash.'.txt', print_r($Items, true));
     476      ));     
    450477    }
    451478    $Output .= T('Data synchronization from leaderboard finished.<br/>');
Note: See TracChangeset for help on using the changeset viewer.