- $entry['id'] = rand(1, 999999);
- $fp = fopen("tmp/debug_".$entry['id'].".c", "w");
- fwrite($fp, "#include \"includes.h\"\n".$exp[1]);
- fclose($fp);
- $err = shell_exec("gcc -o tmp/debug_".$entry['id']." tmp/debug_".$entry['id'].".c 2>&1");
- if($err) {
- $err=str_replace("\r","",$err);
- $lines=explode("\n",$err);
- $i=0;
- foreach($lines as $line) {
- if($line == "") continue;
- $i++;
- if($i>100) {
- $this->uplink->privmsg($this->c, $entry['channel'], "too many lines!");
- break;
- }
- $this->uplink->privmsg($this->c, $entry['channel'], $line);
- }
- }
- if(!file_exists("tmp/debug_".$entry['id'])) {
- unlink("tmp/debug_".$entry['id'].".c");
- break;
- }
+ $entry['id'] = rand(1, 999999);
+ if(preg_match("#pastebin\.com/([a-zA-Z0-9]*)$#i", $exp[1])) {
+ $pasteid = explode("/", $exp[1]);
+ $pasteid = $pasteid[count($pasteid)-1];
+ $codecontent = file_get_contents("http://pastebin.com/download.php?i=".$pasteid);
+ if(preg_match("#Unknown Paste ID!#i", $codecontent)) {
+ $this->uplink->notice($this->bot, $user, "Unknown Paste ID!");
+ return;
+ }
+ $code = "#include \"includes.h\"
+ ".$codecontent;
+ } else {
+ $code = "#include \"includes.h\"
+ ".$exp[1];
+ };
+ $fp = fopen("tmp/debug_".$entry['id'].".c", "w");
+ fwrite($fp, $code);
+ fclose($fp);
+ $err = shell_exec("gcc -o tmp/debug_".$entry['id']." tmp/debug_".$entry['id'].".c 2>&1");
+ if($err) {
+ $err=str_replace("\r","",$err);
+ $lines=explode("\n",$err);
+ $i=0;
+ foreach($lines as $line) {
+ if($line == "") continue;
+ $i++;
+ if($i>100) {
+ $this->uplink->privmsg($this->c, $entry['channel'], "too many lines!");
+ break;
+ }
+ $this->uplink->privmsg($this->c, $entry['channel'], $line);
+ }
+ }
+ if(!file_exists("tmp/debug_".$entry['id'])) {
+ unlink("tmp/debug_".$entry['id'].".c");
+ break;
+ }