<?php
$pin_url_txt = $user_pin ?? '';
$pin_get = 'miters/' . $pin_url_txt . '.txt';
if (file_exists($pin_get)) {
$pin_arc = file($pin_get, FILE_IGNORE_NEW_LINES);
$pin_data = $pin_arc[0] ?? '';
$pin_link = $pin_arc[1] ?? '';
$pin_img = $pin_arc[2] ?? '';
$pin_keys = $pin_arc[3] ?? '';
$pin_odate = $pin_arc[4] ?? '';
$pin_gdate = $pin_arc[5] ?? '';
$pin_udate = $pin_arc[6] ?? '';
$pin = htmlspecialchars($pin_data, ENT_QUOTES, 'UTF-8');
$pin = str_replace(''', '\'', $pin);
$pin = str_replace(['<br />', '<br>'], '<br />', $pin);
$pin = preg_replace('/(?<!\w)#([0-9a-zA-Z]+)/m', '<a href="index.php?q=$1">#$1</a>', $pin);
$pin = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>$1</b>', $pin);
$pin = preg_replace('#\[i\](.*?)\[/i\]#si', '<i>$1</i>', $pin);
$pin = preg_replace('#\[u\](.*?)\[/u\]#si', '<u>$1</u>', $pin);
$pin = preg_replace('#\[s\](.*?)\[/s\]#si', '<s>$1</s>', $pin);
$pin = preg_replace_callback('#\[img\](.*?)\[/img\]#si', function($match) {
$url = filter_var($match[1], FILTER_SANITIZE_URL);
return '<a href="' . htmlspecialchars($url, ENT_QUOTES, 'UTF-8') . '" target="_blank"><img src="' . htmlspecialchars($url, ENT_QUOTES, 'UTF-8') . '"></a>';
}, $pin);
$pin = preg_replace_callback('#\[url\](.*?)\[/url\]#si', function($match) {
$url = filter_var($match[1], FILTER_SANITIZE_URL);
return '<a href="' . htmlspecialchars($url, ENT_QUOTES, 'UTF-8') . '" target="_blank">' . htmlspecialchars($match[1], ENT_QUOTES, 'UTF-8') . '</a>';
}, $pin);
$pin = str_replace('[hr]', '<hr />', $pin);
if (strpos($pin, '>') === 0) {
$pin = preg_replace('/>([^<]*)/m', '<span class="green_text">>$1</span>', $pin, 1);
}
$pin = preg_replace('/<br \/>>([^<]*)/m', '<br /><span class="green_text">>$1</span>', $pin);
$safe_username = htmlspecialchars($user_name ?? '', ENT_QUOTES, 'UTF-8');
$safe_url_txt = htmlspecialchars($pin_url_txt, ENT_QUOTES, 'UTF-8');
$safe_odate = htmlspecialchars($pin_odate, ENT_QUOTES, 'UTF-8');
$safe_pin_link = htmlspecialchars(str_replace('gifv', 'mp4', $pin_link), ENT_QUOTES, 'UTF-8');
try {
$p_start = new DateTime('now');
$p_end = new DateTime($pin_gdate ?: 'now');
$p_dif = $p_start->diff($p_end);
$p_d = $p_dif->days;
if ($p_d < 1) {
$p_since = ($p_dif->h < 1) ? $p_dif->i . "m" : $p_dif->h . "h";
} else {
if ($p_d > 365) {
$p_y = floor($p_d / 365);
$p_since = $p_y . 'y ' . ($p_d - ($p_y * 365)) . 'd';
} else {
$p_since = $p_d . 'd';
}
}
} catch (Exception $e) {
$p_since = 'unknown';
}
?>
<div class="m_table">
<div class="m_td">
<span class="name"><?= $safe_username ?> · <?= $p_since ?></span><br />
<div class="space_name"></div>
<span class="miter_text"><?= $pin ?></span><br />
<?php if (!empty($pin_img)): ?>
<a href="<?= htmlspecialchars($pin_img, ENT_QUOTES, 'UTF-8') ?>" target="_blank">
<img src="uploads/<?= htmlspecialchars($pin_img, ENT_QUOTES, 'UTF-8') ?>" class="embed_img" alt="">
</a>
<div class="space_img_bot"></div>
<?php endif; ?>
<?php if (!empty($pin_link)): ?>
<?php if (strpos($pin_link, 'youtube.com/') !== false || strpos($pin_link, 'youtu.be/') !== false):
$pin_link = str_replace('shorts/', 'watch?v=', $pin_link);
if (empty($pin_img) && preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $pin_link, $yt_match)):
?>
<div class="embed_yt_iso">
<iframe src="https://www.youtube.com/embed/<?= htmlspecialchars($yt_match[1], ENT_QUOTES, 'UTF-8') ?>" frameborder="0" allowfullscreen class="yt"></iframe>
</div>
<div class="space_img_bot"></div>
<?php endif; ?>
<?php elseif (preg_match('/\.(mp4|webm)$/i', $pin_link, $vid_match)):
if (empty($pin_img)): ?>
<div class="embed_yt_iso">
<video class="video_miter" controls><source src="<?= $safe_pin_link ?>" type="video/<?= strtolower($vid_match[1]) ?>"></video>
</div>
<div class="space_img_bot"></div>
<?php endif; ?>
<?php elseif (preg_match('/\.(jpg|jpeg|png|gif|svg|webp|jfif|apng|avif)$/i', $pin_link)):
if (empty($pin_img)): ?>
<a href="<?= $safe_pin_link ?>" target="_blank"><img src="<?= $safe_pin_link ?>" class="embed_img" alt=""></a>
<div class="space_img_bot"></div>
<?php endif; ?>
<?php elseif (strpos($pin_link, 'index.php?miter=') !== false):
$quote_p_link = str_replace('index.php?miter=', 'miters/', $pin_link) . '.txt';
if (file_exists($quote_p_link)):
$quote_p_arc = file($quote_p_link, FILE_IGNORE_NEW_LINES);
$quote_p = htmlspecialchars($quote_p_arc[0] ?? '', ENT_QUOTES, 'UTF-8');
$quote_p = str_replace(['<br />', '<br>'], '<br />', $quote_p);
$quote_p = preg_replace_callback('@(https?://([-\w\.]+)+(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)?)@', function($w) {
return '<a href="'.htmlspecialchars($w[1], ENT_QUOTES, 'UTF-8').'" target="_blank">'.htmlspecialchars(substr($w[1], 0, 30), ENT_QUOTES, 'UTF-8').'..</a>';
}, $quote_p);
$quote_p = preg_replace('/(?<!\S)#([0-9a-zA-Z]+)/m', '<a href="index.php?q=$1">#$1</a>', $quote_p);
$quote_p = preg_replace('#\[b\](.*?)\[/b\]#', '<b>$1</b>', $quote_p);
$quote_p = preg_replace('#\[i\](.*?)\[/i\]#', '<i>$1</i>', $quote_p);
$quote_p = preg_replace('#\[u\](.*?)\[/u\]#', '<u>$1</u>', $quote_p);
$quote_p = preg_replace('#\[s\](.*?)\[/s\]#', '<s>$1</s>', $quote_p);
$quote_p = str_replace('[hr]', '<hr />', $quote_p);
if (substr($quote_p, 0, 4) === '>') $quote_p = preg_replace('/>([^<]*)/m', '<span class="green_text">>$1</span>', $quote_p, 1);
$quote_p = preg_replace('/<br \/>>([^<]*)/m', '<br /><span class="green_text">>$1</span>', $quote_p);
$quote_page_contents_p = @file_get_contents($pin_link);
$quote_p_user = ($quote_page_contents_p && preg_match("/<title>(.+)<\/title>/i", $quote_page_contents_p, $m)) ? str_replace('Miter -', '', $m[1]) : '';
$q_end_p = new DateTime($quote_p_arc[5] ?? 'now');
$q_dif_p = (new DateTime('now'))->diff($q_end_p);
$q_since_p = ($q_dif_p->days < 1) ? (($q_dif_p->h < 1) ? $q_dif_p->i . "m" : $q_dif_p->h . "h") : $q_dif_p->days . "d";
?>
<div class="quote_container">
<span class="name">@<?= htmlspecialchars(trim($quote_p_user), ENT_QUOTES, 'UTF-8') ?> · <?= $q_since_p ?></span><br />
<div class="quote_name"></div>
<?= $quote_p ?><br />
<div class="quote_permalink"></div>
<a href="<?= $safe_pin_link ?>" target="_blank" class="permalink" style="color:silver;">
<?= htmlspecialchars($quote_p_arc[4] ?? '', ENT_QUOTES, 'UTF-8') ?>
<?= (($quote_p_arc[6] ?? '') > ($quote_p_arc[5] ?? '')) ? ' ±' : '' ?>
</a>
</div>
<?php endif; ?>
<?php else: ?>
<div class="link_container-div">
<a href="<?= $safe_pin_link ?>" target="_blank"><?= $safe_pin_link ?></a>
</div>
<?php endif; ?>
<?php endif; ?>
<a href="index.php?miter=<?= $safe_url_txt ?>" class="permalink" style="color:silver;">
<?= $safe_odate ?><?= ($pin_udate > $pin_gdate) ? ' ±' : '' ?>
</a><br />
<div class="footer_table-div">
<div class="footer_left-div">
<?php if (($login ?? false) === true):
$q_host = htmlspecialchars($_SERVER['HTTP_HOST'] ?? '', ENT_QUOTES, 'UTF-8');
?>
<a href="index.php?quote=https://<?= $q_host ?>/index.php?miter=<?= $safe_url_txt ?>"><img src="buttons/quote.png" class="footer_img_left" title="Quote" alt="Quote"></a>
<?php else: ?>
<img src="buttons/quote.png" class="footer_img_left" title="Quote" alt="Quote">
<?php endif; ?>
<img src="buttons/like.png" class="footer_img" title="Like" alt="Like">
<a href="index.php?miter=<?= $safe_url_txt ?>"><img src="buttons/share.png" class="footer_img" title="Share" alt="Share"></a>
<img src="buttons/pin.png" class="footer_img" title="Pinned" alt="Pinned">
<?php if (($login ?? false) === true): ?>
<a href="back/miter/delete.php?d=<?= $safe_url_txt ?>" onclick="return confirm_delete()"><img src="buttons/delete.png" class="footer_img" title="Delete" alt="Delete"></a>
<a href="index.php?edit=<?= $safe_url_txt ?>"><img src="buttons/edit.png" class="footer_img" title="Edit" alt="Edit"></a>
<a href="back/miter/pin.php"><img src="buttons/pin.png" class="footer_img" title="Unpin" alt="Unpin"></a>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php
}
?>