nothing going on here. nothing to see. move along.

This commit is contained in:
friendica 2014-08-10 22:19:08 -07:00
parent 5dab65d783
commit f2244539da
2 changed files with 129 additions and 36 deletions

View File

@ -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,6 +61,20 @@ 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'])));
if($local) {
// allow an import from a binary string representing the image.
// This bypasses the upload step and max size limit checking
$imagedata = $local;
$filename = $args['filename'];
$filesize = strlen($imagedata);
// this is going to be deleted if it exists
$src = '/tmp/deletemenow';
$filetype = $args['filetype'];
}
else {
$f = array('src' => '', 'filename' => '', 'filesize' => 0, 'type' => ''); $f = array('src' => '', 'filename' => '', 'filesize' => 0, 'type' => '');
call_hooks('photo_upload_file',$f); call_hooks('photo_upload_file',$f);
@ -83,6 +97,7 @@ function photo_upload($channel, $observer, $args) {
logger('photo_upload: received file: ' . $filename . ' as ' . $src . ' ('. $type . ') ' . $filesize . ' bytes', LOGGER_DEBUG); logger('photo_upload: received file: ' . $filename . ' as ' . $src . ' ('. $type . ') ' . $filesize . ' bytes', LOGGER_DEBUG);
$maximagesize = get_config('system','maximagesize'); $maximagesize = get_config('system','maximagesize');
if(($maximagesize) && ($filesize > $maximagesize)) { if(($maximagesize) && ($filesize > $maximagesize)) {
@ -102,6 +117,8 @@ function photo_upload($channel, $observer, $args) {
logger('photo_upload: loading the contents of ' . $src , LOGGER_DEBUG); logger('photo_upload: loading the contents of ' . $src , LOGGER_DEBUG);
$imagedata = @file_get_contents($src); $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
View 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
}