tanvirraj
7/25/2013 - 12:13 AM

a simple command line twitter client press t for tweet q for quit :P

a simple command line twitter client press t for tweet q for quit :P

require "jumpstart_auth"

class MicroBlogger
	attr_reader :client

	

	def initialize
		puts "Initializing"
		@client =JumpstartAuth.twitter
		
	end




	def tweet(message)
		if message.length <= 140
			@client.update(message)	
		else
			puts "tweet is more than 140"
		end
	end
    


	def dm(target , message)
		screen_names =@client.followers.collect {|follower| follower.screen_name}
		if screen_names.include?(target)
			
			puts "trying to send #{target} this direct message:"
			puts message
		else
			puts "user doesn't exist"
		end
	end


	def everyones_last_tweet
		friend_list = @client.friends
		friend_list.sort_by! { |friend| friend.screen_name.downcase  }
		friend_list.each do |friend|
			#timestamp = friend.status.created_at if friend.status
			puts "username: #{friend.screen_name}"
			puts "#{friend.status.text} (#{timestamp.strftime("%A, %b %d")})" if friend.status
			
		end
	end

	def followers_list
		screen_name = @client.friends.collect 
		 screen_name.each do |f|
		 	puts f.screen_name 
		 end
		#{|follower| follower.screen_name}
	end


	def spam_all_followers(message)
		followers = followers_list
		followers.each do |follower|
			dm(follower, message)
		end
	end


	def run
		puts "welcome to the JSl twiiter client"
		command =""
		while command != "q"
			printf "enter command:"
			input = gets.chomp
			parts = input.split
			command = parts [0]
			case command	
				when 'q' then puts "GoodBye!"
				when 't' then tweet(parts[1..-1].join (''))
				when 'dm' then dm(parts[1] , parts[2..-1].join("  "))
				when 'spam' then spam_all_followers(parts[1..-1].join(" "))
				when 'elt' then everyones_last_tweet
																			
				else
					puts "sorry idont how to #{command}"
			end
		end
	end
end




blogger = MicroBlogger.new
#blogger.tweet ("MicroBlogger Initialized ")
blogger.run

#blogger.followers_list