示例#1
0
function extract_league($Html)
{
    $Html = copy_be($Html, '<form name="hform"', '</form>');
    $Html = implode("\r\n", extract_form_data($Html));
    $Html = str_ireplace("showrosp=1\r\n", '', $Html);
    return $Html;
}
示例#2
0
function extract_league($Html)
{
    $Html = copy_be($Html, '<form id="fbets"', '</form>');
    $Html = replace_all($Html, 'долгосрочные ставки', '</form>', '</form>');
    $Html = extract_tags($Html, '<input', '>', "\r\n", 'name=', 'value=');
    $Html = delete_all($Html, '<input', 'name=');
    $Html = str_ireplace(' value="', '=', $Html);
    $Html = str_ireplace('">', '', $Html);
    return $Html;
}
示例#3
0
function process_login($Html)
{
    $PostHash = extract_form_hash($Html);
    $PostHash['username'] = '******';
    $PostHash['passwd'] = 'grafdevalery';
    $Html = copy_be($Html, '<form ', '>');
    $Tags = extract_property_values($Html, 'action', "\r\n");
    $Html = download($Tags, 'POST', 'http://www.buker.ru/dostaken.php', $PostHash);
    return $Html;
}
示例#4
0
function extract_league($Html, $Sport)
{
    $Html = kill_space($Html);
    $Html = numbering_tag($Html, 'div');
    $Html = extract_numbered_tags($Html, 'div', "\r\n", "navElem");
    $TagNo = extract_tagno(copy_be($Html, "<div\t", "&SportID={$Sport}\">"), 'div');
    $Html = extract_numbered_tag($Html, 'div', $TagNo);
    $Html = extract_tags($Html, 'EventGroupID=', "'", ',');
    $Html = str_ireplace('EventGroupID=', '', $Html);
    $Html = str_ireplace("'", '', $Html);
    return $Html;
}
示例#5
0
function extract_bet($Html)
{
    $Html = copy_be($Html, '<form ', '</form>', 'betform');
    $Html = kill_tag($Html, 'script|div');
    $Html = kill_space($Html);
    $Html = kill_tag_bound($Html, 'b|span|br|i|a|input|font|img');
    $Html = delete_all($Html, '<tr', '</tr>', 'line3');
    $Html = kill_property_value_exclude($Html, 'class', 'line_table');
    $Html = kill_property($Html, 'width|height|valign|align|bgcolor|style|border|cellspacing|cellpadding');
    //  Убираем "левые" данные
    $Html = replace_all_contain($Html, '<tr', '</tr>', '', 'Хозяева|' . 'Гости|' . 'Индив.тотал:|' . '-я четверть|' . '-я партия|' . ' тайм|' . '-й сет');
    return $Html;
}
示例#6
0
function extract_league($Html)
{
    $Html = copy_be($Html, '<form ', '</form>', '"frmTurnirs"');
    $Html = extract_tags($Html, '<input', '>', "\r\n", 'id="sport_', 'name="turnir_');
    $Html = delete_all($Html, '<input', '>', 'turnir_2_');
    // Бейсбол
    $Html = delete_all($Html, '<input', '>', 'turnir_12_');
    // Бокс
    $Html = delete_all($Html, '<input', '>', 'turnir_254_');
    // Лотереи
    $Html = delete_all($Html, '<input', '>', 'turnir_255_');
    // Другие виды спорта
    $Html = delete_all($Html, '<input', '>', 'turnir_6_');
    // Хоккей
    $Html = extract_property_values($Html, 'name', ';');
    return $Html;
}
示例#7
0
function extract_bet($Html)
{
    //  Разбираемся с концами строк
    $Html = str_ireplace("\n", '<br>', $Html);
    $Html = str_ireplace("\r", '<br>', $Html);
    $Html = copy_be($Html, '<form name=f1>', '</form>');
    $Html = str_ireplace('&nbsp;', ' ', $Html);
    $Html = kill_tag_bound($Html, 'input|itemevent|a|b');
    $Html = str_ireplace(' noshade', '', $Html);
    $Html = kill_property($Html, 'time|color');
    $Html = replace_all($Html, '<sup>', '</sup>', ' ');
    $Html = kill_tag($Html, 'big');
    $Html = str_ireplace('<endpreview/>', '', $Html);
    $Html = str_ireplace('<hr><br>', '<hr>', $Html);
    $Html = str_ireplace('<br>Оглавление<', '<', $Html);
    $Html = str_ireplace('<br>Оглавление<', '<', $Html);
    $Html = replace_all($Html, '<u>', '</form>', '</form>');
    $Html = kill_tag_bound($Html, 'u|form');
    $Html = delete_all($Html, '<span ', '</span>', 'maxcap');
    return $Html;
}
示例#8
0
function extract_bet($Html)
{
    $Html = copy_be($Html, '<form name=f1', '</form>', 'Дома');
    $Html = kill_space($Html);
    $Html = kill_tag($Html, 'script');
    $Html = kill_tag_bound($Html, 'b|a|tbody|small|colgroup');
    // <!-- Выносим Экспресы и информацию о предыдущих встречах -->
    $Html = str_ireplace('<span class=tr>1</span>', '', $Html);
    $Html = delete_all($Html, '<tr>', '</tr>', '<span class=tr>');
    $Html = delete_all($Html, '<span class=n>', '</span>');
    //  <!-- Убираем строки с кнопками -->
    $Html = delete_all($Html, '<table ', '</table>', '<input ');
    //  <!-- Заменяем IMG с информацией на igif для последующего удаления -->
    $Html = replace_all($Html, '<img ', '>', "igif");
    //  <!-- Убираем левые коэффициенты в скобках -->
    $Html = replace_all($Html, '>(', ')', '>');
    //  <!-- Убираем оглавление -->
    $Html = delete_all($Html, "<div ", "</div", "Оглавление");
    $Html = kill_property($Html, 'width|border');
    $Html = replace_all_contain($Html, '<tr', '</tr>', '', '>Хозяева|' . '>Гости|' . '>Фолы|' . '>ж/к|' . '>угл.');
    return $Html;
}
示例#9
0
 private function extract_extra_bets(&$tournir_node, $html, $sport_sign, $tournir_id)
 {
     $html = str_ireplace('<li><h2>', '<li class="extra"><h2>', $html);
     $html = numbering_tag($html, 'li');
     $table_rows = extract_all_numbered_tags($html, 'li', 'extra');
     foreach ($table_rows as $row) {
         $row = kill_property($row, 'TagNo');
         $event_id = extract_property_values(copy_be($html, '<ul', '>', 'rel'), 'rel', '');
         $event_node = $this->event_find($tournir_node, $event_id);
         $phrase = copy_be($row, '<h2', '</h2>');
         $phrase = copy_between($phrase, '>', '<');
         $section_node = $this->findSection($sport_sign, $phrase);
         if (!(string) $section_node['Ignore']) {
             $bets = extract_all_tags($row, '<li', '</li>', 'rel');
             foreach ($bets as $bet) {
                 list($label, $koef) = $this->extract_label_koef($bet);
                 $label = str_ireplace((string) $event_node['Gamer1_Name'], 'Gamer1', $label);
                 $label = str_ireplace((string) $event_node['Gamer2_Name'], 'Gamer2', $label);
                 $phrase_node = $this->findPhrase($sport_sign, $phrase, $label);
                 if (!$phrase_node['Ignore']) {
                     $this->addBet($event_node, (string) $phrase_node['BetKind'] . ';Koef=' . $koef);
                 }
             }
         }
     }
 }
示例#10
0
function extract_numbered_tag($Html, $TagName, $TagNo)
{
    return copy_be($Html, "<{$TagName}\tTagNo=\"{$TagName}{$TagNo}\"", "</{$TagName}\tTagNo=\"{$TagName}{$TagNo}\">");
}
示例#11
0
function extract_extra_bets(&$tournir_node, $html, $sport_sign, $tournir_id)
{
    $filename_headers = "phrases/olymp/{$sport_sign}.headers.txt";
    $filename_labels = "phrases/olymp/{$sport_sign}.labels.txt";
    $phrases_headers = file_get_hash($filename_headers);
    $phrases_labels = file_get_hash($filename_labels);
    $html = str_ireplace('<li><h2>', '<li class="extra"><h2>', $html);
    $html = numbering_tag($html, 'li');
    $table_rows = extract_all_numbered_tags($html, 'li', 'extra');
    foreach ($table_rows as $row) {
        $row = kill_property($row, 'TagNo');
        $event_id = extract_property_values(copy_be($html, '<ul', '>', 'rel'), 'rel', '');
        $event_node = event_find($tournir_node, $event_id);
        $phrase = copy_be($row, '<h2', '</h2>');
        $phrase = copy_between($phrase, '>', '<');
        unset($bettype);
        $bettype_str = $phrases_headers[$phrase];
        if ($bettype_str) {
            foreach (explode(';', $bettype_str) as $bet_pair) {
                list($key, $value) = explode('=', $bet_pair);
                $bettype[$key] = $value;
            }
        } else {
            $bettype['Modifier'] = 'Unknown';
            $phrases_headers[$phrase] = 'Modifier=Unknown';
            $phrases_headers_modified = true;
        }
        if (!in_array($bettype['Modifier'], array('Ignore', 'Unknown'))) {
            $bets = extract_all_tags($row, '<li', '</li>', 'rel');
            foreach ($bets as $bet) {
                list($label, $koef) = extract_label_koef($bet);
                $label = str_ireplace((string) $event_node['Gamer1_Name'], 'Gamer1', $label);
                $label = str_ireplace((string) $event_node['Gamer2_Name'], 'Gamer2', $label);
                $modifier = $phrases_labels[$label];
                if ($modifier) {
                    foreach (explode(';', $modifier) as $bet_pair) {
                        list($key, $value) = explode('=', $bet_pair);
                        $bettype[$key] = $value;
                    }
                } else {
                    $bettype['Modifier'] = 'Unknown';
                    $phrases_labels[$label] = 'Modifier=Unknown';
                    $phrases_labels_modified = true;
                }
                if (!in_array($bettype['Modifier'], array('Ignore', 'Unknown'))) {
                    $bet_node = $event_node->addChild('Bet');
                    foreach ($bettype as $key => $value) {
                        $bet_node->addAttribute($key, $value);
                    }
                    $bet_node->addAttribute('Koef', $koef);
                }
                unset($bettype['Modifier']);
            }
        }
        $i++;
    }
    // отбираем новые и складываем их в новый файл
    if ($phrases_headers_modified) {
        $file_hash = file_get_hash($filename_headers);
        foreach ($file_hash as $key => $value) {
            unset($phrases_headers[$key]);
        }
        file_put_hash($filename_headers . '.new', $phrases_headers + file_get_hash($filename_headers . '.new'));
    }
    if ($phrases_labels_modified) {
        $file_hash = file_get_hash($filename_labels);
        foreach ($file_hash as $key => $value) {
            unset($phrases_labels[$key]);
        }
        file_put_hash($filename_labels . '.new', $phrases_labels + file_get_hash($filename_labels . '.new'));
    }
}
示例#12
0
 private function extract_events(&$tournir_node, $html, $sport_sign, $tournir_id)
 {
     $html = copy_be($html, '<table', '</table>', 'class=date');
     $html = kill_space($html);
     $tbodies = extract_all_tags($html, '<tbody', '</tbody>');
     foreach ($tbodies as $tbody) {
         $tbody_class = copy_be($tbody, '<', '>');
         $tbody_class = str_ireplace('id=', 'class=', $tbody_class);
         $tbody_class = extract_property_values($tbody_class, 'class', '');
         if ($tbody_class == 'date') {
             list($this->day_no, $this->month_no, $this->year_no) = $this->decode_date($tbody);
         } elseif ($tbody_class == 'chead') {
             $this->extract_header($sport_sign, $tbody);
         } elseif ($tbody_class == 'line') {
             if ($sport_sign == 'tennis') {
                 $this->extract_main_bets_tennis($tournir_node, $tbody, $sport_sign, $tournir_id);
             } elseif ($sport_sign == 'soccer') {
                 $this->extract_main_bets_soccer($tournir_node, $tbody, $sport_sign, $tournir_id);
             }
         }
     }
 }
