I’ve been pondering about a project idea I had, and it seems there’s no existing lexicon set for sharing documents of any type. I don’t want to focus on a single type, because I want this lexicon to be for general purpose documents. Including but not limited to images, videos, zip archives, blender models, PDF, binary files, software packages…
Maybe someone would be interested by such thing? I’d see an usecase for general purpose file sharing applications as an alternative to things like Google Drive or MediaFire…
The lexicon could be named community.lexicon.download or community.lexicon.file. Maybe we need one lexicon that represents the shared document, and separate lexicons for the distribution type? (community.lexicon.file.ipfs, community.lexicon.file.magnet, community.lexicon.blob, community.lexicon.externalurl)
A record contains would contain the filename, content type, estimated size, date of publication, hash, and an optional short description or title.
The record optionally contains different methods of distribution, all of them are optional :
- Reference to the blob in a PDS
- CID for IPFS
- BitTorrent Magnet link
- Maybe an external URL for whom may use Google Drive anyway?
If no method of distribution is defined in the record, the AppView/client/consumer should not index the record ; or tell the user that no distribution content has been defined.
An app that I would build would display something like this to the end-user. Each button will display conditionally depending on which distribution channel is available. I’d take inspiration from GameJolt games and each game release, Github releases or a public MediaFire/Google Drive download…
If possible, and depending on the file type, a preview of the file should be shown to the end-user. If the document is only distributed through IPFS, then it would preview using its gateway. For BitTorrent, there’s no way to preview the file. For zip files, an AppView would be responsible of generating a preview of the content if possible.
A social app should be able to search records based on the filename, size, date of publication, distribution methods or file type. Some social applications could be imageboard or video sharing websites and use those lexicons, if the developer finds it relevant.
