1
0
mirror of https://github.com/Daichimarukana/uwuzu.git synced 2026-06-04 19:14:41 +00:00

uwuzu v1.5.3 Combeny

This commit is contained in:
Daichimarukana
2025-05-12 17:30:53 +09:00
parent 04849c81aa
commit a5d2661c74
14 changed files with 91 additions and 35 deletions
+1 -4
View File
@@ -194,17 +194,14 @@ $pdo = null;
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/style.css">
<script src="js/jquery-min.js"></script> <script src="js/jquery-min.js"></script>
<script src="js/unsupported.js"></script> <script src="js/unsupported.js"></script>
<script src="js/back.js"></script>
<link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png"> <link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="favicon/icon-192x192.png"> <link rel="icon" type="image/png" href="favicon/icon-192x192.png">
<meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="viewport" content="width=device-width,initial-scale=1">
<title>アカウント登録 - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title> <title>アカウント登録 - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title>
</head> </head>
<script src="js/back.js"></script>
<body> <body>
<div class="leftbox"> <div class="leftbox">
<?php if(!empty(safetext($serversettings["serverinfo"]["server_logo_login"]))){ ?> <?php if(!empty(safetext($serversettings["serverinfo"]["server_logo_login"]))){ ?>
<div class="logo"> <div class="logo">
+1 -2
View File
@@ -101,14 +101,13 @@ $pdo = null;
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/style.css">
<script src="js/jquery-min.js"></script> <script src="js/jquery-min.js"></script>
<script src="js/unsupported.js"></script> <script src="js/unsupported.js"></script>
<script src="js/back.js"></script>
<link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png"> <link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="favicon/icon-192x192.png"> <link rel="icon" type="image/png" href="favicon/icon-192x192.png">
<meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="viewport" content="width=device-width,initial-scale=1">
<title>アカウント登録 - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title> <title>アカウント登録 - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title>
</head> </head>
<script src="js/back.js"></script>
<body> <body>
+1 -1
View File
@@ -321,13 +321,13 @@ $pdo = null;
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/style.css">
<script src="js/jquery-min.js"></script> <script src="js/jquery-min.js"></script>
<script src="js/unsupported.js"></script> <script src="js/unsupported.js"></script>
<script src="js/back.js"></script>
<link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png"> <link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="favicon/icon-192x192.png"> <link rel="icon" type="image/png" href="favicon/icon-192x192.png">
<meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="viewport" content="width=device-width,initial-scale=1">
<title>ログイン - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title> <title>ログイン - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title>
</head> </head>
<script src="js/back.js"></script>
<body> <body>
<div class="leftbox"> <div class="leftbox">
+1 -1
View File
@@ -181,13 +181,13 @@ $pdo = null;
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/style.css">
<script src="js/jquery-min.js"></script> <script src="js/jquery-min.js"></script>
<script src="js/unsupported.js"></script> <script src="js/unsupported.js"></script>
<script src="js/back.js"></script>
<meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png"> <link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="favicon/icon-192x192.png"> <link rel="icon" type="image/png" href="favicon/icon-192x192.png">
<title>確認 - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title> <title>確認 - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title>
</head> </head>
<script src="js/back.js"></script>
<body> <body>
<div class="leftbox"> <div class="leftbox">
+2
View File
@@ -1913,6 +1913,8 @@ function delete_ueuse($uniqid, $userid, $account_id){
$pdo->rollBack(); $pdo->rollBack();
$error_message[] = "リユーズの削除ができませんでした。"; $error_message[] = "リユーズの削除ができませんでした。";
actionLog($userid, "error", "delete_ueuse", null, $error_message, 3); actionLog($userid, "error", "delete_ueuse", null, $error_message, 3);
}else{
$pdo->commit();
} }
} catch(PDOException $e) { } catch(PDOException $e) {
$pdo->rollBack(); $pdo->rollBack();
+3 -7
View File
@@ -83,7 +83,7 @@ $count2 = $result2->num_rows;
<meta charset="utf-8"> <meta charset="utf-8">
<!--OGPはじまり--> <!--OGPはじまり-->
<meta property="og:title" content="<?php echo safetext($serversettings["serverinfo"]["server_name"]);?>"> <meta property="og:title" content="<?php echo safetext($serversettings["serverinfo"]["server_name"]);?>">
<meta property="og:description" content="<?php echo safetext($serverinfo);?>"> <meta property="og:description" content="<?php echo safetext(preg_replace('/\r\n|\r|\n/', '', $serverinfo));?>">
<meta property="og:url" content="https://<?php echo safetext($domain); ?>/"> <meta property="og:url" content="https://<?php echo safetext($domain); ?>/">
<meta property="og:image" content="<?php echo safetext($serversettings["serverinfo"]["server_icon"]);?>"> <meta property="og:image" content="<?php echo safetext($serversettings["serverinfo"]["server_icon"]);?>">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
@@ -91,11 +91,12 @@ $count2 = $result2->num_rows;
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="<?php echo safetext($serversettings["serverinfo"]["server_name"]);?>"/> <meta name="twitter:title" content="<?php echo safetext($serversettings["serverinfo"]["server_name"]);?>"/>
<meta name="twitter:description" content="<?php echo safetext($serverinfo);?>"/> <meta name="twitter:description" content="<?php echo safetext(preg_replace('/\r\n|\r|\n/', '', $serverinfo));?>"/>
<!--OGPここまで--> <!--OGPここまで-->
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/style.css">
<script src="js/jquery-min.js"></script> <script src="js/jquery-min.js"></script>
<script src="js/unsupported.js"></script> <script src="js/unsupported.js"></script>
<script src="js/back.js"></script>
<link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png"> <link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="favicon/icon-192x192.png"> <link rel="icon" type="image/png" href="favicon/icon-192x192.png">
<link rel="manifest" href="manifest/manifest.json" /> <link rel="manifest" href="manifest/manifest.json" />
@@ -112,11 +113,6 @@ if ("serviceWorker" in navigator) {
<title><?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title> <title><?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title>
</head> </head>
<script src="js/back.js"></script>
<body> <body>
<div class="leftbox"> <div class="leftbox">
+27 -1
View File
@@ -116,6 +116,15 @@ async function replaceCustomEmojis(text) {
} }
function a_link(text){ function a_link(text){
const placeholders = {};
let placeholderIndex = 0;
text = text.replace(/&#039;/g, (match) => {
const key = `\u2063{{PLACEHOLDER${placeholderIndex++}}}\u2063`;
placeholders[key] = match; // 元の文字列を保存
return key;
});
text = text.replace(/(https:\/\/[\w!?\/+\-_~;.,*&@#$%()+|https:\/\/[ぁ-んァ-ヶ一ー-龠々\w\-\/?=&%.]+)/g, function(url) { text = text.replace(/(https:\/\/[\w!?\/+\-_~;.,*&@#$%()+|https:\/\/[ぁ-んァ-ヶ一ー-龠々\w\-\/?=&%.]+)/g, function(url) {
const escapedUrl = url; const escapedUrl = url;
const no_https_link = escapedUrl.replace("https://", ""); const no_https_link = escapedUrl.replace("https://", "");
@@ -132,6 +141,11 @@ function a_link(text){
return `${before}<a href="/search?q=${encodedTag}" class="hashtags">#${tag}</a>`; return `${before}<a href="/search?q=${encodedTag}" class="hashtags">#${tag}</a>`;
}); });
for (const key in placeholders) {
const escapedKey = key.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
text = text.replace(new RegExp(escapedKey, 'g'), placeholders[key]);
}
return text; return text;
} }
@@ -160,6 +174,13 @@ function formatMarkdown(text) {
return key; return key;
}); });
// ユーザーIDをプレースホルダーに退避
text = text.replace(/@([a-zA-Z0-9_]+)/g, (match) => {
const key = `\u2063{{PLACEHOLDER${placeholderIndex++}}}\u2063`;
placeholders[key] = match; // 元の文字列を保存
return key;
});
// 独自構文などの装飾 // 独自構文などの装飾
text = text.replace(/\[\[buruburu (.+?)\]\]/g, '<span class="buruburu">$1</span>'); text = text.replace(/\[\[buruburu (.+?)\]\]/g, '<span class="buruburu">$1</span>');
text = text.replace(/\[\[time (\d+)\]\]/g, (_, ts) => { text = text.replace(/\[\[time (\d+)\]\]/g, (_, ts) => {
@@ -348,6 +369,11 @@ async function createUeuseHtml(ueuse, selectedUniqid = null) {
if(ueuse["ueuse"].length > 0){ if(ueuse["ueuse"].length > 0){
reuse = ``; reuse = ``;
if(!(ueuse["reuse"] == null)){ if(!(ueuse["reuse"] == null)){
// カスタム絵文字を非同期に差し替え
var inyoreuseHtml = formatMarkdown(a_link(ueuse["reuse"]["ueuse"]));
inyoreuseHtml = await replaceMentions(inyoreuseHtml);
inyoreuseHtml = await replaceCustomEmojis(inyoreuseHtml);
inyo = `<div class="reuse_box" data-uniqid="`+ueuse["reuse"]["uniqid"]+`" id="quote_reuse"> inyo = `<div class="reuse_box" data-uniqid="`+ueuse["reuse"]["uniqid"]+`" id="quote_reuse">
<div class="reuse_flebox"> <div class="reuse_flebox">
<a href="/!`+ueuse["reuse"]["uniqid"]+`"> <a href="/!`+ueuse["reuse"]["uniqid"]+`">
@@ -366,7 +392,7 @@ async function createUeuseHtml(ueuse, selectedUniqid = null) {
</div> </div>
<p> <p>
`+formatMarkdown(a_link(ueuse["reuse"]["ueuse"]))+` `+inyoreuseHtml+`
</p> </p>
</div>`; </div>`;
}else{ }else{
+27 -2
View File
@@ -66,6 +66,31 @@ if(!($is_login === false)){
} }
//------------------------------------------------------------- //-------------------------------------------------------------
$serversettings_file = "server/serversettings.ini";
$serversettings = parse_ini_file($serversettings_file, true);
//------------------------
$serverinfofile = 'server/info.txt';
$serverinfo = file_get_contents($serverinfofile);
//-------------------------------------
//-------------------------
$softwarefile = "server/uwuzuinfo.txt";
$softwaredata = file_get_contents($softwarefile);
$softwaredata = explode( "\n", $softwaredata );
$cnt = count( $softwaredata );
for( $i=0;$i<$cnt;$i++ ){
$uwuzuinfo[$i] = ($softwaredata[$i]);
}
//-------------------------
$domain = $_SERVER['HTTP_HOST'];
//------------------------
//パスワード試行回数制限------------------------------------------- //パスワード試行回数制限-------------------------------------------
if (!isset($_SESSION['login_passtry'])) { if (!isset($_SESSION['login_passtry'])) {
$_SESSION['login_passtry'] = 0; $_SESSION['login_passtry'] = 0;
@@ -232,11 +257,12 @@ $pdo = null;
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="ログイン - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?>"/> <meta name="twitter:title" content="ログイン - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?>"/>
<meta name="twitter:description" content="<?php echo safetext($serverinfo);?>"/> <meta name="twitter:description" content="<?php echo safetext(preg_replace('/\r\n|\r|\n/', '', $serverinfo));?>"/>
<!--OGPここまで--> <!--OGPここまで-->
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/style.css">
<script src="js/jquery-min.js"></script> <script src="js/jquery-min.js"></script>
<script src="js/unsupported.js"></script> <script src="js/unsupported.js"></script>
<script src="js/back.js"></script>
<?php if(!empty(H_CAPTCHA_ONOFF && H_CAPTCHA_ONOFF == "true")){?> <?php if(!empty(H_CAPTCHA_ONOFF && H_CAPTCHA_ONOFF == "true")){?>
<script src="https://js.hcaptcha.com/1/api.js" async defer></script> <script src="https://js.hcaptcha.com/1/api.js" async defer></script>
<?php }?> <?php }?>
@@ -249,7 +275,6 @@ $pdo = null;
<title>ログイン - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title> <title>ログイン - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title>
</head> </head>
<script src="js/back.js"></script>
<body> <body>
<div class="leftbox"> <div class="leftbox">
+1 -2
View File
@@ -492,6 +492,7 @@ $pdo = null;
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/style.css">
<script src="js/jquery-min.js"></script> <script src="js/jquery-min.js"></script>
<script src="js/unsupported.js"></script> <script src="js/unsupported.js"></script>
<script src="js/back.js"></script>
<script src="js/zxcvbn.js"></script> <script src="js/zxcvbn.js"></script>
<?php if(!empty(H_CAPTCHA_ONOFF && H_CAPTCHA_ONOFF == "true")){?> <?php if(!empty(H_CAPTCHA_ONOFF && H_CAPTCHA_ONOFF == "true")){?>
<script src="https://js.hcaptcha.com/1/api.js" async defer></script> <script src="https://js.hcaptcha.com/1/api.js" async defer></script>
@@ -505,8 +506,6 @@ $pdo = null;
<title>アカウント登録 - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title> <title>アカウント登録 - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title>
</head> </head>
<script src="js/back.js"></script>
<body> <body>
+1 -5
View File
@@ -74,6 +74,7 @@ try {
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/style.css">
<script src="js/jquery-min.js"></script> <script src="js/jquery-min.js"></script>
<script src="js/unsupported.js"></script> <script src="js/unsupported.js"></script>
<script src="js/back.js"></script>
<link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png"> <link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="favicon/icon-192x192.png"> <link rel="icon" type="image/png" href="favicon/icon-192x192.png">
<link rel="manifest" href="manifest/manifest.json" /> <link rel="manifest" href="manifest/manifest.json" />
@@ -90,11 +91,6 @@ if ("serviceWorker" in navigator) {
<title>アカウント登録<?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title> <title>アカウント登録<?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title>
</head> </head>
<script src="js/back.js"></script>
<body> <body>
<div class="leftbox"> <div class="leftbox">
+2 -2
View File
@@ -1,4 +1,4 @@
uwuzu uwuzu
1.5.2 1.5.3
2025/05/04 2025/05/12
daichimarukana,putonfps daichimarukana,putonfps
+9
View File
@@ -1,6 +1,15 @@
## リリースノートだぜぇぇぇぇぇぇい!!!!!!! ## リリースノートだぜぇぇぇぇぇぇい!!!!!!!
ここにはuwuzuの更新情報を載せてくぜぇ~!(いやまてテンションおかしいだろ...) ここにはuwuzuの更新情報を載せてくぜぇ~!(いやまてテンションおかしいだろ...)
## Version 1.5.3 (Combeny)
2025/05/12
fix: ユーズに何も引用などしていない通常のリユーズがある場合にユーズを削除しようとした場合にエラーが発生する恐れのある問題を修正しました!
fix: 上記故に発生するアカウントに失敗する問題を修正しました。
fix: 特定の条件下でアカウント削除が正常に行えない問題を修正しました。
fix: ユーズ表示時にユーザーIDにアンダーバーが複数入っている場合に問題が発生する問題を修正しました。
fix: ユーズ内でアポストロフィーを入力した際に表示に問題が出る問題を修正しました!
fix: OGPが正常に動作しない恐れのある問題を修正しました。
## Version 1.5.2 (Combeny) ## Version 1.5.2 (Combeny)
2025/05/04 2025/05/04
fix: ユーズのMarkdownがもっと上手く働かないどころか崩壊してしまう問題を修正しました! fix: ユーズのMarkdownがもっと上手く働かないどころか崩壊してしまう問題を修正しました!
+1 -4
View File
@@ -26,17 +26,14 @@ if(!(empty($_SESSION['done']))){
<link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="css/style.css">
<script src="js/jquery-min.js"></script> <script src="js/jquery-min.js"></script>
<script src="js/unsupported.js"></script> <script src="js/unsupported.js"></script>
<script src="js/back.js"></script>
<link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png"> <link rel="apple-touch-icon" type="image/png" href="favicon/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="favicon/icon-192x192.png"> <link rel="icon" type="image/png" href="favicon/icon-192x192.png">
<meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="viewport" content="width=device-width,initial-scale=1">
<title>アカウント登録完了!!! - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title> <title>アカウント登録完了!!! - <?php echo safetext($serversettings["serverinfo"]["server_name"]);?></title>
</head> </head>
<script src="js/back.js"></script>
<body> <body>
<div class="leftbox2"> <div class="leftbox2">
<?php if(!empty(safetext($serversettings["serverinfo"]["server_logo_login"]))){ ?> <?php if(!empty(safetext($serversettings["serverinfo"]["server_logo_login"]))){ ?>
<div class="logo"> <div class="logo">
+14 -4
View File
@@ -1,12 +1,22 @@
{ {
"software": "uwuzu", "software": "uwuzu",
"version": "1.5.2", "version": "1.5.3",
"release_date": "2025/05/04", "release_date": "2025/05/12",
"release_notes": "このアップデートではユーズのMarkdown解析が正常に行われないバグの修正が行われています詳細はリリースノートをご覧ください。", "release_notes": "このアップデートにはアカウント削除に失敗する問題の修正や、ユーズのMarkdown解析に失敗する問題の修正が含まれます詳細はリリースノートをご覧ください。",
"notices": "アップデート前にデータのバックアップを行うことをおすすめします!", "notices": "アップデート前にデータのバックアップを行うことをおすすめします!\nまた、アップデート後はキャッシュクリアをお忘れなく!",
"files": { "files": {
"overwrite": [ "overwrite": [
"/js/view_function.js", "/js/view_function.js",
"/function/function.php",
"/addauthcode.php",
"/authcodechk.php",
"/authlogin.php",
"/check.php",
"/index.php",
"/login.php",
"/new_select.php",
"/new.php",
"/success.php",
"/server/uwuzuabout.txt", "/server/uwuzuabout.txt",
"/server/uwuzuinfo.txt", "/server/uwuzuinfo.txt",