mirror of
https://github.com/wallabag/wallabag.git
synced 2024-11-14 21:11:06 +00:00
Merge pull request #6822 from yguedidi/resolve-self-depreciation
Resolve self depreciation
This commit is contained in:
commit
4482e52f3a
8 changed files with 41 additions and 8 deletions
|
@ -46,11 +46,15 @@ class UpdatePicturesPathCommand extends Command
|
|||
$io->text('Retrieve existing entries');
|
||||
$i = 1;
|
||||
foreach ($query->toIterable() as $entry) {
|
||||
$content = str_replace($oldUrl, $this->wallabagUrl, $entry->getContent());
|
||||
$entry->setContent($content);
|
||||
$content = $entry->getContent();
|
||||
if (null !== $content) {
|
||||
$entry->setContent(str_replace($oldUrl, $this->wallabagUrl, $content));
|
||||
}
|
||||
|
||||
$previewPicture = str_replace($oldUrl, $this->wallabagUrl, $entry->getPreviewPicture());
|
||||
$entry->setPreviewPicture($previewPicture);
|
||||
$previewPicture = $entry->getPreviewPicture();
|
||||
if (null !== $previewPicture) {
|
||||
$entry->setPreviewPicture(str_replace($oldUrl, $this->wallabagUrl, $previewPicture));
|
||||
}
|
||||
|
||||
if (0 === ($i % 20)) {
|
||||
$this->entityManager->flush();
|
||||
|
|
|
@ -518,7 +518,7 @@ class EntryController extends AbstractController
|
|||
);
|
||||
|
||||
// don't redirect user to the deleted entry (check that the referer doesn't end with the same url)
|
||||
$prev = $request->getSession()->get('prevUrl');
|
||||
$prev = $request->getSession()->get('prevUrl', '');
|
||||
$to = (1 !== preg_match('#' . $url . '$#i', $prev) ? $prev : null);
|
||||
|
||||
$redirectUrl = $this->redirectHelper->to($to);
|
||||
|
|
|
@ -45,7 +45,7 @@ class TagController extends AbstractController
|
|||
$form = $this->createForm(NewTagType::class, new Tag());
|
||||
$form->handleRequest($request);
|
||||
|
||||
$tags = $form->get('label')->getData();
|
||||
$tags = $form->get('label')->getData() ?? '';
|
||||
$tagsExploded = explode(',', $tags);
|
||||
|
||||
// avoid too much tag to be added
|
||||
|
|
|
@ -17,6 +17,8 @@ class EntryFixtures extends Fixture implements DependentFixtureInterface
|
|||
*/
|
||||
public function load(ObjectManager $manager): void
|
||||
{
|
||||
$now = new \DateTime();
|
||||
|
||||
$entries = [
|
||||
'entry1' => [
|
||||
'user' => 'admin-user',
|
||||
|
@ -72,6 +74,7 @@ class EntryFixtures extends Fixture implements DependentFixtureInterface
|
|||
'content' => 'This is my content /o/',
|
||||
'language' => 'fr',
|
||||
'starred' => true,
|
||||
'starred_at' => $now,
|
||||
'preview' => 'http://0.0.0.0/image.jpg',
|
||||
],
|
||||
'entry6' => [
|
||||
|
@ -84,6 +87,7 @@ class EntryFixtures extends Fixture implements DependentFixtureInterface
|
|||
'content' => 'This is my content /o/',
|
||||
'language' => 'de',
|
||||
'archived' => true,
|
||||
'archived_at' => $now,
|
||||
'tags' => ['bar-tag'],
|
||||
'is_not_parsed' => true,
|
||||
],
|
||||
|
@ -113,10 +117,18 @@ class EntryFixtures extends Fixture implements DependentFixtureInterface
|
|||
$entry->setStarred($item['starred']);
|
||||
}
|
||||
|
||||
if (isset($item['starred_at'])) {
|
||||
$entry->setStarredAt($item['starred_at']);
|
||||
}
|
||||
|
||||
if (isset($item['archived'])) {
|
||||
$entry->setArchived($item['archived']);
|
||||
}
|
||||
|
||||
if (isset($item['archived_at'])) {
|
||||
$entry->setArchivedAt($item['archived_at']);
|
||||
}
|
||||
|
||||
if (isset($item['preview'])) {
|
||||
$entry->setPreviewPicture($item['preview']);
|
||||
}
|
||||
|
|
|
@ -94,7 +94,7 @@ class EntryFilterType extends AbstractType
|
|||
->add('domainName', TextFilterType::class, [
|
||||
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
|
||||
$value = $values['value'];
|
||||
if (\strlen($value) <= 2 || empty($value)) {
|
||||
if (empty($value) || \strlen($value) <= 2) {
|
||||
return false;
|
||||
}
|
||||
$expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->lower($filterQuery->getExpr()->literal('%' . $value . '%')));
|
||||
|
|
|
@ -58,11 +58,19 @@ class WallabagExtension extends AbstractExtension implements GlobalsInterface
|
|||
|
||||
public function removeWww($url)
|
||||
{
|
||||
if (!\is_string($url)) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
return preg_replace('/^www\./i', '', $url);
|
||||
}
|
||||
|
||||
public function removeScheme($url)
|
||||
{
|
||||
if (!\is_string($url)) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
return preg_replace('#^https?://#i', '', $url);
|
||||
}
|
||||
|
||||
|
|
|
@ -1022,6 +1022,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
|
||||
public function testSaveIsArchivedAfterPatch()
|
||||
{
|
||||
$now = new \DateTime();
|
||||
$entry = $this->client->getContainer()
|
||||
->get(EntityManagerInterface::class)
|
||||
->getRepository(Entry::class)
|
||||
|
@ -1043,6 +1044,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
|
||||
$this->assertSame(1, $content['is_archived']);
|
||||
$this->assertSame($previousTitle . '++', $content['title']);
|
||||
$this->assertGreaterThanOrEqual((new \DateTime($content['archived_at']))->getTimestamp(), $now->getTimestamp());
|
||||
}
|
||||
|
||||
public function testSaveIsStarredAfterPatch()
|
||||
|
@ -1056,6 +1058,9 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
if (!$entry) {
|
||||
$this->markTestSkipped('No content found in db.');
|
||||
}
|
||||
|
||||
$previousTitle = $entry->getTitle();
|
||||
|
||||
$this->client->request('PATCH', '/api/entries/' . $entry->getId() . '.json', [
|
||||
'title' => $entry->getTitle() . '++',
|
||||
]);
|
||||
|
@ -1065,7 +1070,8 @@ class EntryRestControllerTest extends WallabagApiTestCase
|
|||
$content = json_decode($this->client->getResponse()->getContent(), true);
|
||||
|
||||
$this->assertSame(1, $content['is_starred']);
|
||||
$this->assertGreaterThanOrEqual($now->getTimestamp(), (new \DateTime($content['starred_at']))->getTimestamp());
|
||||
$this->assertSame($previousTitle . '++', $content['title']);
|
||||
$this->assertGreaterThanOrEqual((new \DateTime($content['starred_at']))->getTimestamp(), $now->getTimestamp());
|
||||
}
|
||||
|
||||
public function dataForEntriesExistWithUrl()
|
||||
|
|
|
@ -59,6 +59,7 @@ class WallabagExtensionTest extends TestCase
|
|||
$this->assertSame('lemonde.fr', $extension->removeScheme('lemonde.fr'));
|
||||
$this->assertSame('gist.github.com', $extension->removeScheme('gist.github.com'));
|
||||
$this->assertSame('gist.github.com', $extension->removeScheme('https://gist.github.com'));
|
||||
$this->assertSame('gist.github.com', $extension->removeScheme('http://gist.github.com'));
|
||||
}
|
||||
|
||||
public function testRemoveSchemeAndWww()
|
||||
|
@ -82,8 +83,10 @@ class WallabagExtensionTest extends TestCase
|
|||
$extension = new WallabagExtension($entryRepository, $tagRepository, $tokenStorage, 0, $translator, '');
|
||||
|
||||
$this->assertSame('lemonde.fr', $extension->removeSchemeAndWww('www.lemonde.fr'));
|
||||
$this->assertSame('lemonde.fr', $extension->removeSchemeAndWww('http://www.lemonde.fr'));
|
||||
$this->assertSame('lemonde.fr', $extension->removeSchemeAndWww('http://lemonde.fr'));
|
||||
$this->assertSame('lemonde.fr', $extension->removeSchemeAndWww('https://www.lemonde.fr'));
|
||||
$this->assertSame('lemonde.fr', $extension->removeSchemeAndWww('https://lemonde.fr'));
|
||||
$this->assertSame('gist.github.com', $extension->removeSchemeAndWww('https://gist.github.com'));
|
||||
$this->assertSame('ftp://gist.github.com', $extension->removeSchemeAndWww('ftp://gist.github.com'));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue