Compare commits

..

No commits in common. "1512cfbe88a414d856c383b1aae5d344aa3d19f2" and "65ea79b93b3d56c86a032d1efd1017979140ec26" have entirely different histories.

6 changed files with 258 additions and 85 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,6 @@
<<<<<<< Updated upstream
<!doctype html>
<html lang="en" class="w-full h-full">
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favico.png" />
@ -12,10 +13,32 @@
<meta property='og:url' content="{{ data.opengraph_url }}" />
<meta property='og:locale' content='en_US' />
<title>{{ data.tab_title }}</title>
<script type="module" crossorigin src="/assets/index-DN7XJ__W.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-COb8XlA9.css">
<script type="module" crossorigin src="/assets/index-D2On2KQO.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-0Rv9u7Qs.css">
</head>
<body class="w-full h-full">
<div id="root" class="w-full h-full"></div>
<body>
<div id="root"></div>
</body>
=======
<!doctype html>
<html lang="en" class="w-full h-full">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favico.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="{{ data.description }}"/>
<meta name="keywords" content="{{ data.keywords }}"/>
<meta property='og:title' content="{{ data.opengraph_title }}" />
<meta property='og:description' content="{{ data.opengraph_description }}" />
<meta property='og:image' content="{{ data.opengraph_image }}" />
<meta property='og:url' content="{{ data.opengraph_url }}" />
<meta property='og:locale' content='en_US' />
<title>{{ data.tab_title }}</title>
<script type="module" crossorigin src="/assets/index-Hj0TonAS.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-DhrTUBtZ.css">
</head>
<body class="w-full h-full">
<div id="root" class="w-full h-full"></div>
</body>
>>>>>>> Stashed changes
</html>

View File

