<?php

$HeightTags = array(
  '150-160cm' => '155',
  '160-170cm' => '165',
  '170-180cm' => '175',
  '180-190cm' => '185',
  '&gt; 190cm' => '195',
);
$AgeTags = array(
  'věk 19-24' => '22',
  'věk 25-30' => '27',
  'věk 31-39' => '35',
  'věk 40-49' => '45',
  'věk 50+' => '55',
);
$LevelTags = array(
  'Začátečník' => 'Začátečník',
  'Mírně pokročilý' => 'Mírně pokročilý',
  'Pokročilý' => 'Pokročilý',
  'Více pokročilý' => 'Více pokročilý',
  'Profi' => 'Profi',
  'Master' => 'Master',
);

class MeetSourceAmblar extends MeetSource
{
  function Import(): string
  {
    $Output = parent::Import();
    $this->AddTimeInterval = 24 * 60 * 60;
    $Content = file_get_contents($this->URL);

    //echo($Content);
    $BlockStart = '<div id="archive-question"';
    $BlockEnd = '<div class="social-bookmark">';
    $Content = GetTextBetween($Content, $BlockStart, $BlockEnd);
    if ($Content == '')
    {
      $Output .= 'Main block not isolated.</br>';
      return $Output;
    }

    $ItemStart = '<article id="question';
    $ItemEnd = '</article>';
    while (strpos($Content, $ItemStart) !== false)
    {
      $Item = GetTextBetween($Content, $ItemStart, $ItemEnd);
      $MeetItem = new MeetItem();
      $MeetItem->Link = trim(GetTextBetween($Item, '<a class="dwqa-title" href="', '"'));
      $MeetItem->Title = trim(GetTextBetween($Item, 'rel="bookmark">', '</a>'));
      $MeetItem->Gender = trim(GetTextBetween($Item, 'class="dwqa-status status-search-dancer">', '</span>'));
      if ($MeetItem->Gender == 'Inzerent hledá tanečníka') $MeetItem->Gender = Gender::Female;
        else $MeetItem->Gender = Gender::Male;
      $MeetItem->Name = trim(GetTextBetween($Item, '<span class="dwqa-author">', '</span>'));
      $Type = trim(GetTextBetween($Item, ' ', ' '));
      if ($Type == 'odpovězeno') continue;
      $MeetItem->Time = trim(GetTextBetween($Item, '<span class="dwqa-date">', '</span>'));
      if (mb_substr($MeetItem->Time, 0, 4) == 'před')
      {
        $Parts = explode(' ', $MeetItem->Time);
        if ($Parts[2] == 'hours') $MeetItem->Time = strtotime("-".$Parts[1]." hours");
        else if ($Parts[2] == 'dní') $MeetItem->Time = strtotime("-".$Parts[1]." days");
        else if ($Parts[2] == 'dny') $MeetItem->Time = strtotime("-".$Parts[1]." days");
      } else $MeetItem->Time = HumanDateToTime($MeetItem->Time);
      $MeetItem->Email = '';
      $MeetItem->Message = '';
      $MeetItem->Phone = '';
      $MeetItem->Height = '';
      $MeetItem->Weight = '';
      $MeetItem->Age = '';
      $MeetItem->Location = '';
      $MeetItem->Database = $this->Database;
      $MeetItem->Source = $this->Id;
      $Output .= $this->ImportItem($MeetItem);
      $this->MeetItems[] = $MeetItem;
    }
    return $Output;
  }

  function ImportItem(MeetItem &$MeetItem): string
  {
    global $HeightTags, $AgeTags, $LevelTags;

    $Output = '';
    $Content = file_get_contents($MeetItem->Link);

    $BlockStart = '<div class="dwqa-container" >';
    $BlockEnd = '<div class="social-bookmark">';
    $Content = GetTextBetween($Content, $BlockStart, $BlockEnd);
    if ($Content == '')
    {
      $Output .= 'Main block not isolated.</br>';
      return $Output;
    }

    $MeetItem->Message = trim(strip_tags(GetTextBetween($Content, '<div class="dwqa-content">', '</div>')));
    $MeetItem->Age = GetAgeFromText($MeetItem->Message);
    $MeetItem->Height = GetHeightFromText($MeetItem->Message);
    $MeetItem->Weight = GetWeightFromText($MeetItem->Message);
    $MeetItem->Email = GetEmailFromText($MeetItem->Message);
    $Tags = trim(GetTextBetween($Content, '<div class="dwqa-tags">', '</div>'));
    while (strpos($Tags, 'rel="tag">') !== false)
    {
      $Tag = trim(strip_tags(GetTextBetween($Tags, 'rel="tag">', '</a>')));
      if (array_key_exists($Tag, $HeightTags) and ($MeetItem->Height == '')) $MeetItem->Height = $HeightTags[$Tag];
      if (array_key_exists($Tag, $AgeTags) and ($MeetItem->Age == '')) $MeetItem->Age = $AgeTags[$Tag];
      if (array_key_exists($Tag, $LevelTags) and ($MeetItem->Level == '')) $MeetItem->Level = $LevelTags[$Tag];
      if ($Tag == 'Praha') $MeetItem->Location = 'Praha';
    }
    return $Output;
  }
}
