You are on page 1of 5

<?

$username = $argv[1];
$password = $argv[2];
if (!$username || !$password) {
echo "+ You must specify Username & Password!\n";
exit;
}
echo "+ Running as $username \n";
require_once("cURL.php");
$cURL = new cURL("./$username");
require_once("sockslist.php");
$sockslist = new SocksList();
include_once('ocrbreaker.php');
$ocr = new OCRbreaker();
$config = array();
//$config["proxy"] = $sockslist->sockslist();
$cur_proxy = -1;
$cURL->user_agent = "Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (S60; SymbOS; Opera
Mobi/23.348; U; en) Presto/2.5.25 Version/10.54";
login();
$udah = (array) json_decode(file_get_contents("posted_".$username.".json"));
print_r($udah);
while (1==1) {
echo "+ Crawling pages \n";
$trit = crawl("21", 10);
foreach ($trit as $k=>$v) {
if (!isset($udah[$k])) {
echo "+ http://m.kaskus.us/thread/$k \n";
$komen = random_komen($k);
if ($komen) {
echo "-> Komentar :\n $komen \n\n";
echo "-> GANTI JADI :\n" . ganti($komen) . "\n\n";
atas:
if (post($k, ganti($komen))) {
echo "+ Posting = Berhasil\n\n";
$udah[$k] = 1;
simpan("posted_".$username.".json", json_encode($udah));
} else goto atas;
//echo "+ Posting = Gagal\n\n";
sleep(20);
} else {
$udah[$k] = 1;
simpan("posted_".$username.".json", json_encode($udah));
echo "-> Halaman komentar masih sedikit\n";
}
}
}
}
exit;

