summaryrefslogtreecommitdiff
path: root/bucky2/rest/coin-toss.pl
blob: 875590ce5dd868e7788dedc9d64f1701b66ecfd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/perl
use lib "../lib";
use Rest::Twitter;
use Data::Dumper;
my $twitter = new Rest::Twitter;
$twitter->auth("coin_toss","onetimeonly");

while (1)
	{
	my $tweets = $twitter->tweet_get();
print Dumper($tweets);
	foreach my $tweet (@$tweets)
		{
		my $toss = coin_toss_tweet($twitter, $tweet);
		if ($toss)
			{
			print "$tweet->{'user'}: $tweet->{'tweet'}\n";
			if ($tweet->{'type'} eq "dm")
				{
				$twitter->dm_post($tweet->{'user'}, $toss);
				}
			else
				{
				$twitter->tweet_post("@" . $tweet->{'user'} . " " . $toss, $tweet->{'id'});
				}
			}
		}
	sleep 60;
	}
sub coin_toss_tweet
	{
	my ($twitter, $tweet) = @_;
	my $user = $twitter->user;
	my $msg = $tweet->{'tweet'};
	my $toss = undef;
	return undef if $tweet->{'user'} eq $user;
	$msg =~ s/\@$user:?//g;
	$msg =~ s/\?*$//g;
	if ($msg =~ /rock/i && $msg =~ /paper/i && $msg =~ /scissors/i)
		{
		$toss = coin_toss("rock", "paper", "scissors");
		}
	elsif ($msg =~ /\sor\s/i)
		{
		my (@faces) = split " or ", $msg;
		$toss = coin_toss(@faces);
		}
	elsif ($msg =~ /\//i)
		{
		my (@faces) = split "/", $msg;
		$toss = coin_toss(@faces);
		}
	else
		{
		$toss = coin_toss("heads", "tails");
		}
	return $toss;
	}
sub coin_toss
	{
	my (@faces) = @_;
	my $face = uc $faces[ int rand scalar @faces ];
	my $face_string = join "/", @faces;
	return "$face_string: $face";
	}
1;