X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/57e571d241875e867ba5d419fc71cd47c1792a67..c29bcca57b9a05a3ca1e55d5b3a089c7ef0b1a03:/lib/short_link.rb 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?