示例#13
0
 private function extract_main_bets(&$tournir_node, $html, $sport_sign, $tournir_id)
 {
     $html = kill_property($html, 'TagNo');
     $html = numbering_tag($html, 'tr');
     $events = extract_all_numbered_tags($html, 'tr', 'event-header');
     foreach ($events as $event) {
         // получаем
         $event_info = take_be($event, '<table', '</table>');
         file_put_contents("Event.html", $event_info);
         preg_match_all('/<div class="(.*)?member-name(.*)?">(.*)?<\\/div>/imsU', $event_info, $matches);
         $gamer1_name = $matches[3][0];
         $gamer2_name = $matches[3][1];
         $datetime_str = delete_all(copy_be($event_info, '<td', '</td>', '"date"'), '<', '>');
         list($day_no, $month_no, $year_no, $hour, $minute) = $this->decode_datetime($datetime_str);
         $extrabet = copy_be($event_info, '<a', '</a>', 'treeid');
         $event_id = extract_property_values($extrabet, 'treeid', '');
         $extrabet = delete_all($extrabet, '<', '>');
         $event_node = $this->event_create($tournir_node, $event_id, mktime($hour, $minute, 0, $month_no, $day_no, $year_no), $gamer1_name, $gamer2_name);
         $cells = extract_all_tags(replace_all($event, '<td', '>', '<td>'), '<td>', '</td>');
         $i = 0;
         foreach ($cells as $cell) {
             $cell = trim(copy_between($cell, '<td>', '</td>'));
             if ($cell) {
                 $cell = kill_tag_bound($cell, 'a');
                 unset($bettype);
                 $bettype_str = $this->header[$i];
                 foreach (explode(';', $bettype_str) as $bet_pair) {
                     list($key, $value) = explode('=', $bet_pair);
                     $bettype[$key] = $value;
                 }
                 if ($bettype['Kind'] == 'Total') {
                     preg_match('/\\((.+?)\\)<br\\/>(.+?)/iU', $cell, $matches);
                     if ($matches[2]) {
                         $matches[2] = delete_all($matches[2], '<', '>');
                         $this->addBet($event_node, $bettype_str . ';Value=' . $matches[1] . ';Koef=' . $matches[2]);
                     }
                 } elseif ($bettype['Kind'] == 'Fora') {
                     preg_match('/\\(([\\+\\-]*?)(.+?)\\)<br\\/>(.+?)/iU', $cell, $matches);
                     if ($matches[3]) {
                         $matches[3] = delete_all($matches[3], '<', '>');
                         $this->addBet($event_node, $bettype_str . ';Value=' . $matches[1] . $matches[2] . ';Koef=' . $matches[3]);
                     }
                 } else {
                     $cell = delete_all($cell, '<', '>');
                     $this->addBet($event_node, $bettype_str . ';Koef=' . $cell);
                 }
             }
             $i++;
         }
         //if ($extrabet > 0) $this->extract_extra_bets($event_node, $tournir_id, $event_id);
     }
 }
