#! /usr/bin/env ruby require 'twitter' require 'cablegator' require 'cablegator/twitter' Twitter.command_line_login tweeted = CableGator.save_file("~/.cablegator/tweeted_fmt_#{ARGV[0].to_s.gsub(/:| /,'')}") puts "Tweeting cables" WikiLeaks.with_each_cable_data do |cable_data| reference_id = cable_data['reference_id'] if tweeted.include?(reference_id) puts "Already tweeted #{reference_id}" else format_string = ARGV[0].to_s.dup cable_data.each { |k,v| format_string.gsub!(/\:#{k}/,v) } tweet = "#cablegate ##{reference_id} #{format_string}" puts "Tweeting: #{tweet}" begin Twitter.update(tweet) tweeted << reference_id delay = ARGV[1].to_i rescue nil sleep(delay || 10) rescue "Tweet #{reference_id} failed" end end end