Add a simple twitter streaming client to hit the sampled statuses stream

Usage: ./twitstream <user> <pass>
This commit is contained in:
R. Tyler Croy 2011-08-17 23:39:32 -07:00
parent 8f6ff5cb12
commit c00e177d4e
2 changed files with 64 additions and 0 deletions

53
twitstream/twitstream.adb Normal file
View File

@ -0,0 +1,53 @@
with Ada.Command_Line,
Ada.Text_IO,
AWS.Client,
AWS.Messages,
AWS.Response;
procedure TwitStream is
use Ada.Text_IO;
package CLI renames Ada.Command_Line;
Host : constant String := "http://stream.twitter.com/1/statuses/sample.json";
Conn : AWS.Client.HTTP_Connection;
Result : AWS.Response.Data;
begin
if CLI.Argument_Count < 2 then
Put_Line ("Missing some arguments!");
CLI.Set_Exit_Status (1);
return;
end if;
Put_Line ("Starting TwitStream..");
AWS.Client.Create (Conn, Host, Server_Push => True);
AWS.Client.Set_WWW_Authentication (Conn, CLI.Argument (1),
CLI.Argument (2),
AWS.Client.Basic);
Put_Line ("..connection created");
AWS.Client.Get (Conn, Result);
Status_Check : declare
use AWS.Messages;
Code : AWS.Messages.Status_Code := AWS.Response.Status_Code (Result);
begin
if Code = AWS.Messages.S200 then
Put_Line ("200 Status");
else
Put_Line ("Bad status: " & AWS.Messages.Image (Code));
Put_Line (AWS.Messages.Reason_Phrase (Code));
CLI.Set_Exit_Status (1);
return;
end if;
end Status_Check;
while true loop
Put (AWS.Client.Read_Until (Conn, "" & ASCII.LF));
delay 0.1;
end loop;
end TwitStream;

11
twitstream/twitstream.gpr Normal file
View File

@ -0,0 +1,11 @@
with "aws";
project TwitStream is
for Source_Dirs use (".");
for Main use ("twitstream.adb");
package Builder is
for Default_Switches ("Ada") use ("-gnat05");
end Builder;
end TwitStream;