/usr/lib/ruby/1.8/yadis/parsehtml.rb is in libyadis-ruby1.8 0.3.4-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | require "yadis/htmltokenizer"
def html_yadis_location(html)
parser = HTMLTokenizer.new(html)
# to keep track of whether or not we are in the head element
in_head = false
begin
while el = parser.getTag('head', '/head', 'meta', 'body')
# we are leaving head or have reached body, so we bail
return nil if ['/head', 'body'].member?(el.tag_name)
# meta needs to be in head, so we mark it
in_head = true if el.tag_name == 'head'
continue unless in_head
if el.tag_name == 'meta' and (equiv = el.attr_hash['http-equiv'])
if ['x-xrds-location','x-yadis-location'].member?(equiv.downcase)
return el.attr_hash['content']
end
end
end
rescue
return nil
end
end
|