Below is the PHP script that drop comments in all REDDIT posts starting from the first page.
This script is just for educational purposes!
DO NOT RUN IT!
<?php
/*
* This software is for educational purposes only
* Do not run it in the internet or use it for automated comments posting
*
* READ ME:
* 1. Put correct reddit username and password
* 2. Run it from command line:
*
* php reddit_commenter.php
*/
define("USER", "reddit_username");
define("PASS", "reddit_password");
define("USE_PROXY", false);
define("HTTP_PROXY_SERVER", "127.0.0.1:3128");
/*
DO NOT CHANGE THE LINES BELOW
*/
define("HOSTNAME", "http://reddit.com");
$default_header[] = "Accept: */*";
$default_header[] = "Accept-Language: uk";
$default_header[] = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
$default_header[] = "Host: reddit.com";
$default_header[] = "Proxy-Connection: Keep-Alive";
$default_header[] = "Pragma: no-cache";
$default_header[] = "x-prototype-version: 1.3.1";
$default_header[] = "x-requested-with: XMLHttpRequest";
$DEFAULT_HEADER = $default_header;
$login_header[] = "Accept: */*";
$login_header[] = "Accept-Language: uk";
$login_header[] = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
$login_header[] = "Host: reddit.com";
$login_header[] = "Proxy-Connection: Keep-Alive";
$login_header[] = "Pragma: no-cache";
$login_header[] = "x-prototype-version: 1.3.1";
$login_header[] = "Referer: http://reddit.com";
$login_header[] = "x-requested-with: XMLHttpRequest";
$LOGIN_HEADER = $login_header;
$post_header[] = "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-icq, */*";
$post_header[] = "Accept-Language: uk";
$post_header[] = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
$post_header[] = "Host: reddit.com";
$post_header[] = "Proxy-Connection: Keep-Alive";
$post_header[] = "Pragma: no-cache";
$post_header[] = "x-prototype-version: 1.3.1";
$post_header[] = "x-requested-with: XMLHttpRequest";
$POST_HEADER = $post_header;
define("COOKIE_FILENAME", "C:/cookie.txt");
function GetCurlPage ($pageSpec, $header, $follow=true) {
$ch = curl_init($pageSpec);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
if ($follow) curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
if (USE_PROXY) curl_setopt($ch, CURLOPT_PROXY, HTTP_PROXY_SERVER);
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIE_FILENAME);
curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIE_FILENAME);
$tmp = curl_exec ($ch);
curl_close ($ch);
return $tmp;
}
function PostCurlPage ($pageSpec, $data, $header, $follow=false) {
$ch = curl_init($pageSpec);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
if ($follow) curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
if (USE_PROXY) curl_setopt($ch, CURLOPT_PROXY, HTTP_PROXY_SERVER);
curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIE_FILENAME);
curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIE_FILENAME);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$tmp = curl_exec ($ch);
curl_close ($ch);
return $tmp;
}
function startpage($link){
global $DEFAULT_HEADER;
$header = $DEFAULT_HEADER;
return GetCurlPage($link, $header);
}
function login(){
global $LOGIN_HEADER;
$login_data = "ajax=1&op=login&user=".USER."&passwd=".PASS."&rem=on&_=";
$login_length = strlen($login_data);
$header = $LOGIN_HEADER;
$header[] = "Content-Type: application/x-www-form-urlencoded";
$header[] = "Content-Length: $login_length";
$header[] = "Referer: ".HOSTNAME;
return PostCurlPage("http://reddit.com/login", $login_data, $header);
}
function get_comment_page($post_link){
global $DEFAULT_HEADER;
$header = $DEFAULT_HEADER;
return GetCurlPage($post_link, $header);
}
function create_post_data($url, $parent_id, $comment){
return "url=".urlencode($url)."&parentid=".$parent_id."&comment=".urlencode($comment);
}
function post_comment($url, $parent_id, $comment){
global $DEFAULT_HEADER;
$post_data = create_post_data($url, $parent_id, $comment);
$login_length = strlen($post_data);
$header = $DEFAULT_HEADER;
$header[] = "Content-Type: application/x-www-form-urlencoded";
$header[] = "Content-Length: $login_length";
$header[] = "Referer: ".HOSTNAME."$url";
$post = PostCurlPage("http://reddit.com/comment", $post_data, $header);
}
function get_comment_links($html){
$pattern = '/href="(\/info\/[^\/]+\/comments)"\sclass="bylink"/';
preg_match_all($pattern, $html, $matches);
return $matches[1];
}
function get_parent_id ($html) {
$pattern = '/<input\stype="hidden"\sname="parentid"\svalue="(\d+)?">/';
preg_match_all($pattern, $html, $matches);
return $matches[1][0];
}
$post_body = "This is automated comment from [REDDIT automated commenter PHP script](http://redditscripts.blogspot.com/2007/04/script-that-makes-comments-in-all-posts.html)";
for($i=0; $i<500; $i+=25){
if (login()=='0'){
echo "Processing http://reddit.com/?offset=$i\n";
$start_page = startpage("http://reddit.com/?offset=$i");
$comment_links = get_comment_links($start_page);
foreach ($comment_links as $comment_link){
echo "\tget comment link $comment_link\n";
$comment_page = get_comment_page(HOSTNAME.$comment_link);
$parent_id = get_parent_id($comment_page);
post_comment($comment_link, $parent_id, $post_body);
echo "\tPost done\n";
}
} else {
echo "Cannot login [$login]";
}
}
?>
1 comment:
Sword of the New World Vis in which world have one feature that feel like a case of convenience gone extreme, their first month of life is important. First of all, realize the Sword of the New World Gold is useful to the each new player. You only play with others and buy vis can get happy from the game. After learned at the Eve world, you may found the cheap snw vis. However, Sword of the New World money can also save a lot your time.
Tibia Gold and the game I have played for about 3 years now and I have always found it fun to play. You should compensate him by giving him some Tibia coins, and then Pvp or PK. Normal monsters; you have to lure a handful of monsters with Tibia money so that switching between them can be easier. There are many benefits to guild in tibia gp. When you Tibia Platinum, it is not still deal high amounts of damage.
Post a Comment