Initial commit with current working version
This commit is contained in:
commit
b2d3fd4bcc
195
extension.js
Normal file
195
extension.js
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
const Main = imports.ui.main;
|
||||||
|
const MainLoop = imports.mainloop;
|
||||||
|
const Lang = imports.lang;
|
||||||
|
const PanelMenu = imports.ui.panelMenu;
|
||||||
|
const St = imports.gi.St;
|
||||||
|
|
||||||
|
const _minariSpecialDayNames = new Array(
|
||||||
|
'Hëður',
|
||||||
|
'Rideyy',
|
||||||
|
'Morkh',
|
||||||
|
'Morkh+',
|
||||||
|
'Khmerd',
|
||||||
|
'Chamog'
|
||||||
|
);
|
||||||
|
|
||||||
|
const _minariWeekdayNames = new Array(
|
||||||
|
'Ro\'unn',
|
||||||
|
'Mïrdu',
|
||||||
|
'Hëmi',
|
||||||
|
'Drak',
|
||||||
|
'Þodon',
|
||||||
|
'Charm'
|
||||||
|
);
|
||||||
|
|
||||||
|
const _minariMonthNames = new Array(
|
||||||
|
null,
|
||||||
|
'Mëbel',
|
||||||
|
'Dirann',
|
||||||
|
'Ma\'uþ',
|
||||||
|
'Gerub',
|
||||||
|
'Þrei',
|
||||||
|
'Dimoc',
|
||||||
|
'Xentor',
|
||||||
|
'Mëðïr',
|
||||||
|
'Draþ',
|
||||||
|
'Quaden',
|
||||||
|
'Ridïmel',
|
||||||
|
'Rodom'
|
||||||
|
);
|
||||||
|
|
||||||
|
let _updateInterval = 5;
|
||||||
|
|
||||||
|
function MinariDate() {
|
||||||
|
this._init();
|
||||||
|
}
|
||||||
|
|
||||||
|
MinariDate.prototype = {
|
||||||
|
__proto__: PanelMenu.Button.prototype,
|
||||||
|
|
||||||
|
_init: function() {
|
||||||
|
PanelMenu.Button.prototype._init.call(this, 0.0);
|
||||||
|
|
||||||
|
this.label = new St.Label({ text: 'Initializing' });
|
||||||
|
this.actor.add_actor(this.label);
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateDate: function() {
|
||||||
|
let today = new Date();
|
||||||
|
|
||||||
|
today.setHours(0);
|
||||||
|
today.setMinutes(0);
|
||||||
|
today.setSeconds(0);
|
||||||
|
today.setMilliseconds(0);
|
||||||
|
today.setDate(today.getDate() + 11);
|
||||||
|
let leapCheck = new Date(today.getFullYear(), 1, 29);
|
||||||
|
let minariLeap = (leapCheck.getDate() == 29);
|
||||||
|
let oneJan = new Date(today.getFullYear(), 0, 1);
|
||||||
|
let doy = Math.ceil((today - oneJan) / 86400000);
|
||||||
|
let minariYear = today.getFullYear() - 1873;
|
||||||
|
let minariMonth = 0;
|
||||||
|
let minariDoy = 0;
|
||||||
|
let minariDay = 0;
|
||||||
|
let minariWeekday = 0;
|
||||||
|
let minariSpecialDay = -1;
|
||||||
|
|
||||||
|
switch (doy) {
|
||||||
|
case 0:
|
||||||
|
minariMonth = 0;
|
||||||
|
minariDay = 0;
|
||||||
|
minariSpecialDay = 0;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 91:
|
||||||
|
minariMonth = 0;
|
||||||
|
minariDay = 0;
|
||||||
|
minariSpecialDay = 1;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 182:
|
||||||
|
minariMonth = 0;
|
||||||
|
minariDay = 0;
|
||||||
|
minariSpecialDay = 2;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 183:
|
||||||
|
if (minariLeap) {
|
||||||
|
minariMonth = 0;
|
||||||
|
minariDay = 0;
|
||||||
|
minariSpecialDay = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 273:
|
||||||
|
if (!minariLeap) {
|
||||||
|
minariMonth = 0;
|
||||||
|
minariDay = 0;
|
||||||
|
minariSpecialDay = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 274:
|
||||||
|
if (minariLeap) {
|
||||||
|
minariMonth = 0;
|
||||||
|
minariDay = 0;
|
||||||
|
minariSpecialDay = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 364:
|
||||||
|
if (!minariLeap) {
|
||||||
|
minariMonth = 0;
|
||||||
|
minariDay = 0;
|
||||||
|
minariSpecialDay = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 365:
|
||||||
|
minariMonth = 0;
|
||||||
|
minariDay = 0;
|
||||||
|
minariSpecialDay = 5;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (minariSpecialDay == -1) {
|
||||||
|
let decr = 0;
|
||||||
|
minariDoy = doy;
|
||||||
|
|
||||||
|
if (minariDoy > 0) {
|
||||||
|
decr++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (minariDoy > 91) {
|
||||||
|
decr++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (minariDoy > 182) {
|
||||||
|
decr++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((minariDoy > 183) && minariLeap) {
|
||||||
|
decr++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((minariDoy > 273) && !minariLeap) {
|
||||||
|
decr++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((minariDoy > 274) && minariLeap) {
|
||||||
|
decr++;
|
||||||
|
}
|
||||||
|
|
||||||
|
minariDoy = minariDoy - decr + 1;
|
||||||
|
|
||||||
|
minariMonth = Math.ceil(minariDoy / 30);
|
||||||
|
minariDay = minariDoy % 30;
|
||||||
|
|
||||||
|
if (minariDay == 0) {
|
||||||
|
minariDay = 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
minariWeekday = minariDay % 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
let new_text = minariYear + ' ' + ((minariSpecialDay == -1) ? _minariMonthNames[minariMonth] + ' ' + minariDay + ' (' + _minariWeekdayNames[minariWeekday] + ')' : _minariSpecialDayNames[minariSpecialDay]);
|
||||||
|
|
||||||
|
this.label.set_text(new_text);
|
||||||
|
|
||||||
|
_timer = MainLoop.timeout_add_seconds(_updateInterval, Lang.bind(_indicator, _indicator._updateDate));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
function init(metadata) {
|
||||||
|
}
|
||||||
|
|
||||||
|
let _indicator;
|
||||||
|
let _timer;
|
||||||
|
|
||||||
|
function enable() {
|
||||||
|
_indicator = new MinariDate;
|
||||||
|
Main.panel.addToStatusArea('minari_date', _indicator, null, 'center');
|
||||||
|
_indicator._updateDate();
|
||||||
|
_timer = MainLoop.timeout_add_seconds(_updateInterval, Lang.bind(_indicator, _indicator._updateDate));
|
||||||
|
}
|
||||||
|
|
1
metadata.json
Normal file
1
metadata.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"shell-version": ["3.8.4", "3.10.2.1", "3.10.4"], "uuid": "MinariDate@gergely.polonkai.eu", "name": "Minari Date", "description": "Display current date according to the Minari calendar"}
|
9
stylesheet.css
Normal file
9
stylesheet.css
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
.helloworld-label {
|
||||||
|
font-size: 36px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: rgba(10,10,10,0.7);
|
||||||
|
border-radius: 5px;
|
||||||
|
padding: .5em;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user