autopost.php

<?
  $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";
                        
                        if (post($k, ganti($komen))) {
                                echo "+ Posting = Berhasil\n\n";
                                $udah[$k] = 1;
                                simpan("posted_".$username.".json", json_encode($udah));
                        } else echo "+ Posting = Gagal\n\n";
        
                        sleep(30);
                } 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, "rememberme" => 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); background-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]
        : '';
  }