1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- const domain_name = document.location.hostname.substring(document.location.hostname.indexOf('.') + 1);
- // Migrate from old authentication method
- const legacy_token = localStorage.getItem('token');
- if (legacy_token != null) {
- window.last_match_id = localStorage.getItem('last_match_id') || '';
- localStorage.removeItem('token');
- localStorage.removeItem('user_id');
- localStorage.removeItem('last_match_id');
- const login_to = encodeURIComponent(location.href);
- document.cookie = `login_to=${login_to}; path=/; domain=${domain_name}; secure; SameSite=Strict; Max-Age=30000`;
- document.location = '/auth_migrate?token=' + legacy_token + '&last_match_id=' + window.last_match_id;
- }
- // Grab info from cookies
- const cookies = document.cookie.split(';');
- for (const cookie of cookies) {
- const foo = decodeURIComponent(cookie).trim().split('=');
- const key = foo[0];
- if (key == '') break;
- let value = foo[1];
- if (value.substr(0, 2) == 's:') {
- value = value.slice(2, value.lastIndexOf('.'));
- }
- if (key == 'user') {
- window.logged_user_id = parseInt(value, 10);
- } else if (key == 'last_match') {
- window.last_match_id = parseInt(value, 10);
- } else if (key == 'login_to' && value != '') {
- document.cookie = `login_to=; path=/; domain=${domain_name}; secure; SameSite=Strict; Max-Age=0`;
- document.location = value;
- }
- }
- // Update login button
- const a = document.querySelector('.login-btn');
- if (window.logged_user_id) {
- a.href = `/u/${window.logged_user_id}/`;
- a.querySelector('img').src = `https://s.ppy.sh/a/${window.logged_user_id}`;
- } else {
- a.href = '/me/';
- a.querySelector('img').src = `/images/login.png`;
- }
- // Get current ruleset from hostname (eg. 'mania.kiwec.net')
- const rulesets = ['osu', 'taiko', 'catch', 'mania'];
- const subdomain = location.hostname.split('.')[0];
- window.selected_ruleset = rulesets.indexOf(subdomain);
- if (window.selected_ruleset == -1) {
- console.warn('No ruleset found for subdomain "' + subdomain + '"! Defaulting to standard.');
- window.selected_ruleset = 0;
- }
- document.querySelector('#toggle-rulesets-dropdown-btn img').src = `/images/mode-${rulesets[window.selected_ruleset]}.png`;
- // Activate ruleset dropdown
- document.addEventListener('click', (event) => {
- const open_ruleset_dropdown_btn = document.querySelector('#toggle-rulesets-dropdown-btn');
- const ruleset_dropdown = document.querySelector('#rulesets-dropdown');
- if (open_ruleset_dropdown_btn.contains(event.target)) {
- ruleset_dropdown.classList.toggle('hidden');
- } else {
- ruleset_dropdown.classList.add('hidden');
- }
- });
- document.querySelectorAll('.choose-ruleset').forEach((btn) => {
- btn.addEventListener('click', function(event) {
- event.preventDefault();
- const subdomains = location.hostname.split('.');
- subdomains[0] = this.dataset.ruleset;
- location.hostname = subdomains.join('.');
- });
- });
|