Add a simple twitter streaming client to hit the sampled statuses stream
Usage: ./twitstream <user> <pass>
This commit is contained in:
parent
8f6ff5cb12
commit
c00e177d4e
|
@ -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;
|
|
@ -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;
|
Loading…
Reference in New Issue