function importBookmark($user, $dt, $dd = null)
{
+ $as = $dt->getElementsByTagName('a');
+
+ if ($as->length == 0) {
+ throw new ClientException(_("No <A> tag in a <DT>."));
+ }
+
+ $a = $as->item(0);
+
+ $private = $a->getAttribute('private');
+
+ if ($private != 0) {
+ throw new ClientException(_('Skipping private bookmark.'));
+ }
+
+ if (!empty($dd)) {
+ $description = $dd->nodeValue;
+ } else {
+ $description = null;
+ }
+ $addDate = $a->getAttribute('add_date');
+
+ $data = array(
+ 'profile_id' => $user->id,
+ 'title' => $a->nodeValue,
+ 'description' => $description,
+ 'url' => $a->getAttribute('href'),
+ 'tags' => $a->getAttribute('tags'),
+ 'created' => common_sql_date(intval($addDate))
+ );
+
$qm = QueueManager::get();
-
- $qm->enqueue(array($user, $dt, $dd), 'dlcsbkmk');
+ $qm->enqueue($data, 'dlcsbkmk');
}
/**
/**
* Handle the data
*
- * @param array $data array of user, dt, dd
+ * @param array $data associative array of user & bookmark info from DeliciousBackupImporter::importBookmark()
*
* @return boolean success value
*/
function handle($data)
{
- list($user, $dt, $dd) = $data;
-
- $as = $dt->getElementsByTagName('a');
-
- if ($as->length == 0) {
- throw new ClientException(_("No <A> tag in a <DT>."));
- }
-
- $a = $as->item(0);
-
- $private = $a->getAttribute('private');
-
- if ($private != 0) {
- throw new ClientException(_('Skipping private bookmark.'));
- }
-
- if (!empty($dd)) {
- $description = $dd->nodeValue;
- } else {
- $description = null;
- }
-
- $title = $a->nodeValue;
- $url = $a->getAttribute('href');
- $tags = $a->getAttribute('tags');
- $addDate = $a->getAttribute('add_date');
- $created = common_sql_date(intval($addDate));
+ $profile = Profile::staticGet('id', $data['profile_id']);
try {
- $saved = Bookmark::saveNew($user->getProfile(),
- $title,
- $url,
- $tags,
- $description,
- array('created' => $created,
+ $saved = Bookmark::saveNew($profile,
+ $data['title'],
+ $data['url'],
+ $data['tags'],
+ $data['description'],
+ array('created' => $data['created'],
'distribute' => false));
} catch (ClientException $e) {
// Most likely a duplicate -- continue on with the rest!
- common_log(LOG_ERR, "Error importing delicious bookmark to $url: " . $e->getMessage());
+ common_log(LOG_ERR, "Error importing delicious bookmark to $data[url]: " . $e->getMessage());
return true;
}