Piotrekol / CollectionManager

An extensive tool for creating, editing, and exporting of osu! collections.
231 stars 17 forks source link

[Proposal] Auto backup for not restorable(unsubmitted) beatmapsets along with osdb #78

Open EnergoStalin opened 1 year ago

EnergoStalin commented 1 year ago

TLDR

Use case

When you want truly backup your beatmaps(unsubmitted/unknown included) you ran into issue with CM because you have information to download submitted maps that has actual id.

Existing solutions

There's a lot of projects what can zip you Songs folder entirely and move it somewhere else.

Their pros

Existing solution summary

Using zipping along with CM .osdb would be a lot better because you only need to zip maps that can't be downloaded. But there's still possibility for loosing beatmaps having id's but incorrect one. I hope this solution has better space/loss ratio than not considering that case at all.

Some related projects osu-backup, 7z, winrar for god sake.

Question

I'd like to know would this functionality will be welcomed in codebase of this project or i should ask for having CollectionManagerDLL on nuget and write separate tool for that purpose.

Why even asking

I'm asking because this project has most functionality needed along for that and i think it's nice to have all even barely related features in one place.

Summary

The thing i want is. Make possible to create backup of unrecognized maps along with normal .osdb not only these what don't have id for.

What a hell are you talked about this whole time

You may ask why it's even needed if you just can create osdb and just manually zip folders not starting with numbers. I will answer idk but in reality we have a lot of unknown beatmaps sticking around collections in osdb maybe this would let look at problem of osu lost media from different side than #56 do. Also i can't guarantee that manual method would work without further research. So let's listen what what osu genius think first.

Piotrekol commented 1 year ago

Just to clarify: what you are asking for is the ability to backup map folders that are not restorable (unsubmitted)? If so, go for it - but instead of just creating one big zip of maps I'd suggest creating individual map .oszs instead.

CM already allows you to recreate osz map files from beatmaps or collections selected, so part of that code could be yoinked/reused here.

EnergoStalin commented 1 year ago

what you are asking for is the ability to backup map folders that are not restorable (unsubmitted)?

Yes.

but instead of just creating one big zip of maps I'd suggest creating individual map .oszs instead

Yes this would be better for import purposes too the point is to have single file output with let's say osdbz extension. osdbz - just another one regular archive with osdb file and oszs. This can be option tho cause it's just matter of preference to have it zipped together automatically.

Not sure when i have time to implement this let's just let it hang like that until i'm free or someone want to pick up this.

Leave it below as cultural heritage cause it no longer has sense due to path peppy choose for laser. Sound's like he already did it tho with built in beatmap browser but it's not exactly what was addressed in issue looking only on this statement. Collection sharing is tracked here which initially was properly answered in osu-web Still hope something like #2351, #13194(basically the same) will be implemented sometime. Which i dare to summarize here. Sounds crazy to be able have this in game when official collection sharing never been supported by client.

Also i'd like to hear you thought's about this huge off topic section.

A lot probably off topic

Why lazer should probably support osdb*

I also thinking about lazer supporting import from osdb/osdbz because recently completely switched on linux and i think bringing half osu.framework here as dependency or have 2 sources of truth not worth efforts especially when lazer already have built in download and import functionality.

What if peppy approve

So if peppy consider such feature needed then osdb* formats parsing functionality can be moved to small separate package and integrated with lazer imports.

Different approach

Or maybe it can be done simpler by extending lazer's legacy import with different .db recognition on drag n drop and download missing beatmaps from osu.db functionality which not perfect when restoring unsubmitted beatmaps from backup of just .db files but at least not require extra dependencies like osdb support.

Doubts

Despite said earlier i'm not sure if that would be needed in long term i mean after lazer replaces legacy client. It may be a separate tool for sure but adding this in client itself... seems a little overfeaturing. Especially counting on this to be implemented #13025/#6006 this will not fix problem of unsubmitted beatmaps tho.