kensanata / mastodon-archive

Archive your statuses, favorites and media using the Mastodon API (i.e. login required)
https://alexschroeder.ch/software/Mastodon_Archive
GNU General Public License v3.0
358 stars 33 forks source link

Implement exporting the archive into Meow #72

Closed cutiful closed 2 years ago

cutiful commented 2 years ago

This commit adds a new command, meow. It loads the data, finds any downloaded media (just a blanket check for any URLs in statuses and favorites, since the user probably wants to use all media they downloaded), then serves everything with CORS headers that allow Meow to load it. In case there's more than one file to load, displays a progress bar. Exits automatically after the export has finished.

If a media file doesn't exist locally, Meow will generally try to load it from the remote server. One notable exception is profile pictures and banners — Meow will use fallback versions as Mastodon Archive doesn't save them.

Boosts and favorites will use post contents and media from the backup, but not user profiles (because of how Meow works internally), those will be fetched from their instances.

I think it should work with split archives too, since I'm loading data through core, but I haven't tested it.

I updated Meow for this, so can already test the integration. Once merged, I'll update my about page with usage instructions.

(Hope this code is okay, I don't know Python.)

kensanata commented 2 years ago

Apparently I unwatched this repo at some point in time. Sorry for not seeing this MR. I will add a little something to the README as well.

kensanata commented 2 years ago

33750d9

cutiful commented 2 years ago

No worries. Thanks!

I just realized that I can't publish usage instructions, because this integration isn't yet available in the package on PyPi. Do you by any chance have a planned release date?

cutiful commented 2 years ago

On a second thought, I could maybe try to implement saving the profile picture and header and send a PR first.

kensanata commented 2 years ago

As for a release: do you want to wait for a bit, or do you feel we can release right now? I haven't made any big changes, recently, but I only changed notification expiry in the case that you want to expire all other notifications that the archive doesn't care about (and it still doesn't work, so it's basically unchanged). I guess all in all I'm not worried. Whenever you're ready.

cutiful commented 2 years ago

Not sure, to be honest — I tested everything I could, so my changes should theoretically work. But I don't know Python and there could be something I didn't notice. On the other hand, we won't know until the release either, since everyone probably uses the PyPi package. And the README here already lists the Meow integration as an available feature, so it's a bit weird for it not to be. Or do you want to wait so that it's a bigger release with more new features?

kensanata commented 2 years ago

I just remembered about this! I pushed a release 1.4.1 to pypi! Sorry for the long delay.

cutiful commented 2 years ago

No worries. Thanks! I published an update that mentions the integration on the about page.