summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md1
-rw-r--r--lib/Service/ImportService.php19
2 files changed, 10 insertions, 10 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4e4e50aa0..a51c125d2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,7 @@ The format is mostly based on [Keep a Changelog](https://keepachangelog.com/en/1
### Changed
### Fixed
+- Fix import of items when feed does not exist (1742)
# Releases
## [18.0.1-beta2] - 2022-03-22
diff --git a/lib/Service/ImportService.php b/lib/Service/ImportService.php
index 7b593356e..1cae9bd89 100644
--- a/lib/Service/ImportService.php
+++ b/lib/Service/ImportService.php
@@ -16,7 +16,7 @@ namespace OCA\News\Service;
use \OCA\News\Db\Item;
use \OCA\News\Db\Feed;
-use \Psr\Log\LoggerInterface;
+use Psr\Log\LoggerInterface;
use \HTMLPurifier;
/**
@@ -75,8 +75,6 @@ class ImportService
*/
public function importArticles(string $userId, array $json): ?\OCP\AppFramework\Db\Entity
{
- $url = 'http://nextcloud/nofeed';
-
// build assoc array for fast access
$feeds = $this->feedService->findAllForUser($userId);
$feedsDict = [];
@@ -90,21 +88,22 @@ class ImportService
// if the feed does not exist, create a separate feed for them
foreach ($json as $entry) {
$item = Item::fromImport($entry);
- $feedLink = $entry['feedLink']; // this is not set on the item yet
+ $feedLink = $entry['feedLink']; // this is not set on the item
if (array_key_exists($feedLink, $feedsDict)) {
$feed = $feedsDict[$feedLink];
} else {
+ $this->logger->info("Creating new feed for import of". $feedLink);
$createdFeed = true;
$feed = new Feed();
$feed->setUserId($userId)
- ->setUrlHash(md5($url))
- ->setLink($url)
- ->setUrl($url)
- ->setTitle('Articles without feed')
+ ->setUrlHash(md5($feedLink))
+ ->setLink($feedLink)
+ ->setUrl($feedLink)
+ ->setTitle('No Title')
->setAdded(time())
->setFolderId(null)
- ->setPreventUpdate(true);
+ ->setPreventUpdate(false);
/** @var Feed $feed */
$feed = $this->feedService->insert($feed);
@@ -121,6 +120,6 @@ class ImportService
return null;
}
- return $this->feedService->findByURL($userId, $url);
+ return $this->feedService->findByURL($userId, $feedLink);
}
}