You are reading content from Scuttlebutt
@SoapDog (Macbook Air M1) %BzDLNkVcj6zrdPwSB0R1I6uRR9YOEMYhnglyDfe60Mc=.sha256

RFC: new bookDistribution message type.

I want to augment the book feature in SSB with a new message type called bookDistribution that contains a reference — link or blob — to where the book is available. This could be used to distribute digital books inside SSB feeds (provided you have the right to do so) or link to where a reader can obtain them on the Web or some other protocol.

This message is an attempt to work with the community on this instead of simply shipping the feature without a healthy convo.

User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %Uz+nJX4p6Pij1/Ate535uS+5TzanMC7oDm9VEAaNKyg=.sha256

@cblgh,

I was planning to avoid all that complexity by simply allowing multiple bookDistribution messages per book. Each message could either refer to a blob id thus allowing for shipping epubs inside a feed, or simply be a string containing a URL. The URL can be from anywhere, it could be a libgen URL, or it could be a hyper:// URL, the UI would simply list them all.

It could work like vote with an integer next to the reference with +1 or -1. This could allow for tombstoning URLs by sending another bookDistribution message with the same URL but a -1 instead of a +1.

I like keeping things very simple...

User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %s2G+LJNueruLcwk/cQAXV4QkvjDa0MYAtWPbYJNju0M=.sha256

@Powersource (phone), well, people can already post blobs of copyrighted material anyway, and there is no way of tombstoning them at all. A bookDistribution feature makes books more useful in SSB, it doesn't mean you need to use it to ship pirate copies of an epub. You can simply link to a store or universal book url.

User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %B2pUD/aNHUdsx1eePbRqE16/P6oLntxuLFOWdrVzz0A=.sha256

@Powersource (phone) I was thinking about something like:

{
  "type": "bookDistribution",
  "book": "%hash_to_book_message",
  "link": <url>,
  "blob": "&blob-id",
  "value": 1 || -1
}

And you could leave either link or blob empty. There can be multiple bookDistribution messages linking to the same book. The UI would do some reconciliation based on the sum of value for a given URL or Blob.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %vM0C8g9xKhwFHBfvpuxNYV1yfvJ4r+Cv+FKc5JYjLC4=.sha256

@Powersource (phone) that is a very good idea. The blob field should contain a mime type and file name if possible.

I'm avoiding dependencies. I think that keeping things simple might lead to a solution that is not the the most elegant one, but it creates something that is very easy to understand and eventually reimplement in other languages.

User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %uEsmjRjnpR/6rXI75lYJXQqePuMqvgeEnaBRgBfNyFM=.sha256

@Powersource (phone) in my book, two messages is a no for displaying that URL. What you do is sum all those values, if it is above zero, then the URL is displayed.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %O5zgIoYRAYPjap028yzZpcdK2PvrBSomM+/TLcAaPdk=.sha256

@Mix Android,

I can't use ISBN as a universal id, not only because many digital books are distributed without an ISBN but also because many books have more than one ISBN associated with it. It is not uncommon for different editions, regions, or even cover options for a given book to be assigned different ISBNs.

maybe bookDistribution/link, bookDistribution/blob, bookDistribution/tombstone with about messages commenting on them might be the way to go. It is a bit more complex than what I originally intended but it can still be developed without too many dependencies.

User has not chosen to be hosted publicly
Join Scuttlebutt now