X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/9a32033209545a69d60cbd551e6bd975cda64341..2fb777c5be4c4b5b94b8bd5bee5f7670e3425e9d:/lib/short_link.rb?ds=sidebyside diff --git a/lib/short_link.rb b/lib/short_link.rb index b91d7e569..045883d57 100644 --- a/lib/short_link.rb +++ b/lib/short_link.rb @@ -9,7 +9,7 @@ module ShortLink # array of 64 chars to encode 6 bits. this is almost like base64 encoding, but # the symbolic chars are different, as base64's + and / aren't very # URL-friendly. - ARRAY = ('A'..'Z').to_a + ('a'..'z').to_a + ('0'..'9').to_a + ['_','@'] + ARRAY = ('A'..'Z').to_a + ('a'..'z').to_a + ('0'..'9').to_a + ['_','~'] ## # Given a string encoding a location, returns the [lon, lat, z] tuple of that @@ -20,6 +20,11 @@ module ShortLink z = 0 z_offset = 0 + # keep support for old shortlinks which use the @ character, now + # replaced by the ~ character because twitter is horribly broken + # and we can't have that. + str.gsub!("@","~") + str.each_char do |c| t = ARRAY.index c if t.nil?