]> git.mxchange.org Git - friendica.git/commitdiff
items back in personal data download, chunked this time
authorFriendika <info@friendika.com>
Tue, 22 Mar 2011 23:19:00 +0000 (16:19 -0700)
committerFriendika <info@friendika.com>
Tue, 22 Mar 2011 23:19:00 +0000 (16:19 -0700)
boot.php
mod/uexport.php

index 50b4fd88788192d2afb73da6b1f946ee8135aa2a..9bac155b9a953a40dfe4c83e9b7188f73878bc3f 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -2,7 +2,7 @@
 
 set_time_limit(0);
 
-define ( 'FRIENDIKA_VERSION',      '2.1.925' );
+define ( 'FRIENDIKA_VERSION',      '2.1.926' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.1'  );
 define ( 'DB_UPDATE_VERSION',      1044   );
 
index d8f9315932aacce78bc5ce4c8a72ab3ef849e329..fdd7fcec64d4aaf0d1d757c8ddda1c1e0411f6f5 100644 (file)
@@ -17,7 +17,7 @@ function uexport_init(&$a) {
        }
        $contact = array();
        $r = q("SELECT * FROM `contact` WHERE `uid` = %d ",
-               local_user()
+               intval(local_user())
        );
        if(count($r)) {
                foreach($r as $rr)
@@ -28,7 +28,7 @@ function uexport_init(&$a) {
 
        $profile = array();
        $r = q("SELECT * FROM `profile` WHERE `uid` = %d ",
-               local_user()
+               intval(local_user())
        );
        if(count($r)) {
                foreach($r as $rr)
@@ -41,6 +41,32 @@ function uexport_init(&$a) {
        header("Content-type: text/json");
        echo str_replace('\\/','/',json_encode($output));
 
+       $r = q("SELECT count(*) as `total` FROM `item` WHERE `uid` = %d ",
+               intval(local_user())
+       );
+       if(count($r))
+               $total = $r[0]['total'];
+
+       // chunk the output to avoid exhausting memory
+
+       for($x = 0; $x < $total; $x += 500) {
+               $item = array();
+               $r = q("SELECT * FROM `item` WHERE `uid` = %d LIMIT %d, %d",
+                       intval(local_user()),
+                       intval($x),
+                       intval(500)
+               );
+               if(count($r)) {
+                       foreach($r as $rr)
+                               foreach($rr as $k => $v)
+                                       $item[][$k] = $v;
+               }
+
+               $output = array('item' => $item);
+               echo str_replace('\\/','/',json_encode($output));
+       }
+
+
        killme();
 
 }
\ No newline at end of file