function ganti($teks) {
$dia = array("gan", "bos", "om", "coy", "bray", "cuy");
$gw = array("gw", "ane", "ogut", "aye", "gua");
$sering = array("dengan" => "dgn", "dgn" => "dengan");
$ketawa = array("wkwkwk", "hahaha");
$tk = explode(" ", $teks);
$tmp = ""; $break = false;
foreach ($tk as $tks) {
$break = false;
$tt = strtolower($tks);
// ubah satu : kata dia
foreach ($dia as $d) {
if ($tt == $d) {
$ack = array_rand($dia, 1);
$ac = $dia[$ack];
$tmp .= " ".$ac;
$break = true;
break;
}
if ($break) break;
}
if (!$break) {
// ubah dua : kata gw
foreach ($gw as $c) {
if ($tt == $c) {
$ack = array_rand($gw, 1);
$ac = $gw[$ack];
$tmp .= " ".$ac;
$break = true;
break;
}
if ($break) break;
}
if (!$break) {
$tmp .= " ". $tt;
}
}
}
$tmp = str_replace("...", "..", $tmp);
return $tmp;
}
function simpan($file, $data) {
$fp = fopen($file, "w");
fwrite($fp, $data);
fclose($fp);
}
function komentar($title) {
$komen = array(

"iya yah? hmm :beer:",


"ijin menyimak dulu",
"serasa dejavu",
"hmm....",
"wekkkkkkks",
);
$km = array_rand($komen,1);
return $komen[$km];
}
function login() {
global $cURL,$trit, $username, $password;
$cURL->open($trit);
$post = render_form(array("username" => $username, "password" => $password, "rem
emberme" => null, "login" => "Login"));
$isi = $cURL->open("http://m.kaskus.us/user/login", $post);
//$isi = $cURL->open("http://m.kaskus.us/");
}
function post($trit_id="7369840", $komentar="jiahahaha") {
global $cURL, $ocr;
$trit = "http://m.kaskus.us/reply/$trit_id";
$balas = $cURL->open($trit);
$captcha = stringBetween("Code Verification: <img src=\"","\"/>", $balas);
$c = $cURL->open($captcha);
$kode = $ocr->read($c);
$hash = stringBetween('hash" type="hidden" value="',"\"", $balas);
echo "Captcha = $captcha\n";
$form = array();
$form["captcha"] = $kode;
$form["title"] = "";
$form["message"] = $komentar;
$form["reply"] = "Submit Reply";
$form["threadid"] = $trit_id;
$form["hash"] = $hash;
$kirim = $cURL->open($trit, $form);
$cek = strpos($kirim, "redirect");
if ($cek > -1) return true;
else return false;
}
function crawl($forum_id,$max=50) {
global $cURL;
$trits = array();
for ($i = 1; $i <= $max; $i++) {
$c = ($i - 1) * 20;
$trit = "http://m.kaskus.us/forum/$forum_id/$c";
echo "+ Crawl $trit\n";
$isi = $cURL->open($trit);
$tret = html2trits($isi);
echo "+ Total " . count($tret)."\n";
foreach ($tret as $t) {
if (substr($t["title"],0,7) != "Sticky:") $trits[$t["id"]] = $t["title"];
}
}
return $trits;
}
function random_komen($id) {

global $cURL;
$total_hal = trit_page($id);
if ($total_hal > 15) {
$acak_hal = rand(1,$total_hal - 1);
$komen = trit_posts($id, $acak_hal);
$total_post = count($komen["posts"]);
$acak_post = array_rand($komen["posts"], 1);
$post = $komen["posts"][$acak_post];
$cek = strpos($post[2], "http://");
while ($cek > -1 && $acak_post > ($total_post - 5)) {
$acak_post = array_rand($komen["posts"], 1);
$post = $komen["posts"][$acak_post];
$cek = strpos($post[2], "http://");
}
return $post[2];
}
}
function acak_p($komen) {
$total_post = count($komen["posts"]);
$acak_post = array_rand($komen["posts"], 1);
$post = $komen["posts"][$acak_post];
return $post;
}
function trit_posts($id, $page=1) {
global $cURL;
$c = ($page - 1) * 10;
$trit = "http://m.kaskus.us/thread/$id/$c";
$a = $cURL->open($trit);
$b = explode("<div class=\"post", $a);
$kom = array(); $n = 0;
foreach ($b as $c) {
$komen = stringBetween("<hr size=\"0.2\" style=\"color: rgb(209, 209, 225); back
ground-color: rgb(209, 209, 225);\"/>","<div class=\"right\">",$c);
$komen = trim(strip_tags($komen));
$usr_id = stringBetween("<a href=\"http://m.kaskus.us/user/profile/", "\"", $c);
$usr_name = stringBetween("<a href=\"http://m.kaskus.us/user/profile/$usr_id\">"
,"</a>",$c);
if ($n == 2) { $ts_id = $usr_id; $ts_name = $usr_name; }
if ($komen && $ts_id && $usr_id != $ts_id) array_push($kom, array($usr_id, $usr_
name, $komen));
$n++;
}
$hsl = array("ts_id" => $ts_id, "ts_name" => $ts_name, "posts" => $kom);
return $hsl;
}
function html2trits($html) {
$a = stringBetween("<div id=\"forum\">","<div class=\"kaskusad\">",$html);
$b = explode("<li", $a);
$d = array();
foreach ($b as $c) {
$id = stringBetween("href=\"http://m.kaskus.us/thread/","/",$c);
$title = trim(stringBetween("\">", "(&nbsp;<strong>1",$c));
if ($title) {
array_push($d, array("id" => $id, "title" => $title));

}
}
return $d;
}
function trit_page($id) {
global $cURL;
$trit = "http://m.kaskus.us/thread/$id/";
$isi = $cURL->open($trit);
$a = stringBetween("<div class=\"paging\">","|",$isi);
$b = stringBetween(" of "," ",$a);
return $b;
}
function render_form($data) {
$t = "";
foreach ($data as $k=>$v) { $t .= "&$k=$v";}
return str_replace("###&","","###".$t);
}
function stringBetween($start, $end, $var) {
return preg_match('{' . preg_quote($start) . '(.*?)' . preg_quote($end) . '}s',
$var, $m)
? $m[1]
: '';
}