1) $channel = channelx_by_nick(argv(1)); } if (! $channel) killme(); $matches = []; $partial = false; if (array_key_exists('HTTP_CONTENT_RANGE',$_SERVER)) { $pm = preg_match('/bytes (\d*)\-(\d*)\/(\d*)/',$_SERVER['HTTP_CONTENT_RANGE'],$matches); if ($pm) { // logger('Content-Range: ' . print_r($matches,true)); $partial = true; } } if ($partial) { $x = save_chunk($channel,$matches[1],$matches[2],$matches[3]); if ($x['partial']) { header('Range: bytes=0-' . (($x['length']) ? $x['length'] - 1 : 0)); json_return_and_die($result); } else { header('Range: bytes=0-' . (($x['size']) ? $x['size'] - 1 : 0)); $_FILES['userfile'] = [ 'name' => $x['name'], 'type' => $x['type'], 'tmp_name' => $x['tmp_name'], 'error' => $x['error'], 'size' => $x['size'] ]; } } else { if (! array_key_exists('userfile',$_FILES)) { $_FILES['userfile'] = [ 'name' => $_FILES['files']['name'], 'type' => $_FILES['files']['type'], 'tmp_name' => $_FILES['files']['tmp_name'], 'error' => $_FILES['files']['error'], 'size' => $_FILES['files']['size'] ]; } } $observer = App::get_observer(); $def_album = get_pconfig($channel['channel_id'],'system','photo_path'); $def_attach = get_pconfig($channel['channel_id'],'system','attach_path'); $r = attach_store($channel, (($observer) ? $observer['xchan_hash'] : ''), '', [ 'source' => 'editor', 'visible' => 0, 'album' => $def_album, 'directory' => $def_attach, 'allow_cid' => '<' . $channel['channel_hash'] . '>' ]); if (! $r['success']) { notice( $r['message'] . EOL); killme(); } if (intval($r['data']['is_photo'])) { $s = "\n\n" . $r['body'] . "\n\n"; } else { $url = z_root() . '/cloud/' . $channel['channel_address'] . '/' . $r['data']['display_path']; if (strpos($r['data']['filetype'],'video') === 0) { // give a wee bit of time for the background thumbnail processor to do its thing // or else we'll never see a video poster sleep(3); $thumb = Linkinfo::get_video_poster($url); if ($thumb) { $s = "\n\n" . '[zvideo poster=\'' . $thumb . '\']' . $url . '[/zvideo]' . "\n\n"; } else { $s = "\n\n" . '[zvideo]' . $url . '[/zvideo]' . "\n\n"; } } if (strpos($r['data']['filetype'],'audio') === 0) { $s = "\n\n" . '[zaudio]' . $url . '[/zaudio]' . "\n\n"; } $s .= "\n\n" . '[attachment]' . $r['data']['hash'] . ',' . $r['data']['revision'] . '[/attachment]' . "\n"; } if ($using_api) return $s; $result['message'] = $s; json_return_and_die($result); } }