@ -1,4 +1,3 @@
import { useEffect, useState } from 'react';
import { NavLink } from 'react-router-dom';
import homeIcon from '../assets/icons/home.svg';
import cacheIcon from '../assets/icons/cache.svg';
@ -9,96 +8,105 @@ import telegramIcon from '../assets/icons/telegram.svg';
import giteaIcon from '../assets/icons/gitea.svg';
function NavBar() {
const [externalLinks, setExternalLinks] = useState({
discord: '#',
telegram: '#',
gitea: '#',
});
useEffect(() => {
fetch('/api/links')
.then(response => response.json())
.then(data => setExternalLinks(data))
.catch(error => console.error('Error fetching links:', error));
}, []);
return (
<div className="flex flex-col w-full h-full bg-white/1">
<div>
<p className='text-white text-2xl font-bold p-3 text-center mb-5'>
<a href='/'>CDRM-Project</a>
<a href='/'>
CDRM-Project
</a>
</p>
</div>
<div className='overflow-y-auto grow'>
{/* Static routes */}
{[{
to: '/',
label: 'Home',
icon: homeIcon,
color: 'sky'
}, {
to: '/cache',
label: 'Cache',
icon: cacheIcon,
color: 'emerald'
}, {
to: '/api',
label: 'API',
icon: apiIcon,
color: 'indigo'
}, {
to: '/testplayer',
label: 'Test Player',
icon: testPlayerIcon,
color: 'rose-700'
}].map(({ to, label, icon, color }) => (
<NavLink
key={label}
to={to}
className={({ isActive }) =>
`flex flex-row p-3 border-l-3 ${
isActive
? `border-l-${color}-500/50 bg-black/50`
: `hover:border-l-${color}-500/50 hover:bg-white/5`
}`
}
>
<button className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer'>
<img src={icon} alt={label} className='w-1/2 cursor-pointer' />
</button>
<p className='grow text-white md:text-2xl font-bold flex items-center justify-start'>
{label}
</p>
</NavLink>
))}
<NavLink
to='/'
className={({ isActive }) =>
`flex flex-row p-3 border-l-3 ${isActive ? 'border-l-sky-500/50 bg-black/50' : 'hover:border-l-sky-500/50 hover:bg-white/5'}`
}
>
<button className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer'>
<img src={homeIcon} alt="Home" className='w-1/2 cursor-pointer' />
</button>
<p className='grow text-white md:text-2xl font-bold flex items-center justify-start'>
Home
</p>
</NavLink>
<NavLink
to='/cache'
className={({ isActive }) =>
`flex flex-row p-3 border-l-3 ${isActive ? 'border-l-emerald-500/50 bg-black/50' : 'hover:border-l-emerald-500/50 hover:bg-white/5'}`
}
>
<button className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer'>
<img src={cacheIcon} alt="Cache" className='w-1/2 cursor-pointer' />
</button>
<p className='grow text-white md:text-2xl font-bold flex items-center justify-start'>
Cache
</p>
</NavLink>
<NavLink
to='/api'
className={({ isActive }) =>
`flex flex-row p-3 border-l-3 ${isActive ? 'border-l-indigo-500/50 bg-black/50' : 'hover:border-l-indigo-500/50 hover:bg-white/5'}`
}
>
<button className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer'>
<img src={apiIcon} alt="API" className='w-1/2 cursor-pointer' />
</button>
<p className='grow text-white md:text-2xl font-bold flex items-center justify-start'>
API
</p>
</NavLink>
<NavLink
to='/testplayer'
className={({ isActive }) =>
`flex flex-row p-3 border-l-3 ${isActive ? 'border-l-rose-700/50 bg-black/50' : 'hover:border-l-rose-700/50 hover:bg-white/5'}`
}
>
<button className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer'>
<img src={testPlayerIcon} alt="Test Player" className='w-1/2 cursor-pointer' />
</button>
<p className='grow text-white md:text-2xl font-bold flex items-center justify-start'>
Test Player
</p>
</NavLink>
</div>
{/* External links */}
<div className='flex flex-row w-full h-16 self-end bg-black/25'>
<a
href={externalLinks.discord}
href='https://discord.cdrm-project.com'
target='_blank'
rel='noopener noreferrer'
className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer hover:bg-blue-950 group'
>
<img src={discordIcon} alt="Discord" className='w-1/2 group-hover:animate-bounce' />
<img
src={discordIcon}
alt="Discord"
className='w-1/2 cursor-pointer group-hover:animate-bounce'
/>
</a>
<a
href={externalLinks.telegram}
href='https://telegram.cdrm-project.com'
target='_blank'
rel='noopener noreferrer'
className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer hover:bg-blue-400 group'
>
<img src={telegramIcon} alt="Telegram" className='w-1/2 group-hover:animate-bounce' />
<img
src={telegramIcon}
alt="Telegram"
className='w-1/2 cursor-pointer group-hover:animate-bounce'
/>
</a>
<a
href={externalLinks.gitea}
href='https://cdm-project.com/tpd94/cdrm-project'
target='_blank'
rel='noopener noreferrer'
className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer hover:bg-green-700 group'
>
<img src={giteaIcon} alt="Gitea" className='w-1/2 group-hover:animate-bounce' />
<img
src={giteaIcon}
alt="Gitea"
className='w-1/2 cursor-pointer group-hover:animate-bounce'
/>
</a>
</div>
</div>

View File

@ -1,5 +0,0 @@
data = {
'discord': 'https://discord.cdrm-project.com/',
'telegram': 'https://telegram.cdrm-project.com/',
'gitea': 'https://cdm-project.com/tpd94/cdm-project'
}

View File

@ -10,7 +10,6 @@ import mysql.connector
from io import StringIO
import tempfile
import time
from configs.icon_links import data as icon_data
api_bp = Blueprint('api', __name__)
with open(f'{os.getcwd()}/configs/config.yaml', 'r') as file:
@ -234,12 +233,4 @@ def decrypt_data():
return jsonify({
'status': 'fail',
'message': result['message']
})
@api_bp.route('/api/links', methods=['GET'])
def get_links():
return jsonify({
'discord': icon_data['discord'],
'telegram': icon_data['telegram'],
'gitea': icon_data['gitea'],
})
})