]> git.mxchange.org Git - friendica.git/commitdiff
abstractify items, check photos for birthday paradox
authorMike Macgirvin <mike@macgirvin.com>
Tue, 14 Sep 2010 05:57:31 +0000 (22:57 -0700)
committerMike Macgirvin <mike@macgirvin.com>
Tue, 14 Sep 2010 05:57:31 +0000 (22:57 -0700)
boot.php
include/items.php
include/poller.php
mod/dfrn_confirm.php
mod/dfrn_notify.php
mod/photos.php
mod/profile_photo.php
mod/wall_upload.php

index b69502ef2a78a00e8b67e8945c26fba74313aec8..1a1a054187f35473109b9bd5053111e4b77602a3 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -776,6 +776,23 @@ function item_new_uri($hostname,$uid) {
        return $uri;
 }}
 
+if(! function_exists('photo_new_resource')) {
+function photo_new_resource() {
+
+       do {
+               $found = false;
+               $resource = hash('md5',uniqid(mt_rand(),true));
+               $r = q("SELECT `id` FROM `photo` WHERE `resource-id` = '%s' LIMIT 1",
+                       dbesc($resource)
+               );
+               if(count($r))
+                       $found = true;
+       } while($found == true);
+       return $resource;
+}}
+
+
+
 if(! function_exists('get_uid')) {
 function get_uid() {
        return ((x($_SESSION,'uid')) ? intval($_SESSION['uid']) : 0) ;
index dbe6493d469acd61e22cf7740873f428e83ac8eb..f85a0e64b4600ccd53732eaf7668157d562c48e1 100644 (file)
@@ -308,7 +308,7 @@ function get_atom_elements($item) {
        return $res;
 }
 
-function post_remote($a,$arr) {
+function item_store($arr) {
 
 //print_r($arr);
 
@@ -330,14 +330,14 @@ function post_remote($a,$arr) {
        $arr['owner-name'] = notags(trim($arr['owner-name']));
        $arr['owner-link'] = notags(trim($arr['owner-link']));
        $arr['owner-avatar'] = notags(trim($arr['owner-avatar']));
-       $arr['created'] = datetime_convert('UTC','UTC',$arr['created'],'Y-m-d H:i:s');
-       $arr['edited'] = datetime_convert('UTC','UTC',$arr['edited'],'Y-m-d H:i:s');
+       $arr['created'] = ((x($arr,'created') !== false) ? datetime_convert('UTC','UTC',$arr['created']) : datetime_convert());
+       $arr['edited']  = ((x($arr,'edited')  !== false) ? datetime_convert('UTC','UTC',$arr['edited'])  : datetime_convert());
        $arr['changed'] = datetime_convert();
        $arr['title'] = notags(trim($arr['title']));
        $arr['location'] = notags(trim($arr['location']));
        $arr['body'] = escape_tags(trim($arr['body']));
        $arr['last-child'] = intval($arr['last-child']);
-       $arr['visible'] = 1;
+       $arr['visible'] = ((x($arr,'visible') !== false) ? intval($arr['visible']) : 1);
        $arr['deleted'] = 0;
        $arr['parent-uri'] = notags(trim($arr['parent-uri']));
        $arr['verb'] = notags(trim($arr['verb']));
index c4d697e240cb5ebf94f290a8d98359df6da81982..6024b18442f2c3259d30033c0ed3c519ab1f28b4 100644 (file)
                                $datarray['parent-uri'] = $parent_uri;
                                $datarray['uid'] = $importer['uid'];
                                $datarray['contact-id'] = $contact['id'];
-                               $r = post_remote($a,$datarray);
+                               $r = item_store($datarray);
                                continue;
                        }
 
                                $datarray['parent-uri'] = $item_id;
                                $datarray['uid'] = $importer['uid'];
                                $datarray['contact-id'] = $contact['id'];
-                               $r = post_remote($a,$datarray);
+                               $r = item_store($datarray);
                                continue;
 
                        }
index 44a6ad1473260e46af10ea170fa9e39c75379aab..1f0ebee1409a3b72bfa415db9c804bd91f8f5f65 100644 (file)
@@ -100,7 +100,7 @@ function dfrn_confirm_post(&$a) {
 
                                        $img->scaleImageSquare(175);
                                        
-                                       $hash = hash('md5',uniqid(mt_rand(),true));
+                                       $hash = photo_new_resource();
 
                                        $r = $img->store($local_uid, $dfrn_record, $hash, $filename, t('Contact Photos') , 4);
 
@@ -332,12 +332,13 @@ function dfrn_confirm_post(&$a) {
 
                                $img->scaleImageSquare(175);
                                        
-                               $hash = hash('md5',uniqid(mt_rand(),true));
+                               $hash = photo_new_resource();
 
                                $r = $img->store($uid, $contact_id, $hash, $filename, t('Contact Photos'), 4 );
 
                                if($r === false)
                                        $photo_failure = true;
+
                                $img->scaleImage(80);
 
                                $r = $img->store($uid, $contact_id, $hash, $filename, t('Contact Photos'), 5 );
index b1a330e8cd3decbe03d9beedbb6a000bdba8f0e7..80cd1a2fdcdeb0e201568eef1d4251f40914f668 100644 (file)
@@ -208,7 +208,7 @@ function dfrn_notify_post(&$a) {
                                $datarray['parent-uri'] = $parent_uri;
                                $datarray['uid'] = $importer['importer_uid'];
                                $datarray['contact-id'] = $importer['id'];
-                               $posted_id = post_remote($a,$datarray);
+                               $posted_id = item_store($datarray);
 
                                if($posted_id) {
                                        $r = q("SELECT `parent` FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
@@ -280,7 +280,7 @@ function dfrn_notify_post(&$a) {
                                $datarray['parent-uri'] = $parent_uri;
                                $datarray['uid'] = $importer['importer_uid'];
                                $datarray['contact-id'] = $importer['id'];
-                               $r = post_remote($a,$datarray);
+                               $r = item_store($datarray);
 
                                // find out if our user is involved in this conversation and wants to be notified.
                        
@@ -342,7 +342,7 @@ function dfrn_notify_post(&$a) {
                        $datarray['parent-uri'] = $item_id;
                        $datarray['uid'] = $importer['importer_uid'];
                        $datarray['contact-id'] = $importer['id'];
-                       $r = post_remote($a,$datarray);
+                       $r = item_store($datarray);
                        continue;
 
                }
index 81ea3901abd0aa24cebcd83270c0189ef8b30772..fa089c435637358106276d0341108810d3131705 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 
 require_once('Photo.php');
+require_once('include/items.php');
 require_once('view/acl_selectors.php');
 
 function photos_init(&$a) {
@@ -54,7 +55,7 @@ function photos_post(&$a) {
 
        $r = q("SELECT `contact`.* `user`.`nickname` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid` 
                WHERE `user`.`uid` = %d AND `self` = 1 LIMIT 1",
-               intval($_SESSION['uid'])
+               intval(get_uid())
        );
 
        $contact_record = $r[0];        
@@ -70,7 +71,7 @@ function photos_post(&$a) {
 
                $r = q("SELECT count(*) FROM `photo` WHERE `album` = '%s' AND `uid` = %d",
                        dbesc($album),
-                       intval($_SESSION['uid'])
+                       intval(get_uid())
                );
                if(! count($r)) {
                        notice( t('Album not found.') . EOL);
@@ -83,7 +84,7 @@ function photos_post(&$a) {
                        q("UPDATE `photo` SET `album` = '%s' WHERE `album` = '%s' AND `uid` = %d",
                                dbesc($newalbum),
                                dbesc($album),
-                               intval($_SESSION['uid'])
+                               intval(get_uid())
                        );
                        $newurl = str_replace(bin2hex($album),bin2hex($newalbum),$_SESSION['photo_return']);
                        goaway($a->get_baseurl() . '/' . $newurl);
@@ -199,52 +200,33 @@ function photos_post(&$a) {
 
                        $title = '';
                        $basename = basename($filename);
-
-                       // Create item container
-
-                       $body = '[url=' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $p[0]['resource-id'] . ']' 
-                               . '[img]' . $a->get_baseurl() . '/photo/' . $p[0]['resource-id'] . '-' . $p[0]['scale'] . '.jpg' . '[/img]' 
-                               . '[/url]';
-
                        $uri = item_new_uri($a->get_hostname(),get_uid());
+                       // Create item container
 
-                       $r = q("INSERT INTO `item` (`uid`, `type`, `wall`, `resource-id`, `contact-id`,
-                               `owner-name`,`owner-link`,`owner-avatar`, `created`,
-                               `edited`, `changed`, `uri`, `parent-uri`, `title`, `body`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`)
-                               VALUES( %d, '%s', %d, '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )",
-                               intval(get_uid()),
-                               dbesc('photo'),
-                               intval(1),
-                               dbesc($p[0]['resource-id']),                    
-                               intval($contact_record['id']),
-                               dbesc($contact_record['name']),
-                               dbesc($contact_record['url']),
-                               dbesc($contact_record['thumb']),
-                               dbesc(datetime_convert()),
-                               dbesc(datetime_convert()),
-                               dbesc(datetime_convert()),
-                               dbesc($uri),
-                               dbesc($uri),
-                               dbesc($title),
-                               dbesc($body),
-                               dbesc($p[0]['allow_cid']),
-                               dbesc($p[0]['allow_gid']),
-                               dbesc($p[0]['deny_cid']),
-                               dbesc($p[0]['deny_gid'])
+                       $arr = array();
+
+                       $arr['uid']          = get_uid();
+                       $arr['uri']          = $uri;
+                       $arr['parent-uri']   = $uri; 
+                       $arr['type']         = 'photo';
+                       $arr['wall']         = 1;
+                       $arr['resource-id']  = $p[0]['resource-id'];
+                       $arr['contact-id']   = $contact_record['id'];
+                       $arr['owner-name']   = $contact_record['name'];
+                       $arr['owner-link']   = $contact_record['url'];
+                       $arr['owner-avatar'] = $contact_record['thumb'];
+                       $arr['title']        = $title;
+                       $arr['allow_cid']    = $p[0]['allow_cid'];
+                       $arr['allow_gid']    = $p[0]['allow_gid'];
+                       $arr['deny_cid']     = $p[0]['deny_cid'];
+                       $arr['deny_gid']     = $p[0]['deny_gid'];
+                       $arr['last-child']   = 1;
+                       $arr['body']         = '[url=' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $p[0]['resource-id'] . ']' 
+                                               . '[img]' . $a->get_baseurl() . '/photo/' . $p[0]['resource-id'] . '-' . $p[0]['scale'] . '.jpg' . '[/img]' 
+                                               . '[/url]';
+               
+                       $item_id = item_store($arr);
 
-                       );
-                       if($r) {
-       
-                               $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' LIMIT 1",
-                                       dbesc($uri)
-                               );
-                               if(count($r))
-                                       $item_id = $r[0]['id'];
-                                       q("UPDATE `item` SET `parent` = %d, `last-child` = 1 WHERE `id` = %d LIMIT 1",
-                                       intval($r[0]['id']),
-                                       intval($r[0]['id'])
-                               );
-                       }
                }
 
                $r = q("UPDATE `item` SET `tag` = '%s', `edited` = '%s', `changed` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
@@ -315,8 +297,8 @@ function photos_post(&$a) {
 
        $smallest = 0;
 
-       $photo_hash = hash('md5',uniqid(mt_rand(),true));
-       
+       $photo_hash = photo_new_resource();
+
        $r = $ph->store(get_uid(), 0, $photo_hash, $filename, $album, 0 , 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
 
        if(! $r) {
@@ -337,51 +319,35 @@ function photos_post(&$a) {
        }
        
        $basename = basename($filename);
+       $uri = item_new_uri($a->get_hostname(), get_uid());
 
        // Create item container
 
-       $body = '[url=' . $a->get_baseurl() . '/photos/' . $contact_record['nickname'] . '/image/' . $photo_hash . ']' 
-               . '[img]' . $a->get_baseurl() . "/photo/{$photo_hash}-{$smallest}.jpg" . '[/img]' 
-               . '[/url]';
-
-       $uri = item_new_uri($a->get_hostname(), get_uid());
 
-       $r = q("INSERT INTO `item` (`uid`, `type`, `wall`, `resource-id`, `contact-id`,`owner-name`,`owner-link`,`owner-avatar`, `created`,
-               `edited`, `changed`, `uri`, `parent-uri`, `title`, `body`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`, `visible`)
-               VALUES( %d, '%s', %d, '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d )",
-               intval(get_uid()),
-               dbesc('photo'),
-               intval(1),
-               dbesc($photo_hash),                     
-               intval($contact_record['id']),
-               dbesc($contact_record['name']),
-               dbesc($contact_record['url']),
-               dbesc($contact_record['thumb']),
-               dbesc(datetime_convert()),
-               dbesc(datetime_convert()),
-               dbesc(datetime_convert()),
-               dbesc($uri),
-               dbesc($uri),
-               dbesc($title),
-               dbesc($body),
-               dbesc($str_contact_allow),
-               dbesc($str_group_allow),
-               dbesc($str_contact_deny),
-               dbesc($str_group_deny),
-               intval($visible)
-       );
-       if($r) {
+       $arr = array();
+
+       $arr['uid']          = get_uid();
+       $arr['uri']          = $uri;
+       $arr['parent-uri']   = $uri;
+       $arr['type']         = 'photo';
+       $arr['wall']         = 1;
+       $arr['resource-id']  = $photo_hash;
+       $arr['contact-id']   = $contact_record['id'];
+       $arr['owner-name']   = $contact_record['name'];
+       $arr['owner-link']   = $contact_record['url'];
+       $arr['owner-avatar'] = $contact_record['thumb'];
+       $arr['title']        = $title;
+       $arr['allow_cid']    = $str_contact_allow;
+       $arr['allow_gid']    = $str_group_allow;
+       $arr['deny_cid']     = $str_contact_deny;
+       $arr['deny_gid']     = $str_group_deny;
+       $arr['last-child']   = 1;
+       $arr['visible']      = $visible;
+       $arr['body']         = '[url=' . $a->get_baseurl() . '/photos/' . $contact_record['nickname'] . '/image/' . $photo_hash . ']' 
+                               . '[img]' . $a->get_baseurl() . "/photo/{$photo_hash}-{$smallest}.jpg" . '[/img]' 
+                               . '[/url]';
 
-               $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' LIMIT 1",
-                       dbesc($uri)
-               );
-               if(count($r))
-                       q("UPDATE `item` SET `parent` = %d, `last-child` = 1 WHERE `id` = %d LIMIT 1",
-                       intval($r[0]['id']),
-                       intval($r[0]['id'])
-               );
-       
-       }
+       $item_id = item_store($arr);
 
        if(! $java_upload) {
                goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
index 377bc3313a1634a5e9d7dec5f1c7e31b57907d27..e431e059de019e919f0abf14b99c12fc98d1d4c1 100644 (file)
@@ -45,7 +45,7 @@ function profile_photo_post(&$a) {
 //dbg(3);
                $r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d AND `scale` = %d LIMIT 1",
                        dbesc($image_id),
-                       dbesc($_SESSION['uid']),
+                       dbesc(get_uid()),
                        intval($scale));
 
                if(count($r)) {
@@ -55,14 +55,14 @@ function profile_photo_post(&$a) {
                        $im = new Photo($base_image['data']);
                        $im->cropImage(175,$srcX,$srcY,$srcW,$srcH);
 
-                       $r = $im->store($_SESSION['uid'], 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 4, 1);
+                       $r = $im->store(get_uid(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 4, 1);
 
                        if($r === false)
                                notice ( t('Image size reduction (175) failed.') . EOL );
 
                        $im->scaleImage(80);
 
-                       $r = $im->store($_SESSION['uid'], 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 5, 1);
+                       $r = $im->store(get_uid(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 5, 1);
                        
                        if($r === false)
                                notice( t('Image size reduction (80) failed.') . EOL );
@@ -71,12 +71,12 @@ function profile_photo_post(&$a) {
 
                        $r = q("UPDATE `photo` SET `profile` = 0 WHERE `profile` = 1 AND `resource-id` != '%s' AND `uid` = %d",
                                dbesc($base_image['resource-id']),
-                               intval($_SESSION['uid'])
+                               intval(get_uid())
                        );
 
                        $r = q("UPDATE `contact` SET `avatar-date` = '%s' WHERE `self` = 1 AND `uid` = %d LIMIT 1",
                                dbesc(datetime_convert()),
-                               intval($_SESSION['uid'])
+                               intval(get_uid())
                        );
 
                        // Update global directory in background
@@ -115,12 +115,12 @@ function profile_photo_post(&$a) {
                $height = $ph->getHeight();
        }
 
-       $hash = hash('md5',uniqid(mt_rand(),true));
+       $hash = photo_new_resource();
        
 
        $smallest = 0;
 
-       $r = $ph->store($_SESSION['uid'], 0 , $hash, $filename, t('Profile Photos'), 0 );       
+       $r = $ph->store(get_uid(), 0 , $hash, $filename, t('Profile Photos'), 0 );      
 
        if($r)
                notice( t('Image uploaded successfully.') . EOL );
@@ -129,7 +129,7 @@ function profile_photo_post(&$a) {
 
        if($width > 640 || $height > 640) {
                $ph->scaleImage(640);
-               $r = $ph->store($_SESSION['uid'], 0 , $hash, $filename, t('Profile Photos'), 1 );       
+               $r = $ph->store(get_uid(), 0 , $hash, $filename, t('Profile Photos'), 1 );      
 
                if($r === false)
                        notice( t('Image size reduction (640) failed.') . EOL );
index d05c8cf921bc23df0cf76676557d76bca55aba9c..257235d62dda7a273ef8b2b52a07a39a99383270 100644 (file)
@@ -30,11 +30,11 @@ function wall_upload_post(&$a) {
        $width = $ph->getWidth();
        $height = $ph->getHeight();
 
-       $hash = hash('md5',uniqid(mt_rand(),true));
+       $hash = photo_new_resource();
        
        $smallest = 0;
 
-       $r = $ph->store($_SESSION['uid'], 0, $hash, $filename, t('Wall Photos'), 0 );
+       $r = $ph->store(get_uid(), 0, $hash, $filename, t('Wall Photos'), 0 );
 
        if(! $r) {
                echo ( t('Image upload failed.') . EOL);
@@ -43,14 +43,14 @@ function wall_upload_post(&$a) {
 
        if($width > 640 || $height > 640) {
                $ph->scaleImage(640);
-               $r = $ph->store($_SESSION['uid'], 0, $hash, $filename, t('Wall Photos'), 1 );
+               $r = $ph->store(get_uid(), 0, $hash, $filename, t('Wall Photos'), 1 );
                if($r) 
                        $smallest = 1;
        }
 
        if($width > 320 || $height > 320) {
                $ph->scaleImage(320);
-               $r = $ph->store($_SESSION['uid'], 0, $hash, $filename, t('Wall Photos'), 2 );
+               $r = $ph->store(get_uid(), 0, $hash, $filename, t('Wall Photos'), 2 );
                if($r)
                        $smallest = 2;
        }