#!/usr/bin/ruby username = 'my_username' password = 'my_password' require 'xmlrpc/client' require 'digest/md5' def write_friends(friends) File.open(ENV['HOME'] + "/.lj_friends", "w") do |file| friends.each do |friend| file.puts friend.to_s end end end def read_friends friends = [] begin File.open(ENV['HOME'] + "/.lj_friends", "r") do |file| while line = file.gets do friend = line.chomp friends.push(friend.to_s) end end rescue Errno::ENOENT return [] end friends end server = XMLRPC::Client.new("www.livejournal.com", "/interface/xmlrpc") result = server.call("LJ.XMLRPC.friendof", { 'username' => username, 'hpassword' => Digest::MD5.hexdigest(password), 'auth_method' => 'clear', 'ver' => 0 }); friend_ofs = result['friendofs'] current_friends = friend_ofs.collect { |friend| friend['username'].to_s } old_friends = read_friends() old_friends.each do |friend| if not current_friends.include?(friend) puts "Removed friend: " + friend end end current_friends.each do |friend| if not old_friends.include?(friend) puts "New friend: " + friend.to_s end end write_friends(current_friends)