1
0
mirror of https://github.com/Daichimarukana/uwuzu.git synced 2026-06-05 03:24:41 +00:00

uwuzu v1.3.3 new_planet

This commit is contained in:
Daichimarukana
2024-03-06 17:34:02 +09:00
parent 3e37062d80
commit e0b3b93414
13 changed files with 255 additions and 193 deletions
+13 -11
View File
@@ -39,6 +39,7 @@ function processMarkdownAndWrapEmptyLines($markdownText){
}
//Profile
function replaceProfileEmojiImages($postText) {
$postText = str_replace(''', '\'', $postText);
// プロフィール名で絵文字名(:emoji:)を検出して画像に置き換える
$emojiPattern = '/:(\w+):/';
$postTextWithImages = preg_replace_callback($emojiPattern, function($matches) {
@@ -63,6 +64,7 @@ function replaceProfileEmojiImages($postText) {
return $postTextWithImages;
}
function replaceEmojisWithImages($postText) {
$postText = str_replace(''', '\'', $postText);
// ユーズ内で絵文字名(:emoji:)を検出して画像に置き換える
$emojiPattern = '/:(\w+):/';
$postTextWithImages = preg_replace_callback($emojiPattern, function($matches) {
@@ -104,14 +106,14 @@ function replaceEmojisWithImages($postText) {
if(empty($mentionsuserData)){
return "@$username";
}else{
return "<a class = 'mta' href='/@".htmlentities($mentionsuserData["userid"])."'>@".replaceProfileEmojiImages(htmlentities($mentionsuserData["username"]))."</a>";
return "<a class = 'mta' href='/@".htmlspecialchars($mentionsuserData["userid"], ENT_QUOTES, 'UTF-8', false)."'>@".replaceProfileEmojiImages(htmlspecialchars($mentionsuserData["username"], ENT_QUOTES, 'UTF-8', false))."</a>";
}
}, $postTextWithImages);
$hashtagsPattern = '/#([\p{Han}\p{Hiragana}\p{Katakana}A-Za-z0-9ー_]+)/u';
$postTextWithHashtags = preg_replace_callback($hashtagsPattern, function($matches) {
$hashtags = $matches[1];
return "<a class='hashtags' href='/search?q=" . urlencode('#') . $hashtags . "'>" . '#' . $hashtags . "</a>";
return "<a class='hashtags' href='/search?q=" . urlencode('#') . htmlspecialchars($hashtags, ENT_QUOTES, 'UTF-8', false) . "'>" . '#' . htmlspecialchars($hashtags, ENT_QUOTES, 'UTF-8', false) . "</a>";
}, $postTextWithImagesAndUsernames);
return $postTextWithHashtags;
@@ -133,11 +135,11 @@ class MessageDisplay {
echo ' <div class="flebox">';
echo ' <div class="time">';
$day = date("Ymd", strtotime(htmlentities($this->value['datetime'])));
$day = date("Ymd", strtotime(htmlspecialchars($this->value['datetime'], ENT_QUOTES, 'UTF-8', false)));
if ($day == date("Ymd")) {
echo date("今日 H:i", strtotime(htmlentities($this->value['datetime'])));
echo date("今日 H:i", strtotime(htmlspecialchars($this->value['datetime'], ENT_QUOTES, 'UTF-8', false)));
} else {
echo date("Y年m月d日 H:i", strtotime(htmlentities($this->value['datetime'])));
echo date("Y年m月d日 H:i", strtotime(htmlspecialchars($this->value['datetime'], ENT_QUOTES, 'UTF-8', false)));
}
echo ' </div>';
@@ -149,24 +151,24 @@ class MessageDisplay {
echo ' <div class="icon">';
if(($this->value['fromuserid'] == "uwuzu-fromsys")){
if(!(empty($this->value["servericon"]))){
echo ' <a href="/rule/serverabout"><img src="'.$this->value["servericon"].'"></a>';
echo ' <a href="/rule/serverabout"><img src="'.htmlspecialchars($this->value["servericon"], ENT_QUOTES, 'UTF-8', false).'"></a>';
}else{
echo ' <a href="/rule/serverabout"><img src="../img/uwuzuicon.png"></a>';
}
}else{
echo ' <a href="/@'.$this->value['fromuserid'].'"><img src="' . $this->value['fromusericon'] . '"></a>';
echo ' <a href="/@'.htmlspecialchars($this->value['fromuserid'], ENT_QUOTES, 'UTF-8', false).'"><img src="' . htmlspecialchars($this->value['fromusericon'], ENT_QUOTES, 'UTF-8', false) . '"></a>';
}
echo ' </div>';
if(($this->value['fromuserid'] == "uwuzu-fromsys")){
echo ' <div class="username"><a href="/rule/serverabout">uwuzu</a></div>';
}else{
echo ' <div class="username"><a href="/@'.$this->value['fromuserid'].'">'.$this->value['fromusername'].'</a></div>';
echo ' <div class="username"><a href="/@'.htmlspecialchars($this->value['fromuserid'], ENT_QUOTES, 'UTF-8', false).'">'.htmlspecialchars($this->value['fromusername'], ENT_QUOTES, 'UTF-8', false).'</a></div>';
}
echo ' </div>';
}
echo ' <h3>' . replaceEmojisWithImages($this->value['title']) . '</h3>';
echo ' <p>' . processMarkdownAndWrapEmptyLines(replaceEmojisWithImages(nl2br($this->value['msg']))) . '</p>';
echo ' <a href="' . htmlentities($this->value['url']) . '">詳細をみる</a>';
echo ' <h3>' . replaceEmojisWithImages(htmlspecialchars($this->value['title'], ENT_QUOTES, 'UTF-8', false)) . '</h3>';
echo ' <p>' . processMarkdownAndWrapEmptyLines(replaceEmojisWithImages(nl2br(htmlspecialchars($this->value['msg'], ENT_QUOTES, 'UTF-8', false)))) . '</p>';
echo ' <a href="' . htmlspecialchars($this->value['url'], ENT_QUOTES, 'UTF-8', false) . '">詳細をみる</a>';
echo '</div>';
}