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

Linkwarden updating a URL not working #1742

Closed
1 task
Morethanevil opened this issue Oct 8, 2024 · 18 comments
Closed
1 task

Linkwarden updating a URL not working #1742

Morethanevil opened this issue Oct 8, 2024 · 18 comments

Comments

@Morethanevil
Copy link

Which version of floccus are you using?

5.3.0

How many bookmarks do you have, roughly?

150

Are you using other means to sync bookmarks in parallel to floccus?

No

Sync method

Linkwarden

Which browser are you using? In case you are using the phone App, specify the Android or iOS version and device please.

Firefox latest stable

Which version of Nextcloud Bookmarks are you using? (if relevant)

No response

Which version of Nextcloud? (if relevant)

No response

What kind of WebDAV server are you using? (if relevant)

No response

Describe the Bug

If you create a bookmark and later update its URL, it is not updated in Linkwarden. It still refers to the old URL. Sometimes URLs gets updated like in GitHub when the repo changes from private to organization, or you remove unnecessary parts of it like trackers etc...

I know it is not possible to edit URLs in Linkwarden too, but maybe this is something to worked on.

Expected Behavior

Update the URL or delete the old one and save the new one. Maybe moving the old one to an "archive" would be great.

To Reproduce

Create a bookmark, wait for Linkwarden to finish. Update the URL :)

Debug log provided

  • I have provided a debug log file
Copy link

github-actions bot commented Oct 8, 2024

Hello 👋

Thank you for taking the time to open this issue with floccus. I know it's frustrating when software
causes problems. You have made the right choice to come here and open an issue to make sure your problem gets looked at
and if possible solved.
I'm Marcel and I created floccus a few years ago, maintaining it ever since. I currently work for Nextcloud
which leaves me with less time for side projects like this one than I used to have.
I still try to answer all issues and if possible fix all bugs here, but it sometimes takes a while until I get to it.
Until then, please be patient.
Note also that GitHub is a place where people meet to make software better together. Nobody here is under any obligation
to help you, solve your problems or deliver on any expectations or demands you may have, but if enough people come together we can
collaborate to make this software better. For everyone.
Thus, if you can, you could also have a look at other issues to see whether you can help other people with your knowledge
and experience. If you have coding experience it would also be awesome if you could step up to dive into the code and
try to fix the odd bug yourself. Everyone will be thankful for extra helping hands!
To continue the development and maintenance of this project in a sustainable way it is expected that you donate to the project when opening a ticket,
if you're not a donor already. You can find donation options at https://floccus.org/donate/. Thank you!

One last word: If you feel, at any point, like you need to vent, this is not the place for it; you can go to the Nextcloud forum,
to twitter or somewhere else. But this is a technical issue tracker, so please make sure to
focus on the tech and keep your opinions to yourself.

I look forward to working with you on this issue
Cheers 💙

@marcelklehr
Copy link
Member

marcelklehr commented Oct 9, 2024

Hey @Morethanevil
Good news: In the upcoming Linkwarden release editing URLs will be supported

@Morethanevil
Copy link
Author

Great news! :)

Will try out when released!

@github-project-automation github-project-automation bot moved this to Backlog in Floccus Oct 20, 2024
@Morethanevil
Copy link
Author

Tried today with Linkwarden 2.8.0 and Floccus 5.3.3. Floccus syncs fine, but it does not update the URL in Linkwarden. No error message

Android app still gives me error message: "Failed to map parentid: 0" after a while

@marcelklehr
Copy link
Member

Mmh, not even when you force a sync up?

The mapping failure on android is a known issue, which is likely unrelated.

@Morethanevil
Copy link
Author

I changed an URL, then clicked on upload once, opened Linkwarden but still the old URL

@marcelklehr
Copy link
Member

cc @daniel31x13 It seems that PUT to linkwarden with the new URL still doesn't work

@daniel31x13
Copy link

Strange, I even used Bruno to check the endpoints but it's working.

FYI here's what the schema looks like in Zod:

export const UpdateLinkSchema = z.object({
  id: z.number(),
  name: z.string().trim().max(2048).optional(),
  url: z.string().trim().max(2048).optional(),
  description: z.string().trim().max(2048).optional(),
  icon: z.string().trim().max(50).nullish(),
  iconWeight: z.string().trim().max(50).nullish(),
  color: z.string().trim().max(10).nullish(),
  collection: z.object({
    id: z.number(),
    ownerId: z.number(),
  }),
  tags: z.array(
    z.object({
      id: z.number().optional(),
      name: z.string().trim().max(50),
    })
  ),
  pinnedBy: z
    .array(
      z
        .object({
          id: z.number().optional(),
        })
        .optional()
    )
    .optional(),
});

https://github.com/linkwarden/linkwarden/blob/c8efd4f9db7b873f0d4b4e31bc1821b1dec91161/lib/shared/schemaValidation.ts#L118

@187622085
Copy link

@marcelklehr can you please provide the steps for using Floccus with Linkwarden on your site?

@marcelklehr
Copy link
Member

@187622085 Ah, you mean publish a linkwarden guide? Yep, good point!

@marcelklehr
Copy link
Member

marcelklehr commented Nov 15, 2024

This is the code for floccus:

https://github.com/floccusaddon/floccus/blob/develop/src/lib/adapters/Linkwarden.ts#L110-L126

    Logger.log('(linkwarden)UPDATE', {bookmark})
    const {response: collection} = await this.sendRequest('GET', `/api/v1/collections/${bookmark.parentId}`)
    await this.sendRequest(
      'PUT', `/api/v1/links/${bookmark.id}`,
      'application/json',
      {
        url: bookmark.url,
        name: bookmark.title,
        tags: [],
        collection: {
          id: bookmark.parentId,
          name: collection.name,
          ownerId: collection.ownerId,
        },
      })

It seems that I'm missing icon, iconWeight and color? Why doesn't it error though?

@daniel31x13
Copy link

@marcelklehr because they can be either null or undefined.

In zod:

  • nullable() means it can be null.
  • optional() means it can be undefined.
  • nullish() means it can be either null or undefined.

@marcelklehr
Copy link
Member

But then what am I doing wrong?

@daniel31x13
Copy link

@marcelklehr hmm, could you log the response of the following request as well:

await this.sendRequest(
      'PUT', `/api/v1/links/${bookmark.id}`,
      'application/json',
      {
        url: bookmark.url,
        name: bookmark.title,
        tags: [],
        collection: {
          id: bookmark.parentId,
          name: collection.name,
          ownerId: collection.ownerId,
        },
      })

It seems like link updates reflect correctly from the server to the browser but not vice versa. (It's not just the url field.)

@marcelklehr
Copy link
Member

Ah, I'm missing the id

marcelklehr added a commit that referenced this issue Nov 17, 2024
@marcelklehr
Copy link
Member

Should be fixed in v5.3.4

@marcelklehr marcelklehr moved this from On hold to In progress in Floccus Nov 18, 2024
@marcelklehr
Copy link
Member

@Morethanevil Can you confirm?

@Morethanevil
Copy link
Author

@Morethanevil Can you confirm?

Yes works fine, tested with Linkwarden 2.8.3 and Floccus 5.3.4

Thanks! :)

@github-project-automation github-project-automation bot moved this from In progress to Done in Floccus Nov 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

No branches or pull requests

4 participants