aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Macgirvin <mike@macgirvin.com>2010-09-13 22:57:31 -0700
committerMike Macgirvin <mike@macgirvin.com>2010-09-13 22:57:31 -0700
commitc5031139ebb46ce4994d3bd62059ae4eaba71359 (patch)
treeaadb065cbaf0fbf788b6f4fdd7a5e1a332ba7373
parent38fde6672eb3d46b8b154ba2f22df99f91f64852 (diff)
downloadvolse-hubzilla-c5031139ebb46ce4994d3bd62059ae4eaba71359.tar.gz
volse-hubzilla-c5031139ebb46ce4994d3bd62059ae4eaba71359.tar.bz2
volse-hubzilla-c5031139ebb46ce4994d3bd62059ae4eaba71359.zip
abstractify items, check photos for birthday paradox
-rw-r--r--boot.php17
-rw-r--r--include/items.php8
-rw-r--r--include/poller.php4
-rw-r--r--mod/dfrn_confirm.php5
-rw-r--r--mod/dfrn_notify.php6
-rw-r--r--mod/photos.php142
-rw-r--r--mod/profile_photo.php16
-rw-r--r--mod/wall_upload.php8
8 files changed, 95 insertions, 111 deletions
diff --git a/boot.php b/boot.php
index b69502ef2..1a1a05418 100644
--- 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) ;
diff --git a/include/items.php b/include/items.php
index dbe6493d4..f85a0e64b 100644
--- a/include/items.php
+++ b/include/items.php
@@ -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']));
diff --git a/include/poller.php b/include/poller.php
index c4d697e24..6024b1844 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -348,7 +348,7 @@
$datarray['parent-uri'] = $parent_uri;
$datarray['uid'] = $importer['uid'];
$datarray['contact-id'] = $contact['id'];
- $r = post_remote($a,$datarray);
+ $r = item_store($datarray);
continue;
}
@@ -377,7 +377,7 @@
$datarray['parent-uri'] = $item_id;
$datarray['uid'] = $importer['uid'];
$datarray['contact-id'] = $contact['id'];
- $r = post_remote($a,$datarray);
+ $r = item_store($datarray);
continue;
}
diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php
index 44a6ad147..1f0ebee14 100644
--- a/mod/dfrn_confirm.php
+++ b/mod/dfrn_confirm.php
@@ -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 );
diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php
index b1a330e8c..80cd1a2fd 100644
--- a/mod/dfrn_notify.php
+++ b/mod/dfrn_notify.php
@@ -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;
}
diff --git a/mod/photos.php b/mod/photos.php
index 81ea3901a..fa089c435 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -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']);
diff --git a/mod/profile_photo.php b/mod/profile_photo.php
index 377bc3313..e431e059d 100644
--- a/mod/profile_photo.php
+++ b/mod/profile_photo.php
@@ -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 );
diff --git a/mod/wall_upload.php b/mod/wall_upload.php
index d05c8cf92..257235d62 100644
--- a/mod/wall_upload.php
+++ b/mod/wall_upload.php
@@ -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;
}