mirror of
https://framagit.org/hubzilla/core.git
synced 2026-06-21 00:52:33 -04:00
99 lines
2.3 KiB
PHP
99 lines
2.3 KiB
PHP
<?php
|
|
namespace Zotlabs\Module;
|
|
|
|
use Zotlabs\Lib\Activity;
|
|
use Zotlabs\Lib\IConfig;
|
|
use Zotlabs\Lib\ObjCache;
|
|
|
|
class Viewsrc extends \Zotlabs\Web\Controller {
|
|
|
|
function get() {
|
|
|
|
$o = '';
|
|
|
|
$sys = get_sys_channel();
|
|
|
|
$item_id = ((argc() > 1) ? intval(argv(1)) : 0);
|
|
$json = ((argc() > 2 && argv(2) === 'json') ? true : false);
|
|
$dload = ((argc() > 2 && argv(2) === 'download') ? true : false);
|
|
|
|
if(! local_channel()) {
|
|
notice( t('Permission denied.') . EOL);
|
|
}
|
|
|
|
|
|
if(! $item_id) {
|
|
\App::$error = 404;
|
|
notice( t('Item not found.') . EOL);
|
|
}
|
|
|
|
$item_normal = item_normal_search();
|
|
|
|
if(local_channel() && $item_id) {
|
|
$r = q("select * from item where uid in (%d , %d) and id = %d $item_normal limit 1",
|
|
intval(local_channel()),
|
|
intval($sys['channel_id']),
|
|
intval($item_id)
|
|
);
|
|
|
|
if($r) {
|
|
xchan_query($r, true);
|
|
$r = fetch_post_tags($r);
|
|
|
|
if(intval($r[0]['item_obscured']))
|
|
$dload = true;
|
|
|
|
if($dload) {
|
|
header('Content-type: ' . $r[0]['mimetype']);
|
|
header('Content-disposition: attachment; filename="' . t('item') . '-' . $item_id . '"' );
|
|
echo $r[0]['body'];
|
|
killme();
|
|
}
|
|
|
|
$cached = true;
|
|
|
|
$obj = ObjCache::Get($r[0]['mid']);
|
|
|
|
if (!$obj) {
|
|
$obj = IConfig::Get($r[0], 'activitypub', 'rawmsg');
|
|
}
|
|
|
|
if (in_array($r[0]['owner']['xchan_network'], ['diaspora'])) {
|
|
$obj = ObjCache::Get($r[0]['mid'], 'diaspora');
|
|
|
|
if (!$obj) {
|
|
$obj = IConfig::Get($r[0], 'diaspora', 'fields');
|
|
}
|
|
}
|
|
|
|
if (!$obj) {
|
|
$cached = false;
|
|
$obj = Activity::encode_activity($r[0]);
|
|
}
|
|
|
|
if ($obj) {
|
|
$content = (($cached) ? 'Cached: ' : '') . '<pre>' . escape_tags(json_encode($obj, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)) . '</pre>';
|
|
}
|
|
else {
|
|
$content = escape_tags($r[0]['body']);
|
|
}
|
|
|
|
$o = (($json) ? json_encode($content) : str_replace("\n", '<br>', $content));
|
|
}
|
|
}
|
|
|
|
if(is_ajax()) {
|
|
echo '<div class="p-1">';
|
|
echo '<div>id: ' . $r[0]['id'] . ' | <a href="' . $r[0]['plink'] . '" target="_blank">plink</a> | <a href="' . $r[0]['llink'] . '" target="_blank">llink</a><br>mid: ' . $r[0]['mid'] . '<br>hashpath: ' . hash('sha256', $r[0]['mid']) . '<br>uuid: ' . $r[0]['uuid'] . '</div>';
|
|
echo '<hr>';
|
|
echo '<pre class="p-1">' . $o . '</pre>';
|
|
echo '</div>';
|
|
killme();
|
|
}
|
|
|
|
return $o;
|
|
}
|
|
|
|
|
|
}
|