diff --git a/css/home.css b/css/home.css index c0fcfa9..3b7249b 100644 --- a/css/home.css +++ b/css/home.css @@ -240,6 +240,8 @@ textarea{ padding-left: auto; padding-right: auto; border-radius: 25px; + background-color: var(--background-color); + border: 1px solid var(--main-color); box-shadow:0 0px 48px 0 rgba(0, 0, 0, .15); } @@ -687,6 +689,8 @@ main h1{ padding-left: auto; padding-right: auto; border-radius: 25px; + background-color: var(--background-color); + border: 1px solid var(--main-color); box-shadow:0 0px 48px 0 rgba(0, 0, 0, .15); } @@ -2876,7 +2880,7 @@ label>input { width:120px; padding: 8px auto; - margin-left: auto; + margin-left: 6px; margin-right: 6px; margin-bottom: 0px; @@ -2915,8 +2919,8 @@ label>input { width:120px; padding: 8px auto; - margin-left: auto; - margin-right: 0px; + margin-left: 6px; + margin-right: 6px; margin-bottom: 0px; padding-top: 6px; @@ -5312,6 +5316,13 @@ noscript .noscript_modal .inner .center_text p{ margin-right: 6px; } + .sendbox{ + padding-left: 12px; + padding-right: 12px; + padding-top: 12px; + padding-bottom: 12px; + } + .sendbox .fx img{ object-fit: cover; margin-left: -12px; @@ -5375,7 +5386,7 @@ noscript .noscript_modal .inner .center_text p{ font-weight: bold; } .sendbox .emoji_picker .emoji_picker_flex{ - justify-content: flex-start; + justify-content: space-between; } .sendbox .emoji_picker .emoji_picker_flex .one_emoji{ margin: 6px; @@ -5473,6 +5484,25 @@ noscript .noscript_modal .inner .center_text p{ transition: all 250ms ease-out; } + .irobutton{ + padding: 8px 5%; + } + .irobutton:hover{ + padding: 8px 6%; + } + .irobutton:active{ + padding: 8px 4%; + } + .sirobutton{ + padding: 8px 5%; + } + .sirobutton:hover{ + padding: 8px 6%; + } + .sirobutton:active{ + padding: 8px 4%; + } + .ueuse .favbox img{ width: 24px; height: 24px; @@ -7326,6 +7356,13 @@ noscript .noscript_modal .inner .center_text p{ color:var(--dark-background-color); box-shadow:0 0px 48px 0 rgba(0, 0, 0, .2); } + + .ueuse .unixtime{ + padding-left: 6px; + padding-right: 6px; + padding-top: 2px; + padding-bottom: 2px; + } .tlchange{ background-color: var(--dark-background-color); diff --git a/function/function.php b/function/function.php index 01aaa6b..2bd9bfe 100644 --- a/function/function.php +++ b/function/function.php @@ -110,20 +110,32 @@ function processMarkdownAndWrapEmptyLines($markdownText){ return '' . date("Y/m/d H:i", htmlentities($timestamp, ENT_QUOTES, 'UTF-8', false)) . ''; }, $markdownText); - $markdownText = preg_replace('/\*\*\*(.*?)\*\*\*/', '$1', $markdownText);//太字&斜体の全部のせセット - $markdownText = preg_replace('/\_\_\_(.*?)\_\_\_/', '$1', $markdownText);//太字&斜体の全部のせセット + //太字&斜体------------------------------------------------------------------------ + $markdownText = preg_replace('/\*\*\*(.+)\*\*\*(?=\s)/', '$1', $markdownText);//太字&斜体の全部のせセット + $markdownText = preg_replace('/\b\*\*\*(.+)\*\*\*\b/', '$1', $markdownText);//太字&斜体の全部のせセット - $markdownText = preg_replace('/\*\*(.*?)\*\*/', '$1', $markdownText);//太字 - $markdownText = preg_replace('/\_\_(.*?)\_\_/', '$1', $markdownText);//太字 + $markdownText = preg_replace('/\_\_\_(.+)\_\_\_(?=\s)/', '$1', $markdownText);//太字&斜体の全部のせセット + $markdownText = preg_replace('/\b\_\_\_(.+)\_\_\_\b/', '$1', $markdownText);//太字&斜体の全部のせセット - $markdownText = preg_replace('/\*(.*?)\*/', '$1', $markdownText);//斜体 - $markdownText = preg_replace('/\_(.*?)\_/', '$1', $markdownText);//斜体 + //太字----------------------------------------------------------------------------- + $markdownText = preg_replace('/\*\*(.+)\*\*(?=\s)/', '$1', $markdownText);//太字 + $markdownText = preg_replace('/\b\*\*(.+)\*\*\b/', '$1', $markdownText);//太字 - $markdownText = preg_replace('/\~\~(.*?)\~\~/m', '$1', $markdownText);//打ち消し線 + $markdownText = preg_replace('/\_\_(.+)\_\_(?=\s)/', '$1', $markdownText);//太字 + $markdownText = preg_replace('/\b\_\_(.+)\_\_\b/', '$1', $markdownText);//太字 - $markdownText = preg_replace('/>>> (.*)/m', '$1', $markdownText);//>>> 引用 + //斜体----------------------------------------------------------------------------- + $markdownText = preg_replace('/\*(.+)\*(?=\s)/', '$1', $markdownText);//斜体 + $markdownText = preg_replace('/\b\*(.+)\*\b/', '$1', $markdownText);//斜体 - $markdownText = preg_replace('/\|\|(.*)\|\|/m', '$1', $markdownText);//黒塗り + $markdownText = preg_replace('/\_(.+)\_(?=\s)/', '$1', $markdownText);//斜体 + $markdownText = preg_replace('/\b\_(.+)\_\b/', '$1', $markdownText);//斜体 + + $markdownText = preg_replace('/\~\~(.+)\~\~/m', '$1', $markdownText);//打ち消し線 + + $markdownText = preg_replace('/>>> (.+)/m', '$1', $markdownText);//>>> 引用 + + $markdownText = preg_replace('/\|\|(.+)\|\|/m', '$1', $markdownText);//黒塗り // タイトル(#、##、###)をHTMLのhタグに変換 $markdownText = preg_replace('/^# (.+)/m', '

$1

', $markdownText); @@ -183,10 +195,11 @@ function replaceEmojisWithImages($postText) { $emoji_row = $emoji_Query->fetch(); if(empty($emoji_row["emojifile"])){ $emoji_path = "img/sysimage/errorimage/emoji_404.png"; + return ":".$emojiName.":"; }else{ $emoji_path = $emoji_row["emojifile"]; + return ":$emojiName:"; } - return ":$emojiName:"; }, $postText); // @username を検出してリンクに置き換える @@ -212,10 +225,10 @@ function replaceEmojisWithImages($postText) { } }, $postTextWithImages); - $hashtagsPattern = '/#([\p{Han}\p{Hiragana}\p{Katakana}A-Za-z0-9ー_]+)/u'; + $hashtagsPattern = '/#([\p{Han}\p{Hiragana}\p{Katakana}A-Za-z0-9ー_!]+)/u'; $postTextWithHashtags = preg_replace_callback($hashtagsPattern, function($matches) { $hashtags = $matches[1]; - return "" . '#' . $hashtags . ""; + return "" . '#' . $hashtags . ""; }, $postTextWithImagesAndUsernames); return $postTextWithHashtags; @@ -225,12 +238,16 @@ function replaceURLsWithLinks($postText, $maxLength = 48) { $pattern = '/(https:\/\/[\w!?\/+\-_~;.,*&@#$%()+|https:\/\/[ぁ-んァ-ヶ一-龠々\w\-\/?=&%.]+)/'; $convertedText = preg_replace_callback($pattern, function($matches) use ($maxLength) { $link = $matches[0]; - $no_https_link = str_replace("https://", "", $link); - if (mb_strlen($link) > $maxLength) { - $truncatedLink = mb_substr($no_https_link, 0, $maxLength).'...'; - return ''.$truncatedLink.''; - } else { - return ''.$no_https_link.''; + if(!(preg_match('/:(\w+):/',$link))){ + $no_https_link = str_replace("https://", "", $link); + if (mb_strlen($link) > $maxLength) { + $truncatedLink = mb_substr($no_https_link, 0, $maxLength).'...'; + return ''.$truncatedLink.''; + } else { + return ''.$no_https_link.''; + } + }else{ + return $link; } }, $postText); @@ -249,51 +266,53 @@ function YouTube_and_nicovideo_Links($postText) { foreach ($matches[0] as $url) { // ドメイン部分を抽出 $parsedUrl = parse_url($url); - if($parsedUrl['host'] == "youtube.com" || $parsedUrl['host'] == "youtu.be" || $parsedUrl['host'] == "www.youtube.com" || $parsedUrl['host'] == "m.youtube.com"){ + if(!(empty($parsedUrl['host']))){ + if($parsedUrl['host'] == "youtube.com" || $parsedUrl['host'] == "youtu.be" || $parsedUrl['host'] == "www.youtube.com" || $parsedUrl['host'] == "m.youtube.com"){ - if (isset($parsedUrl['query'])) { - if(false !== strpos($parsedUrl['query'], 'v=')) { - $video_id = str_replace('v=', '', htmlentities($parsedUrl['query'], ENT_QUOTES, 'UTF-8', false)); - $iframe = true; - }else{ + if (isset($parsedUrl['query'])) { + if(false !== strpos($parsedUrl['query'], 'v=')) { + $video_id = str_replace('v=', '', htmlentities($parsedUrl['query'], ENT_QUOTES, 'UTF-8', false)); + $iframe = true; + }else{ + $video_id = str_replace('/', '', htmlentities($parsedUrl['path'], ENT_QUOTES, 'UTF-8', false)); + $iframe = true; + } + $video_id = str_replace('&', '?', $video_id); + }elseif(isset($parsedUrl['path'])){ $video_id = str_replace('/', '', htmlentities($parsedUrl['path'], ENT_QUOTES, 'UTF-8', false)); $iframe = true; + }else{ + $video_id = ""; + $iframe = false; } - $video_id = str_replace('&', '?', $video_id); - }elseif(isset($parsedUrl['path'])){ - $video_id = str_replace('/', '', htmlentities($parsedUrl['path'], ENT_QUOTES, 'UTF-8', false)); - $iframe = true; - }else{ - $video_id = ""; - $iframe = false; - } - // 不要な文字を削除してaタグを生成 - if($iframe == true){ - $link = ''; - }else{ - $link = ""; - } - // URLをドメインのみを表示するaタグで置き換え - $postText = $link; - }elseif($parsedUrl['host'] == "nicovideo.jp" || $parsedUrl['host'] == "www.nicovideo.jp"){ + // 不要な文字を削除してaタグを生成 + if($iframe == true){ + $link = ''; + }else{ + $link = ""; + } + // URLをドメインのみを表示するaタグで置き換え + $postText = $link; + }elseif($parsedUrl['host'] == "nicovideo.jp" || $parsedUrl['host'] == "www.nicovideo.jp"){ - if(isset($parsedUrl['path'])){ - $video_id = str_replace('/watch/', '', htmlentities($parsedUrl['path'], ENT_QUOTES, 'UTF-8', false)); - $iframe = true; + if(isset($parsedUrl['path'])){ + $video_id = str_replace('/watch/', '', htmlentities($parsedUrl['path'], ENT_QUOTES, 'UTF-8', false)); + $iframe = true; + }else{ + $video_id = ""; + $iframe = false; + } + // 不要な文字を削除してaタグを生成 + if($iframe == true){ + $link = ''; - }else{ - $link = ""; - } - // URLをドメインのみを表示するaタグで置き換え - $postText = $link; - }else{ - $postText = ""; } } diff --git a/new.php b/new.php index f115608..c49d2b8 100644 --- a/new.php +++ b/new.php @@ -599,7 +599,7 @@ $pdo = null;

ユーザーID *

-
後から変更はできません。
プロフィールページに掲載され公開されます。
※サービス管理者が確認できます。
+
後から変更はできません。
プロフィールページに掲載され公開されます。
ユーザーIDはログインに必要になるためご自身で覚えておいてください。
※サービス管理者が確認できます。
diff --git a/server/uwuzuinfo.txt b/server/uwuzuinfo.txt index b0e3406..a176764 100644 --- a/server/uwuzuinfo.txt +++ b/server/uwuzuinfo.txt @@ -1,4 +1,4 @@ uwuzu -1.3.4 -2024/03/26 +1.3.5 +2024/03/27 daichimarukana,putonfps \ No newline at end of file diff --git a/server/uwuzurelease.txt b/server/uwuzurelease.txt index bb1f775..62871eb 100644 --- a/server/uwuzurelease.txt +++ b/server/uwuzurelease.txt @@ -1,6 +1,17 @@ ## リリースノートだぜぇぇぇぇぇぇい!!!!!!! ここにはuwuzuの更新情報を載せてくぜぇ~!(いやまてテンションおかしいだろ...) +## Version 1.3.5 (new_Planet) +リリース日:2024/03/27 +fix: ロールの新規作成ができなくなってしまう問題を修正しました。 +fix: リプライ画面にて入力中のテキストが保存されっぱなしになってしまう問題を修正しました。 +fix: Markdown関係のバグを修正しました。 +fix: URLに絵文字が含まれている際にimgタグがURL内に入ってしまう問題を修正しました。 + これによりURL内に「:{文字列}:」が含まれている場合にハイパーリンクは無効になります。 +chg: 絵文字が無い際に404を表示せずにそのままテキストとして返すようにしました。 +chg: 一部UIを変更しました! +chg: ハッシュタグに「!」が使用可能になりました! + ## Version 1.3.4 (new_Planet) リリース日:2024/03/26 fix: サーバーアイコンが設定されていない状態でサポートされていない端末からアクセスするとアイコンが表示されない問題を修正しました。 diff --git a/settings_admin/role_admin.php b/settings_admin/role_admin.php index 1710145..1ef3a3b 100644 --- a/settings_admin/role_admin.php +++ b/settings_admin/role_admin.php @@ -211,13 +211,13 @@ if( !empty($_POST['role_btn_submit']) ) { if(empty($roleeffect)){ $error_message[] = "ロールに適用するエフェクトが選択されていません。(INPUT_PLEASE)"; }else{ - if($roleeffect == "0"){ + if($roleeffect == "1"){ $save_role_effect = "none"; } - if($roleeffect == "1"){ + if($roleeffect == "2"){ $save_role_effect = "shine"; } - if($roleeffect == "2"){ + if($roleeffect == "3"){ $save_role_effect = "rainbow"; } } @@ -482,14 +482,14 @@ if (!empty($pdo)) {
ロールに付与するエフェクト
- - - - - + + - + + + +
@@ -571,7 +571,7 @@ if (!empty($pdo)) {