floccus
floccus copied to clipboard
Linkwarden updating a URL not working
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
Hello :wave:
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 :blue_heart:
Hey @Morethanevil Good news: In the upcoming Linkwarden release editing URLs will be supported
Great news! :)
Will try out when released!
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
Mmh, not even when you force a sync up?
The mapping failure on android is a known issue, which is likely unrelated.
I changed an URL, then clicked on upload once, opened Linkwarden but still the old URL
cc @daniel31x13 It seems that PUT to linkwarden with the new URL still doesn't work
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
@marcelklehr can you please provide the steps for using Floccus with Linkwarden on your site?
@187622085 Ah, you mean publish a linkwarden guide? Yep, good point!
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?
@marcelklehr because they can be either null or undefined.
In zod:
nullable()means it can benull.optional()means it can beundefined.nullish()means it can be eithernullorundefined.
But then what am I doing wrong?
@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.)
Ah, I'm missing the id
Should be fixed in v5.3.4
@Morethanevil Can you confirm?
@Morethanevil Can you confirm?
Yes works fine, tested with Linkwarden 2.8.3 and Floccus 5.3.4
Thanks! :)
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.