mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-11-22 13:28:41 +00:00
feat(web): add image_hosting
This commit is contained in:
parent
0d0b8b0ba7
commit
ec80c669d1
@ -815,6 +815,7 @@ CREATE TABLE `user_info` (
|
||||
`motto` varchar(200) NOT NULL,
|
||||
`last_login` timestamp NOT NULL DEFAULT 0,
|
||||
`last_visited` timestamp NOT NULL DEFAULT 0,
|
||||
`images_size_limit` int(11) UNSIGNED NOT NULL DEFAULT 104857600, /* 100 MiB */
|
||||
PRIMARY KEY (`username`),
|
||||
KEY `ac_num` (`ac_num`,`username`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
|
||||
@ -829,6 +830,35 @@ LOCK TABLES `user_info` WRITE;
|
||||
/*!40000 ALTER TABLE `user_info` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `users_images`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE `users_images` (
|
||||
`id` varchar(30) NOT NULL,
|
||||
`username` varchar(20) NOT NULL,
|
||||
`width` int(11) NOT NULL,
|
||||
`height` int(11) NOT NULL,
|
||||
`upload_time` datetime NOT NULL,
|
||||
`size` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `username` (`username`),
|
||||
KEY `upload_time` (`upload_time`),
|
||||
KEY `size` (`size`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `users_images`
|
||||
--
|
||||
|
||||
LOCK TABLES `users_images` WRITE;
|
||||
/*!40000 ALTER TABLE `users_images` DISABLE KEYS */;
|
||||
/*!40000 ALTER TABLE `users_images` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `user_msg`
|
||||
--
|
||||
|
6
web/app/controllers/image_hosting/get_image.php
Normal file
6
web/app/controllers/image_hosting/get_image.php
Normal file
@ -0,0 +1,6 @@
|
||||
<?php
|
||||
requirePHPLib('form');
|
||||
|
||||
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
|
||||
redirectToLogin();
|
||||
}
|
21
web/app/controllers/image_hosting/index.php
Normal file
21
web/app/controllers/image_hosting/index.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
requirePHPLib('form');
|
||||
|
||||
if (!Auth::check() && UOJConfig::$data['switch']['force-login']) {
|
||||
redirectToLogin();
|
||||
}
|
||||
|
||||
if (!isNormalUser($myUser) && UOJConfig::$data['switch']['force-login']) {
|
||||
become403Page();
|
||||
}
|
||||
|
||||
$REQUIRE_LIB['bootstrap5'] = '';
|
||||
?>
|
||||
|
||||
<?php echoUOJPageHeader(UOJLocale::get('image hosting')) ?>
|
||||
|
||||
<h1 class="h2">
|
||||
<?= UOJLocale::get('image hosting') ?>
|
||||
</h1>
|
||||
|
||||
<?php echoUOJPageFooter() ?>
|
@ -100,4 +100,6 @@ return [
|
||||
'last active at' => 'Last active at',
|
||||
'online' => 'Online',
|
||||
'offline' => 'Offline',
|
||||
'apps' => 'Apps',
|
||||
'image hosting' => 'Image Hosting',
|
||||
];
|
||||
|
@ -100,4 +100,6 @@ return [
|
||||
'online' => '在线',
|
||||
'offline' => '离线',
|
||||
'last active at' => '最后活动于',
|
||||
'apps' => '应用',
|
||||
'image hosting' => '图床',
|
||||
];
|
||||
|
@ -5,6 +5,7 @@ Route::pattern('id', '[1-9][0-9]{0,9}');
|
||||
Route::pattern('contest_id', '[1-9][0-9]{0,9}');
|
||||
Route::pattern('tab', '\S{1,20}');
|
||||
Route::pattern('rand_str_id', '[0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]{20}');
|
||||
Route::pattern('image_name', '[0123456789abcdefghijklmnopqrstuvwxyz]{7}');
|
||||
Route::pattern('upgrade_name', '[a-zA-Z0-9_]{1,50}');
|
||||
|
||||
Route::group([
|
||||
@ -78,6 +79,10 @@ Route::group([
|
||||
Route::any('/download.php', '/download.php');
|
||||
|
||||
Route::any('/click-zan', '/click_zan.php');
|
||||
|
||||
// Image Hosting
|
||||
Route::any('/image-hosting', '/image_hosting/index.php');
|
||||
Route::get('/image-hosting/{image_name}.png', '/image_hosting/get_image.php');
|
||||
}
|
||||
);
|
||||
|
||||
|
0
web/app/storage/image_hosting/.gitkeep
Normal file
0
web/app/storage/image_hosting/.gitkeep
Normal file
1
web/app/upgrade/4_image_hosting/README.md
Normal file
1
web/app/upgrade/4_image_hosting/README.md
Normal file
@ -0,0 +1 @@
|
||||
ref: https://github.com/renbaoshuo/S2OJ/issues/4
|
2
web/app/upgrade/4_image_hosting/down.sql
Normal file
2
web/app/upgrade/4_image_hosting/down.sql
Normal file
@ -0,0 +1,2 @@
|
||||
ALTER TABLE `user_info` DROP COLUMN IF EXISTS `images_size_limit`;
|
||||
DROP TABLE IF EXISTS `users_images`;
|
21
web/app/upgrade/4_image_hosting/up.sql
Normal file
21
web/app/upgrade/4_image_hosting/up.sql
Normal file
@ -0,0 +1,21 @@
|
||||
ALTER TABLE `user_info` ADD COLUMN `images_size_limit` int(11) UNSIGNED NOT NULL DEFAULT 104857600 /* 100 MiB */;
|
||||
|
||||
--
|
||||
-- Table structure for table `users_images`
|
||||
--
|
||||
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8mb4 */;
|
||||
CREATE TABLE IF NOT EXISTS `users_images` (
|
||||
`id` varchar(30) NOT NULL,
|
||||
`username` varchar(20) NOT NULL,
|
||||
`width` int(11) NOT NULL,
|
||||
`height` int(11) NOT NULL,
|
||||
`upload_time` datetime NOT NULL,
|
||||
`size` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `username` (`username`),
|
||||
KEY `upload_time` (`upload_time`),
|
||||
KEY `size` (`size`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
@ -103,6 +103,22 @@ mb-4" role="navigation">
|
||||
<?= UOJLocale::get('blogs') ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<i class="bi bi-grid-3x3-gap"></i>
|
||||
<?= UOJLocale::get('apps') ?>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a class="dropdown-item" href="<?= HTML::url('/image-hosting') ?>">
|
||||
<i class="bi bi-images"></i>
|
||||
<?= UOJLocale::get('image hosting') ?>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?= HTML::url('/faq') ?>">
|
||||
<?php if (isset($REQUIRE_LIB['bootstrap5'])): ?>
|
||||
|
@ -89,6 +89,7 @@ initProgress(){
|
||||
service apache2 restart
|
||||
mkdir -p /opt/uoj/web/app/storage/submission
|
||||
mkdir -p /opt/uoj/web/app/storage/tmp
|
||||
mkdir -p /opt/uoj/web/app/storage/image_hosting
|
||||
chmod -R 777 /opt/uoj/web/app/storage
|
||||
#Using cli upgrade to latest
|
||||
php7.4 /var/www/uoj/app/cli.php upgrade:latest
|
||||
|
Loading…
Reference in New Issue
Block a user