lbryio / spee.ch

An image hosting service on top of the LBRY protocol.
https://spee.ch
MIT License
185 stars 78 forks source link

Verify hard fork does not break restricted characters '@' and '#' #809

Open skhameneh opened 5 years ago

skhameneh commented 5 years ago

https://github.com/lbryio/spee.ch/issues/618

Verify restricted characters are treated as restricted.

jessopb commented 5 years ago

quote: the present design does not restrict any data. All possible byte combinations will continue to be available. @ and # are currently allowed in claimnames at any location, and that will be true after the fork. Any valid UTF-8 will be normalized and lower-cased. Anything that is not valid UTF-8 will compete only with those exact bytes.

Our : separator for our shortId will likely be an issue if people use it in their claim name.

jessopb commented 5 years ago

suppose a channel named @me:you , short Id :1 and claim name a:z You'd have spee.ch/@me:you:1/a:z as the url. Is this something speech should support?

neb-b commented 5 years ago

I'm not sure how much spee.ch wants to move away from breaking the old link paths, or if it can forward them easily, but for lbry.tv, using / as separators seems to work really well.

We have two generic paths that are lbry.tv/:claimName/:claimId lbry.tv/:claimName

This allows us to avoid ignoring any specific characters as long as they are contained by a /

Our regular pages use /$/ ex lbry.tv/$/subscriptions

This still allows for lbry://$, because it will match lbry.tv/:claimName, and won't conflict with the other path lbry.tv/:claimName/:claimId because we will never have a claim id that matches one of our page names.

https://github.com/lbryio/lbry-desktop/blob/master/src/ui/component/router/view.jsx

Hopefully this helps a little.

jessopb commented 5 years ago

Currently on speech we have a shortId system differentiating channels in the url bar. It doesn't look like desktop tried to tackle that yet, and I believe that something like that will be built into sdk eventually. Speech canonical looks different from desktop: /:claimId/:claimName where :claimId can be '7e' or '@channel:7e' and claimName is 'claimName' /:claimName where claimName is either @channelName, @channelName:partialId, or 'claimName' to be redirected to channel or controlling