Skip to content

Commit

Permalink
Merge pull request #273 from owncloud/backport-264-266-stable8.2
Browse files Browse the repository at this point in the history
[stable8.2] Backport #264 and #266
  • Loading branch information
blizzz authored Aug 7, 2016
2 parents 8bdbd82 + 930e1e1 commit b74b4d9
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 6 deletions.
2 changes: 1 addition & 1 deletion appinfo/database.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
<type>text</type>
<default></default>
<notnull>true</notnull>
<length>140</length>
<length>4096</length>
</field>
<field>
<name>user_id</name>
Expand Down
2 changes: 1 addition & 1 deletion appinfo/info.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@
<owncloud min-version="8.1" max-version="8.2" />
</dependencies>
<ocsid>168710</ocsid>
<version>0.6.1</version>
<version>0.6.2</version>
</info>
23 changes: 19 additions & 4 deletions controller/lib/bookmarks.php
Original file line number Diff line number Diff line change
Expand Up @@ -428,9 +428,16 @@ public static function editBookmark($userid, IDb $db, $id, $url, $title, $tags =
*/
public static function addBookmark($userid, IDb $db, $url, $title, $tags = array(), $description = '', $is_public = false) {
$public = $is_public ? 1 : 0;
$url_without_prefix = substr($url, strpos($url, "://") + 3); // Removes everything from the url before the "://" pattern (included)
$url_without_prefix = trim(substr($url, strpos($url, "://") + 3)); // Removes everything from the url before the "://" pattern (included)
if($url_without_prefix === '') {
throw new \InvalidArgumentException('Bookmark URL is missing');
}
$enc_url_noprefix = htmlspecialchars_decode($url_without_prefix);
$enc_url = htmlspecialchars_decode($url);

$title = mb_substr($title, 0, 4096);
$description = mb_substr($description, 0, 4096);

// Change lastmodified date if the record if already exists
$sql = "SELECT * from `*PREFIX*bookmarks` WHERE `url` like ? AND `user_id` = ?";
$query = $db->prepareQuery($sql, 1);
Expand Down Expand Up @@ -522,8 +529,12 @@ public static function importFile($user, IDb $db, $file) {
$dom->loadHTMLFile($file);
$links = $dom->getElementsByTagName('a');

$l = \OC::$server->getL10NFactory()->get('bookmarks');
$errors = [];

// Reintroduce transaction here!?
foreach ($links as $link) {
/* @var \DOMElement $link */
$title = $link->nodeValue;
$ref = $link->getAttribute("href");
$tag_str = '';
Expand All @@ -534,11 +545,15 @@ public static function importFile($user, IDb $db, $file) {
$desc_str = '';
if ($link->hasAttribute("description"))
$desc_str = $link->getAttribute("description");

self::addBookmark($user, $db, $ref, $title, $tags, $desc_str);
try {
self::addBookmark($user, $db, $ref, $title, $tags, $desc_str);
} catch (\InvalidArgumentException $e) {
\OC::$server->getLogger()->logException($e, ['app' => 'bookmarks']);
$errors[] = $l->t('Failed to import one bookmark, because: ') . $e->getMessage();
}
}

return array();
return $errors;
}

/**
Expand Down

0 comments on commit b74b4d9

Please sign in to comment.