Add files via upload
parent
51f893354d
commit
231271a94f
|
|
@ -0,0 +1,27 @@
|
||||||
|
# World Clock Info
|
||||||
|
A clock info that creates a new ClockInfo list for world clocks, so you can see the time across the world.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
Use a clock with ClockInfo, then swipe left/right to get to the World Clock list. From there, swipe up/down to get to the city you want.
|
||||||
|
|
||||||
|
## Cities
|
||||||
|
* London
|
||||||
|
* Mumbai
|
||||||
|
* New York City
|
||||||
|
* Tokyo
|
||||||
|
* Dubai
|
||||||
|
* Los Angeles
|
||||||
|
* Paris
|
||||||
|
|
||||||
|
|
||||||
|
To add any more, consider contacting [RKBoss6](https://github.com/RKBoss6) on github, or fork it and modify the app yourself.
|
||||||
|
## Settings
|
||||||
|
In app settings, there is a small section for World Clock Info
|
||||||
|
#### Shorten Cities
|
||||||
|
This shortens the city name (New York City --> NYC) to fit inside smaller ClockInfos.
|
||||||
|
#### Show Meridians
|
||||||
|
This shows meridians, <i>if you enable them in locale</i>. Otherwise, it will not show no matter what setting it is set to.
|
||||||
|
#### Shorten Meridians
|
||||||
|
This shortens the meridian and removes the space separating it from the time (3:50 pm --> 3:50p) to fit inside smaller ClockInfos.
|
||||||
|
## Creator
|
||||||
|
[RKBoss6](https://github.com/RKBoss6)
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 7.0 KiB |
|
|
@ -0,0 +1,280 @@
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
|
||||||
|
|
||||||
|
//read settings
|
||||||
|
var settings = Object.assign({
|
||||||
|
// default values
|
||||||
|
shorten: true,
|
||||||
|
showMeridians: true,
|
||||||
|
shortenMeridians:false,
|
||||||
|
}, require("Storage").readJSON("worldclkinfosettings.json", true) || {});
|
||||||
|
|
||||||
|
//All offsets from UTC in minutes. Positive: behind UTC. Negative: Ahead of UTC.
|
||||||
|
|
||||||
|
const londonTimeOffset=60;
|
||||||
|
const mumbaiTimeOffset=330;
|
||||||
|
const nycTimeOffset=-240;
|
||||||
|
const tokyoTimeOffset=540;
|
||||||
|
const dubaiTimeOffset=240;
|
||||||
|
const laTimeOffset=-420;
|
||||||
|
const parisTimeOffset=120;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function getWorldDateString(cityName){
|
||||||
|
//Gets difference between UTC and local time
|
||||||
|
var date=new Date();
|
||||||
|
var currOffset = date.getTimezoneOffset();
|
||||||
|
|
||||||
|
var timeOffset;
|
||||||
|
|
||||||
|
switch (cityName) {
|
||||||
|
case "London":
|
||||||
|
timeOffset=londonTimeOffset;
|
||||||
|
break;
|
||||||
|
case "Mumbai":
|
||||||
|
timeOffset=mumbaiTimeOffset;
|
||||||
|
break;
|
||||||
|
case "New York":
|
||||||
|
timeOffset=nycTimeOffset;
|
||||||
|
break;
|
||||||
|
case "Tokyo":
|
||||||
|
timeOffset=tokyoTimeOffset;
|
||||||
|
break;
|
||||||
|
case "Dubai":
|
||||||
|
timeOffset=dubaiTimeOffset;
|
||||||
|
break;
|
||||||
|
case "Los Angeles":
|
||||||
|
timeOffset=laTimeOffset;
|
||||||
|
break;
|
||||||
|
case "Paris":
|
||||||
|
timeOffset=parisTimeOffset;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
//Nothing else matches
|
||||||
|
timeOffset=0
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//go to UTC time
|
||||||
|
date.setMinutes(date.getMinutes() + currOffset);
|
||||||
|
//from there, go to city time
|
||||||
|
date.setMinutes(date.getMinutes() + timeOffset);
|
||||||
|
|
||||||
|
var meridian=require("locale").meridian(date);
|
||||||
|
|
||||||
|
var clockStr;
|
||||||
|
if(settings.showMeridians==true){
|
||||||
|
if(settings.shortenMeridians==true){
|
||||||
|
//get A - am, or P - pm
|
||||||
|
clockStr = require("locale").time(date, 1 /*omit seconds*/)+meridian[0];
|
||||||
|
|
||||||
|
}else{
|
||||||
|
clockStr = require("locale").time(date, 1 /*omit seconds*/)+" "+meridian;
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
clockStr = require("locale").time(date, 1 /*omit seconds*/);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var finalCityStr;
|
||||||
|
|
||||||
|
if(settings.shorten==true){
|
||||||
|
|
||||||
|
switch (cityName) {
|
||||||
|
case "Los Angeles":
|
||||||
|
finalCityStr="LA";
|
||||||
|
break;
|
||||||
|
case "New York":
|
||||||
|
finalCityStr="NYC";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
//Nothing else matches
|
||||||
|
finalCityStr=cityName;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
|
||||||
|
finalCityStr=cityName;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var finalStr=finalCityStr+"\n"+clockStr;
|
||||||
|
return finalStr;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return {
|
||||||
|
name: "World Clocks",
|
||||||
|
items: [
|
||||||
|
|
||||||
|
{ name : "London",
|
||||||
|
get : () => {
|
||||||
|
return {
|
||||||
|
text : getWorldDateString("London"),
|
||||||
|
//blank image
|
||||||
|
img : atob("")
|
||||||
|
};
|
||||||
|
},
|
||||||
|
show : function() {
|
||||||
|
this.interval = setTimeout(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
this.interval = setInterval(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
}, 60000);
|
||||||
|
}, 60000 - (Date.now() % 60000));
|
||||||
|
},
|
||||||
|
hide : function() {
|
||||||
|
clearInterval(this.interval);
|
||||||
|
this.interval = undefined;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{ name : "Mumbai",
|
||||||
|
get : () => {
|
||||||
|
return {
|
||||||
|
text : getWorldDateString("Mumbai"),
|
||||||
|
//blank image
|
||||||
|
img : atob("")
|
||||||
|
};
|
||||||
|
},
|
||||||
|
show : function() {
|
||||||
|
this.interval = setTimeout(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
this.interval = setInterval(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
}, 60000);
|
||||||
|
}, 60000 - (Date.now() % 60000));
|
||||||
|
},
|
||||||
|
hide : function() {
|
||||||
|
clearInterval(this.interval);
|
||||||
|
this.interval = undefined;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{ name : "New York",
|
||||||
|
get : () => {
|
||||||
|
return {
|
||||||
|
text : getWorldDateString("New York"),
|
||||||
|
//blank image
|
||||||
|
img : atob("")
|
||||||
|
};
|
||||||
|
},
|
||||||
|
show : function() {
|
||||||
|
this.interval = setTimeout(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
this.interval = setInterval(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
}, 60000);
|
||||||
|
}, 60000 - (Date.now() % 60000));
|
||||||
|
},
|
||||||
|
hide : function() {
|
||||||
|
clearInterval(this.interval);
|
||||||
|
this.interval = undefined;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{ name : "Tokyo",
|
||||||
|
get : () => {
|
||||||
|
return {
|
||||||
|
text : getWorldDateString("Tokyo"),
|
||||||
|
//blank image
|
||||||
|
img : atob("")
|
||||||
|
};
|
||||||
|
},
|
||||||
|
show : function() {
|
||||||
|
this.interval = setTimeout(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
this.interval = setInterval(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
}, 60000);
|
||||||
|
}, 60000 - (Date.now() % 60000));
|
||||||
|
},
|
||||||
|
hide : function() {
|
||||||
|
clearInterval(this.interval);
|
||||||
|
this.interval = undefined;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{ name : "Dubai",
|
||||||
|
get : () => {
|
||||||
|
return {
|
||||||
|
text : getWorldDateString("Dubai"),
|
||||||
|
//blank image
|
||||||
|
img : atob("")
|
||||||
|
};
|
||||||
|
},
|
||||||
|
show : function() {
|
||||||
|
this.interval = setTimeout(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
this.interval = setInterval(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
}, 60000);
|
||||||
|
}, 60000 - (Date.now() % 60000));
|
||||||
|
},
|
||||||
|
hide : function() {
|
||||||
|
clearInterval(this.interval);
|
||||||
|
this.interval = undefined;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ name : "Los Angeles",
|
||||||
|
get : () => {
|
||||||
|
return {
|
||||||
|
text : getWorldDateString("Los Angeles"),
|
||||||
|
//blank image
|
||||||
|
img : atob("")
|
||||||
|
};
|
||||||
|
},
|
||||||
|
show : function() {
|
||||||
|
this.interval = setTimeout(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
this.interval = setInterval(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
}, 60000);
|
||||||
|
}, 60000 - (Date.now() % 60000));
|
||||||
|
},
|
||||||
|
hide : function() {
|
||||||
|
clearInterval(this.interval);
|
||||||
|
this.interval = undefined;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{ name : "Paris",
|
||||||
|
get : () => {
|
||||||
|
return {
|
||||||
|
text : getWorldDateString("Paris"),
|
||||||
|
//blank image
|
||||||
|
img : atob("")
|
||||||
|
};
|
||||||
|
},
|
||||||
|
show : function() {
|
||||||
|
this.interval = setTimeout(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
this.interval = setInterval(()=>{
|
||||||
|
this.emit("redraw");
|
||||||
|
}, 60000);
|
||||||
|
}, 60000 - (Date.now() % 60000));
|
||||||
|
},
|
||||||
|
hide : function() {
|
||||||
|
clearInterval(this.interval);
|
||||||
|
this.interval = undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
{ "id": "worldclkinfo",
|
||||||
|
"name": "World Clock Info",
|
||||||
|
"version": "0.05",
|
||||||
|
"description": "Creates a ClockInfo List to view times around the world (London, Hong Kong, Delhi, New York, etc.)",
|
||||||
|
"icon": "app.png",
|
||||||
|
"type": "clkinfo",
|
||||||
|
"tags": "clkinfo",
|
||||||
|
"supports" : ["BANGLEJS2"],
|
||||||
|
"readme": "README.md",
|
||||||
|
"storage": [
|
||||||
|
{"name":"worldclkinfo.clkinfo.js","url":"clkinfo.js"},
|
||||||
|
{"name":"worldclkinfo.settings.js","url":"settings.js"}
|
||||||
|
],
|
||||||
|
"data": [
|
||||||
|
{"name":"worldclkinfosettings.json"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
(function(back) {
|
||||||
|
var FILE = "worldclkinfosettings.json";
|
||||||
|
// Load settings
|
||||||
|
var settings = Object.assign({
|
||||||
|
shorten: false,
|
||||||
|
showMeridians:true,
|
||||||
|
shortenMeridians:false,
|
||||||
|
}, require('Storage').readJSON(FILE, true) || {});
|
||||||
|
|
||||||
|
function writeSettings() {
|
||||||
|
require('Storage').writeJSON(FILE, settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Show the menu
|
||||||
|
E.showMenu({
|
||||||
|
"" : { "title" : "World ClockInfo" },
|
||||||
|
"< Back" : () => back(),
|
||||||
|
|
||||||
|
'Shorten Cities ': {
|
||||||
|
value: !!settings.shorten, // !! converts undefined to false
|
||||||
|
onchange: v => {
|
||||||
|
settings.shorten = v;
|
||||||
|
writeSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
'Show Meridians': {
|
||||||
|
value: !!settings.showMeridians, // !! converts undefined to false
|
||||||
|
onchange: v => {
|
||||||
|
settings.showMeridians = v;
|
||||||
|
writeSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
'Shorten Meridians': {
|
||||||
|
value: !!settings.shortenMeridians, // !! converts undefined to false
|
||||||
|
onchange: v => {
|
||||||
|
settings.shortenMeridians = v;
|
||||||
|
writeSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue