require_once('include/crypto.php');
require_once('include/enotify.php');
require_once('include/email.php');
-require_once('Text/LanguageDetect.php');
+require_once('library/langdet/Text/LanguageDetect.php');
+require_once('include/tags.php');
function item_post(&$a) {
$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
$preview = ((x($_REQUEST,'preview')) ? intval($_REQUEST['preview']) : 0);
+
+ // Check for doubly-submitted posts, and reject duplicates
+ // Note that we have to ignore previews, otherwise nothing will post
+ // after it's been previewed
+ if(!$preview && x($_REQUEST['post_id_random'])) {
+ if(x($_SESSION['post-random']) && $_SESSION['post-random'] == $_REQUEST['post_id_random']) {
+ logger("item post: duplicate post", LOGGER_DEBUG);
+ item_post_return($a->get_baseurl(), $api_source, $return_path);
+ }
+ else
+ $_SESSION['post-random'] = $_REQUEST['post_id_random'];
+ }
+
/**
* Is this a reply to something?
*/
// multi-level threading - preserve the info but re-parent to our single level threading
//if(($parid) && ($parid != $parent))
- $thr_parent = $parent_uri;
+ $thr_parent = $parent_uri;
if($parent_item['contact-id'] && $uid) {
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
$l = new Text_LanguageDetect;
- $lng = $l->detectConfidence($naked_body);
+ //$lng = $l->detectConfidence($naked_body);
+ //$postopts = (($lng['language']) ? 'lang=' . $lng['language'] . ';' . $lng['confidence'] : '');
+
+ $lng = $l->detect($naked_body, 3);
- $postopts = (($lng['language']) ? 'lang=' . $lng['language'] . ';' . $lng['confidence'] : '');
+ if (sizeof($lng) > 0) {
+ $postopts = "";
+
+ foreach ($lng as $language => $score) {
+ if ($postopts == "")
+ $postopts = "lang=";
+ else
+ $postopts .= ":";
+
+ $postopts .= $language.";".$score;
+ }
+ }
logger('mod_item: detect language' . print_r($lng,true) . $naked_body, LOGGER_DATA);
}
// First figure out if it's a status post that would've been
// created using tinymce. Otherwise leave it alone.
- $plaintext = (local_user() ? intval(get_pconfig(local_user(),'system','plaintext')) : 0);
+/* $plaintext = (local_user() ? intval(get_pconfig(local_user(),'system','plaintext')) || !feature_enabled($profile_uid,'richtext') : 0);
+ if((! $parent) && (! $api_source) && (! $plaintext)) {
+ $body = fix_mce_lf($body);
+ }*/
+ $plaintext = (local_user() ? !feature_enabled($profile_uid,'richtext') : 0);
if((! $parent) && (! $api_source) && (! $plaintext)) {
$body = fix_mce_lf($body);
}
intval($post_id),
intval($profile_uid)
);
+ create_tags_from_itemuri($post_id, $profile_uid);
// update filetags in pconfig
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
if(count($r)) {
$post_id = $r[0]['id'];
logger('mod_item: saved item ' . $post_id);
+ create_tags_from_item($post_id);
// update filetags in pconfig
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
+ // Store the fresh generated item into the cache
+ $cachefile = get_cachefile($datarray["guid"]."-".hash("md5", $datarray['body']));
+
+ if (($cachefile != '') AND !file_exists($cachefile)) {
+ $s = prepare_text($datarray['body']);
+ file_put_contents($cachefile, $s);
+ logger('mod_item: put item '.$r[0]['id'].' into cachefile '.$cachefile);
+ }
+
if($parent) {
// This item is the last leaf and gets the comment box, clear any ancestors
logger('post_complete');
+ item_post_return($a->get_baseurl(), $api_source, $return_path);
+ // NOTREACHED
+}
+
+function item_post_return($baseurl, $api_source, $return_path) {
// figure out how to return, depending on from whence we came
if($api_source)
return;
if($return_path) {
- goaway($a->get_baseurl() . "/" . $return_path);
+ goaway($baseurl . "/" . $return_path);
}
$json = array('success' => 1);
if(x($_REQUEST,'jsreload') && strlen($_REQUEST['jsreload']))
- $json['reload'] = $a->get_baseurl() . '/' . $_REQUEST['jsreload'];
+ $json['reload'] = $baseurl . '/' . $_REQUEST['jsreload'];
logger('post_json: ' . print_r($json,true), LOGGER_DEBUG);
echo json_encode($json);
killme();
- // NOTREACHED
}
-
-
function item_content(&$a) {
if((! local_user()) && (! remote_user()))
intval($tagcid),
intval($profile_uid)
);
+ }
else {
$newname = str_replace('_',' ',$name);