<?php
+/**
+ * @file include/items.php
+ */
+
+use \Friendica\ParseUrl;
+
require_once('include/bbcode.php');
require_once('include/oembed.php');
require_once('include/salmon.php');
}
function query_page_info($url, $no_photos = false, $photo = "", $keywords = false, $keyword_blacklist = "") {
- require_once("mod/parse_url.php");
- $data = parseurl_getsiteinfo_cached($url, true);
+ $data = ParseUrl::getSiteinfoCached($url, true);
if ($photo != "")
$data["images"][0]["src"] = $photo;
$dsprsig = null;
if (x($arr,'dsprsig')) {
+ $encoded_signature = $arr['dsprsig'];
$dsprsig = json_decode(base64_decode($arr['dsprsig']));
unset($arr['dsprsig']);
}
}
} else {
// This can happen - for example - if there are locking timeouts.
- logger("Item wasn't stored - we quit here.");
- q("COMMIT");
+ q("ROLLBACK");
+
+ // Store the data into a spool file so that we can try again later.
+
+ // At first we restore the Diaspora signature that we removed above.
+ if (isset($encoded_signature)) {
+ $arr['dsprsig'] = $encoded_signature;
+ }
+
+ // Now we store the data in the spool directory
+ $file = 'item-'.round(microtime(true) * 10000).".msg";
+ $spool = get_spoolpath().'/'.$file;
+ file_put_contents($spool, json_encode($arr));
+ logger("Item wasn't stored - Item was spooled into file ".$file, LOGGER_DEBUG);
return 0;
}
if ($current_post == 0) {
// This is one of these error messages that never should occur.
logger("couldn't find created item - we better quit now.");
- q("COMMIT");
+ q("ROLLBACK");
return 0;
}
if (!dbm::is_result($r)) {
// This shouldn't happen, since COUNT always works when the database connection is there.
logger("We couldn't count the stored entries. Very strange ...");
- q("COMMIT");
+ q("ROLLBACK");
return 0;
}
} elseif ($r[0]["entries"] == 0) {
// This really should never happen since we quit earlier if there were problems.
logger("Something is terribly wrong. We haven't found our created entry.");
- q("COMMIT");
+ q("ROLLBACK");
return 0;
}