From e4da2c7562888d64e18e41c12a5a9221cab69933 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Thu, 26 Jul 2012 02:03:14 +0200 Subject: [PATCH] add comment to ticket in RT --- zotero.pl | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/zotero.pl b/zotero.pl index 6cbb8bb..2546c34 100755 --- a/zotero.pl +++ b/zotero.pl @@ -6,6 +6,7 @@ use LWP::Simple; use XML::Simple; use JSON; use Data::Dump qw(dump); +use RT::Client::REST; my $UserID = $ENV{UserID} || die "usage: UserID=1234 key=abcd $0"; my $key = $ENV{key} || die "key required"; @@ -26,7 +27,9 @@ my $feed = XMLin( $file ); #warn "# feed ",dump($feed); my $tree; -my $ticket; +my $ticket_items; + +my $items; foreach my $entry ( keys %{ $feed->{entry} } ) { warn "# entry $entry ",dump($entry); @@ -48,20 +51,50 @@ foreach my $entry ( keys %{ $feed->{entry} } ) { if ( $item->{content}->{'zapi:type'} eq 'json' ) { my $json = $item->{content}->{content}; warn "# $json\n"; - $json = $item->{json} = decode_json $json; + $json = $item->{content} = decode_json $json; warn "# json $id ", dump $json; foreach my $tag ( @{ $json->{tags} } ) { $tag = $tag->{tag}; warn "# tag $id $tag\n"; next unless $tag =~ m/#(\d+)/; - push @{ $ticket->{$1} }, $id; + push @{ $ticket_items->{$1} }, $id; } } + $items->{$id} = $item; } warn "# tree ",dump( $tree ); -warn "# ticket ",dump( $ticket ); +warn "# ticket_items ",dump( $ticket_items ); + + +my $rt = RT::Client::REST->new( + server => 'http://rt.rot13.org/rt', + timeout => 30, +); + +$rt->login(username => $ENV{RT_USER}, password => $ENV{RT_PASSWORD}); + +foreach my $nr ( keys %$ticket_items ) { + + my $ticket = $rt->show(type => 'ticket', id => $nr); + warn "# ticket $nr ",dump($ticket); + + if ( $ticket->{Queue} !~ m/ILL/i ) { + warn "SKIP $ticket not in ILL queue!"; + next; + } + + foreach my $id ( @{ $ticket_items->{$nr} } ) { + warn "# item $id ",dump( $items->{$id} ); + + $rt->comment( ticket_id => $nr, message => dump( $items->{$id} ) ); + + last; # FIXME just first + + } + +} -- 2.20.1