Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NC20 #1242

Merged
merged 12 commits into from
Oct 12, 2020
Merged

NC20 #1242

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/floccus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ jobs:
floccus-adapter:
- nextcloud-folders
test-name:
- standard
- parallel
- ''
browsers: ['chrome']


Expand Down
18 changes: 0 additions & 18 deletions appinfo/app.php

This file was deleted.

8 changes: 4 additions & 4 deletions appinfo/info.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ Also, in order to access your bookmarks anywhere, it also allows you to synchron
Check out the third-party clients listed here: https://github.com/nextcloud/bookmarks#third-party-clients

Requirements:
- PHP v7.2+
- PHP v7.3+
- PHP extensions:
- intl: *
- mbstring: *
- Nextcloud v18+
- Nextcloud v20+
]]></description>
<version>3.4.3</version>
<version>4.0.0</version>
<licence>agpl</licence>
<author mail="blizzz@arthur-schiwon.de" homepage="https://www.arthur-schiwon.de">Arthur Schiwon</author>
<author mail="mklehr@gmx.net">Marcel Klehr</author>
<author mail="blizzz@arthur-schiwon.de" homepage="https://www.arthur-schiwon.de">Arthur Schiwon</author>
<author>Marvin Thomas Rabe</author>
<author>Stefan Klemm</author>
<category>organization</category>
Expand Down
56 changes: 32 additions & 24 deletions lib/AppInfo/Application.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,59 +9,67 @@
namespace OCA\Bookmarks\AppInfo;

use OCA\Bookmarks\Activity\ActivityPublisher;
use OCA\Bookmarks\Dashboard\Widget;
use OCA\Bookmarks\Events\BeforeDeleteEvent;
use OCA\Bookmarks\Events\CreateEvent;
use OCA\Bookmarks\Events\MoveEvent;
use OCA\Bookmarks\Events\UpdateEvent;
use OCA\Bookmarks\Flow\CreateBookmark;
use OCA\Bookmarks\Hooks\UserGroupListener;
use OCA\Bookmarks\Search\Provider;
use OCA\Bookmarks\Service\HashManager;
use OCP\AppFramework\App;
use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Group\Events\UserAddedEvent;
use OCP\Group\Events\UserRemovedEvent;
use OCP\IContainer;
use OCP\IRequest;
use OCP\IUser;
use OCP\IUserSession;
use OCP\User\Events\BeforeUserDeletedEvent;

class Application extends App {
class Application extends App implements IBootstrap {
public const APP_ID = 'bookmarks';

public function __construct() {
parent::__construct(self::APP_ID);
}

$container = $this->getContainer();
$server = $container->getServer();
public function register(IRegistrationContext $context): void {
@include_once __DIR__ . '/../../vendor/autoload.php';

$container->registerService('UserId', static function ($c) {
$context->registerService('UserId', static function ($c) {
/** @var IUser|null $user */
$user = $c->query('ServerContainer')->getUserSession()->getUser();
/** @var IContainer $c */
$user = $c->get(IUserSession::class)->getUser();
return $user === null ? null : $user->getUID();
});

$container->registerService('request', static function ($c) {
return $c->query('Request');
$context->registerService('request', static function ($c) {
return $c->get(IRequest::class);
});

/** @var IEventDispatcher $eventDispatcher */
$eventDispatcher = $server->query(IEventDispatcher::class);

$context->registerSearchProvider(Provider::class);
$context->registerDashboardWidget(Widget::class);

$eventDispatcher->addServiceListener(CreateEvent::class, HashManager::class);
$eventDispatcher->addServiceListener(UpdateEvent::class, HashManager::class);
$eventDispatcher->addServiceListener(BeforeDeleteEvent::class, HashManager::class);
$eventDispatcher->addServiceListener(MoveEvent::class, HashManager::class);
$context->registerEventListener(CreateEvent::class, HashManager::class);
$context->registerEventListener(UpdateEvent::class, HashManager::class);
$context->registerEventListener(BeforeDeleteEvent::class, HashManager::class);
$context->registerEventListener(MoveEvent::class, HashManager::class);

$eventDispatcher->addServiceListener(CreateEvent::class, ActivityPublisher::class);
$eventDispatcher->addServiceListener(UpdateEvent::class, ActivityPublisher::class);
$eventDispatcher->addServiceListener(BeforeDeleteEvent::class, ActivityPublisher::class);
$eventDispatcher->addServiceListener(MoveEvent::class, ActivityPublisher::class);
$context->registerEventListener(CreateEvent::class, ActivityPublisher::class);
$context->registerEventListener(UpdateEvent::class, ActivityPublisher::class);
$context->registerEventListener(BeforeDeleteEvent::class, ActivityPublisher::class);
$context->registerEventListener(MoveEvent::class, ActivityPublisher::class);

$eventDispatcher->addServiceListener(BeforeUserDeletedEvent::class, UserGroupListener::class);
$eventDispatcher->addServiceListener(UserAddedEvent::class, UserGroupListener::class);
$eventDispatcher->addServiceListener(UserRemovedEvent::class, UserGroupListener::class);
$context->registerEventListener(BeforeUserDeletedEvent::class, UserGroupListener::class);
$context->registerEventListener(UserAddedEvent::class, UserGroupListener::class);
$context->registerEventListener(UserRemovedEvent::class, UserGroupListener::class);
}

CreateBookmark::register($eventDispatcher);
public function boot(IBootContext $context): void {
$container = $context->getServerContainer();
CreateBookmark::register($container->get(IEventDispatcher::class));
}
}
6 changes: 3 additions & 3 deletions lib/Controller/BookmarkController.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IL10N;
use OCP\ILogger;
use Psr\Log\LoggerInterface;
use OCP\IURLGenerator;

class BookmarkController extends ApiController {
Expand All @@ -57,7 +57,7 @@ class BookmarkController extends ApiController {
private $l10n;

/**
* @var ILogger
* @var LoggerInterface
*/
private $logger;

Expand Down Expand Up @@ -117,7 +117,7 @@ class BookmarkController extends ApiController {
private $folders;

public function __construct(
$appName, $request, IL10N $l10n, BookmarkMapper $bookmarkMapper, TagMapper $tagMapper, FolderMapper $folderMapper, TreeMapper $treeMapper, PublicFolderMapper $publicFolderMapper, ITimeFactory $timeFactory, ILogger $logger, IURLGenerator $url, HtmlExporter $htmlExporter, Authorizer $authorizer, BookmarkService $bookmarks, FolderService $folders
$appName, $request, IL10N $l10n, BookmarkMapper $bookmarkMapper, TagMapper $tagMapper, FolderMapper $folderMapper, TreeMapper $treeMapper, PublicFolderMapper $publicFolderMapper, ITimeFactory $timeFactory, LoggerInterface $logger, IURLGenerator $url, HtmlExporter $htmlExporter, Authorizer $authorizer, BookmarkService $bookmarks, FolderService $folders
) {
parent::__construct($appName, $request);
$this->request = $request;
Expand Down
77 changes: 77 additions & 0 deletions lib/Dashboard/Widget.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<?php
/*
* Copyright (c) 2020. The Nextcloud Bookmarks contributors.
*
* This file is licensed under the Affero General Public License version 3 or later. See the COPYING file.
*/

namespace OCA\Bookmarks\Dashboard;

use OCP\Dashboard\IWidget;
use OCP\IL10N;
use OCP\Util;

class Widget implements IWidget {
/**
* @var IL10N
*/
private $l;
/**
* @var \OCP\IURLGenerator
*/
private $url;

/**
* Widget constructor.
*
* @param IL10N $l
* @param \OCP\IURLGenerator $url
*/
public function __construct(IL10N $l, \OCP\IURLGenerator $url) {
$this->l = $l;
$this->url = $url;
}


/**
* @inheritDoc
*/
public function getId(): string {
return 'bookmarks.recent';
}

/**
* @inheritDoc
*/
public function getTitle(): string {
return $this->l->t('Recent Bookmarks');
}

/**
* @inheritDoc
*/
public function getOrder(): int {
return 50;
}

/**
* @inheritDoc
*/
public function getIconClass(): string {
return 'icon-favorite';
}

/**
* @inheritDoc
*/
public function getUrl(): ?string {
return $this->url->linkToRouteAbsolute('bookmarks.web_view.index');
}

/**
* @inheritDoc
*/
public function load(): void {
Util::addScript('bookmarks', 'bookmarks-dashboard');
}
}
7 changes: 3 additions & 4 deletions lib/Flow/CreateBookmark.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
use OCP\Files\Folder;
use OCP\Files\Node;
use OCP\IL10N;
use OCP\ILogger;
use Psr\Log\LoggerInterface;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserSession;
Expand Down Expand Up @@ -47,11 +47,11 @@ class CreateBookmark implements IOperation {
*/
private $urlGenerator;
/**
* @var ILogger
* @var LoggerInterface
*/
private $logger;

public function __construct(IL10N $l, BookmarkService $bookmarks, IUserSession $session, IURLGenerator $urlGenerator, ILogger $logger) {
public function __construct(IL10N $l, BookmarkService $bookmarks, IUserSession $session, IURLGenerator $urlGenerator, LoggerInterface $logger) {
$this->l = $l;
$this->bookmarks = $bookmarks;
$this->session = $session;
Expand All @@ -61,7 +61,6 @@ public function __construct(IL10N $l, BookmarkService $bookmarks, IUserSession $

public static function register(IEventDispatcher $dispatcher): void {
if (interface_exists(IManager::class)) {
@include_once __DIR__ . '/../../vendor/autoload.php';
$dispatcher->addListener(IManager::EVENT_NAME_REG_OPERATION, static function ($event) {
$operation = OC::$server->query(CreateBookmark::class);
$event->getSubject()->registerOperation($operation);
Expand Down
2 changes: 1 addition & 1 deletion lib/Search/Provider.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public function search(IUser $user, ISearchQuery $query): SearchResult {
$bookmarks = $this->bookmarkMapper->findAll($user->getUID(), $params);

$results = array_map(function (Bookmark $bookmark) {
$favicon = $this->url->linkToRouteAbsolute('bookmarks.internal_bookmark_controller.get_bookmark_favicon', ['id' => $bookmark->getId()]);
$favicon = $this->url->linkToRouteAbsolute('bookmarks.internal_bookmark.get_bookmark_favicon', ['id' => $bookmark->getId()]);
$resourceUrl = $this->url->linkToRouteAbsolute('bookmarks.web_view.indexbookmark', ['bookmark' => $bookmark->getId()]);
return new SearchResultEntry($favicon, $bookmark->getTitle(), $bookmark->getUrl(), $resourceUrl);
}, $bookmarks);
Expand Down
4 changes: 2 additions & 2 deletions lib/Search/SearchResultEntry.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace OCA\Bookmarks\Search;

use OCP\Search\ASearchResultEntry;
use OCP\Search\SearchResultEntry as Entry;

class SearchResultEntry extends ASearchResultEntry {
class SearchResultEntry extends Entry {
}
8 changes: 4 additions & 4 deletions lib/Service/FaviconPreviewer.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
use OCP\Files\NotPermittedException;
use OCP\Http\Client\IClient;
use OCP\Http\Client\IClientService;
use OCP\ILogger;
use Psr\Log\LoggerInterface;

class FaviconPreviewer implements IBookmarkPreviewer {
public const CACHE_TTL = 4 * 4 * 7 * 24 * 60 * 60; // cache for one month
Expand All @@ -34,7 +34,7 @@ class FaviconPreviewer implements IBookmarkPreviewer {
private $linkExplorer;

/**
* @var ILogger
* @var LoggerInterface
*/
private $logger;

Expand All @@ -51,7 +51,7 @@ class FaviconPreviewer implements IBookmarkPreviewer {
*/
private $enabled;

public function __construct(FileCache $cache, LinkExplorer $linkExplorer, ILogger $logger, IClientService $clientService, \OCP\IConfig $config) {
public function __construct(FileCache $cache, LinkExplorer $linkExplorer, LoggerInterface $logger, IClientService $clientService, \OCP\IConfig $config) {
$this->cache = $cache;
$this->linkExplorer = $linkExplorer;
$this->logger = $logger;
Expand Down Expand Up @@ -123,7 +123,7 @@ protected function fetchImage($url): ?Image {
try {
$response = $this->client->get($url, ['timeout' => self::HTTP_TIMEOUT]);
} catch (Exception $e) {
$this->logger->debug($e, ['app' => 'bookmarks']);
$this->logger->debug($e->getMessage(), ['app' => 'bookmarks']);
return null;
}
$body = $response->getBody();
Expand Down
6 changes: 3 additions & 3 deletions lib/Service/LinkExplorer.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
use OCA\Bookmarks\Http\RequestFactory;
use OCP\Http\Client\IClientService;
use OCP\IConfig;
use OCP\ILogger;
use Psr\Log\LoggerInterface;
use phpUri;

class LinkExplorer {
Expand All @@ -27,7 +27,7 @@ class LinkExplorer {
*/
private $enabled;

public function __construct(IClientService $clientService, ILogger $logger, IConfig $config) {
public function __construct(IClientService $clientService, LoggerInterface $logger, IConfig $config) {
$client = $clientService->newClient();
$this->linkPreview = new LinkPreview(new Client($client), new RequestFactory());
$this->linkPreview->getParser('general')->setMinimumImageDimensions(150, 550);
Expand All @@ -53,7 +53,7 @@ public function get($url): array {
libxml_use_internal_errors(false);
$preview = $this->linkPreview->getLink($url)->getPreview();
} catch (Exception $e) {
$this->logger->debug($e, ['app' => 'bookmarks']);
$this->logger->debug($e->getMessage(), ['app' => 'bookmarks']);
return $data;
}

Expand Down
10 changes: 5 additions & 5 deletions lib/Service/Previewers/DefaultBookmarkPreviewer.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
use OCA\Bookmarks\Service\LinkExplorer;
use OCP\Http\Client\IClient;
use OCP\Http\Client\IClientService;
use OCP\ILogger;
use Psr\Log\LoggerInterface;

class DefaultBookmarkPreviewer implements IBookmarkPreviewer {
public const CACHE_PREFIX = 'bookmarks.DefaultPreviewService';
Expand All @@ -27,15 +27,15 @@ class DefaultBookmarkPreviewer implements IBookmarkPreviewer {
/** @var LinkExplorer */
protected $linkExplorer;

/** @var ILogger */
/** @var LoggerInterface */
private $logger;

/**
* @param LinkExplorer $linkExplorer
* @param IClientService $clientService
* @param ILogger $logger
* @param LoggerInterface $logger
*/
public function __construct(LinkExplorer $linkExplorer, IClientService $clientService, ILogger $logger) {
public function __construct(LinkExplorer $linkExplorer, IClientService $clientService, LoggerInterface $logger) {
$this->linkExplorer = $linkExplorer;
$this->client = $clientService->newClient();
$this->logger = $logger;
Expand Down Expand Up @@ -72,7 +72,7 @@ protected function fetchImage($url): ?Image {
try {
$response = $this->client->get($url, ['timeout' => self::HTTP_TIMEOUT]);
} catch (Exception $e) {
$this->logger->debug($e, ['app' => 'bookmarks']);
$this->logger->debug($e->getMessage(), ['app' => 'bookmarks']);
return null;
}
$body = $response->getBody();
Expand Down
Loading