示例#14
0
function extract_bet($Html)
{
    $Html = delete_all($Html, "(at ", ")");
    $Html = delete_all($Html, "(score: ", ")");
    $Html = str_ireplace('<wbr/>', '', $Html);
    $Html = str_replace("-.--", " ", $Html);
    $Html = kill_tag($Html, "h1|script");
    $Html = kill_space($Html);
    $Html = kill_comment($Html);
    $Html = numbering_tag($Html, 'div');
    $Html = extract_numbered_tags($Html, 'div', "", "bet-list");
    $Html = extract_numbered_tags($Html, 'div', "", "dsBodyContent");
    $Html = kill_property($Html, 'TagNo');
    $Html = kill_property($Html, "onmouseover|onmouseout|onclick|bgcolor|border|cellpadding|leaguename|id|width|cellspacing|regionname");
    $Html = kill_property_value($Html, "colspan", "1");
    $Html = kill_tag_bound($Html, "form|input|a|nobr|img|tbody|span");
    $Html = delete_all($Html, ' class="unselected ', '"');
    $Html = delete_all($Html, ' class=\'unselected ', '\'');
    $Html = replace_all_contain($Html, '<div', '</div>', '', 'isFavourite|' . 'isNoFavourite');
    $Html = replace_all_contain($Html, '<tr', '</tr>', '', 'sizer|' . 'bottomline');
    $Html = kill_property_value_exclude($Html, "class", "controlHeaderNoShadow|topbar|normal|def|alt|ControlContent");
    $Html = str_ireplace('<td></td>', '<td/>', $Html);
    $Html = kill_unclassed_tag($Html, 'div');
    $Html = kill_apostrof($Html, 'colspan');
    // !-- Приводим Totalы к нормальному виду -->
    $Html = replace_all($Html, "<h5>Сумма набранных очков ", '</h5>', '<h5>Total</h5>');
    $Html = replace_all($Html, "<h5>Тотал ", '</h5>', '<h5>Total</h5>');
    $Html = replace_all($Html, "<h5>Сколько будет забито голов?", '</h5>', '<h5>Total</h5>');
    $Html = replace_all($Html, "<h5>Сколько голов будет забито?", '</h5>', '<h5>Total</h5>');
    $Html = replace_all($Html, "<h5>Сколько геймов будет сыграно в матче?", '</h5>', '<h5>Total</h5>');
    $Html = replace_all($Html, "<h5>Кто выиграет больше геймов в матче? (гандикап игрока)", '</h5>', '<h5>Fora</h5>');
    $Html = replace_all($Html, "<h5>Двойной шанс", '</h5>', '<h5>1X_12_X2</h5>');
    $Html = str_ireplace('<tr class="alt"', "\r\n" . '<tr class="alt"', $Html);
    $Html = str_ireplace('<tr class="def"', "\r\n" . '<tr class="alt"', $Html);
    $Tags = explode("\r\n", $Html);
    foreach ($Tags as $tag) {
        if (copy_be($tag, '>', '<', ' - ', ' - ', ':')) {
            $Html = str_ireplace("\r\n" . $tag, str_ireplace('="alt"', '="evn"', $tag), $Html);
        }
    }
    $Tags = explode("\r\n", $Html);
    foreach ($Tags as $tag) {
        if (strpos($tag, '"alt"')) {
            $newtag = numbering_tag($tag, 'tr');
            $trAlt = extract_numbered_tags($newtag, 'tr', '', 'alt');
            $h5 = delete_all($trAlt, '<', '>');
            if (strpos($h5, ' ')) {
                $newtag = str_replace($trAlt, '', $newtag);
                $Normals = explode("\r\n", extract_numbered_tags($newtag, 'tr', "\r\n", 'normal'));
                foreach ($Normals as $normal) {
                    $newtag = str_replace($normal, '', $newtag);
                }
                $newtag = kill_property($newtag, 'TagNo');
                $Html = str_replace($tag, $newtag, $Html);
            }
        }
    }
    $Html = str_ireplace("\r\n", '', $Html);
    $Html = str_ireplace('<tr class="evn"', "\r\n" . '<tr class="evn"', $Html);
    $Tags = explode("\r\n", $Html);
    foreach ($Tags as $tag) {
        if (strpos($tag, '"evn"')) {
            $newtag = numbering_tag($tag, 'tr');
            $trEvn = extract_numbered_tags($newtag, 'tr', '', 'evn');
            if (strpos($newtag, '="normal"') == 0) {
                $newtag = str_replace($trEvn, '', $newtag);
            }
            $newtag = kill_property($newtag, 'TagNo');
            $Html = str_replace($tag, $newtag, $Html);
        }
    }
    $Html = str_ireplace("\r\n", '', $Html);
    return $Html;
}
示例#15
0
function extract_tag_from_tag($html, $outer_tag, $inner_tag, $kill_bounds = null)
{
    $ul_tagno = copy_be($html, "<{$outer_tag}", '>');
    $ul_tagno = extract_tagno($ul_tagno, $outer_tag);
    $html = extract_numbered_tag($html, $outer_tag, $ul_tagno);
    $result = array();
    while ($li_tagno = copy_be($html, "<{$inner_tag}", '>')) {
        $li_tagno = extract_tagno($li_tagno, $inner_tag);
        $li_html = extract_numbered_tag($html, $inner_tag, $li_tagno);
        $html = str_replace($li_html, '', $html);
        if ($kill_bounds) {
            $li_html = delete_all($li_html, "<{$inner_tag}", '>', "TagNo=\"{$inner_tag}{$li_tagno}\"");
            $li_html = delete_all($li_html, "</{$inner_tag}", '>', "TagNo=\"{$inner_tag}{$li_tagno}\"");
        }
        $result[] = $li_html;
    }
    return $result;
}
示例#16
0
    $FileName = $Lines . "league.html";
    if (!file_exists($FileName)) {
        $Html = download("{$Host}/bets.php?line_id[]={$Sport}", "GET", "{$Host}/center.php");
        file_put_contents($FileName, $Html);
    } else {
        $Html = file_get_contents($FileName);
    }
} else {
    $Html = download_page("{$Host}/bets.php?line_id[]={$Sport}", "GET", "{$Host}/center.php");
}
function extract_league($Html)
{
    $Html = replace_all($Html, '<table', '</table>', '', 'долгосрочные ставки');
    return extract_form_hash($Html);
}
$Form = copy_be(win1251_to_utf8($Html), '<form id="fbets"', '</form>');
if ($debug) {
    file_put_contents($Lines . "form.txt", $Form);
}
$PostHash = extract_league($Form);
$FormAction = extract_form_action($Form);
if ($debug) {
    file_put_contents($Lines . "league.txt", implode_hash("\r\n", $PostHash));
}
// Получаем перечень турниров
$PostHash['simple'] = 'on';
if ($debug) {
    $FileName = $Lines . "bets.html";
    if (!file_exists($FileName)) {
        $Html = download("{$Host}/{$FormAction}", "POST", "{$Host}/bets.php?line_id[]={$Sport}", $PostHash);
        file_put_contents($FileName, $Html);
示例#17
0
function to_be_continue($html, $next_page)
{
    $html = copy_be($html, '<a', '>', 'pagingGotoItem', "currentPage={$next_page}");
    return $html != '';
}