PROGRAMMING

Nasza klasa - prosty bot, część 2

#php

Tak jak pisałem w poprzednim wpisie dotyczącym bota - zaczynamy drugą część.

Wszystkie znajdujące się tutaj informacje są podane tylko i wyłącznie w celach edukacyjnych. Nie odpowiadam za szkody wywołane przez złe ich wykorzystanie.

Nie będę już przepisywał tego samego kodu. Opiszę tylko część, w której się coś zmieniło względem poprzedniej. Powiedzmy, że chcemy dodać aby nasz program zapraszał odwiedzone osoby. Dodatkowo możemy dodać, że ludzie do których ma być wysłane ogłoszenie mają być z Kalisza ;-) Zmiany zaczynają się tylko od zmiennej $get_person w pętli while. I od tego wkleję kod.

<?php
    $get_person = exec('/usr/local/bin/curl -s -b headers -A "'.$agent.'" http://nasza-klasa.pl/profile/'.$start.' > tmp2');
    $city = exec('cat tmp2 | grep -i pp_city');
    $invite = file_get_contents('tmp2');
    preg_match_all('@"add_friend_ticket":"(.*?)"@', $invite, $code);
    $invite_code = $code['1']['0']; if(preg_match("/kalisz/i", $city) && !preg_match("/pomorski/i", $city))
    {
        $invite_person = exec('/usr/local/bin/curl -s -b headers -A "'.$agent.'" -d t='.$invite_code.' http://nasza-klasa.pl/invite/'.$start.' > tmp3');
        echo "@@@ ---------- ### invited $start\n";
        exec('echo '.$start.' >> kalisz');
    }
    else
    {
        echo "$start != Kalisz.\n";
    }
?>

I małe wyjaśnienie.. W pierwszej linii tak jak wcześniej pobierany jest kod źródłowy danego profilu. W drugiej linii wyciągamy z kodu linię zawierającą pp_city, w której jak można się domyśleć znajduje się miasto, z którego pochodzi osoba. Następnie wyciągamy add_friend_ticket - ciąg znaków, który jest wymagany aby wysłać zaproszenie. Zapisujemy go w zmiennej $invite_code. W 6 linii widać warunek, który sprawdza, czy $city zawiera nazwę kalisz i czy czasem nie jest to Kalisz Pomorski ;-) Jeżeli warunek jest rozpatrzony pozytywnie to w linii 8 wywołujemy zapytanie, które wysyła zaproszenie dla danego konta. Jeżeli nie, to wypisujemy, że dany numer (profil) != Kalisz.

Proste, czyż nie? ;-)