Skip to content

Instantly share code, notes, and snippets.

@necrogami
Created June 8, 2012 15:26
Show Gist options
  • Save necrogami/2896155 to your computer and use it in GitHub Desktop.
Save necrogami/2896155 to your computer and use it in GitHub Desktop.
<?php
class Talefi_Lists
{
CONST CHAEXDAY = '349';
CONST CHAEXNIGHT = '350';
CONST CHAGESPDAY = '351';
CONST CHAGESPNIGHT = '352';
CONST CHAHVA = '228';
CONST CHANIGHT = '320';
CONST CHAVTDAY = '353';
CONST CHAVTNIGHT = '354';
CONST CHAAFFDAY = '392';
CONST CHAAFFNIGHT = '393';
CONST TEST = '361';
static public function sendList($username, $password, $list, $message)
{
if (strlen($message) > 160){
return "Message is Too Long";
}
// I'm using curl adapter as it is much faster then the default socket adapter
$adapter = new Zend_Http_Client_Adapter_Curl();
$client = new Zend_Http_Client();
$client->setAdapter($adapter);
$client->setCookieJar();
$client->setUri('http://lists.chacha.com/j_spring_security_check');
$client->setParameterPost(array(
'j_username' => $username,
'j_password' => $password
));
$response = $client->request(Zend_Http_Client::POST);
if($response->isError()){
die('Request 1 Reply was: ' . $response->getStatus() . ' ' . $response->getMessage() . PHP_EOL);
}
$client->resetParameters();
$client->setParameterPost(array(
'advertiser.id' => 519
));
$client->setUri('http://lists.chacha.com/postLogin/advertiserSelected');
$response = $client->request(Zend_Http_Client::POST);
if($response->isError()){
die('Request 2 Reply was: ' . $response->getStatus() . ' ' . $response->getMessage() . PHP_EOL);
}
$client->resetParameters();
$client->setUri('http://lists.chacha.com/postLogin/selectList');
$response = $client->request(Zend_Http_Client::GET);
if($response->isError()){
die('Request 3 Reply was: ' . $response->getStatus() . ' ' . $response->getMessage() . PHP_EOL);
}
$client->setUri('http://lists.chacha.com/postLogin/listSelected');
$client->setParameterGet(array(
'typeId' => $list,
));
$response = $client->request(Zend_Http_Client::GET);
if($response->isError()){
die('Request 4 Reply was: ' . $response->getStatus() . ' ' . $response->getMessage() . PHP_EOL);
}
$client->setUri('http://lists.chacha.com/reminder/save');
$client->setParameterPost(array(
'typeId' => $list,
'text' => $message,
'_action_send' => 'Send Now',
'_selectSchedule' => NULL,
'_timezoneSensitive' => NULL
));
$response = $client->request(Zend_Http_Client::POST);
if($response->isError()){
die('Request 5 Reply was: ' . $response->getStatus() . ' ' . $response->getMessage() . PHP_EOL);
}
}
static public function listReminders($username, $password)
{
// I'm using curl adapter as it is much faster then the default socket adapter
$adapter = new Zend_Http_Client_Adapter_Curl();
$client = new Zend_Http_Client();
$client->setAdapter($adapter);
$client->setCookieJar();
$client->setUri('http://lists.chacha.com/j_spring_security_check');
$client->setParameterPost(array(
'j_username' => $username,
'j_password' => $password
));
$response = $client->request(Zend_Http_Client::POST);
if($response->isError()){
die('Request 1 Reply was: ' . $response->getStatus() . ' ' . $response->getMessage() . PHP_EOL);
}
$client->resetParameters();
$client->setParameterPost(array(
'advertiser.id' => 519
));
$client->setUri('http://lists.chacha.com/postLogin/advertiserSelected');
$response = $client->request(Zend_Http_Client::POST);
if($response->isError()){
die('Request 2 Reply was: ' . $response->getStatus() . ' ' . $response->getMessage() . PHP_EOL);
}
$client->resetParameters();
$client->setUri('http://lists.chacha.com/adminReminder/listUnapproved');
$client->setParameterGet(array(
'offset' => 0,
'max' => 1000
));
$response = $client->request(Zend_Http_Client::GET);
if($response->isError()){
die('Request 3 Reply was: ' . $response->getStatus() . ' ' . $response->getMessage() . PHP_EOL);
}
$doc = new DOMDocument();
$doc->loadHTML($response->getBody());
$tbody = $doc->getElementsByTagName('tbody')->item(0);
$nodeList = $tbody->getElementsByTagName('tr');
$front = Zend_Controller_Action_HelperBroker::getStaticHelper('flashMessenger');
$toast = array();
foreach ($nodeList as $node) {
$td = $node->getElementsByTagName('td');
$url = explode('?', $td->item(4)->getElementsByTagName('a')->item(0)->getAttribute('href'));
$number = explode('/', $url[0]);
$values = array(
'state' => trim($td->item(0)->nodeValue),
'message' => trim($td->item(1)->nodeValue),
'list' => trim($td->item(2)->nodeValue),
'date' => trim($td->item(3)->nodeValue),
'number' => $number[3]
);
$toast[] = $values;
}
return count($toast);
}
public function approveReminder($username, $password, $number)
{
$adapter = new Zend_Http_Client_Adapter_Curl();
$client = new Zend_Http_Client();
$client->setAdapter($adapter);
$client->setCookieJar();
$client->setUri('http://lists.chacha.com/j_spring_security_check');
$client->setParameterPost(array(
'j_username' => $username,
'j_password' => $password
));
$response = $client->request(Zend_Http_Client::POST);
if($response->isError()){
die('Request 1 Reply was: ' . $response->getStatus() . ' ' . $response->getMessage() . PHP_EOL);
}
$client->resetParameters();
$client->setParameterPost(array(
'advertiser.id' => 519
));
$client->setUri('http://lists.chacha.com/postLogin/advertiserSelected');
$response = $client->request(Zend_Http_Client::POST);
if($response->isError()){
die('Request 2 Reply was: ' . $response->getStatus() . ' ' . $response->getMessage() . PHP_EOL);
}
$client->resetParameters();
$client->setUri('http://lists.chacha.com/adminReminder/listUnapproved');
$response = $client->request(Zend_Http_Client::GET);
if($response->isError()){
die('Request 3 Reply was: ' . $response->getStatus() . ' ' . $response->getMessage() . PHP_EOL);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment