Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
-- This file:
-- http://angg.twu.net/LUA/youtube-tags.lua
-- http://angg.twu.net/LUA/youtube-tags.lua.html
--  (find-angg        "LUA/youtube-tags.lua")
--
-- (find-lua51manualw3m "")
-- (find-books "__comp/__comp.el" "ierusalimschy")
-- (find-pil2page 8 "Contents")
-- (find-pil2text 8 "Contents")

--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
fname = "~/varda/TODO"
dofile "youtube-tags.lua"
demo1(ee_readfile "~/varda/TODO")



-- print(allcmds())
c = '(find-fline "'..fname..'")\n'
-- writefile("/tmp/o.el", c..allcmds())

* (load "/tmp/o.el")

--]]

-- (find-blogme3file "youtube.lua" "youtube_split_url0 =")
youtube_make_url = function (hash, time)
    return "http://www.youtube.com/watch?v=" .. hash
  end
youtube_split_url0 = function (li)
    local a, url, b, title, c = li:match "^(.-)(https?://%S*)(%s*)(.-)(%s*)$"
    if not url then return end
    local hash, time
    for key,value in url:gmatch "[?&](%w*)=([^?&]*)" do
      if key == "v" then hash = value end
      if key == "t" then time = value end  -- not being used now
    end
    if not hash then return end
    return a, hash, b, title, c
  end
youtube_split_url = function (li)
    local a, hash, b, title, c = youtube_split_url0(li)
    if a then return hash, youtube_make_url(hash), title end
  end



bigstr = ee_readfile(fname)
cmds = {}

settag0 = function (s, e, tag)
    return format("(set-text-properties %d %d '(face %s))\n", s, e,
                  tag or "tag-politics")
  end
settag = function (s, e, tag) table.insert(cmds, settag0(s, e, tag)) end
allcmds = function () return table.concat(cmds) end

demo = function ()
    for s,li,e in bigstr:gmatch("()([^\n]+)()") do
      if li:match "youtu" then
        settag(s, e)
        -- printf("(set-text-properties %d %d '(face tag-politics))\n", s, e)
      end
    end
  end

sec0 = function (li) return "\n"..li.."\n"..string.rep("=", #li).."\n" end
sec  = function (li) io.write(sec0(li)) end

demo1 = function (bigstr)
    local lines = {}
    local oldli = ""
    for s,li,e in bigstr:gmatch("()([^\n]+)()") do
      if li:match"^=+$" then sec(oldli) end
      oldli = li
      if li:find("youtu", 1, "plain") then
        local hash, url, title = youtube_split_url(li)
        if hash then print(url.." "..title) end
      end
    end
  end


-- Local Variables:
-- coding: raw-text-unix
-- End: