if (!isset($_GET['nocount'])) {
    if ($url != '') {
        $referer = $url;
        $referringurl = str_replace(array("http://", "www."), "", $referer);
        $jsondata = file_get_contents("http://identi.ca/api/search.json?q=" . $referringurl . "&rpp=100");
        $results = substr_count($jsondata, str_replace("/", "\\/", addslashes($referringurl)));
        if ($results <= 0) {
            $results = "0";
        }
    } elseif ($post_id > 0) {
        /*
         * if the number of share are not known yet, we check them by calling the api
         * if the number is known and is not older than 12 hours, then we take it
         */
        $referer = $planet_url . '?post_id=' . $post_id;
        $results = checkSharedLinkCount($post_id, "all");
        /*	# Check for planet URL
        		$referer = $planet_url.'?post_id='.$post_id;
        		$referringurl = str_replace(array("http://", "www."), "", $referer);
        		$jsondata = file_get_contents("http://identi.ca/api/search.json?q=".$referringurl."&rpp=100");
        		$result1 = substr_count($jsondata, str_replace("/", "\/", addslashes($referringurl)));
        
        		#Check for permalink
        		$rs = $core->con->select("SELECT post_permalink FROM ".$core->prefix."post WHERE post_id = ".$post_id);
        		$referer = $rs->f('post_permalink');
        		$referringurl = str_replace(array("http://", "www."), "", $rs->f('post_permalink'));
        		$jsondata = file_get_contents("http://identi.ca/api/search.json?q=".$referringurl."&rpp=100");
        		$result2 = substr_count($jsondata, str_replace("/", "\/", addslashes($referringurl)));
        
        		# Get results
        		$results = intval($result1) + intval($result2);
Example #2
0
function insertPostToDatabase($rs, $item_permalink, $date, $item_title, $item_content, $item_tags, $item_image, $print, $feed_id)
{
    global $log, $core;
    # Date
    if (!$date) {
        $item_date = date('Y-m-d H:i:s', time());
    } else {
        $item_date = date('Y-m-d H:i:s', $date);
    }
    # Check if item is already in the database
    $sql = "SELECT\r\n\t\t\tpost_id,\r\n\t\t\tuser_id,\r\n\t\t\tpost_title,\r\n\t\t\tpost_content,\r\n\t\t\tpost_pubdate,\r\n\t\t\tpost_image\r\n\t\tFROM " . $core->prefix . "post\r\n\t\tWHERE post_permalink = '" . $core->con->escape($item_permalink) . "'";
    $rs2 = $core->con->select($sql);
    # There is no such permalink, we can insert the new item
    if ($rs2->count() == 0 && $date < time()) {
        # Check if item is already in the database by title and by user
        $sql = "SELECT\r\n\t\t\t\tuser_id,\r\n\t\t\t\tpost_title,\r\n\t\t\t\tpost_content,\r\n\t\t\t\tpost_pubdate\r\n\t\t\tFROM " . $core->prefix . "post\r\n\t\t\tWHERE user_id = '" . $rs->user_id . "'\r\n\t\t\t\tAND post_title = '" . $item_title . "'\r\n\t\t\t\tAND post_pubdate = '" . $item_date . "'";
        $rs4 = $core->con->select($sql);
        if ($rs4->count() == 0) {
            # Get ID
            $rs3 = $core->con->select('SELECT MAX(post_id) ' . 'FROM ' . $core->prefix . 'post ');
            $next_post_id = (int) $rs3->f(0) + 1;
            $image_url = savePostImage($next_post_id, $item_image);
            $cur = $core->con->openCursor($core->prefix . 'post');
            $cur->post_id = $next_post_id;
            $cur->user_id = $rs->user_id;
            $cur->post_pubdate = $item_date;
            $cur->post_permalink = $core->con->escape($item_permalink);
            $cur->post_title = $item_title;
            $cur->post_content = $item_content;
            $cur->post_image = $image_url;
            $cur->post_status = $rs->feed_trust == 1 ? 1 : 2;
            $cur->post_comment = $rs->feed_comment;
            $cur->created = array(' NOW() ');
            $cur->modified = array(' NOW() ');
            $cur->insert();
            foreach ($item_tags as $tag) {
                $cur2 = $core->con->openCursor($core->prefix . 'post_tag');
                $cur2->post_id = $next_post_id;
                $cur2->user_id = $rs->user_id;
                $cur2->tag_id = $tag;
                $cur2->insert();
            }
            postNewsOnSocialNetwork($item_title, $rs->user_fullname, $next_post_id);
            checkSharedLinkCount($next_post_id);
            return logMsg("Post added: " . $item_permalink, "", 1, $print);
        } elseif ($rs4->count() == 1) {
            # Update post permalink in database
            $cur = $core->con->openCursor($core->prefix . 'post');
            $cur->post_permalink = $core->con->escape($item_permalink);
            $cur->modified = array('NOW()');
            $cur->update("WHERE " . $core->prefix . "post.user_id = '" . $rs->user_id . "'\r\n\t\t\t\tAND " . $core->prefix . "post.post_title = '" . $item_title . "'");
            # On informe que tout est ok
            return logMsg("Permalink updated : " . $item_permalink, "", 1, $print);
        } else {
            return logMsg("Several posts from the same author have the same title but not the same permalink : " . $item_permalink . " (Do not know it we need to update or to add the idem)", "", 3, $print);
        }
    } elseif ($rs2->count() == 1) {
        $title2 = $rs2->f('post_title');
        $content2 = $rs2->f('post_content');
        $post_id = $rs2->f('post_id');
        $user_id = $rs2->f('user_id');
        # Update tags if needed
        $old_tags = array();
        $tagRq = $core->con->select('SELECT tag_id, user_id FROM ' . $core->prefix . 'post_tag WHERE post_id = ' . $post_id);
        $tags_to_append = $item_tags;
        # par defaut TOUT
        $tags_to_remove = array();
        # par defaut RIEN
        while ($tagRq->fetch()) {
            # Si le tag existe deja, ne pas l'ajouter
            $rm_i = -1;
            foreach ($tags_to_append as $key => $value) {
                if ($value == $tagRq->tag_id) {
                    $rm_i = $key;
                }
            }
            if ($rm_i >= 0) {
                unset($tags_to_append[$rm_i]);
            }
            /*			if (in_array($tagRq->tag_id, $item_tags)) {
            				$key = array_search($tagRq, $item_tags);
            				unset($tags_to_append[$key]);
            			}**/
            # Si le tag n'exitse plus, le supprimer
            if (!in_array($tagRq->tag_id, $item_tags) && $tagRq->user_id == 'root') {
                $tags_to_remove[] = $tagRq->tag_id;
            }
            $old_tags[] = $tagRq->tag_id;
        }
        //$tags_to_remove = array_diff($old_tags, $item_tags);
        //$tags_to_append = array_diff($item_tags, $old_tags);
        if (count($tags_to_remove) > 0) {
            foreach ($tags_to_remove as $tag) {
                $core->con->execute("DELETE FROM " . $core->prefix . "post_tag\r\n\t\t\t\t\tWHERE tag_id ='" . $core->con->escape($tag) . "' AND post_id = " . $post_id);
            }
        }
        if (count($tags_to_append) > 0) {
            foreach ($tags_to_append as $tag) {
                //				$tag = $core->con->escape($tag);
                $cur = $core->con->openCursor($core->prefix . 'post_tag');
                $cur->tag_id = $tag;
                $cur->post_id = $post_id;
                $cur->user_id = 'root';
                $cur->created = array(' NOW() ');
                try {
                    $cur->insert();
                } catch (Exception $e) {
                    print "<br>New tags :";
                    print_r($item_tags);
                    print "<br>Old tags :";
                    print_r($old_tags);
                    print "<br>to remove :";
                    print_r($tags_to_remove);
                    print "<br>to append:";
                    print_r($tags_to_append);
                    print "<br>post_id:" . $post_id . "<p>";
                    print $e;
                    exit;
                }
            }
        }
        # Si l'article a ete modifie (soit la date, soit le titre, soit le contenu)
        if ($item_date != $rs2->f('post_pubdate') && !empty($date)) {
            # Update post in database
            $cur = $core->con->openCursor($core->prefix . 'post');
            $cur->post_pubdate = $item_date;
            $cur->modified = array('NOW()');
            $cur->update("WHERE " . $core->prefix . "post.post_permalink = '" . $core->con->escape($item_permalink) . "'");
            # On informe que tout est ok
            return logMsg("Date updated: " . $item_permalink, "", 1, $print);
        }
        if (!empty($item_title) && strcmp($item_title, $title2) != 0 || !empty($item_content) && strcmp($item_content, $content2) != 0) {
            # Update post in database
            if (strcmp($item_title, $title2) != 0) {
                $cur = $core->con->openCursor($core->prefix . 'post');
                $cur->modified = array('NOW()');
                $cur->post_title = $item_title;
                $cur->update("WHERE " . $core->prefix . "post.post_permalink = '" . $core->con->escape($item_permalink) . "'");
                $log_msg = logMsg(T_("Title change of : ") . $item_permalink, "", 2, $print);
                if ($log == "debug") {
                    $log_msg .= logMsg("Old : " . $title2, "", 4, $print);
                    $log_msg .= logMsg("New : " . $item_title, "", 4, $print);
                }
            }
            if (strcmp($item_content, $content2) != 0) {
                $image_url = savePostImage($rs2->f('post_id'), $item_image);
                $cur = $core->con->openCursor($core->prefix . 'post');
                $cur->modified = array('NOW()');
                $cur->post_content = $item_content;
                $cur->post_image = $image_url;
                $cur->update("WHERE " . $core->prefix . "post.post_permalink = '" . $core->con->escape($item_permalink) . "'");
                $log_msg = logMsg(T_("Content change of : ") . $item_permalink, "", 2, $print);
                if ($log == "debug") {
                    $log_msg .= logMsg("Old : " . $content2, "", 4, $print);
                    $log_msg .= logMsg("New : " . $item_content, "", 4, $print);
                }
            }
            return $log_msg;
        }
        # fin du if($date !=
    }
    return "";
}