-module(newmemes). -export([start/0, resume/1]). -include_lib("xmerl/include/xmerl.hrl"). scan(Mode) -> FileName = '/home/rubys/public_html/planet/memes.atom', { Xml, _Rest } = xmerl_scan:file(FileName), format_entries(xmerl_xpath:string("entry",Xml), Mode). format_entries([], _Mode) -> done; format_entries([Node|Rest], Mode) -> [ #xmlText{value=Title} ] = xmerl_xpath:string("title/text()", Node), [ #xmlAttribute{value=Link} ] = xmerl_xpath:string("link/@href", Node), case Mode of mark -> put(Link, Title); alert -> case get(Link) of Title -> nop; _Else -> xmppclient:send("meme", [{a,[{href,Link}],[Title]}]) end end, format_entries(Rest, Mode). start() -> register(meme_thread, self()), scan(mark), receive resume -> scan(alert) after 10 * 60 * 1000 -> xmppclient:send("meme", ["Timed out."]) end, init:stop(). resume([Node]) -> {meme_thread, Node} ! resume, init:stop().