mirror of
https://github.com/Daichimarukana/uwuzu.git
synced 2026-06-04 19:14:41 +00:00
uwuzu v1.5.0 Combeny
This commit is contained in:
+875
-150
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
header('Content-Type: application/json');
|
||||
require('../db.php');
|
||||
require('../function/function.php');
|
||||
blockedIP($_SERVER['REMOTE_ADDR']);
|
||||
|
||||
if (safetext(isset($_POST['emoji'])) && safetext(isset($_POST['userid'])) && safetext(isset($_POST['account_id'])) && safetext(isset($_COOKIE['loginkey']))) {
|
||||
$emoji = safetext($_POST['emoji']);
|
||||
$userId = safetext($_POST['userid']);
|
||||
$loginid = safetext($_POST['account_id']);
|
||||
$loginkey = safetext($_COOKIE['loginkey']);
|
||||
|
||||
$is_login = uwuzuUserLoginCheck($loginid, $loginkey, "user");
|
||||
if ($is_login === false) {
|
||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// データベースに接続
|
||||
try {
|
||||
$option = array(
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||
);
|
||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||
} catch (PDOException $e) {
|
||||
// 接続エラーのときエラー内容を取得する
|
||||
$error_message[] = $e->getMessage();
|
||||
}
|
||||
|
||||
if (!empty($pdo)) {
|
||||
// カンマ区切りまたは1つのユーザーID文字列を処理
|
||||
$emojis = array_unique(array_filter(explode(',', $emoji)));
|
||||
|
||||
$results = [];
|
||||
|
||||
if (count($emojis) > 0) {
|
||||
// プレースホルダを作成
|
||||
$placeholders = implode(',', array_fill(0, count($emojis), '?'));
|
||||
$stmt = $pdo->prepare("SELECT emojifile, emojiname FROM emoji WHERE emojiname IN ($placeholders)");
|
||||
$stmt->execute($emojis);
|
||||
|
||||
$fetched = [];
|
||||
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
$fetched[$row['emojiname']] = [
|
||||
'emojipath' => filter_var($row["emojifile"], FILTER_VALIDATE_URL) ? $row["emojifile"] : "../" . $row["emojifile"],
|
||||
'emojiname' => $row['emojiname']
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($emojis as $name) {
|
||||
if (isset($fetched[$name])) {
|
||||
$results[$name] = $fetched[$name];
|
||||
} else {
|
||||
$results[$name] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode([
|
||||
"success" => true,
|
||||
"emojis" => $results
|
||||
], JSON_UNESCAPED_UNICODE);
|
||||
} else {
|
||||
$item = array(
|
||||
"success" => false,
|
||||
"emojipath" => null,
|
||||
"emojiname" => null,
|
||||
);
|
||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
}else{
|
||||
$item = array(
|
||||
"success" => false,
|
||||
"emojipath" => null,
|
||||
"emojiname" => null,
|
||||
);
|
||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
header('Content-Type: application/json');
|
||||
require('../db.php');
|
||||
require('../function/function.php');
|
||||
blockedIP($_SERVER['REMOTE_ADDR']);
|
||||
|
||||
if (safetext(isset($_POST['get_account'])) && safetext(isset($_POST['userid'])) && safetext(isset($_POST['account_id'])) && safetext(isset($_COOKIE['loginkey']))) {
|
||||
$get_account = safetext($_POST['get_account']);
|
||||
$userId = safetext($_POST['userid']);
|
||||
$loginid = safetext($_POST['account_id']);
|
||||
$loginkey = safetext($_COOKIE['loginkey']);
|
||||
|
||||
$is_login = uwuzuUserLoginCheck($loginid, $loginkey, "user");
|
||||
if ($is_login === false) {
|
||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// データベースに接続
|
||||
try {
|
||||
$option = array(
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||
);
|
||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||
} catch (PDOException $e) {
|
||||
// 接続エラーのときエラー内容を取得する
|
||||
$error_message[] = $e->getMessage();
|
||||
}
|
||||
|
||||
if (!empty($pdo)) {
|
||||
// カンマ区切りまたは1つのユーザーID文字列を処理
|
||||
$usernames = array_unique(array_filter(explode(',', $get_account)));
|
||||
|
||||
$results = [];
|
||||
|
||||
if (count($usernames) > 0) {
|
||||
// プレースホルダを作成
|
||||
$placeholders = implode(',', array_fill(0, count($usernames), '?'));
|
||||
$stmt = $pdo->prepare("SELECT userid, username FROM account WHERE userid IN ($placeholders)");
|
||||
$stmt->execute($usernames);
|
||||
|
||||
$fetched = [];
|
||||
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
$fetched[$row['userid']] = [
|
||||
'userid' => $row['userid'],
|
||||
'username' => $row['username']
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($usernames as $name) {
|
||||
if (isset($fetched[$name])) {
|
||||
$results[$name] = $fetched[$name];
|
||||
} else {
|
||||
$results[$name] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode([
|
||||
"success" => true,
|
||||
"users" => $results
|
||||
], JSON_UNESCAPED_UNICODE);
|
||||
} else {
|
||||
echo json_encode([
|
||||
"success" => false,
|
||||
"users" => null
|
||||
], JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
}else{
|
||||
$item = array(
|
||||
"success" => false,
|
||||
"userid" => null,
|
||||
"username" => null,
|
||||
);
|
||||
echo json_encode($item, JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
?>
|
||||
+2
-2
@@ -60,11 +60,11 @@ if (safetext(isset($_POST['uniqid'])) && safetext(isset($_POST['reusetext'])) &&
|
||||
}
|
||||
$ueuse_result = send_ueuse($userid,$rpUniqid,$ruUniqid,$reusetext,$photo1,$photo2,$photo3,$photo4,$video1,$nsfw_chk,$AIBWM);
|
||||
|
||||
if($ueuse_result == null){
|
||||
if($ueuse_result[0] == true){
|
||||
echo json_encode(['success' => true]);
|
||||
exit;
|
||||
}else{
|
||||
echo json_encode(['success' => false, 'error' => $ueuse_result]);
|
||||
echo json_encode(['success' => false, 'error' => $ueuse_result[1]]);
|
||||
exit;
|
||||
}
|
||||
}else{
|
||||
|
||||
@@ -0,0 +1,234 @@
|
||||
<?php
|
||||
header('Content-Type: application/json');
|
||||
|
||||
require('../db.php');
|
||||
require("function.php");
|
||||
blockedIP($_SERVER['REMOTE_ADDR']);
|
||||
if (safetext(isset($_POST['userid'])) && safetext(isset($_POST['account_id'])) && safetext(isset($_COOKIE['loginkey'])) && safetext(isset($_POST['settings_type']))) {
|
||||
//------------------------------------------------------
|
||||
if(file_exists("../settings_admin/plugin_settings/amazons3_settings.php")){
|
||||
require_once '../settings_admin/plugin_settings/amazons3_settings.php';
|
||||
if(AMS3_CHKS == "true"){
|
||||
if(file_exists("../plugin/aws/aws-autoloader.php")){
|
||||
require_once '../plugin/aws/aws-autoloader.php';
|
||||
}else{
|
||||
actionLog(null, "error", "settings", null, "AWS SDK for PHPが見つかりませんでした!", 4);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
actionLog(null, "error", "settings", null, "amazons3_settings.phpが見つかりませんでした!", 3);
|
||||
}
|
||||
|
||||
try {
|
||||
$option = array(
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||
);
|
||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||
} catch (PDOException $e) {
|
||||
// 接続エラーのときエラー内容を取得する
|
||||
$error_message[] = $e->getMessage();
|
||||
}
|
||||
|
||||
$userid = safetext($_POST['userid']);
|
||||
$loginid = safetext($_POST['account_id']);
|
||||
$loginkey = safetext($_COOKIE['loginkey']);
|
||||
|
||||
$is_login = uwuzuUserLoginCheck($loginid, $loginkey, "user");
|
||||
if ($is_login === false) {
|
||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$settings_type = safetext($_POST['settings_type']);
|
||||
|
||||
if($settings_type == "icon"){
|
||||
if(isset($_FILES["data"])){
|
||||
if (!(empty($_FILES['data']['name']))) {
|
||||
$uploadedFile = $_FILES['data'];
|
||||
if(check_mime($uploadedFile['tmp_name'])){
|
||||
$extension = convert_mime(check_mime($uploadedFile['tmp_name']));
|
||||
delete_exif($extension, $uploadedFile['tmp_name']);
|
||||
resizeImage($uploadedFile['tmp_name'], 512, 512);
|
||||
|
||||
if(AMS3_CHKS == "true"){
|
||||
$usericonurl = getUserData($pdo, $userid)["iconname"];
|
||||
if(filter_var($usericonurl, FILTER_VALIDATE_URL)){
|
||||
$s3delresult = deleteAmazonS3($usericonurl);
|
||||
}else{
|
||||
$s3delresult = true;
|
||||
}
|
||||
if($s3delresult == true){
|
||||
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
||||
}else{
|
||||
$s3result = false;
|
||||
}
|
||||
}else{
|
||||
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
||||
$newFilename = createUniqId() . '-'.$userid.'.webp';
|
||||
}else{
|
||||
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
||||
}
|
||||
$uploadedPath = 'usericons/' . $newFilename;
|
||||
$result = move_uploaded_file($uploadedFile['tmp_name'], '../'.$uploadedPath);
|
||||
|
||||
if ($result) {
|
||||
$iconName = $uploadedPath; // 保存されたファイルのパスを使用
|
||||
} else {
|
||||
$errnum = $uploadedFile['error'];
|
||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
||||
$error_message[] = 'アップロード失敗!(1)エラーコード:' .$errcode.'';
|
||||
}
|
||||
}
|
||||
if(isset($s3result)){
|
||||
if($s3result == false){
|
||||
$error_message[] = 'アップロード失敗!(1)エラーコード: S3ERROR';
|
||||
}else{
|
||||
$iconName = $s3result; // S3に保存されたファイルのパスを使用
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
||||
}
|
||||
}else{
|
||||
$error_message[] = 'アイコン画像を選択してください(PHOTO_SELECT_PLEASE)';
|
||||
}
|
||||
|
||||
if(empty($error_message)) {
|
||||
$currentIconPath = getUserData($pdo, $userid)["iconname"];
|
||||
|
||||
$pdo->beginTransaction();
|
||||
try {
|
||||
$stmt = $pdo->prepare("UPDATE account SET iconname = :iconname WHERE userid = :userid");
|
||||
$stmt->bindValue(':iconname', $iconName, PDO::PARAM_STR);
|
||||
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
|
||||
$res = $stmt->execute();
|
||||
$res = $pdo->commit();
|
||||
} catch (Exception $e) {
|
||||
$pdo->rollBack();
|
||||
}
|
||||
|
||||
if ($res) {
|
||||
if ($currentIconPath) {
|
||||
unlink('../' . $currentIconPath);
|
||||
}
|
||||
echo json_encode(['success' => true]);
|
||||
exit;
|
||||
} else {
|
||||
echo json_encode(['success' => false, 'error' => '更新に失敗しました']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// プリペアドステートメントを削除
|
||||
$stmt = null;
|
||||
}else{
|
||||
echo json_encode(['success' => false, 'error' => $error_message[0]]);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($settings_type == "header"){
|
||||
if(isset($_FILES["data"])){
|
||||
if (!(empty($_FILES['data']['name']))) {
|
||||
$uploadedFile = $_FILES['data'];
|
||||
if(check_mime($uploadedFile['tmp_name'])){
|
||||
$extension = pathinfo($uploadedFile['name'], PATHINFO_EXTENSION);
|
||||
delete_exif($extension, $uploadedFile['tmp_name']);
|
||||
resizeImage($uploadedFile['tmp_name'], 2048, 1024);
|
||||
|
||||
if(AMS3_CHKS == "true"){
|
||||
$userheadurl = getUserData($pdo, $userid)["headname"];
|
||||
if(filter_var($userheadurl, FILTER_VALIDATE_URL)){
|
||||
$s3delresult = deleteAmazonS3($userheadurl);
|
||||
}else{
|
||||
$s3delresult = true;
|
||||
}
|
||||
if($s3delresult == true){
|
||||
$s3result = uploadAmazonS3($uploadedFile['tmp_name']);
|
||||
}else{
|
||||
$s3result = false;
|
||||
}
|
||||
}else{
|
||||
if(check_mime($uploadedFile['tmp_name']) == "image/webp"){
|
||||
$newFilename = createUniqId() . '-'.$userid.'.webp';
|
||||
}else{
|
||||
$newFilename = createUniqId() . '-'.$userid.'.' . $extension;
|
||||
}
|
||||
$uploadedPath = 'userheads/' . $newFilename;
|
||||
$result = move_uploaded_file($uploadedFile['tmp_name'], '../'.$uploadedPath);
|
||||
|
||||
if ($result) {
|
||||
$headName = $uploadedPath; // 保存されたファイルのパスを使用
|
||||
} else {
|
||||
$errnum = $uploadedFile['error'];
|
||||
if($errnum === 1){$errcode = "FILE_DEKASUGUI_PHP_INI_KAKUNIN";}
|
||||
if($errnum === 2){$errcode = "FILE_DEKASUGUI_HTML_KAKUNIN";}
|
||||
if($errnum === 3){$errcode = "FILE_SUKOSHIDAKE_UPLOAD";}
|
||||
if($errnum === 4){$errcode = "FILE_UPLOAD_DEKINAKATTA";}
|
||||
if($errnum === 6){$errcode = "TMP_FOLDER_NAI";}
|
||||
if($errnum === 7){$errcode = "FILE_KAKIKOMI_SIPPAI";}
|
||||
if($errnum === 8){$errcode = "PHPINFO()_KAKUNIN";}
|
||||
$error_message[] = 'アップロード失敗!(2)エラーコード:' .$errcode.'';
|
||||
}
|
||||
}
|
||||
if(isset($s3result)){
|
||||
if($s3result == false){
|
||||
$error_message[] = 'アップロード失敗!(2)エラーコード: S3ERROR';
|
||||
}else{
|
||||
$headName = $s3result; // S3に保存されたファイルのパスを使用
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$error_message[] = "使用できない画像形式です。(FILE_UPLOAD_DEKINAKATTA)";
|
||||
}
|
||||
}else{
|
||||
$error_message[] = 'アイコン画像を選択してください(PHOTO_SELECT_PLEASE)';
|
||||
}
|
||||
|
||||
if(empty($error_message)) {
|
||||
$currentHeadPath = getUserData($pdo, $userid)["headname"];
|
||||
|
||||
$pdo->beginTransaction();
|
||||
try {
|
||||
$stmt = $pdo->prepare("UPDATE account SET headname = :headname WHERE userid = :userid");
|
||||
$stmt->bindValue(':headname', $headName, PDO::PARAM_STR);
|
||||
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);
|
||||
$res = $stmt->execute();
|
||||
$res = $pdo->commit();
|
||||
} catch (Exception $e) {
|
||||
$pdo->rollBack();
|
||||
}
|
||||
|
||||
if ($res) {
|
||||
if ($currentHeadPath) {
|
||||
unlink('../' . $currentHeadPath);
|
||||
}
|
||||
echo json_encode(['success' => true]);
|
||||
exit;
|
||||
} else {
|
||||
echo json_encode(['success' => false, 'error' => '更新に失敗しました']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// プリペアドステートメントを削除
|
||||
$stmt = null;
|
||||
}else{
|
||||
echo json_encode(['success' => false, 'error' => $error_message[0]]);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
echo json_encode(['success' => false, 'error' => '必要なパラメータが提供されていません。']);
|
||||
exit;
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
header('Content-Type: application/json');
|
||||
|
||||
require('../db.php');
|
||||
require("function.php");
|
||||
blockedIP($_SERVER['REMOTE_ADDR']);
|
||||
if (safetext(isset($_POST['ueuse'])) && safetext(isset($_POST['userid'])) && safetext(isset($_POST['account_id'])) && safetext(isset($_COOKIE['loginkey']))) {
|
||||
try {
|
||||
$option = array(
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
PDO::MYSQL_ATTR_MULTI_STATEMENTS => false
|
||||
);
|
||||
$pdo = new PDO('mysql:charset=utf8mb4;dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USER, DB_PASS, $option);
|
||||
} catch (PDOException $e) {
|
||||
// 接続エラーのときエラー内容を取得する
|
||||
actionLog($userid, "error", "ueuse", null, $e, 4);
|
||||
}
|
||||
|
||||
$userid = safetext($_POST['userid']);
|
||||
|
||||
$ueuse = safetext($_POST['ueuse']);
|
||||
$nsfw_chk = safetext($_POST['nsfw_chk']);
|
||||
$loginid = safetext($_POST['account_id']);
|
||||
$loginkey = safetext($_COOKIE['loginkey']);
|
||||
|
||||
$is_login = uwuzuUserLoginCheck($loginid, $loginkey, "user");
|
||||
if ($is_login === false) {
|
||||
echo json_encode(['success' => false, 'error' => '認証に失敗しました。(AUTH_INVALID)']);
|
||||
exit;
|
||||
}
|
||||
|
||||
//ユーザーの認証情報を取得
|
||||
$query = $pdo->prepare('SELECT * FROM account WHERE userid = :userid limit 1');
|
||||
$query->execute(array(':userid' => $userid));
|
||||
$result2 = $query->fetch();
|
||||
if($result2["loginid"] === $loginid){
|
||||
if(!($result2["role"] == "ice")){
|
||||
if(!(empty($result2["other_settings"]))){
|
||||
$isAIBWM = val_OtherSettings("isAIBlockWaterMark", $result2["other_settings"]);
|
||||
}else{
|
||||
$isAIBWM = false;
|
||||
}
|
||||
|
||||
if(isset($nsfw_chk) && $nsfw_chk == "true"){
|
||||
$nsfw_chk = "true";
|
||||
}else{
|
||||
$nsfw_chk = "false";
|
||||
}
|
||||
|
||||
if(isset($_FILES['upload_images'])){
|
||||
$photo1 = $_FILES['upload_images'];
|
||||
}else{
|
||||
$photo1 = null;
|
||||
}
|
||||
if(isset($_FILES['upload_images2'])){
|
||||
$photo2 = $_FILES['upload_images2'];
|
||||
}else{
|
||||
$photo2 = null;
|
||||
}
|
||||
if(isset($_FILES['upload_images3'])){
|
||||
$photo3 = $_FILES['upload_images3'];
|
||||
}else{
|
||||
$photo3 = null;
|
||||
}
|
||||
if(isset($_FILES['upload_images4'])){
|
||||
$photo4 = $_FILES['upload_images4'];
|
||||
}else{
|
||||
$photo4 = null;
|
||||
}
|
||||
if(isset($_FILES['upload_videos1'])){
|
||||
$video1 = $_FILES['upload_videos1'];
|
||||
}else{
|
||||
$video1 = null;
|
||||
}
|
||||
|
||||
if(isset($_POST['rpuniqid'])){
|
||||
$rpUniqid = safetext($_POST['rpuniqid']);
|
||||
}else{
|
||||
$rpUniqid = "";
|
||||
}
|
||||
|
||||
$ruUniqid = "";
|
||||
$ueuse_result = send_ueuse($userid,$rpUniqid,$ruUniqid,$ueuse,$photo1,$photo2,$photo3,$photo4,$video1,$nsfw_chk,$isAIBWM);
|
||||
|
||||
if($ueuse_result[0] == true){
|
||||
echo json_encode(['success' => true]);
|
||||
exit;
|
||||
}else{
|
||||
echo json_encode(['success' => false, 'error' => $ueuse_result[1]]);
|
||||
exit;
|
||||
}
|
||||
}else{
|
||||
echo json_encode(['success' => false, 'error' => 'お使いのアカウントではユーズができません。']);
|
||||
exit;
|
||||
}
|
||||
}else{
|
||||
echo json_encode(['success' => false, 'error' => 'ユーズに失敗しました。']);
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
echo json_encode(['success' => false, 'error' => '必要なパラメータが提供されていません。']);
|
||||
exit;
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user