sunnyman's (sunnyman) wrote in changelog,
sunnyman's
sunnyman
changelog

[livejournal] r19669: LJSUP-9459: XML-RPC syncitems function u...

Committer: vtroitsky
LJSUP-9459: XML-RPC syncitems function updated: use_external_ids parameter added
U   trunk/cgi-bin/ljprotocol.pl
Modified: trunk/cgi-bin/ljprotocol.pl
===================================================================
--- trunk/cgi-bin/ljprotocol.pl	2011-08-09 09:57:46 UTC (rev 19668)
+++ trunk/cgi-bin/ljprotocol.pl	2011-08-09 12:18:06 UTC (rev 19669)
@@ -3909,12 +3909,14 @@
 
     my $LIMIT = 500;
 
+    my $external_ids = $req->{'use_external_ids'};
+
     my %item;
-    $sth = $db->prepare("SELECT jitemid, logtime FROM log2 WHERE ".
+    $sth = $db->prepare("SELECT jitemid, logtime, anum FROM log2 WHERE ".
                         "journalid=? and logtime > ?");
     $sth->execute($ownerid, $date);
-    while (my ($id, $dt) = $sth->fetchrow_array) {
-        $item{$id} = [ 'L', $id, $dt, "create" ];
+    while (my ($id, $dt, $anum) = $sth->fetchrow_array) {
+        $item{$id} = [ 'L', $id, $dt, "create", $anum ];
     }
 
     my %cmt;
@@ -3926,13 +3928,14 @@
                         "AND value+0 > UNIX_TIMESTAMP(?)");
     $sth->execute($ownerid, $date);
     while (my ($id, $prop, $dt) = $sth->fetchrow_array) {
+        my $entry = LJ::Entry->new($ownerid, jitemid => $id); 
         if ($prop == $p_calter->{'id'}) {
-            $cmt{$id} = [ 'C', $id, $dt, "update" ];
+            $cmt{$id} = [ 'C', $id, $dt, "update", $entry->anum ];
         } elsif ($prop == $p_revtime->{'id'}) {
-            $item{$id} = [ 'L', $id, $dt, "update" ];
+            $item{$id} = [ 'L', $id, $dt, "update", $entry->anum ];
         }
     }
-
+    
     my @ev = sort { $a->[2] cmp $b->[2] } (values %item, values %cmt);
 
     my $res = {
@@ -3947,7 +3950,9 @@
         $ct++;
         push @$list, { 'item' => "$ev->[0]-$ev->[1]",
                        'time' => $ev->[2],
-                       'action' => $ev->[3],  };
+                       'action' => $ev->[3],  
+                       ( $external_ids ? (ditemid => $ev->[1]*256 + $ev->[4]) : () )
+                      };
         last if $ct >= $LIMIT;
     }
     $res->{'count'} = $ct;

Tags: livejournal, pl, sunnyman
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments