в Fun

Конкурс от bigbazzy и уведомлялка к нему

Я уже упоминал в предыдущих статьях сервис, на котором покупаю книги — Аймобилко. Не буду распространяться на счёт его невероятной крутизны удобства, скажу только, что книги там покупать легко и приятно, а абонемент вообще сказка — за 500 рублей каждый день по книге целый месяц. Ну да не о том пост.

Пост о том, что на bigbazzy (судя по общей стилистике, проект той же фирмы, что и аймобилко) запустил предновогоднюю акцию — купон на месячный абонемент за 150 рублей вместо пятисот. И что не менее интересно — плюшная раздача подарков. Каждый 10 купон — пополнение счёта на мобилке, каждый 50 — настоящая ёлка (как пишут в комментариях — голландская), каждый сотый — ящик шампанского, 500 — айчиталка (е-ридер), тысячный — ipod и т.д. В общем-то приятный бонус.
А вверху — блочёк с данными о том, сколько билетов уже куплено.
И решил я наваять парсер на коленке за 15 минут.
И наваял:

  1. <?
  2. $imobilko  = file_get_contents(‘http://bigbuzzy.ru/catalog/imobilco/’);
  3. $countTickets = intval(substr($imobilko, strpos($imobilko, ‘offer-coupons-text">’)+20, 5));
  4. require_once(‘class.phpmailer.php’);
  5. $mail = new PHPMailer(true);
  6. $mail->IsSMTP(); // telling the class to use SMTP
  7. $mail->SMTPAuth   = true;                  // enable SMTP authentication
  8. $mail->Host       = "smtp.vashserver.com"; // sets the SMTP server
  9. $mail->Port       = 25;                    // set the SMTP port for the GMAIL server
  10. $mail->Username   = "example@smtp.vashserver.com"; // SMTP account username
  11. $mail->Password   = "parola";        // SMTP account password
  12.  
  13.  
  14. $body = ‘<h1>Allready bought: ‘.$countTickets.‘ coupons.</h1>’;
  15. if ($countTickets < 1000)
  16.         $body .= ‘For <b>shuffle</b> need ‘.(1000$countTickets).‘<br/>’;
  17. if ($countTickets < 1500)
  18.         $body .= ‘For <b>ichitalka</b> ‘.(1500$countTickets).‘<br/>’;
  19. if ($countTickets < 2000)
  20.         $body .= ‘For <b>ipod touch</b> need ‘.(2000$countTickets).‘</br>’;
  21.  
  22. $mail->AddAddress("мой_ящег@gmail.com");
  23. $mail->Subject    = "Allready bought: $countTickets coupons.";
  24. $mail->MsgHTML($body);
  25. $mail->Send();
  26.  

Чтобы всё заработало нужна библиотечка PHP Mailer (кстати, классное решение).
Распакуйте файлы

  1.  
  2. iMac:PHPMailer_v5.1 keriat$ ls -al
  3. total 400
  4. drwxr-xr-x  6 keriat  staff    476 30 дек 02:15 .
  5. drwxr-xr-x  9 keriat  staff   4012 30 дек 02:48 ..
  6. -rwxr-xr-x  1 keriat  staff  74526 10 ноя  2009 class.phpmailer.php
  7. -rwxr-xr-x  1 keriat  staff  10599 20 окт  2009 class.pop3.php
  8. -rwxr-xr-x  1 keriat  staff  25613 20 окт  2009 class.smtp.php
  9.  

в ту же папку, где лежит скрипт.
Затем вещаем на крон и… Вуаля!
На почту раз в полчаса приходит вот такое вот письмо:

З.Ы. Чёрт))) Пост писал дольше, чем ваял скриптик. Да, надо бы прикрутить базу, запоминать текущее значение и слать письмо только при изменении…) И заявки)))