source: trunk/Modules/Meet/Import/TanecniSkola.php@ 60

Last change on this file since 60 was 60, checked in by chronos, 4 years ago
  • Fixed: tanecniskola main block izolation correction.
File size: 3.7 KB
Line 
1<?php
2
3class MeetSourceTanecniSkola extends MeetSource
4{
5 function Import()
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 = '<div><!--[if IE]><input type=IEbug disabled style="display:none"><![endif]--></div>';
31 $BlockEnd = '</article>';
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>';
40 $ItemEnd = '</div>';
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 $MeetItem->Time = HumanDateToTime(trim(GetTextBetween($Item, '<h3>', '</h3>')));
49 if ($MeetItem->Time != null)
50 {
51 $PreviousTime = $MeetItem->Time;
52 } else $MeetItem->Time = $PreviousTime;
53
54 $Part = GetTextBetween($Item, '</strong>', '<strong>');
55 $Part = explode(',', $Part);
56 if (count($Part) > 0) $MeetItem->Name = trim($Part[0]);
57 if (count($Part) > 1) $MeetItem->Height = trim($Part[1]);
58 if (strpos($MeetItem->Height, '(') !== false)
59 {
60 $MeetItem->Age = substr($MeetItem->Height, strpos($MeetItem->Height, '(') + 1);
61 $MeetItem->Age = substr($MeetItem->Age, 0, strpos($MeetItem->Age, ')'));
62 $MeetItem->Age = trim(str_replace('let', '', $MeetItem->Age));
63 $MeetItem->Height = trim(substr($MeetItem->Height, 0, strpos($MeetItem->Height, '(')));
64 } else $MeetItem->Age = '';
65 while (strpos($MeetItem->Height, ' ') !== false)
66 {
67 $MeetItem->Height = str_replace(' ', ' ', $MeetItem->Height);
68 }
69 if (array_key_exists($MeetItem->Height, $HeightRange))
70 $MeetItem->Height = $HeightRange[$MeetItem->Height];
71 $MeetItem->Email = trim(GetTextBetween($Item, '">', '</a>'));
72 $MeetItem->Phone = trim(GetTextBetween($Item, 'tel.:', '<br />'));
73 $Gender = trim(GetTextBetween($Item, '</strong>', '<strong>'));
74 if ($Gender == 'partnera,') $MeetItem->Gender = Gender::Female;
75 else if ($Gender == 'partnerku,') $MeetItem->Gender = Gender::Male;
76 else $MeetItem->Gender = Gender::Undefined;
77 $MeetItem->Message = trim(GetTextBetween($Item, '<p class="message">', '</p>'));
78 $MeetItem->Weight = GetWeightFromText($MeetItem->Message);
79 // Update age only if it is not set already
80 if ($MeetItem->Age == '')
81 {
82 $MessageAge = GetAgeFromText($MeetItem->Message);
83 if ($MessageAge != '') $MeetItem->Age = $MessageAge;
84 }
85 // Update height from message text even if height is already set
86 // because it can be more precise
87 $MessageHeight = GetHeightFromText($MeetItem->Message);
88 if ($MessageHeight != '') $MeetItem->Height = $MessageHeight;
89 $MeetItem->Location = 'Praha';
90 $MeetItem->Database = $this->Database;
91 $MeetItem->Source = $this->Id;
92 $this->MeetItems[] = $MeetItem;
93 }
94 }
95 return $Output;
96 }
97}
98
Note: See TracBrowser for help on using the repository browser.