module UsersHelper def markdown(text) if !text.nil? && !text.blank? text = put_emote( Rack::Utils.escape_html( text ) .gsub( /\n/, '
' ) .gsub( /```/, '' ) ) md = Redcarpet::Markdown.new(Redcarpet::Render::HTML) md.render(text) else 'n/a' end end def get_location result = ActiveSupport::JSON.decode(Timeout::timeout(5) {Net::HTTP.get_response(URI.parse('http://ip-api.com/json/' + request.remote_ip)).body}) if result['status'] != "fail" result['regionName'] end end private def put_emote(text) splitted_text = text.split clean_text = [] regex = "<:([a-zA-Z0-9]*):[0-9]{18}>" splitted_text.each do |word| if word.match(/#{regex}/) emote_name = word.match(/#{regex}/).captures[0] begin formated_word = image_tag("icones/#{emote_name}.png", size: 16, alt: emote_name) rescue formated_word = ":#{emote_name}:" end else formated_word = word end clean_text.push(formated_word) end clean_text.join(' ') end end