| 1 | <?php
|
|---|
| 2 |
|
|---|
| 3 | class MeetSourceTanecniSkola extends MeetSource
|
|---|
| 4 | {
|
|---|
| 5 | function Import(): string
|
|---|
| 6 | {
|
|---|
| 7 | $Output = parent::Import();
|
|---|
| 8 | $HeightRange = array(
|
|---|
| 9 | '< 120 cm' => 120,
|
|---|
| 10 | '120 cm - 130 cm' => 125,
|
|---|
| 11 | '125 cm - 135 cm' => 130,
|
|---|
| 12 | '130 cm - 140 cm' => 135,
|
|---|
| 13 | '135 cm - 145 cm' => 140,
|
|---|
| 14 | '140 cm - 150 cm' => 145,
|
|---|
| 15 | '145 cm - 155 cm' => 150,
|
|---|
| 16 | '150 cm - 160 cm' => 155,
|
|---|
| 17 | '155 cm - 165 cm' => 160,
|
|---|
| 18 | '160 cm - 170 cm' => 165,
|
|---|
| 19 | '165 cm - 175 cm' => 170,
|
|---|
| 20 | '170 cm - 180 cm' => 175,
|
|---|
| 21 | '175 cm - 185 cm' => 180,
|
|---|
| 22 | '180 cm - 190 cm' => 185,
|
|---|
| 23 | '185 cm - 195 cm' => 190,
|
|---|
| 24 | '190 cm - 200 cm' => 195,
|
|---|
| 25 | '195 cm - 205 cm' => 200,
|
|---|
| 26 | '200 cm <' => 205,
|
|---|
| 27 | );
|
|---|
| 28 | $Content = file_get_contents($this->URL);
|
|---|
| 29 |
|
|---|
| 30 | $BlockStart = 'data-content="inzeraty">';
|
|---|
| 31 | $BlockEnd = '</section>';
|
|---|
| 32 | $Content = GetTextBetween($Content, $BlockStart, $BlockEnd);
|
|---|
| 33 | if ($Content == '')
|
|---|
| 34 | {
|
|---|
| 35 | $Output .= 'Main block not isolated.</br>';
|
|---|
| 36 | return $Output;
|
|---|
| 37 | }
|
|---|
| 38 |
|
|---|
| 39 | $ItemStart = '<div class="item item-dating">';
|
|---|
| 40 | $ItemEnd = 'Odpovědět na inzerát</a></p>';
|
|---|
| 41 | $PreviousTime = null;
|
|---|
| 42 | while (strpos($Content, $ItemStart) !== false)
|
|---|
| 43 | {
|
|---|
| 44 | $Item = GetTextBetween($Content, $ItemStart, $ItemEnd);
|
|---|
| 45 | if ($Item != '')
|
|---|
| 46 | {
|
|---|
| 47 | $MeetItem = new MeetItem();
|
|---|
| 48 | $Time = trim(GetTextBetween($Item, '<p class="date">', '</p>'));
|
|---|
| 49 | if ($Time == 'Včera') $Time = HumanDate(time() - 60*60*24);
|
|---|
| 50 | else if ($Time == 'Dnes') $Time = HumanDate(time());
|
|---|
| 51 | else {
|
|---|
| 52 | $Time = str_replace('ledna', '1.', $Time);
|
|---|
| 53 | $Time = str_replace('února', '2.', $Time);
|
|---|
| 54 | $Time = str_replace('března', '3.', $Time);
|
|---|
| 55 | $Time = str_replace('dubna', '4.', $Time);
|
|---|
| 56 | $Time = str_replace('května', '5.', $Time);
|
|---|
| 57 | $Time = str_replace('června', '6.', $Time);
|
|---|
| 58 | $Time = str_replace('července', '7.', $Time);
|
|---|
| 59 | $Time = str_replace('srpna', '8.', $Time);
|
|---|
| 60 | $Time = str_replace('září', '9.', $Time);
|
|---|
| 61 | $Time = str_replace('října', '10.', $Time);
|
|---|
| 62 | $Time = str_replace('listopadu', '11.', $Time);
|
|---|
| 63 | $Time = str_replace('prosince', '1.', $Time);
|
|---|
| 64 | }
|
|---|
| 65 | $MeetItem->Time = HumanDateToTime($Time);
|
|---|
| 66 | if ($MeetItem->Time != null)
|
|---|
| 67 | {
|
|---|
| 68 | $PreviousTime = $MeetItem->Time;
|
|---|
| 69 | } else $MeetItem->Time = $PreviousTime;
|
|---|
| 70 |
|
|---|
| 71 | $Part = GetTextBetween($Item, '<h2>', '</h2>');
|
|---|
| 72 | if (strpos($Part, '(') !== false)
|
|---|
| 73 | {
|
|---|
| 74 | $MeetItem->Name = substr($Part, 0, strpos($Part, '('));
|
|---|
| 75 | $MeetItem->Age = substr($Part, strpos($Part, '(') + 1);
|
|---|
| 76 | $MeetItem->Age = substr($MeetItem->Age, 0, strpos($MeetItem->Age, ')'));
|
|---|
| 77 | $MeetItem->Age = trim(str_replace('let', '', $MeetItem->Age));
|
|---|
| 78 | } else
|
|---|
| 79 | {
|
|---|
| 80 | $MeetItem->Name = $Part;
|
|---|
| 81 | $MeetItem->Age = '';
|
|---|
| 82 | }
|
|---|
| 83 |
|
|---|
| 84 | $Gender = trim(GetTextBetween($Item, '</em>', '</p></div>'));
|
|---|
| 85 | if ($Gender == 'Hledám partnera') $MeetItem->Gender = Gender::Female;
|
|---|
| 86 | else if ($Gender == 'Hledám partnerku') $MeetItem->Gender = Gender::Male;
|
|---|
| 87 | else $MeetItem->Gender = Gender::Undefined;
|
|---|
| 88 |
|
|---|
| 89 | $MeetItem->Height = trim(GetTextBetween($Item, '<div class="item py-5 px-10"><p><em class="fa fa-ruler"></em>', '</p></div>'));
|
|---|
| 90 | while (strpos($MeetItem->Height, ' ') !== false)
|
|---|
| 91 | {
|
|---|
| 92 | $MeetItem->Height = str_replace(' ', ' ', $MeetItem->Height);
|
|---|
| 93 | }
|
|---|
| 94 | if (array_key_exists($MeetItem->Height, $HeightRange))
|
|---|
| 95 | $MeetItem->Height = $HeightRange[$MeetItem->Height];
|
|---|
| 96 |
|
|---|
| 97 | $MeetItem->Message = trim(GetTextBetween($Item, '<p>', '</p>'));
|
|---|
| 98 |
|
|---|
| 99 | $MeetItem->Email = GetEmailFromText($MeetItem->Message);
|
|---|
| 100 | $MeetItem->Weight = GetWeightFromText($MeetItem->Message);
|
|---|
| 101 |
|
|---|
| 102 | // Update age only if it is not set already
|
|---|
| 103 | if ($MeetItem->Age == '')
|
|---|
| 104 | {
|
|---|
| 105 | $MessageAge = GetAgeFromText($MeetItem->Message);
|
|---|
| 106 | if ($MessageAge != '') $MeetItem->Age = $MessageAge;
|
|---|
| 107 | }
|
|---|
| 108 |
|
|---|
| 109 | // Update height from message text even if height is already set
|
|---|
| 110 | // because it can be more precise
|
|---|
| 111 | $MessageHeight = GetHeightFromText($MeetItem->Message);
|
|---|
| 112 | if ($MessageHeight != '') $MeetItem->Height = $MessageHeight;
|
|---|
| 113 |
|
|---|
| 114 | $MeetItem->Location = 'Praha';
|
|---|
| 115 | $MeetItem->Database = $this->Database;
|
|---|
| 116 | $MeetItem->Source = $this->Id;
|
|---|
| 117 | //print_r($MeetItem);
|
|---|
| 118 | $this->MeetItems[] = $MeetItem;
|
|---|
| 119 | }
|
|---|
| 120 | }
|
|---|
| 121 | return $Output;
|
|---|
| 122 | }
|
|---|
| 123 | }
|
|---|
| 124 |
|
|---|