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? ;-)