Example #1
0
function wpr_post($camp_id, $keyword = "", $retry = 1, $manual = 0)
{
    global $wpdb, $wpr_table_campaigns, $wpr_table_posts, $wpr_table_errors;
    if ($retry > 0) {
        $retrymsg = " <b>(Retry {$retry})</b>";
    } else {
        $retrymsg = "";
    }
    $time = current_time('mysql');
    $errors = array();
    $options = unserialize(get_option("wpr_options"));
    $result = $wpdb->get_row("SELECT * FROM " . $wpr_table_campaigns . " WHERE id = '{$camp_id}'");
    if ($result->pause == 1 && $manual == 0) {
        return false;
    }
    // select KEYWORD
    $keywords = unserialize($result->keywords);
    if (!$keyword) {
        if (empty($keywords)) {
            // SAVE and DISPLAY error
            $esql = "INSERT INTO " . $wpr_table_errors . " ( campaign, keyword, module, reason, message, time ) VALUES";
            $esql .= " ( '{$camp_id}', '{$keyword}', '', 'Inactive', " . __("'Post skipped because no keywords were found in the campaign.{$retrymsg}'", 'wprobot') . ", '{$time}' );";
            $results = $wpdb->query($esql);
            return false;
        }
        // REMOVE KEYWORDS WHERE SKIPPED = 5 (better way without loop?)
        $keywords2 = $keywords;
        foreach ($keywords as $key => $keyword) {
            if ($keyword["skipped"] >= $options['wpr_err_disable'] && !$keyword["feed"]) {
                unset($keywords2[$key]);
            }
        }
        //echo "<pre>";print_r($keywords2);echo "</pre>";
        //$keywords = array_values($keywords);
        $rnd = array_rand($keywords2);
        $keyword = $keywords[$rnd][0];
        if ($rnd === "" || $keyword === "" && !empty($keyword["feed"]) || !is_numeric($rnd)) {
            // SAVE and DISPLAY error
            $esql = "INSERT INTO " . $wpr_table_errors . " ( campaign, keyword, module, reason, message, time ) VALUES";
            $esql .= " ( '{$camp_id}', '{$keyword}', '', 'Inactive', " . __("'No active keywords or feeds for this campaign.{$retrymsg}'", 'wprobot') . ", '{$time}' );";
            $results = $wpdb->query($esql);
            return false;
        }
    } else {
        foreach ($keywords as $key => $kw) {
            if ($kw[0] == $keyword) {
                $rnd = $key;
            }
        }
    }
    $keywordsbackup = $keywords[$rnd];
    // select CATEGORY
    $categories = unserialize($result->categories);
    if (count($categories) == 1) {
        $category = $categories[0]["id"];
    } else {
        $category = $categories[$rnd]["id"];
    }
    // select TEMPLATE
    $templates = unserialize($result->templates);
    $i = 1;
    foreach ($templates as $tchance) {
        $tch[$i] = $templates[$i]["chance"];
        $i++;
    }
    $random = rand(1, 100);
    foreach ($tch as $name => $chance) {
        $luck += $chance;
        if ($random <= $luck && empty($templatenum)) {
            $templatenum = $name;
        }
    }
    $template = $templates[$templatenum]["content"];
    $content = $template;
    //echo $template."<br>";
    $content = str_replace("{keyword}", $keyword, $content);
    $content = str_replace("{Keyword}", ucwords($keyword), $content);
    $content = str_replace("{title}", $title, $content);
    $content = str_replace("{catlink}", get_category_link($category), $content);
    // THUMBNAIL
    preg_match_all('#\\{thumbnail(.*)\\}#iU', $content, $matches, PREG_SET_ORDER);
    if ($matches) {
        foreach ($matches as $match) {
            $match[1] = substr($match[1], 1);
            if ($match[1]) {
                $tkw = $match[1];
            } else {
                $tkw = $keywords[$rnd][0];
            }
            $thumbnail = wpr_flickr_getthumbnail($tkw);
            if (!empty($thumbnail["error"])) {
                $errors[] = $thumbnail["error"];
            }
            $content = str_replace($match[0], $thumbnail[0]["content"], $content);
        }
    }
    // RANDOM Tags
    $content = wpr_random_tags($content);
    $title = $templates[$templatenum]["title"];
    $title = str_replace("{keyword}", $keyword, $title);
    $title = str_replace("{Keyword}", ucwords($keyword), $title);
    // RANDOM Tags
    $title = wpr_random_tags($title);
    $raz[0] = "{";
    $raz[1] = "}";
    preg_match_all("/\\" . $raz[0] . "[^\\" . $raz[1] . "]+\\" . $raz[1] . "/s", $content, $matches);
    $counts = array_count_values($matches[0]);
    //echo $counts["{amazon}"];
    $modulesnum = count($matches[0]);
    if ($modulesnum <= 0) {
        // SAVE and DISPLAY error
        $esql = "INSERT INTO " . $wpr_table_errors . " ( campaign, keyword, module, reason, message, time ) VALUES";
        $esql .= " ( '{$camp_id}', '{$keyword}', '', 'Inactive', " . __("'Post skipped because no modules were found in the template.{$retrymsg}'", 'wprobot') . ", '{$time}' );";
        $results = $wpdb->query($esql);
        return false;
    }
    $usql = "INSERT INTO " . $wpr_table_posts . " ( campaign, keyword, module, unique_id, time ) VALUES";
    // Get Content for each Module
    // ["content"] = Content of the item (replaced module template code)
    // ["title"] = Title of the item (i.e. Product title)
    // ["unique"] = Unique ID (i.e. ASIN)
    // ["comments"] = Possible comment content of the item (i.e. reviews)
    $contents = array();
    $commentsarray = array();
    $titleerror = 0;
    $duplicatecount = 0;
    foreach ($counts as $module => $count) {
        $modulname = str_replace(array("{", "}"), "", $module);
        $function = "wpr_" . $modulname . "post";
        $optional = "";
        $comments = "";
        switch ($modulname) {
            case "amazon":
                $optional = array($result->amazon_department, $keywords[$rnd]["node"]);
                break;
            case "ebay":
                $optional = $result->ebay_cat;
                break;
            case "flickr":
                $comments = $templates[$templatenum]["comments"]["{$modulname}"];
                break;
            case "youtube":
                $comments = $templates[$templatenum]["comments"]["{$modulname}"];
                break;
            case "yahooanswers":
                $optional = $result->yahoo_cat;
                $comments = $templates[$templatenum]["comments"]["{$modulname}"];
                break;
            case "rss":
                $optional = $keywords[$rnd]["feed"];
                break;
        }
        // GET CONTENT
        if (function_exists($function)) {
            $contents["{$modulname}"] = $function($keyword, $count, $keywords[$rnd][1]["{$modulname}"], $optional, $comments);
            if (!empty($contents["{$modulname}"]["error"])) {
                $errors[] = $contents["{$modulname}"]["error"];
            }
        } else {
            $title = str_replace("{" . $modulname . "title}", "", $title);
            $errors[] = array("module" => ucwords($modulname), "reason" => "Not Installed", "message" => __("{$modulname} is not installed on this weblog and has been skipped.", 'wprobot'));
        }
        // CONTENT REPLACE
        ${$modulname} = 0;
        $dupl = 0;
        foreach ($matches[0] as $element) {
            if ($element == "{" . $modulname . "}") {
                $unique = $contents["{$modulname}"][${$modulname}]["unique"];
                if ($unique != "" || $modulname == "ebay") {
                    $dcheck = wpr_check_unique($unique);
                    if ($options['wpr_check_unique_old'] == "Yes") {
                        $dcheck2 = wpr_check_unique_old($contents["{$modulname}"][${$modulname}]["title"]);
                    } else {
                        $dcheck2 = false;
                    }
                    if ($dcheck == false && $dcheck2 == false) {
                        $content = preg_replace('/\\{' . $modulname . '\\}/', $contents["{$modulname}"][${$modulname}]["content"], $content, 1);
                        if (!isset($contents["{$modulname}"]["error"])) {
                            $unique = $wpdb->escape($unique);
                            $usql .= " ( '{$camp_id}', '{$keyword}', '{$modulname}', '{$unique}', '{$time}' ),";
                        }
                        if ($templates[$templatenum]["comments"]["{$modulname}"] == 1) {
                            $commentsarray[] = $contents["{$modulname}"][${$modulname}]["comments"];
                        }
                    } else {
                        // DUPLICATE POST
                        $dupl = 1;
                        $duplicatecount++;
                        $content = preg_replace('/\\{' . $modulname . '\\}/', "", $content, 1);
                        $errors[] = array("module" => ucwords($modulname), "reason" => "Duplicate", "message" => __("Skipping {$modulname} module because the content has already been posted.", 'wprobot'));
                    }
                }
                //echo "------------DEBUG START------------<br/>";
                //echo $dupl." DUPLICATE<br/>";
                //echo $contents["$modulname"]["error"]." ERROR<br/>";
                //echo $counts["{".$modulname."}"]." FIRST COUNT<br/>";
                //echo $$modulname." SECOND COUNT<br/>";
                // TITLE REPLACE
                $titlecheck = strpos($title, "{" . $modulname . "title}");
                $titlecheck2 = strpos($title, "{title}");
                $modulecheckvar = ${$modulname} + 1;
                if ($titlecheck !== false || $titlecheck2 !== false) {
                    if ($counts["{" . $modulname . "}"] > $modulecheckvar && $dupl == 1 || $counts["{" . $modulname . "}"] > $modulecheckvar && !empty($contents["{$modulname}"]["error"])) {
                        // Dont Replace Title because there is another title module item
                    } elseif ($counts["{" . $modulname . "}"] <= $modulecheckvar && $dupl == 1) {
                        // Title Duplicate
                        $titleduplicate = 1;
                    } elseif ($counts["{" . $modulname . "}"] <= $modulecheckvar && !empty($contents["{$modulname}"]["error"]) || $counts["{" . $modulname . "}"] <= $modulecheckvar && empty($contents["{$modulname}"][0]["title"])) {
                        // Title Error
                        $titleerror = 1;
                    } else {
                        // Replace Title
                        $title = str_replace("{" . $modulname . "title}", $contents["{$modulname}"][${$modulname}]["title"], $title);
                        $title = str_replace("{title}", $contents["{$modulname}"][${$modulname}]["title"], $title);
                    }
                }
                ${$modulname}++;
            }
        }
        // INCREASE NUMS
        if (empty($contents["{$modulname}"]["error"])) {
            // don't increase NUMs if ERROR for module
            $keywords[$rnd][1]["{$modulname}"] = $keywords[$rnd][1]["{$modulname}"] + ${$modulname};
            // RESET POST COUNT
            if ($keywords[$rnd][1]["{$modulname}"] > $options['wpr_resetcount'] && $options['wpr_resetcount'] != "no") {
                $keywords[$rnd][1]["{$modulname}"] = 0;
            }
            if ($modulename == "ebay" && $keywords[$rnd][1]["{$modulname}"] > 50) {
                $keywords[$rnd][1]["{$modulname}"] = 0;
            }
        }
        $content = str_replace("{" . $modulname . "}", "", $content);
    }
    // check ERRORS
    $errorsnum = count($errors);
    $skip = 0;
    if (!empty($keywords[$rnd]["feed"])) {
        $errkeyword = "Feed";
    } elseif (!empty($keywords[$rnd]["node"])) {
        $errkeyword = "Node:" . $keywords[$rnd]["node"];
    } else {
        $errkeyword = $keyword;
    }
    // EXCLUDE KEYWORDS Check $options["wpr_global_exclude"]
    $excludeskip = 0;
    $excludes = unserialize($result->excludekws);
    $globals = str_replace("\r", "", $options["wpr_global_exclude"]);
    $globals = explode("\n", $globals);
    $excludes = array_merge($excludes, $globals);
    if (!empty($excludes)) {
        foreach ($excludes as $exclude) {
            if ($exclude != "" && $exclude != " ") {
                $excheck = strpos($content, $exclude);
                if ($excheck === false) {
                } else {
                    $excludeskip = 1;
                    $errors = array();
                    $errors[] = array("module" => "", "reason" => "Exclude", "message" => __("Skipping post because exclude keyword {$exclude} was found.{$retrymsg}", 'wprobot'), "time" => "{$time}");
                    break;
                }
            }
        }
    }
    if ($excludeskip == 0) {
        // MARK KEYWORD AS yellow, orange, etc
        $modulessuccess = $modulesnum - $errorsnum;
        $duplsuccess = $modulesnum - $duplicatecount;
        if ($duplicatecount > $options["wpr_err_maxerr"] || $duplsuccess < $options["wpr_err_minmod"] || $titleduplicate == 1) {
            // DUPLICATE ERROR - WiTHOUT skipped INCREASE
            $errors[] = array("module" => "", "reason" => "Duplicate Content", "message" => __("Skipping post to prevent duplicate content.{$retrymsg}", 'wprobot'), "time" => "{$time}");
            $skip = 1;
        } elseif ($titleerror == 1) {
            $keywords[$rnd] = $keywordsbackup;
            $keywords[$rnd]["skipped"] = $keywords[$rnd]["skipped"] + 1;
            $errors[] = array("module" => "", "reason" => "Post skipped", "message" => __("Skipping post because the main module (title module) returned an error.{$retrymsg}", 'wprobot'), "time" => "{$time}");
            $skip = 1;
        } elseif ($errorsnum > $options["wpr_err_maxerr"] || $modulessuccess < $options["wpr_err_minmod"]) {
            $keywords[$rnd] = $keywordsbackup;
            $keywords[$rnd]["skipped"] = $keywords[$rnd]["skipped"] + 1;
            $errors[] = array("module" => "", "reason" => "Post skipped", "message" => __("Skipping post because too many module errors were encountered.{$retrymsg}", 'wprobot'), "time" => "{$time}");
            $skip = 1;
        } else {
            $keywords[$rnd]["skipped"] = 0;
        }
    }
    // SAVE ERRORS
    if ($errorsnum > 0 || $excludeskip == 1 || $titleerror == 1) {
        $esql = "INSERT INTO " . $wpr_table_errors . " ( campaign, keyword, module, reason, message, time ) VALUES";
        foreach ($errors as $error) {
            $error["message"] = $wpdb->escape($error["message"]);
            $esql .= " ( '{$camp_id}', '{$errkeyword}', '" . $error["module"] . "', '" . $error["reason"] . "', '" . $error["message"] . "', '{$time}' ),";
        }
        $esql = substr_replace($esql, ";", -1);
        $results = $wpdb->query($esql);
    }
    // SKIP if EXCLUDE found, errors > MAXERRORS or modules < MINMODULES
    if ($excludeskip == 1 || $skip == 1) {
        // - update campaign entry with new NUMS
        $keywords = serialize($keywords);
        $sql = "UPDATE " . $wpr_table_campaigns . " SET `keywords` = '" . $keywords . "' WHERE `id` = '" . $camp_id . "'";
        $results = $wpdb->query($sql);
        return false;
    }
    // TRANSLATION
    $translation = unserialize($result->translation);
    if ($translation["chance"] >= rand(1, 100)) {
        if ($translation["from"] != "no" && $translation["to1"] != "no") {
            $translationcontent = wpr_translate($content, $translation["from"], $translation["to1"], $translation["to2"]);
            //print_r($translationcontent);
            if ($options["wpr_trans_titles"] == "yes") {
                $translationtitle = wpr_translate($title, $translation["from"], $translation["to1"], $translation["to2"]);
            }
            if (!empty($translationcontent["error"]["reason"])) {
                $esql = "INSERT INTO " . $wpr_table_errors . " ( campaign, keyword, module, reason, message, time ) VALUES";
                $esql .= " ( '{$camp_id}', '{$errkeyword}', 'Translation', '" . $translationcontent["error"]["reason"] . "', '" . $translationcontent["error"]["message"] . "', '{$time}' );";
                $results = $wpdb->query($esql);
                if ($options['wpr_trans_fail'] == "skip") {
                    $esql = "INSERT INTO " . $wpr_table_errors . " ( campaign, keyword, module, reason, message, time ) VALUES";
                    $esql .= " ( '{$camp_id}', '{$errkeyword}', '', 'Post skipped', 'Skipping post because translation failed.{$retrymsg}', '{$time}' );";
                    $results = $wpdb->query($esql);
                    return false;
                }
            } elseif (empty($translationcontent)) {
                $esql = "INSERT INTO " . $wpr_table_errors . " ( campaign, keyword, module, reason, message, time ) VALUES";
                $esql .= " ( '{$camp_id}', '{$errkeyword}', 'Translation', 'Translation Failed', '" . __("The post could not be translated.", "wprobot") . "', '{$time}' );";
                $results = $wpdb->query($esql);
                if ($options['wpr_trans_fail'] == "skip") {
                    $esql = "INSERT INTO " . $wpr_table_errors . " ( campaign, keyword, module, reason, message, time ) VALUES";
                    $esql .= " ( '{$camp_id}', '{$errkeyword}', '', 'Post skipped', 'Skipping post because translation failed.{$retrymsg}', '{$time}' );";
                    $results = $wpdb->query($esql);
                    return false;
                }
            } else {
                $content = $translationcontent;
                if ($options["wpr_trans_titles"] == "yes") {
                    $title = $translationtitle;
                }
                if ($translation["comments"] == 1) {
                    $transcomments = 1;
                } else {
                    $transcomments = 0;
                }
            }
        }
    }
    // REPLACES
    $replaces = unserialize($result->replacekws);
    if (!empty($replaces)) {
        foreach ($replaces as $replace) {
            if ($replace["chance"] >= rand(1, 100)) {
                $content = str_replace(" " . $replace["from"], " " . $replace["to"], $content);
            }
        }
    }
    // INSERT POST into db
    $insert = wpr_insertpost($content, $title, $category);
    if ($insert) {
        // - update campaign entry with new NUMS
        $posts_created = $result->posts_created + 1;
        $keywords[$rnd][1]["total"] = $keywords[$rnd][1]["total"] + 1;
        $keywords = serialize($keywords);
        $sql = "UPDATE " . $wpr_table_campaigns . " SET `keywords` = '" . $keywords . "', `posts_created` = '" . $posts_created . "' WHERE `id` = '" . $camp_id . "'";
        $results = $wpdb->query($sql);
        // - save UNIQUE IDS to post table
        $usql = substr_replace($usql, ";", -1);
        $results = $wpdb->query($usql);
        // - insert COMMENTS
        wpr_insertcomments($insert, $commentsarray, "", $transcomments, $translation);
        // - insert CUSTOM FIELDS
        if ($counts["{amazon}"] > 0) {
            add_post_meta($insert, 'ma_amazonpost', $contents["amazon"][0]["unique"]);
        }
        $customfield = unserialize($result->customfield);
        $cfname = $customfield["name"];
        $cfcontent = $customfield["value"];
        if ($cfcontent != "" && $cfname != "") {
            if (!empty($contents["amazon"][0]["customfield"])) {
                $ximage = $contents["amazon"][0]["customfield"];
            } elseif (!empty($contents["youtube"][0]["customfield"])) {
                $ximage = $contents["youtube"][0]["customfield"];
            } elseif (!empty($contents["flickr"][0]["customfield"])) {
                $ximage = $contents["flickr"][0]["customfield"];
            } elseif (!empty($thumbnail[0]["customfield"])) {
                $ximage = $thumbnail[0]["customfield"];
            } else {
                $ximage = "";
            }
            $cfcontent = str_replace("{image}", $ximage, $cfcontent);
            $cfcontent = str_replace("{amazonthumbnail}", $contents["amazon"][0]["customfield"], $cfcontent);
            $cfcontent = str_replace("{youtubethumbnail}", $contents["youtube"][0]["customfield"], $cfcontent);
            $cfcontent = str_replace("{flickrimage}", $contents["flickr"][0]["customfield"], $cfcontent);
            $cfcontent = str_replace("{thumbnail}", $thumbnail[0]["customfield"], $cfcontent);
            if (!empty($cfcontent)) {
                add_post_meta($insert, $cfname, $cfcontent);
            }
        }
        // - display success message IN OTHER FUNCTION
        $esql = "INSERT INTO " . $wpr_table_errors . " ( campaign, keyword, module, reason, message, time ) VALUES";
        $esql .= " ( '{$camp_id}', '{$errkeyword}', '', 'Post created', " . __("'The post has been created successfully.{$retrymsg}'", 'wprobot') . ", '{$time}' );";
        $results = $wpdb->query($esql);
        return true;
    } else {
        // SAVE and DISPLAY error
        $esql = "INSERT INTO " . $wpr_table_errors . " ( campaign, keyword, module, reason, message, time ) VALUES";
        $esql .= " ( '{$camp_id}', '{$errkeyword}', '', 'Insert failed', " . __("'The post could not be inserted into the Wordpress database.{$retrymsg}'", 'wprobot') . ", '{$time}' );";
        $results = $wpdb->query($esql);
        return false;
    }
}
Example #2
0
function wpr_post($camp_id, $keyword="", $retry=1, $manual=0) {
	global $wpdb, $wpr_table_campaigns, $wpr_table_posts, $wpr_table_errors;

	if($retry > 0) {$retrymsg = " <b>(".__("Retry","wprobot")." $retry)</b>";} else {$retrymsg = "";}	
	$time = current_time('mysql');	
	$errors = array();
	
    $options = unserialize(get_option("wpr_options"));	
	$result = $wpdb->get_row("SELECT * FROM " . $wpr_table_campaigns . " WHERE id = '$camp_id'"); 
	if($result->pause == 1 && $manual == 0) {return false;}

	// select KEYWORD
	$keywords = unserialize($result->keywords);
	if(!$keyword) {
		if(empty($keywords)) {
			// SAVE and DISPLAY error
			$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
			$esql .= " ( '$camp_id', '$keyword', '', 'Inactive', ".__("'Post skipped because no keywords were found in the campaign.$retrymsg'", 'wprobot').", '$time' );";
			$results = $wpdb->query($esql);			
			return false;		
		}			
		// REMOVE KEYWORDS WHERE SKIPPED = 5 (better way without loop?)
		$keywords2 = $keywords;
		foreach($keywords as $key => $keyword) {
			if($keyword["skipped"] >= $options['wpr_err_disable'] && !$keyword["feed"]) {
				unset($keywords2[$key]);
			}
		}
		//echo "<pre>";print_r($keywords2);echo "</pre>";	
		//$keywords = array_values($keywords);		
		$rnd = array_rand($keywords2);
		$keyword = $keywords[$rnd][0];
		if($rnd === "" || $keyword === "" && !empty($keyword["feed"]) || !is_numeric($rnd)) {
			// SAVE and DISPLAY error
			$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
			$esql .= " ( '$camp_id', '$keyword', '', 'Inactive', ".__("'No active keywords or feeds for this campaign, possibly because they were disabled due to repeated errors. Check the status and reenable them on the campaign detail page.$retrymsg'", 'wprobot').", '$time' );";
			$results = $wpdb->query($esql);			
			return false;		
		}		
	} else {
		foreach($keywords as $key => $kw) {
			if($kw[0] == $keyword) {
				$rnd = $key;
			}
		}
	}
	$keywordsbackup = $keywords[$rnd];

	// select CATEGORY
	$categories = unserialize($result->categories);
	if(!empty($categories[0]["id"])) {$categories = wpr_transform_cats($categories);}
	$catarray = array();
	if(count($categories) == 1) {
		foreach($categories[0] as $cats) {$catarray[] = $cats["id"];}		
		//$category = $categories[0]["id"];
	} else {
		foreach($categories[$rnd] as $cats) {$catarray[] = $cats["id"];}
		//$category = $categories[$rnd]["id"];	
	}	
	
	// select TEMPLATE
	$templates = unserialize($result->templates);
	$i = 1;
	foreach($templates as $tchance) {
		$tch[$i] = $templates[$i]["chance"];
		$i++;
	}
	
	$random = rand(1,100);
	foreach($tch as $name => $chance){
		$luck += $chance;
		if($random <= $luck && empty($templatenum)){
			$templatenum = $name;
		}
	} 	
	$template = $templates[$templatenum]["content"];
	
	$templateexcerpt = substr(strip_tags($template), 0, 130);
	$templateusedmsg = '<a target="_blank" class="tooltip" href="#">?<span>'.__('The template used for this post was: <strong>Post Template ',"wprobot").$templatenum.__('</strong>, starting with:<br/>',"wprobot").$templateexcerpt.__('<br/><br/><strong>If there was an error please check the associated module messages directly below this one!</strong>',"wprobot") .'</span></a>';

	// Wordpress action hook
	do_action('wpr_before_post', $insert); 	
	
	$content = $template;//echo $template."<br>";
	$noqkeyword = str_replace('"', '', $keyword);
	$content = str_replace("{keyword}", $noqkeyword, $content);
	$content = str_replace("{Keyword}", ucwords($noqkeyword), $content);	
	$content = str_replace("{title}", $title, $content);	
	$catreplace = get_category_link( $catarray[0] );
	if (!is_wp_error($catreplace)) {
	$content = str_replace("{catlink}", $catreplace, $content);	
	} else {$content = str_replace("{catlink}", "", $content);	}
	
	// AMAZON
	preg_match_all('#\{amazonlist(.*)\}#iU', $content, $matches, PREG_SET_ORDER);
	if ($matches) {
		foreach($matches as $match) {
			$match[1] = substr($match[1], 1);
			if($match[1]) {$amanum = $match[1];} else {$amanum = 1;}
			$amalist = wpr_amazon_getlist($keywords[$rnd][0],$amanum);
			if(isset($amalist["error"]) && is_array($amalist)) {$errors[] = $amalist["error"];$content = str_replace($match[0], "", $content);}
			$content = str_replace($match[0], $amalist, $content);				
		}
	}		
	// THUMBNAIL
	preg_match_all('#\{thumbnail(.*)\}#iU', $content, $matches, PREG_SET_ORDER);
	if ($matches) {
		foreach($matches as $match) {
			$match[1] = substr($match[1], 1);
			if($match[1]) {$tkw = $match[1];} else {$tkw = $keywords[$rnd][0];}
			$thumbnail = wpr_flickr_getthumbnail($tkw);
			if(!empty($thumbnail["error"])) {$errors[] = $thumbnail["error"];}
			$content = str_replace($match[0], $thumbnail[0]["content"], $content);				
		}
	}	
	// RANDOM Tags
	$content = wpr_random_tags($content);
	
	$title = $templates[$templatenum]["title"];
	$noqkeyword = str_replace('"', '', $keyword);
	$title = str_replace("{keyword}", $noqkeyword, $title);
	$title = str_replace("{Keyword}", ucwords($noqkeyword), $title);
	if(!empty($keywords[$rnd]["alternative"])) {
		$ll = 1;
		foreach($keywords[$rnd]["alternative"] as $alternative) {
			$content = str_replace("{keyword$ll}", $alternative, $content);	
			$title = str_replace("{keyword$ll}", $alternative, $title);
			$ll++;
		}
	}
	
	// RANDOM Tags
	$title = wpr_random_tags($title);

	$raz[0] = "{";$raz[1] = "}";
	preg_match_all("/\\".$raz[0]."[^\\".$raz[1]."]+\\".$raz[1]."/s", $content, $matches);
	$counts = array_count_values  (  $matches[0]  ); //echo $counts["{amazon}"];		
	$wpr_modulesnum = count($matches[0]);
	if($wpr_modulesnum <= 0) {
		// SAVE and DISPLAY error
		$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
		$esql .= " ( '$camp_id', '$keyword', '', 'Inactive', ".__("'Post skipped because no modules were found in the template.$retrymsg'", 'wprobot').", '$time' );";
		$results = $wpdb->query($esql);			
		return false;		
	}		

	$usql = "INSERT INTO ".$wpr_table_posts." ( campaign, keyword, module, unique_id, time ) VALUES";
	// Get Content for each Module
	// ["content"] = Content of the item (replaced module template code)
	// ["title"] = Title of the item (i.e. Product title)
	// ["unique"] = Unique ID (i.e. ASIN)
	// ["comments"] = Possible comment content of the item (i.e. reviews)
	$contents = array();
	$commentsarray = array();
	$titleerror = 0;
	$duplicatecount = 0;
	$errorcount = 0;
	
	foreach($counts as $module => $count) {
		$modulname = str_replace(array("{","}"), "", $module);
		$function = "wpr_".$modulname."post";
		
		$optional = "";$comments = "";
		switch ($modulname) {
			case "amazon":
				$optional = array($result->amazon_department,$keywords[$rnd]["node"]);
				break;
			case "ebay":
				$optional = $result->ebay_cat;
				break;
			case "flickr":			
				$comments = $templates[$templatenum]["comments"]["$modulname"];
				break;
			case "youtube":
				$comments = $templates[$templatenum]["comments"]["$modulname"];
				break;
			case "yahooanswers":
				$optional = $result->yahoo_cat;
				$comments = $templates[$templatenum]["comments"]["$modulname"];
				break;	
			case "rss":
				$optional = $keywords[$rnd]["feed"];
				break;							
		}
		
		// GET CONTENT
		if(function_exists($function)) {
			$contents["$modulname"] = $function($keyword, $count, $keywords[$rnd][1]["$modulname"], $optional, $comments);
			if(!empty($contents["$modulname"]["error"])) {
				$errors[] = $contents["$modulname"]["error"];
				$errorcount = $errorcount + 1 * $counts["{".$modulname."}"];
			}
		} else {
			$title = str_replace("{".$modulname."title}", "", $title);
			$errors[] = array("module" => ucwords($modulname), "reason" => "Not Installed", "message" => __("$modulname is not installed on this weblog and has been skipped.", 'wprobot'));						
			$errorcount = $errorcount + 1;
		}
		
		// CONTENT REPLACE
		$$modulname = 0;
		$dupl = 0;
	
		foreach ($matches[0] as $element) {
			if($element=="{".$modulname."}") {
				$unique = $contents["$modulname"][$$modulname]["unique"];
				if($unique != "" || $modulname == "ebay" ) {	
					$dcheck = wpr_check_unique($unique);
					//echo "CHECK".$dcheck;
					if($options['wpr_check_unique_old'] == "Yes") {$dcheck2 = wpr_check_unique_old($contents["$modulname"][$$modulname]["title"]);} else {$dcheck2 = false;}
					if($dcheck == false && $dcheck2 == false) {
						$content = preg_replace('/\{'.$modulname.'\}/', $contents["$modulname"][$$modulname]["content"], $content, 1);
						if(!isset($contents["$modulname"]["error"]) ) {
							$unique = $wpdb->escape($unique);
							$ekeyword = $wpdb->escape($keyword);
							$usql .= " ( '$camp_id', '$ekeyword', '$modulname', '$unique', '$time' ),";
						}
						if($templates[$templatenum]["comments"]["$modulname"] == 1) {$commentsarray[] = $contents["$modulname"][$$modulname]["comments"];}
					} else {
						// DUPLICATE POST
						$dupl = 1;
						$duplicatecount++;
						$content = preg_replace('/\{'.$modulname.'\}/', "", $content, 1);	
						$errors[] = array("module" => ucwords($modulname), "reason" => "Duplicate", "message" => __("Skipping ", 'wprobot').ucwords($modulname).__(" module because the content has already been posted.", 'wprobot'));						
						$errorcount = $errorcount + 1;
					}
				}
				
				//echo "------------DEBUG START------------<br/>";
				//echo $dupl." DUPLICATE<br/>";
				//echo $contents["$modulname"]["error"]." ERROR<br/>";
				//echo $counts["{".$modulname."}"]." FIRST COUNT<br/>";
				//echo $$modulname." SECOND COUNT<br/>";
				// TITLE REPLACE	
				$titlecheck = strpos($title, "{".$modulname."title}");
				$titlecheck2 = strpos($title, "{title}");				
				$modulecheckvar = $$modulname + 1;
				if ($titlecheck !== false || $titlecheck2 !== false) {
					if ($counts["{".$modulname."}"] > $modulecheckvar && $dupl == 1 || $counts["{".$modulname."}"] > $modulecheckvar && !empty($contents["$modulname"]["error"])) {
						// Dont Replace Title because there is another title module item
					} elseif($counts["{".$modulname."}"] <= $modulecheckvar && $dupl == 1) {
						// Title Duplicate					
						$titleduplicate = 1;		
					} elseif($counts["{".$modulname."}"] <= $modulecheckvar && !empty($contents["$modulname"]["error"]) || $counts["{".$modulname."}"] <= $modulecheckvar && empty($contents["$modulname"][0]["title"])) {
						// Title Error
						$titleerror = 1;
					} else {
						// Replace Title
						$title = str_replace("{".$modulname."title}", $contents["$modulname"][$$modulname]["title"], $title);
						$title = str_replace("{title}", $contents["$modulname"][$$modulname]["title"], $title);	
					}
				}
				$$modulname++;				
			}		
		}	

		if($contents["$modulname"]["error"]["reason"] == "IncNum") {$incnum = 1;} else {$incnum = 0;}
		// INCREASE NUMS
		if(empty($contents["$modulname"]["error"]) || $contents["$modulname"]["error"]["reason"] == "IncNum") { // don't increase NUMs if ERROR for module
			$keywords[$rnd][1]["$modulname"] = $keywords[$rnd][1]["$modulname"] + $$modulname;

			// RESET POST COUNT
			if($keywords[$rnd][1]["$modulname"] > $options['wpr_resetcount'] && $options['wpr_resetcount'] != "no") {$keywords[$rnd][1]["$modulname"] = 0;}
			if($modulename == "ebay" && $keywords[$rnd][1]["$modulname"] > 50) {$keywords[$rnd][1]["$modulname"] = 0;}		
		}	
		$content = str_replace("{".$modulname."}","",$content);		
	}

	// check ERRORS
	//$errorsnum = count($errors);	
	$errorsnum = $errorcount;	
	$skip = 0;
	if(!empty($keywords[$rnd]["feed"])) {$errkeyword = "Feed";} elseif(!empty($keywords[$rnd]["node"])) {$errkeyword = "Node:".$keywords[$rnd]["node"];} else {$errkeyword = $wpdb->escape($keyword);}
	
	// EXCLUDE KEYWORDS Check $options["wpr_global_exclude"]
	$excludeskip = 0;
	$excludes = unserialize($result->excludekws);
	
	$globals = str_replace("\r", "", $options["wpr_global_exclude"]);
	$globals = explode("\n", $globals);
	$excludes = array_merge($excludes, $globals);
	
	if(!empty($excludes)) {
		foreach($excludes as $exclude) {
			if($exclude != "" && $exclude != " " ) {
				$excheck = stripos($content, $exclude);
				$texcheck = stripos($title, $exclude);
				if($excheck === false && $texcheck === false) {
				} else {
					$excludeskip = 1;	$errors = array();
					$errors[] = array("module" => "", "reason" => "Exclude", "message" => __("Skipping post because exclude keyword $exclude was found.$retrymsg $templateusedmsg", 'wprobot'), "time" => "$time");
					break;
				}
			}
		}
	}
	
	if($excludeskip == 0) {
		// MARK KEYWORD AS yellow, orange, etc
		$wpr_modulessuccess = $wpr_modulesnum - $errorsnum;
		$duplsuccess = $wpr_modulesnum - $duplicatecount;
		if($duplicatecount > $options["wpr_err_maxerr"] || $duplsuccess < $options["wpr_err_minmod"] || $titleduplicate == 1) { // DUPLICATE ERROR - WiTHOUT skipped INCREASE
			$errors[] = array("module" => "", "reason" => "Duplicate Content", "message" => __("Skipping post to prevent duplicate content.", 'wprobot')."$retrymsg $templateusedmsg", "time" => "$time");	
			$skip = 1;	
		} elseif($titleerror == 1) { 			
			if($incnum != 1) {$keywords[$rnd] = $keywordsbackup;}
			$keywords[$rnd]["skipped"] = $keywords[$rnd]["skipped"] + 1;
			$errors[] = array("module" => "", "reason" => "Post skipped", "message" => __("Skipping post because the main module (title module) returned an error.", 'wprobot')."$retrymsg $templateusedmsg", "time" => "$time");	
			$skip = 1;	
		} elseif($errorsnum > $options["wpr_err_maxerr"] || $wpr_modulessuccess < $options["wpr_err_minmod"]) {
			if($incnum != 1) {$keywords[$rnd] = $keywordsbackup;}		
			$keywords[$rnd]["skipped"] = $keywords[$rnd]["skipped"] + 1;
			$errors[] = array("module" => "", "reason" => "Post skipped", "message" => __("Skipping post because too many module errors were encountered.", 'wprobot')."$retrymsg $templateusedmsg", "time" => "$time");	
			$skip = 1;
		} else {
			$keywords[$rnd]["skipped"] = 0;	
		}	
	}		
		
	// SAVE ERRORS
	if($errorsnum > 0 || $excludeskip == 1 || $titleerror == 1) {
		$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
		foreach($errors as $error) {
			$error["message"] = $wpdb->escape($error["message"]);
			$esql .= " ( '$camp_id', '$errkeyword', '".$error["module"]."', '".$error["reason"]."', '".$error["message"]."', '$time' ),";
		}
		$esql = substr_replace($esql ,";",-1);
		$results = $wpdb->query($esql);		
	}		
	
	// SKIP if EXCLUDE found, errors > MAXERRORS or modules < MINMODULES
	if($excludeskip == 1 || $skip == 1) {
		// - update campaign entry with new NUMS	

		$keywords = serialize($keywords);
		$keywords = $wpdb->escape($keywords);
		$sql = "UPDATE " . $wpr_table_campaigns . " SET `keywords` = '".$keywords."' WHERE `id` = '".$camp_id."'";
		$results = $wpdb->query($sql);		
		return false;
	}
	
    // SAVE IMAGES
	if($options['wpr_save_images'] == "Yes") {

		$allimages = wpr_findimages($content);
		$imageurls = $allimages[2];
		//echo "<pre>";print_r($allimages[2]);echo "</pre>";
		
		if(sizeof($imageurls)) {
			foreach($imageurls as $oldurl) {
				if(strpos($oldurl, plugin_basename( dirname(__FILE__) )) === false) {
					$newurl = wpr_saveimage($oldurl,$keyword);
					if($newurl) {$content = str_replace($oldurl, $newurl, $content);}	
				}
			} 
		}		
    }	
	
	// TRANSLATION
	if(function_exists("wpr_translate_partial")) {
		$title = wpr_translate_partial($title);
	}	
	$translation = unserialize($result->translation);
	if($translation["chance"] >= rand(1,100)) {
		if($translation["from"] != "no" && $translation["to1"] != "no") {
			$translationcontent = wpr_translate($content,$translation["from"],$translation["to1"],$translation["to2"],$translation["to3"]);
			//print_r($translationcontent);
			if($options["wpr_trans_titles"] == "yes") {
				$translationtitle = wpr_translate($title,$translation["from"],$translation["to1"],$translation["to2"],$translation["to3"]);
			}
			if(!empty($translationcontent["error"]["reason"])) {
				$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
				$esql .= " ( '$camp_id', '$errkeyword', 'Translation', '".$translationcontent["error"]["reason"]."', '".$translationcontent["error"]["message"]."', '$time' );";
				$results = $wpdb->query($esql);		
				if($options['wpr_trans_fail'] == "skip") {
					$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
					$esql .= " ( '$camp_id', '$errkeyword', '', 'Post skipped', '".__("Skipping post because translation failed ","wprobot")."$retrymsg $templateusedmsg', '$time' );";
					$results = $wpdb->query($esql);		
					return false;
				}
			} elseif(empty($translationcontent)) {
				$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
				$esql .= " ( '$camp_id', '$errkeyword', 'Translation', 'Translation Failed', '".__("The post could not be translated.","wprobot")."', '$time' );";
				$results = $wpdb->query($esql);		
				if($options['wpr_trans_fail'] == "skip") {
					$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
					$esql .= " ( '$camp_id', '$errkeyword', '', 'Post skipped', '".__("Skipping post because translation failed ","wprobot")."$retrymsg $templateusedmsg', '$time' );";
					$results = $wpdb->query($esql);		
					return false;
				}
			} else {
				$content = $translationcontent;
				if($options["wpr_trans_titles"] == "yes") {$title = $translationtitle;}
				if($translation["comments"] == 1) {$transcomments = 1;} else {$transcomments = 0;}
			}
		}
	}

	$yahoocat = unserialize($result->yahoo_cat);	
	if(!is_array($yahoocat)) {
		$yahoocat = array();
		$yahoocat["rw"] = 0;
		$yahoocat["ps"] = $result->yahoo_cat;
		$yahoocat["a"] = "";
	}
	
	// REWRITE
	if($yahoocat["rw"] == 1) {
		$rewriter = array();
		if($options['wpr_rewrite_active_tbs'] == 1 || $options['wpr_rewrite_active'] == "tbs" || $options['wpr_rewrite_active'] == "both") {
			$rewriter[] = "tbs";
		} if($options['wpr_rewrite_active_sc'] == 1 || $options['wpr_rewrite_active'] == "sc" || $options['wpr_rewrite_active'] == "both") {
			$rewriter[] = "sc";
		} if($options['wpr_rewrite_active_schimp'] == 1 || $options['wpr_rewrite_active'] == "schimp" || $options['wpr_rewrite_active'] == "both") {
			$rewriter[] = "schimp";
		} if($options['wpr_rewrite_active_ucg'] == 1 || $options['wpr_rewrite_active'] == "Yes" || $options['wpr_rewrite_active'] == "both") {
			$rewriter[] = "ucg";
		} if($options['wpr_rewrite_active_sr'] == 1) {
			$rewriter[] = "sr";
		} if($options['wpr_rewrite_active_wai'] == 1) {
			$rewriter[] = "wai";
		}
		
		$rand_key = array_rand($rewriter);
		if($rewriter[$rand_key] == "tbs") {
			$options['wpr_rewrite_active'] = "tbs";
		} elseif($rewriter[$rand_key] == "sc") {
			$options['wpr_rewrite_active'] = "sc";
		} elseif($rewriter[$rand_key] == "schimp") {
			$options['wpr_rewrite_active'] = "schimp";
		} elseif($rewriter[$rand_key] == "ucg") {
			$options['wpr_rewrite_active'] = "Yes";
		} elseif($rewriter[$rand_key] == "sr") {
			$options['wpr_rewrite_active'] = "sr";
		} elseif($rewriter[$rand_key] == "wai") {
			$options['wpr_rewrite_active'] = "wai";
		}

		//print_r($rewriter);echo "Rewriter: ".$rand_key . " ". $options['wpr_rewrite_active'] . "\n";
	}

	if($options['wpr_rewrite_active'] == "Yes" && $yahoocat["rw"] == 1) {
		// UCG
		if(empty($options['wpr_rewrite_email']) || empty($options['wpr_rewrite_key'])) {
			$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
			$esql .= " ( '$camp_id', '$errkeyword', 'UCG Rewriter', 'UCG Rewriter', 'You need to enter your API Key and Email in the Options!', '$time' );";
			$results = $wpdb->query($esql);		
		} else {
			//echo "<br/><br/>-------orig-------------<br/><br/>".$content . "<br/><br/>---------rewrite----------<br/><br/>";//////////
			$rewrite = wpr_rewrite($content,$options['wpr_rewrite_level']);
			//echo $rewrite . "<br/><br/>--------------------<br/><br/>";	//////////
			if(!empty($rewrite["error"]["reason"])) {
				$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
				$esql .= " ( '$camp_id', '$errkeyword', 'UCG Rewriter', '".$rewrite["error"]["reason"]."', '".$rewrite["error"]["message"]."', '$time' );";
				$results = $wpdb->query($esql);	
			} else {
				$content = $rewrite;
			}
		}
	} elseif($options['wpr_rewrite_active'] == "tbs" && $yahoocat["rw"] == 1) {
		// TBS
		if(empty($options['wpr_tbs_rewrite_pw']) || empty($options['wpr_tbs_rewrite_email'])) {
			$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
			$esql .= " ( '$camp_id', '$errkeyword', 'TheBestSpinner', 'TheBestSpinner', 'You need to enter your TheBestSpinner email and password in the Options!', '$time' );";
			$results = $wpdb->query($esql);		
		} else {
			//echo "<br/><br/>-------orig-------------<br/><br/>".$content . "<br/><br/>---------rewrite----------<br/><br/>";//////////
			$rewrite = wpr_tbs_rewrite($content,$options['wpr_tbs_rewrite_email'],$options['wpr_tbs_rewrite_pw'],$options['wpr_tbs_spintxt'],$options['wpr_tbs_quality'],$keyword,$options['wpr_rewrite_protected']);
			//echo $rewrite . "<br/><br/>--------------------<br/><br/>";	//////////
			if(!empty($rewrite["error"]["reason"])) {
				$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
				$esql .= " ( '$camp_id', '$errkeyword', 'TheBestSpinner', '".$rewrite["error"]["reason"]."', '".$rewrite["error"]["message"]."', '$time' );";
				$results = $wpdb->query($esql);	
			} else {			
				$content = $rewrite;
			//echo "<br/><br/>-------CONTENT-------------<br/><br/>".$content . "<br/><br/>---------CONTENT----------<br/><br/>";//////////				
			}	

			// REWRITE TITLE
			if($options['wpr_tbs_rewrite_title'] == "Yes") {			
				$rewritetitle = wpr_tbs_rewrite($title,$options['wpr_tbs_rewrite_email'],$options['wpr_tbs_rewrite_pw'],$options['wpr_tbs_spintxt'],$options['wpr_tbs_quality'],$keyword,$options['wpr_rewrite_protected']);
				if(!empty($rewritetitle["error"]["reason"])) {
					$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
					$esql .= " ( '$camp_id', '$errkeyword', 'TheBestSpinner', '".$rewritetitle["error"]["reason"]."', '".$rewritetitle["error"]["message"]."', '$time' );";
					$results = $wpdb->query($esql);	
				} else {
					$title = $rewritetitle;
				}	
			}	
		}
	} elseif($options['wpr_rewrite_active'] == "sc" && $yahoocat["rw"] == 1) {
		// Spinnerchief
		if(empty($options['wpr_sc_rewrite_pw']) || empty($options['wpr_sc_rewrite_email'])) {
			$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
			$esql .= " ( '$camp_id', '$errkeyword', 'SpinnerChief', 'SpinnerChief', 'You need to enter your SpinnerChief username and password in the Options!', '$time' );";
			$results = $wpdb->query($esql);		
		} else {
			//echo "<br/><br/>-------orig-------------<br/><br/><div>".$content . "</div><br/><br/>---------rewrite----------<br/><br/>";//////////
			$rewrite = wpr_sc_rewrite($content,$options['wpr_sc_rewrite_email'],$options['wpr_sc_rewrite_pw'],$options['wpr_sc_quality'],$keyword,$options['wpr_rewrite_protected'],$options['wpr_sc_port'], $options['wpr_sc_thesaurus']);
			//echo "<div>".$rewrite . "</div><br/><br/>--------------------<br/><br/>";	//////////
			if(!empty($rewrite["error"]["reason"])) {
				$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
				$esql .= " ( '$camp_id', '$errkeyword', 'SpinnerChief', '".$rewrite["error"]["reason"]."', '".$wpdb->escape($rewrite["error"]["message"])."', '$time' );";
				$results = $wpdb->query($esql);	
			} else {			
				$content = $rewrite;
			//echo "<br/><br/>-------CONTENT-------------<br/><br/>".$content . "<br/><br/>---------CONTENT----------<br/><br/>";//////////				
			}	

			// REWRITE TITLE
			if($options['wpr_tbs_rewrite_title'] == "Yes") {
				$rewritetitle = wpr_sc_rewrite($title,$options['wpr_sc_rewrite_email'],$options['wpr_sc_rewrite_pw'],$options['wpr_sc_quality'],$keyword,$options['wpr_rewrite_protected'],$options['wpr_sc_port'], $options['wpr_sc_thesaurus']);
				if(!empty($rewritetitle["error"]["reason"])) {
					$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
					$esql .= " ( '$camp_id', '$errkeyword', 'SpinnerChief', '".$rewritetitle["error"]["reason"]."', '".$rewritetitle["error"]["message"]."', '$time' );";
					$results = $wpdb->query($esql);	
				} else {
					$title = $rewritetitle;
				}	
			}	
		}
	} elseif($options['wpr_rewrite_active'] == "schimp" && $yahoocat["rw"] == 1) {
		// SpinChimp
		if(empty($options['wpr_schimp_rewrite_pw']) || empty($options['wpr_schimp_rewrite_email'])) {
			$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
			$esql .= " ( '$camp_id', '$errkeyword', 'SpinnerChief', 'SpinnerChief', 'You need to enter your SpinnerChief username and password in the Options!', '$time' );";
			$results = $wpdb->query($esql);		
		} else {
			//echo "<br/><br/>-------orig-------------<br/><br/><div>".$content . "</div><br/><br/>---------rewrite----------<br/><br/>";//////////
			$rewrite = wpr_schimp_rewrite($content,$options['wpr_schimp_rewrite_email'],$options['wpr_schimp_rewrite_pw'],$options['wpr_schimp_quality'],$keyword,$options['wpr_rewrite_protected']);
			//echo "<div>".$rewrite . "</div><br/><br/>--------------------<br/><br/>";	//////////
			if(!empty($rewrite["error"]["reason"])) {
				$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
				$esql .= " ( '$camp_id', '$errkeyword', 'SpinnerChief', '".$rewrite["error"]["reason"]."', '".$wpdb->escape($rewrite["error"]["message"])."', '$time' );";
				$results = $wpdb->query($esql);	
			} else {			
				$content = $rewrite;
			//echo "<br/><br/>-------CONTENT-------------<br/><br/>".$content . "<br/><br/>---------CONTENT----------<br/><br/>";//////////				
			}	

			// REWRITE TITLE
			if($options['wpr_tbs_rewrite_title'] == "Yes") {
				$rewritetitle = wpr_schimp_rewrite($title,$options['wpr_schimp_rewrite_email'],$options['wpr_schimp_rewrite_pw'],$options['wpr_schimp_quality'],$keyword,$options['wpr_rewrite_protected']);
				if(!empty($rewritetitle["error"]["reason"])) {
					$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
					$esql .= " ( '$camp_id', '$errkeyword', 'SpinnerChief', '".$rewritetitle["error"]["reason"]."', '".$rewritetitle["error"]["message"]."', '$time' );";
					$results = $wpdb->query($esql);	
				} else {
					$title = $rewritetitle;
				}	
			}	
		}
	} elseif($options['wpr_rewrite_active'] == "sr" && $yahoocat["rw"] == 1) {
		// Spin Rewriter
		if(empty($options['wpr_sr_rewrite_pw']) || empty($options['wpr_sr_rewrite_email'])) {
			$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
			$esql .= " ( '$camp_id', '$errkeyword', 'SpinRewriter', 'SpinRewriter', 'You need to enter your SpinRewriter email and password in the Options!', '$time' );";
			$results = $wpdb->query($esql);		
		} else {
			//echo "<br/><br/>-------orig-------------<br/><br/><div>".$content . "</div><br/><br/>---------rewrite----------<br/><br/>";//////////
			$rewrite = wpr_sr_rewrite($content,$options['wpr_sr_rewrite_email'],$options['wpr_sr_rewrite_pw'],$options['wpr_sr_quality'],$keyword,$options['wpr_rewrite_protected']);
			//echo "<div>".$rewrite . "</div><br/><br/>--------------------<br/><br/>";	//////////
			if(!empty($rewrite["error"]["reason"])) {
				$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
				$esql .= " ( '$camp_id', '$errkeyword', 'SpinRewriter', '".$rewrite["error"]["reason"]."', '".$wpdb->escape($rewrite["error"]["message"])."', '$time' );";
				$results = $wpdb->query($esql);	
			} else {			
				$content = $rewrite;
			//echo "<br/><br/>-------CONTENT-------------<br/><br/>".$content . "<br/><br/>---------CONTENT----------<br/><br/>";//////////				
			}	

			// REWRITE TITLE
			if($options['wpr_tbs_rewrite_title'] == "Yes") {
				$rewritetitle = wpr_sr_rewrite($title,$options['wpr_sr_rewrite_email'],$options['wpr_sr_rewrite_pw'],$options['wpr_sr_quality'],$keyword,$options['wpr_rewrite_protected']);
				if(!empty($rewritetitle["error"]["reason"])) {
					$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
					$esql .= " ( '$camp_id', '$errkeyword', 'SpinRewriter', '".$rewritetitle["error"]["reason"]."', '".$rewritetitle["error"]["message"]."', '$time' );";
					$results = $wpdb->query($esql);	
				} else {
					$title = $rewritetitle;
				}	
			}	
		}
	} elseif($options['wpr_rewrite_active'] == "wai" && $yahoocat["rw"] == 1) {
		// WordAI
		if(empty($options['wpr_wai_rewrite_pw']) || empty($options['wpr_wai_rewrite_email'])) {
			$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
			$esql .= " ( '$camp_id', '$errkeyword', 'WordAI', 'WordAI', 'You need to enter your WordAI email and password in the Options!', '$time' );";
			$results = $wpdb->query($esql);		
		} else {
			//echo "<br/><br/>-------orig-------------<br/><br/><div>".$content . "</div><br/><br/>---------rewrite----------<br/><br/>";//////////
			$rewrite = wpr_wai_rewrite($content,$options['wpr_wai_rewrite_email'],$options['wpr_wai_rewrite_pw'],$options['wpr_wai_quality'],$keyword,$options['wpr_rewrite_protected']);
			//echo "<div>".$rewrite . "</div><br/><br/>--------------------<br/><br/>";	//////////
			if(!empty($rewrite["error"]["reason"])) {
				$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
				$esql .= " ( '$camp_id', '$errkeyword', 'WordAI', '".$rewrite["error"]["reason"]."', '".$wpdb->escape($rewrite["error"]["message"])."', '$time' );";
				$results = $wpdb->query($esql);	
			} else {			
				$content = $rewrite;
			//echo "<br/><br/>-------CONTENT-------------<br/><br/>".$content . "<br/><br/>---------CONTENT----------<br/><br/>";//////////				
			}	

			// REWRITE TITLE
			if($options['wpr_tbs_rewrite_title'] == "Yes") {
				$rewritetitle = wpr_wai_rewrite($title,$options['wpr_wai_rewrite_email'],$options['wpr_wai_rewrite_pw'],$options['wpr_wai_quality'],$keyword,$options['wpr_rewrite_protected']);
				if(!empty($rewritetitle["error"]["reason"])) {
					$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
					$esql .= " ( '$camp_id', '$errkeyword', 'WordAI', '".$rewritetitle["error"]["reason"]."', '".$rewritetitle["error"]["message"]."', '$time' );";
					$results = $wpdb->query($esql);	
				} else {
					$title = $rewritetitle;
				}	
			}	
		}
	}
	
	// REPLACES
	$replaces = unserialize($result->replacekws);
	if(!empty($replaces)) {	
		foreach($replaces as $replace) {
			if($replace["chance"] >= rand(1,100)) {
				$replace["from"] = trim($replace["from"]);
				$replace["to"] = trim($replace["to"]);
				if($replace["code"] == "1") {
					$content = str_replace($replace["from"], $replace["to"], $content);
					$title = str_replace($replace["from"], $replace["to"], $title);					
				} else {
					$content = str_replace(" ".$replace["from"], " ".$replace["to"], $content);
					$title = str_replace(" ".$replace["from"], " ".$replace["to"], $title);				
				}
			}
		}
	}
	
	// Wordpress action hook
	do_action('wpr_before_post_save', $content,$title,$catarray); 	
	
	// INSERT POST into db	
	$insert = wpr_insertpost($content,$title,$catarray,$yahoocat["ps"],$yahoocat["a"],"","",$yahoocat["pt"]);
	if (is_wp_error($insert)) {
		$errormessage = $insert->get_error_message();
		// SAVE and DISPLAY error
		$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
		$esql .= " ( '$camp_id', '$errkeyword', '', 'Insert failed', ".__("'Wordpress Error: ", 'wprobot')."$errormessage $retrymsg $templateusedmsg', '$time' );";
		$results = $wpdb->query($esql);			
		return false;		
	} elseif(isset($insert)) {
		// - update campaign entry with new NUMS	
		$posts_created = $result->posts_created + 1;
		$keywords[$rnd][1]["total"] = $keywords[$rnd][1]["total"] + 1;	
		$keywords = serialize($keywords);
		$keywords = $wpdb->escape($keywords);
		$sql = "UPDATE " . $wpr_table_campaigns . " SET `keywords` = '".$keywords."', `posts_created` = '".$posts_created."' WHERE `id` = '".$camp_id."'";
		$results = $wpdb->query($sql);	

		// - save UNIQUE IDS to post table
		$usql = substr_replace($usql ,";",-1);
		$results = $wpdb->query($usql);	
		//echo $usql;echo "RES".$results;
		
		// - insert COMMENTS 
		wpr_insertcomments($insert,$commentsarray,"",$transcomments,$translation);
		
		// - insert CUSTOM FIELDS
		//if($counts["{amazon}"] > 0) {
		//	add_post_meta($insert, 'ma_amazonpost', $contents["amazon"][0]["unique"]);
		//}
			//add_post_meta($insert, 'wpr_keyword', $keyword);
				
		$customfield = unserialize($result->customfield);
		if(isset($customfield["name"])) {
			$customfields = array();
			$customfields[1]["name"] = $customfield["name"];
			$customfields[1]["value"] = $customfield["value"];
			$customfield = $customfields;
		}	
		if($yahoocat["t"] == 1 || !empty($customfield)) {
			if(!empty($contents["amazon"][0]["customfield"]["amazonthumbnail"]))
			{$ximage = $contents["amazon"][0]["customfield"]["amazonthumbnail"];
			} elseif(!empty($contents["commissionjunction"][0]["customfield"]["cjthumbnail"]))
			{$ximage = $contents["commissionjunction"][0]["customfield"]["cjthumbnail"];
			} elseif(!empty($contents["rss"][0]["customfield"]["rssimage"]))
			{$ximage = $contents["rss"][0]["customfield"]["rssimage"];
			} elseif(!empty($contents["flickr"][0]["customfield"]["flickrimage"]))
			{$ximage = $contents["flickr"][0]["customfield"]["flickrimage"];
			} elseif(!empty($thumbnail[0]["customfield"]["thumbnail"]))
			{$ximage = $thumbnail[0]["customfield"]["thumbnail"];
			} elseif(!empty($contents["youtube"][0]["customfield"]["youtubethumbnail"]))
			{$ximage = $contents["youtube"][0]["customfield"]["youtubethumbnail"];
			} elseif(!empty($contents["oodle"][0]["customfield"]["oodlethumbnail"]))
			{$ximage = $contents["oodle"][0]["customfield"]["oodlethumbnail"];
			} elseif(!empty($contents["shopzilla"][0]["customfield"]["shopzillathumbnail"]))
			{$ximage = $contents["shopzilla"][0]["customfield"]["shopzillathumbnail"];
			} elseif(!empty($contents["avantlink"][0]["customfield"]["avantlinkthumbnail"]))
			{$ximage = $contents["avantlink"][0]["customfield"]["avantlinkthumbnail"];
			} elseif(!empty($contents["pressrelease"][0]["customfield"]["prthumbnail"]))
			{$ximage = $contents["pressrelease"][0]["customfield"]["prthumbnail"];			
			} else {$ximage = "";}		
		
			if($options['wpr_save_images'] == "Yes" && !empty($ximage)) {
				if(strpos($ximage, plugin_basename( dirname(__FILE__) )) === false) {
					$newurl = wpr_saveimage($ximage,$keyword);
					if($newurl) {$ximage = $newurl;}					
				}
			}	

			$blogurl = get_bloginfo( "url" );
			$yimage = str_replace($blogurl."/","",$newurl);	
			//echo $ximage."<br>";	
		}
		
		for ($i = 1; $i <= count($customfield); $i++) {	
			$cfname = $wpdb->escape($customfield[$i]["name"]);
			$cfcontent = $customfield[$i]["value"];
			if($cfcontent != "" && $cfname != "") {

				$cfcontent = wpr_random_tags($cfcontent);
				$cfcontent = str_replace("{image}", $ximage, $cfcontent);
				$cfcontent = str_replace("{image-relative}", $yimage, $cfcontent);
				$cfcontent = str_replace("{keyword}", $keyword, $cfcontent);	

				// NEW CUSTOM FIELD REPLACE
				foreach($contents as $content) {
					if(!empty($content[0]["customfield"])) {
						foreach($content[0]["customfield"] as $key => $value) {
							$cfcontent = str_replace("{".$key."}", $value, $cfcontent);
						}
					}
				}
				
				$cfcontent = preg_replace('#\{(.*)\}#smiU', '', $cfcontent);
				$cfcontent = $wpdb->escape($cfcontent);
				if(!empty($cfcontent)) {add_post_meta($insert, $cfname, $cfcontent);}
			}
		}
		
		// Post Thumbnails
		if($yahoocat["t"] == 1 && !empty($ximage)) {
			$upload_dir = wp_upload_dir();
			$zimage = str_replace($upload_dir['baseurl']. "/","",$ximage);	
			//echo $zimage." ZIMAGE<br>";
			$post_thumbnail = wpr_insertpost($content,$title,$catarray,$yahoocat["ps"],$yahoocat["a"],$zimage,$insert);
			if(isset($post_thumbnail)) {
				add_post_meta($post_thumbnail, "_wp_attached_file", $zimage);

				list($width, $height) = getimagesize($ximage);
				$wpameta = array("file" => $zimage, "width" => $width, "height" => $height);
				//print_r($wpameta);
				add_post_meta($post_thumbnail, "_wp_attachment_metadata", serialize($wpameta));
				
				add_post_meta($insert, "_thumbnail_id", $post_thumbnail);
			}
		}
		
		/*
Array
(
[width] => 1001
[height] => 1500
[hwstring_small] => height='96' width='64'
[file] => 2011/01/la3-5-1500-001.jpg
[sizes] => Array
(
	[thumbnail] => Array
	(
	[file] => la3-5-1500-001-150x150.jpg
	[width] => 150
	[height] => 150
	)

)

)
		*/

		// Wordpress action hook
		do_action('wpr_after_post', $insert); 
		
		// - display success message IN OTHER FUNCTION
		$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
		$esql .= " ( '$camp_id', '$errkeyword', '', 'Post created', ".__("'The post has been created successfully.", 'wprobot')."$retrymsg $templateusedmsg'".", '$time' );";
		$results = $wpdb->query($esql);		
		return true;
		
	} else {
		// SAVE and DISPLAY error
		$esql = "INSERT INTO ".$wpr_table_errors." ( campaign, keyword, module, reason, message, time ) VALUES";
		$esql .= " ( '$camp_id', '$errkeyword', '', 'Insert failed', ".__("'The post could not be inserted into the Wordpress database.", 'wprobot')."$retrymsg $templateusedmsg', '$time' );";
		$results = $wpdb->query($esql);			
		return false;
	}
}
Example #3
0
function wpr_translate_partial($content) {

	$checkcontent = $content;
	
	preg_match_all('#\[translate(.*)\](.*)\[/translate\]#smiU', $checkcontent, $matches, PREG_SET_ORDER);
	if ($matches) {
		foreach($matches as $match) {
			$match[1] = substr($match[1], 1);
			$langs = explode("|", $match[1]);
			if(!empty($langs)) {

				if(empty($langs[0])) {$langs[0] = "no";}
				if(empty($langs[1])) {$langs[1] = "no";}
				if(empty($langs[2])) {$langs[2] = "no";}
				if(empty($langs[3])) {$langs[3] = "no";}
				$transcontent = wpr_translate($match[2],$langs[0],$langs[1],$langs[2],$langs[3]);

			}
			
			if(!empty($transcontent) && !is_array($transcontent)) {
				$content = str_replace($match[0], $transcontent, $content);	
				return $content;
			} else {
				$content = str_replace($match[0], "", $content);	
				return $content;
			}
		}
	} else {
		return $content;	
	}	
	
	if(!empty($transcontent) && !is_array($transcontent)) {
		return $transcontent;
	} else {
		return $content;
	}

}