Index tags, logout button
This commit is contained in:
parent
a74ba64696
commit
c218ae4cc6
4
cdrm-frontend/dist/index.html
vendored
4
cdrm-frontend/dist/index.html
vendored
@ -12,8 +12,8 @@
|
||||
<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-CjVpgi8Q.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-DKsxfXVF.css">
|
||||
<script type="module" crossorigin src="/assets/index-C2DUB5KK.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-BXlb7x7c.css">
|
||||
</head>
|
||||
<body class="w-full h-full">
|
||||
<div id="root" class="w-full h-full"></div>
|
||||
|
@ -5,15 +5,15 @@ function MyAccount() {
|
||||
const [wvList, setWvList] = useState([]);
|
||||
const [prList, setPrList] = useState([]);
|
||||
const [uploading, setUploading] = useState(false);
|
||||
const [username, setUsername] = useState(''); // <-- Added state for username
|
||||
const [username, setUsername] = useState('');
|
||||
|
||||
// Fetch user CDMs
|
||||
// Fetch user info
|
||||
const fetchUserInfo = async () => {
|
||||
try {
|
||||
const response = await axios.post('/userinfo');
|
||||
setWvList(response.data.Widevine_Devices || []);
|
||||
setPrList(response.data.Playready_Devices || []);
|
||||
setUsername(response.data.Username || ''); // <-- Set username here
|
||||
setUsername(response.data.Username || '');
|
||||
} catch (err) {
|
||||
console.error('Failed to fetch user info', err);
|
||||
}
|
||||
@ -23,7 +23,7 @@ function MyAccount() {
|
||||
fetchUserInfo();
|
||||
}, []);
|
||||
|
||||
// Handle File Upload
|
||||
// Handle file upload
|
||||
const handleUpload = async (event, cdmType) => {
|
||||
const file = event.target.files[0];
|
||||
if (!file) return;
|
||||
@ -49,20 +49,37 @@ function MyAccount() {
|
||||
}
|
||||
};
|
||||
|
||||
// Handle logout
|
||||
const handleLogout = async () => {
|
||||
try {
|
||||
await axios.post('/logout');
|
||||
window.location.reload();
|
||||
} catch (error) {
|
||||
console.error('Logout failed:', error);
|
||||
alert('Logout failed!');
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div id="myaccount" className="flex flex-row w-full min-h-full overflow-y-auto p-4">
|
||||
<div className="flex flex-col w-full min-h-full lg:flex-row">
|
||||
{/* Left Panel */}
|
||||
<div className="border-2 border-yellow-500/50 lg:h-full lg:w-96 w-full rounded-2xl p-4 flex flex-col items-center overflow-y-auto">
|
||||
<h1 className="text-2xl font-bold text-white border-b-2 border-white p-2 w-full text-center">
|
||||
<h1 className="text-2xl font-bold text-white border-b-2 border-white p-2 w-full text-center mb-2">
|
||||
{username ? `${username}` : 'My Account'}
|
||||
</h1>
|
||||
<button
|
||||
onClick={handleLogout}
|
||||
className="mt-auto w-full h-12 bg-yellow-500/50 rounded-2xl text-2xl text-white"
|
||||
>
|
||||
Log out
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{/* Right Panel */}
|
||||
<div className="flex flex-col grow lg:ml-2 mt-2 lg:mt-0">
|
||||
{/* Widevine Section */}
|
||||
<div className="border-2 border-yellow-500/50 flex flex-col w-full h-1/2 text-center rounded-2xl lg:p-4 p-2 overflow-y-auto">
|
||||
<div className="border-2 border-yellow-500/50 flex flex-col w-full min-h-1/2 text-center rounded-2xl lg:p-4 p-2 overflow-y-auto">
|
||||
<h1 className="text-2xl font-bold text-white border-b-2 border-white p-2">Widevine CDMs</h1>
|
||||
<div className="flex flex-col w-full grow p-2 bg-white/5 rounded-2xl mt-2 text-white text-left">
|
||||
{wvList.length === 0 ? (
|
||||
@ -92,7 +109,7 @@ function MyAccount() {
|
||||
</div>
|
||||
|
||||
{/* Playready Section */}
|
||||
<div className="border-2 border-yellow-500/50 flex flex-col w-full h-1/2 text-center rounded-2xl p-2 mt-2 lg:mt-2 overflow-y-auto">
|
||||
<div className="border-2 border-yellow-500/50 flex flex-col w-full min-h-1/2 text-center rounded-2xl p-2 mt-2 lg:mt-2 overflow-y-auto">
|
||||
<h1 className="text-2xl font-bold text-white border-b-2 border-white p-2">Playready CDMs</h1>
|
||||
<div className="flex flex-col w-full bg-white/5 grow rounded-2xl mt-2 text-white text-left p-2">
|
||||
{prList.length === 0 ? (
|
||||
|
@ -34,5 +34,14 @@ tags = {
|
||||
'opengraph_image': 'https://cdrm-project.com/og-api.jpg',
|
||||
'opengraph_url': 'https://cdrm-project.com/api',
|
||||
'tab_title': 'API',
|
||||
},
|
||||
'account': {
|
||||
'description': 'Account for CDRM-Project',
|
||||
'keywords': 'Login, CDRM, CDM, CDRM-Project, register, account',
|
||||
'opengraph_title': 'My account',
|
||||
'opengraph_description': 'Account for CDRM-Project',
|
||||
'opengraph_image': 'https://cdrm-project.com/og-home.jpg',
|
||||
'opengraph_url': 'https://cdrm-project.com/account',
|
||||
'tab_title': 'My account',
|
||||
}
|
||||
}
|
@ -7,6 +7,7 @@ def check_for_config_file():
|
||||
default_config = """\
|
||||
default_wv_cdm: ''
|
||||
default_pr_cdm: ''
|
||||
secret_key_flask: 'secretkey'
|
||||
# change the type to mariadb to use mariadb below
|
||||
database_type: 'sqlite'
|
||||
fqdn: ''
|
||||
|
7
main.py
7
main.py
@ -12,9 +12,12 @@ from routes.upload import upload_bp
|
||||
from routes.user_info import user_info_bp
|
||||
from routes.register import register_bp
|
||||
from routes.login import login_bp
|
||||
|
||||
import os
|
||||
import yaml
|
||||
app = Flask(__name__)
|
||||
app.secret_key = 'TT'
|
||||
with open(f'{os.getcwd()}/configs/config.yaml', 'r') as file:
|
||||
config = yaml.safe_load(file)
|
||||
app.secret_key = config['secret_key_flask']
|
||||
|
||||
CORS(app)
|
||||
|
||||
|
@ -30,3 +30,8 @@ def login_status():
|
||||
return jsonify({'message': 'False'})
|
||||
except:
|
||||
return jsonify({'message': 'False'})
|
||||
|
||||
@login_bp.route('/logout', methods=['POST'])
|
||||
def logout():
|
||||
session.pop('username', None)
|
||||
return jsonify({'message': 'Successfully logged out!'})
|
@ -26,7 +26,7 @@ def index(path=''):
|
||||
file_path = os.path.join(react_bp.static_folder, path)
|
||||
if path != "" and os.path.exists(file_path):
|
||||
return send_from_directory(react_bp.static_folder, path)
|
||||
elif path.lower() in ['', 'cache', 'api', 'testplayer']:
|
||||
elif path.lower() in ['', 'cache', 'api', 'testplayer', 'account']:
|
||||
data = index_tags.tags.get(path.lower(), index_tags.tags['index'])
|
||||
return render_template('index.html', data=data)
|
||||
else:
|
||||
|
Loading…
x
Reference in New Issue
Block a user