SteelBot

Discussion in 'PHP' started by Sudba, 21 Jun 2009.

  1. Sudba

    Sudba Banned

    Joined:
    19 Jun 2009
    Messages:
    13
    Likes Received:
    1
    Reputations:
    0
    Здравствуйте дорогие форумчанины.
    Прошу вас помочь с написание плагина, который показывает гороскоп. Есть готовое решение только оно не работает. Я предлагаю брать гороскоп с mail.ru но там каждый знак зодиака подскатавлен под номером. Получается надо изменять на автомате, например козерогу присваивать значение 10, и подстанавливать это значение в ссылку.
    это готовое не доделоное решение
     
  2. --StraNger--

    --StraNger-- Member

    Joined:
    4 Jan 2009
    Messages:
    63
    Likes Received:
    57
    Reputations:
    5
    парень, ты знаешь что такое перенос строки?
     
  3. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Похоже на brainfuck чем-то
     
  4. LEE_ROY

    LEE_ROY Elder - Старейшина

    Joined:
    9 Nov 2006
    Messages:
    450
    Likes Received:
    188
    Reputations:
    26
    php code beautifier
    PHP:
    <?php

    function goro( $param )
    {
        if( empty(
    $param) ) {
            
    SteelBot::CmdHelp( 'goro' );
        } else {
            
    $param = iconv( 'windows-1251', 'UTF-8', $param );
            switch ( 
    $param ) {
                case 
    "козерог":
                case 
    "овен":
                case 
    "рак":
                case 
    "весы":
                case 
    "водолей":
                case 
    "телец":
                case 
    "лев":
                case 
    "скорпион":
                case 
    "рыбы":
                case 
    "близнецы":
                case 
    "дева":
                case 
    "стрелец":
                    
    $arZod = array( 'Козерог' => 10, 'Овен' => 1, 'дева' => '9' );
                    
    $buf = file_get_contents( "http://horo.mail.ru/prediction.html?sign=" . $arZod[$param] );
                    
    $buf = iconv( "WINDOWS-1251", "UTF-8", $buf );
                    
    $a = explode( "table", $buf );
                    
    $a[9] = strip_tags( $a[9] );
                    
    $a[11] = strip_tags( $a[11] );
                    
    $chislo = strpos( $a[9], ">" );
                    
    $a[9] = substr( $a[9], $chislo + 1 );
                    
    $chislo = strpos( $a[11], ">" );
                    
    $a[11] = substr( $a[11], $chislo + 1 );
                    
    $chislo = strpos( $a[9], "для" );
                    
    $part1 = substr( $a[9], 0, $chislo + 6 );
                    
    $part2 = substr( $a[9], $chislo + 6 );
                    
    $chislo = strpos( $a[11], "для" );
                    
    $part3 = substr( $a[11], 0, $chislo + 6 );
                    
    $part4 = substr( $a[11], $chislo + 6 );
                    
    $param = iconv( "WINDOWS-1251", "UTF-8", $param );
                    
    SteelBot::Msg( $part1 . " " . $param . " " . $part2 . " " . " " . $part3 . " " . $param . " " . $part4 );
                    break;
                default:
                    
    SteelBot::Msg( 'Неправильно введен знак зодиака. Существующие знаки зодиака: козерог, овен, рак, весы, водолей, телец, лев, скорпион, рыбы, близнецы, дева, стрелец' );
            }
        }
    }
    SteelBot::RegisterCmd( "гороскоп1", "goro", 1, "гороскоп (знак зодиака) - гороскоп" );

    ?>
     
    1 person likes this.
  5. Sudba

    Sudba Banned

    Joined:
    19 Jun 2009
    Messages:
    13
    Likes Received:
    1
    Reputations:
    0
    Я вставил, и она сама так в строку превратилось, извиняюсь....так поможете мне?)))
     
  6. LEE_ROY

    LEE_ROY Elder - Старейшина

    Joined:
    9 Nov 2006
    Messages:
    450
    Likes Received:
    188
    Reputations:
    26
    у меня нету класса стилбот, писал на коленке
    PHP:


    <?php

    function goro( $param )
    {
        if( empty(
    $param) ) {
            
    SteelBot::CmdHelp( 'goro' );
        } else {
            
    $param_id = 0;
            
    /*В param_id вписать нужное значение*/
            
    switch ( $param ) {
                case 
    "козерог": 
                    
    $param_id = 10;
                case 
    "овен": 
                    
    $param_id = 10;
                case 
    "рак": 
                    
    $param_id = 10;
                case 
    "весы": 
                    
    $param_id = 10;
                case 
    "водолей": 
                    
    $param_id = 10;
                case 
    "телец": 
                    
    $param_id = 10;
                case 
    "лев": 
                    
    $param_id = 10;
                case 
    "скорпион": 
                    
    $param_id = 10;
                case 
    "рыбы": 
                    
    $param_id = 10;
                case 
    "близнецы": 
                    
    $param_id = 10;
                case 
    "дева": 
                    
    $param_id = 10;
                case 
    "стрелец": 
                    
    $param_id = 10;
                
                    
    $buf = file_get_contents( "http://horo.mail.ru/prediction.html?sign=" . $param_id );
                    
    preg_match('/(?<=tm_today">)(?:\s*)?[\s\S]*?(?=<script)/', $buf, $res);
                    
    $buf = strip_tags($res[0]);
                    
    SteelBot::Msg( $buf );
                    break;
                default:
                    
    SteelBot::Msg( 'Неправильно введен знак зодиака. Существующие знаки зодиака: козерог, овен, рак, весы, водолей, телец, лев, скорпион, рыбы, близнецы, дева, стрелец' );
            }
        }
    }
    SteelBot::RegisterCmd( "гороскоп1", "goro", 1, "гороскоп (знак зодиака) - гороскоп" );

    ?> 
     
  7. Sudba

    Sudba Banned

    Joined:
    19 Jun 2009
    Messages:
    13
    Likes Received:
    1
    Reputations:
    0
    Присылает ответ, тока что то с оригиналом его не сравнить, вот что присылает робот на водолея:
    а вот с маила
     
  8. LEE_ROY

    LEE_ROY Elder - Старейшина

    Joined:
    9 Nov 2006
    Messages:
    450
    Likes Received:
    188
    Reputations:
    26
    правь регулярку, я бота твоего в глаза не видел, если хочеш готовое решение прошу в раздел покупки и продажи. ты param_id правлеьно выставил?
     
  9. Sudba

    Sudba Banned

    Joined:
    19 Jun 2009
    Messages:
    13
    Likes Received:
    1
    Reputations:
    0
    Да правильно, у всех не тот гороскоп написан
     
  10. Sudba

    Sudba Banned

    Joined:
    19 Jun 2009
    Messages:
    13
    Likes Received:
    1
    Reputations:
    0
    По такому же принцыпу попытался сделать плагин для погоды, с gismeteo.ru вот код:
    PHP:
    <?php 

    function pogoda( $param ) 
    { 
        if( empty(
    $param) ) { 
            
    SteelBot::CmdHelp( 'pogoda' ); 
        } else { 
            
    $param_id = 0; 
            
    /*В param_id вписать нужное значение*/ 
            
    switch ( $param ) { 
                case 
    "москва":  
                    
    $param_id = 4368; 
                case 
    "овен":  
                    
    $param_id = 10; 
                case 
    "рак":  
                    
    $param_id = 10; 
                case 
    "весы":  
                    
    $param_id = 10; 
                case 
    "водолей":  
                    
    $param_id = 10; 
                case 
    "телец":  
                    
    $param_id = 10; 
                case 
    "лев":  
                    
    $param_id = 10; 
                case 
    "скорпион":  
                    
    $param_id = 10; 
                case 
    "рыбы":  
                    
    $param_id = 10; 
                case 
    "близнецы":  
                    
    $param_id = 10; 
                case 
    "дева":  
                    
    $param_id = 10; 
                case 
    "стрелец":  
                    
    $param_id = 10; 
                 
                    
    $buf = file_get_contents( "http://gismeteo.ru/city/daily/" . $param_id ); 
                    
    preg_match('/(?<=tm_today">)(?:\s*)?[\s\S]*?(?=<script)/', $buf, $res); 
                    
    $buf = strip_tags($res[0]); 
                    
    SteelBot::Msg( $buf ); 
                    break; 
                default: 
                    
    SteelBot::Msg( 'Вы ввели город, которого нет в базе.' ); 
            } 
        } 
    } 
    SteelBot::RegisterCmd( "погода", "pogoda", 1, "погода (город)- узнать погоду в городе" ); 

    ?>
    отсылаю погода москва, и мне ничего в ответ не приходит... помогите:)


    Исправил, извините:)
     
    #10 Sudba, 22 Jun 2009
    Last edited: 22 Jun 2009
  11. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    подсказка небольшая - код с новой строки каждая строчка чтобы была - достаточно вовремя нажимать ENTER при публикации, а не просто тупо копипастить. Уважай других плз
     
  12. Sudba

    Sudba Banned

    Joined:
    19 Jun 2009
    Messages:
    13
    Likes Received:
    1
    Reputations:
    0
    Исправил:)
     
  13. RAINUR2

    RAINUR2 New Member

    Joined:
    27 Aug 2009
    Messages:
    33
    Likes Received:
    0
    Reputations:
    0
    Официальный сайт проекта steelbot- http://steelbot.net . . . Там всегда помогут.:)