]> git.sesse.net Git - skvidarsync/blobdiff - www/event.pl
Store messages with dates in them, for future sync/matching.
[skvidarsync] / www / event.pl
index 75106df1d5007f74ca79bfd90a262b6e9016f4f7..04e7cdaa5ab11fb252bd3f92bcc86d3270469582 100755 (executable)
@@ -44,11 +44,27 @@ if (exists($json->{'challenge'})) {
 
 if (exists($json->{'event'}) && exists($json->{'event'}{'type'})) {
        my $type = $json->{'event'}{'type'};
+       my $user = $json->{'event'}{'user'};
+
+       if ($type eq 'message') {
+               if ($json->{'event'}{'message'}{'text'} =~ /(20\d{2}-\d{2}-\d{2})/) {
+                       # TODO: What if edits happen out-of-order?
+                       my $date = $1;
+                       my $channel = $json->{'event'}{'channel'};
+                       my $ts = $json->{'event'}{'ts'};
+                       print "Matching message {$channel, $ts} to date $date\n";
+                       $dbh->do('INSERT INTO message_sheet_link (channel, ts, sheet_title) VALUES (?,?,?)', undef,
+                               $channel, $ts, $date);
+               } else {
+                       print STDERR "No date found in message, ignoring\n";
+               }
+               exit;
+       }
+
        my $reaction = $json->{'event'}{'reaction'};
        my $channel = $json->{'event'}{'item'}{'channel'};
        my $ts = $json->{'event'}{'item'}{'ts'};
        my $event_ts = $json->{'event'}{'event_ts'};
-       my $user = $json->{'event'}{'user'};
 
        if (!defined($channel) || !defined($ts)) {
                print STDERR "Not reacting to a message; ignoring.\n";