nothing going on here. nothing to see. move along.
This commit is contained in:
parent
5dab65d783
commit
f2244539da
@ -5,7 +5,7 @@ require_once('include/items.php');
|
|||||||
require_once('include/photo/photo_driver.php');
|
require_once('include/photo/photo_driver.php');
|
||||||
|
|
||||||
|
|
||||||
function photo_upload($channel, $observer, $args) {
|
function photo_upload($channel, $observer, $args, $local = null) {
|
||||||
|
|
||||||
$ret = array('success' => false);
|
$ret = array('success' => false);
|
||||||
$channel_id = $channel['channel_id'];
|
$channel_id = $channel['channel_id'];
|
||||||
@ -61,47 +61,64 @@ function photo_upload($channel, $observer, $args) {
|
|||||||
$str_group_deny = perms2str(((is_array($args['group_deny'])) ? $args['group_deny'] : explode(',',$args['group_deny'])));
|
$str_group_deny = perms2str(((is_array($args['group_deny'])) ? $args['group_deny'] : explode(',',$args['group_deny'])));
|
||||||
$str_contact_deny = perms2str(((is_array($args['contact_deny'])) ? $args['contact_deny'] : explode(',',$args['contact_deny'])));
|
$str_contact_deny = perms2str(((is_array($args['contact_deny'])) ? $args['contact_deny'] : explode(',',$args['contact_deny'])));
|
||||||
|
|
||||||
$f = array('src' => '', 'filename' => '', 'filesize' => 0, 'type' => '');
|
|
||||||
|
|
||||||
call_hooks('photo_upload_file',$f);
|
if($local) {
|
||||||
|
|
||||||
if(x($f,'src') && x($f,'filesize')) {
|
// allow an import from a binary string representing the image.
|
||||||
$src = $f['src'];
|
// This bypasses the upload step and max size limit checking
|
||||||
$filename = $f['filename'];
|
|
||||||
$filesize = $f['filesize'];
|
$imagedata = $local;
|
||||||
$type = $f['type'];
|
$filename = $args['filename'];
|
||||||
|
$filesize = strlen($imagedata);
|
||||||
|
// this is going to be deleted if it exists
|
||||||
|
$src = '/tmp/deletemenow';
|
||||||
|
$filetype = $args['filetype'];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$src = $_FILES['userfile']['tmp_name'];
|
$f = array('src' => '', 'filename' => '', 'filesize' => 0, 'type' => '');
|
||||||
$filename = basename($_FILES['userfile']['name']);
|
|
||||||
$filesize = intval($_FILES['userfile']['size']);
|
call_hooks('photo_upload_file',$f);
|
||||||
$type = $_FILES['userfile']['type'];
|
|
||||||
|
if(x($f,'src') && x($f,'filesize')) {
|
||||||
|
$src = $f['src'];
|
||||||
|
$filename = $f['filename'];
|
||||||
|
$filesize = $f['filesize'];
|
||||||
|
$type = $f['type'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$src = $_FILES['userfile']['tmp_name'];
|
||||||
|
$filename = basename($_FILES['userfile']['name']);
|
||||||
|
$filesize = intval($_FILES['userfile']['size']);
|
||||||
|
$type = $_FILES['userfile']['type'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $type)
|
||||||
|
$type=guess_image_type($filename);
|
||||||
|
|
||||||
|
logger('photo_upload: received file: ' . $filename . ' as ' . $src . ' ('. $type . ') ' . $filesize . ' bytes', LOGGER_DEBUG);
|
||||||
|
|
||||||
|
|
||||||
|
$maximagesize = get_config('system','maximagesize');
|
||||||
|
|
||||||
|
if(($maximagesize) && ($filesize > $maximagesize)) {
|
||||||
|
$ret['message'] = sprintf ( t('Image exceeds website size limit of %lu bytes'), $maximagesize);
|
||||||
|
@unlink($src);
|
||||||
|
call_hooks('photo_upload_end',$ret);
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(! $filesize) {
|
||||||
|
$ret['message'] = t('Image file is empty.');
|
||||||
|
@unlink($src);
|
||||||
|
call_hooks('photo_post_end',$ret);
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
logger('photo_upload: loading the contents of ' . $src , LOGGER_DEBUG);
|
||||||
|
|
||||||
|
$imagedata = @file_get_contents($src);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $type)
|
|
||||||
$type=guess_image_type($filename);
|
|
||||||
|
|
||||||
logger('photo_upload: received file: ' . $filename . ' as ' . $src . ' ('. $type . ') ' . $filesize . ' bytes', LOGGER_DEBUG);
|
|
||||||
|
|
||||||
$maximagesize = get_config('system','maximagesize');
|
|
||||||
|
|
||||||
if(($maximagesize) && ($filesize > $maximagesize)) {
|
|
||||||
$ret['message'] = sprintf ( t('Image exceeds website size limit of %lu bytes'), $maximagesize);
|
|
||||||
@unlink($src);
|
|
||||||
call_hooks('photo_upload_end',$ret);
|
|
||||||
return $ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(! $filesize) {
|
|
||||||
$ret['message'] = t('Image file is empty.');
|
|
||||||
@unlink($src);
|
|
||||||
call_hooks('photo_post_end',$ret);
|
|
||||||
return $ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
logger('photo_upload: loading the contents of ' . $src , LOGGER_DEBUG);
|
|
||||||
|
|
||||||
$imagedata = @file_get_contents($src);
|
|
||||||
|
|
||||||
$r = q("select sum(size) as total from photo where aid = %d and scale = 0 ",
|
$r = q("select sum(size) as total from photo where aid = %d and scale = 0 ",
|
||||||
intval($account_id)
|
intval($account_id)
|
||||||
|
76
mod/receive.php
Normal file
76
mod/receive.php
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Diaspora endpoint
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
//require_once('include/salmon.php');
|
||||||
|
require_once('include/crypto.php');
|
||||||
|
require_once('include/diaspora.php');
|
||||||
|
|
||||||
|
|
||||||
|
function receive_post(&$a) {
|
||||||
|
|
||||||
|
|
||||||
|
$enabled = intval(get_config('system','diaspora_enabled'));
|
||||||
|
if(! $enabled) {
|
||||||
|
logger('mod-diaspora: disabled');
|
||||||
|
http_status_exit(500);
|
||||||
|
}
|
||||||
|
|
||||||
|
$public = false;
|
||||||
|
|
||||||
|
if((argc() == 2) && (argv(1) === 'public')) {
|
||||||
|
$public = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
if(argc() != 3 || argv(1) !== 'users')
|
||||||
|
http_status_exit(500);
|
||||||
|
|
||||||
|
$guid = argv(2);
|
||||||
|
|
||||||
|
$r = q("SELECT * FROM channel left join account on account_id = channel_account_id WHERE channel_guid = '%s' AND account_flags = 0 LIMIT 1",
|
||||||
|
dbesc($guid)
|
||||||
|
);
|
||||||
|
if(! count($r))
|
||||||
|
http_status_exit(500);
|
||||||
|
|
||||||
|
$importer = $r[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// It is an application/x-www-form-urlencoded that has been urlencoded twice.
|
||||||
|
|
||||||
|
logger('mod-diaspora: receiving post', LOGGER_DEBUG);
|
||||||
|
|
||||||
|
$xml = urldecode($_POST['xml']);
|
||||||
|
|
||||||
|
logger('mod-diaspora: new salmon ' . $xml, LOGGER_DATA);
|
||||||
|
|
||||||
|
if(! $xml)
|
||||||
|
http_status_exit(500);
|
||||||
|
|
||||||
|
logger('mod-diaspora: message is okay', LOGGER_DEBUG);
|
||||||
|
|
||||||
|
$msg = diaspora_decode($importer,$xml);
|
||||||
|
|
||||||
|
logger('mod-diaspora: decoded', LOGGER_DEBUG);
|
||||||
|
|
||||||
|
logger('mod-diaspora: decoded msg: ' . print_r($msg,true), LOGGER_DATA);
|
||||||
|
|
||||||
|
if(! is_array($msg))
|
||||||
|
http_status_exit(500);
|
||||||
|
|
||||||
|
logger('mod-diaspora: dispatching', LOGGER_DEBUG);
|
||||||
|
|
||||||
|
$ret = 0;
|
||||||
|
if($public)
|
||||||
|
diaspora_dispatch_public($msg);
|
||||||
|
else
|
||||||
|
$ret = diaspora_dispatch($importer,$msg);
|
||||||
|
|
||||||
|
http_status_exit(($ret) ? $ret : 200);
|
||||||
|
// NOTREACHED
|
||||||
|
}
|
||||||
|
|
Reference in New Issue
Block a user