41 lines
1.4 KiB
JavaScript
41 lines
1.4 KiB
JavaScript
/**
|
|
* BetterDiscord 24 Hour Timestamps Module
|
|
* Copyright (c) 2015-present Jiiks/JsSucks - https://github.com/Jiiks / https://github.com/JsSucks
|
|
* All rights reserved.
|
|
* https://betterdiscord.net
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
import BuiltinModule from './BuiltinModule';
|
|
import { Reflection } from 'modules';
|
|
|
|
const twelveHour = new RegExp(`([0-9]{1,2}):([0-9]{1,2})\\s(AM|PM)`);
|
|
|
|
export default new class TwentyFourHour extends BuiltinModule {
|
|
|
|
/* Getters */
|
|
get moduleName() { return 'TwentyFourHour' }
|
|
|
|
get settingPath() { return ['ui', 'default', '24-hour'] }
|
|
|
|
/* Patches */
|
|
applyPatches() {
|
|
if (this.patches.length) return;
|
|
const { TimeFormatter } = Reflection.modules;
|
|
this.patch(TimeFormatter, 'calendarFormat', this.convertTimeStamps);
|
|
}
|
|
|
|
/**
|
|
* Convert 12 hours timestamps to 24 hour timestamps
|
|
*/
|
|
convertTimeStamps(that, args, returnValue) {
|
|
const matched = returnValue.match(twelveHour);
|
|
if (!matched || matched.length !== 4) return;
|
|
if (matched[3] === 'AM') return returnValue.replace(matched[0], `${matched[1] === '12' ? '00' : matched[1].padStart(2, '0')}:${matched[2]}`)
|
|
return returnValue.replace(matched[0], `${parseInt(matched[1]) + 12}:${matched[2]}`)
|
|
}
|
|
|
|
}
|