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> <!doctype html>
<html lang="en" class="w-full h-full"> <html lang="en">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favico.png" /> <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:url' content="{{ data.opengraph_url }}" />
<meta property='og:locale' content='en_US' /> <meta property='og:locale' content='en_US' />
<title>{{ data.tab_title }}</title> <title>{{ data.tab_title }}</title>
<script type="module" crossorigin src="/assets/index-DN7XJ__W.js"></script> <script type="module" crossorigin src="/assets/index-D2On2KQO.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-COb8XlA9.css"> <link rel="stylesheet" crossorigin href="/assets/index-0Rv9u7Qs.css">
</head> </head>
<body class="w-full h-full"> <body>
<div id="root" class="w-full h-full"></div> <div id="root"></div>
</body> </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> </html>

View File

@ -1,4 +1,3 @@
import { useEffect, useState } from 'react';
import { NavLink } from 'react-router-dom'; import { NavLink } from 'react-router-dom';
import homeIcon from '../assets/icons/home.svg'; import homeIcon from '../assets/icons/home.svg';
import cacheIcon from '../assets/icons/cache.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'; import giteaIcon from '../assets/icons/gitea.svg';
function NavBar() { 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 ( return (
<div className="flex flex-col w-full h-full bg-white/1"> <div className="flex flex-col w-full h-full bg-white/1">
<div> <div>
<p className='text-white text-2xl font-bold p-3 text-center mb-5'> <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> </p>
</div> </div>
<div className='overflow-y-auto grow'> <div className='overflow-y-auto grow'>
{/* Static routes */} <NavLink
{[{ to='/'
to: '/', className={({ isActive }) =>
label: 'Home', `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'}`
icon: homeIcon, }
color: 'sky' >
}, { <button className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer'>
to: '/cache', <img src={homeIcon} alt="Home" className='w-1/2 cursor-pointer' />
label: 'Cache', </button>
icon: cacheIcon, <p className='grow text-white md:text-2xl font-bold flex items-center justify-start'>
color: 'emerald' Home
}, { </p>
to: '/api', </NavLink>
label: 'API', <NavLink
icon: apiIcon, to='/cache'
color: 'indigo' 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'}`
to: '/testplayer', }
label: 'Test Player', >
icon: testPlayerIcon, <button className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer'>
color: 'rose-700' <img src={cacheIcon} alt="Cache" className='w-1/2 cursor-pointer' />
}].map(({ to, label, icon, color }) => ( </button>
<NavLink <p className='grow text-white md:text-2xl font-bold flex items-center justify-start'>
key={label} Cache
to={to} </p>
className={({ isActive }) => </NavLink>
`flex flex-row p-3 border-l-3 ${ <NavLink
isActive to='/api'
? `border-l-${color}-500/50 bg-black/50` className={({ isActive }) =>
: `hover:border-l-${color}-500/50 hover:bg-white/5` `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'>
<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' />
<img src={icon} alt={label} className='w-1/2 cursor-pointer' /> </button>
</button> <p className='grow text-white md:text-2xl font-bold flex items-center justify-start'>
<p className='grow text-white md:text-2xl font-bold flex items-center justify-start'> API
{label} </p>
</p> </NavLink>
</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> </div>
{/* External links */}
<div className='flex flex-row w-full h-16 self-end bg-black/25'> <div className='flex flex-row w-full h-16 self-end bg-black/25'>
<a <a
href={externalLinks.discord} href='https://discord.cdrm-project.com'
target='_blank' target='_blank'
rel='noopener noreferrer' rel='noopener noreferrer'
className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer hover:bg-blue-950 group' 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>
<a <a
href={externalLinks.telegram} href='https://telegram.cdrm-project.com'
target='_blank' target='_blank'
rel='noopener noreferrer' rel='noopener noreferrer'
className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer hover:bg-blue-400 group' 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>
<a <a
href={externalLinks.gitea} href='https://cdm-project.com/tpd94/cdrm-project'
target='_blank' target='_blank'
rel='noopener noreferrer' rel='noopener noreferrer'
className='w-1/3 p-3 flex flex-col items-center justify-center cursor-pointer hover:bg-green-700 group' 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> </a>
</div> </div>
</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 from io import StringIO
import tempfile import tempfile
import time import time
from configs.icon_links import data as icon_data
api_bp = Blueprint('api', __name__) api_bp = Blueprint('api', __name__)
with open(f'{os.getcwd()}/configs/config.yaml', 'r') as file: with open(f'{os.getcwd()}/configs/config.yaml', 'r') as file:
@ -234,12 +233,4 @@ def decrypt_data():
return jsonify({ return jsonify({
'status': 'fail', 'status': 'fail',
'message': result['message'] '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'],
})