class LiveJournal::Sync::Comments
Public Class Methods
new(user)
click to toggle source
# File lib/livejournal/sync.rb, line 135 def initialize(user) @user = user @session = nil @maxid = nil end
Public Instance Methods
run_body(start=0) { |cur, total, comments_hash| ... }
click to toggle source
# File lib/livejournal/sync.rb, line 173 def run_body(start=0) # :yields: cur, total, comments_hash while start < @maxid data = run_GET('body', start) parsed = LiveJournal::Sync::CommentsXML::Parser.new(data) break if parsed.comments.empty? cur = parsed.comments.keys.max yield cur, @maxid, parsed start = cur + 1 end end
run_metadata(start=0) { |cur, total, comments_hash| ... }
click to toggle source
# File lib/livejournal/sync.rb, line 161 def run_metadata(start=0) # :yields: cur, total, comments_hash while @maxid.nil? or start < @maxid data = run_GET('meta', start) parsed = LiveJournal::Sync::CommentsXML::Parser.new(data) @maxid ||= parsed.maxid break if parsed.comments.empty? cur = parsed.comments.keys.max yield cur, @maxid, parsed start = cur + 1 end end
Private Instance Methods
run_GET(mode, start)
click to toggle source
# File lib/livejournal/sync.rb, line 141 def run_GET(mode, start) unless @session req = Request::SessionGenerate.new(@user) @session = req.run end path = "/export_comments.bml?get=comment_#{mode}&startid=#{start}" # authas: hooray for features discovered by reading source! path += "&authas=#{@user.usejournal}" if @user.usejournal data = nil open(@user.server.url + path, 'Cookie' => "ljsession=#{@session}") do |f| # XXX stream this data to the XML parser. data = f.read end return data end