this post was submitted on 30 May 2024
10 points (100.0% liked)

Django

391 readers
5 users here now

Django Project

Django Community

Django Ecosystem

Jobs
Learning/Docs
Podcasts:
Related Fediverse communities
Feeds

founded 1 year ago
MODERATORS
top 6 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 1 month ago

Named for the famous Tim Berners-Lee quote, django-cool-urls is a little library that lets you link to a web page or embedded video from your site, and should that link ever die (the site removed the page, or just died altogether, etc.) your site will swap out the external link for a local copy.

[–] [email protected] 2 points 1 month ago (1 children)

So is this basically caching every foreign page and video you link to?

[–] [email protected] 2 points 1 month ago

Yup. But it only swaps out the link from remote to local if show_local is set to True, which can be done automatically if the remote URL ever 404s.

[–] blazebra 2 points 1 month ago

It would be more cool with better descriptions and visual examples

[–] [email protected] 2 points 1 month ago (1 children)

It's certainly an interesting project, and addresses an important concern (link rot). But the security implications of archiving arbitrary sites/js and then running that on your own domain are rather horrifying to me (especially if this would be used for any user supplied links).

Personally, I'd rather have a service that automatically submits any external links to an existing archiver (archive.org) and then falls back to that source when the original 404s, rather than serving those pages/videos locally.

[–] [email protected] 3 points 1 month ago

Yeah I thought about the security cases, but decided it wasn't a problem for my situation since I was only archiving links that I'm selecting. If I were to open this to us, yeah that's a real risk. I should probably add something about this in the docs.

The suggestion of pointing to archive.org was floated to me by someone on Mastodon actually, and I think I'll probably add that option as well. Just not right now. I'm tired 😆