82 lines
1.9 KiB
JavaScript
82 lines
1.9 KiB
JavaScript
|
import _ from 'lodash';
|
|||
|
import classnames from 'classnames';
|
|||
|
|
|||
|
|
|||
|
export function uuid() {
|
|||
|
let str = "0v"
|
|||
|
str += Math.ceil(Math.random()*8)+"."
|
|||
|
for (var i = 0; i < 5; i++) {
|
|||
|
let _str = Math.ceil(Math.random()*10000000).toString(32);
|
|||
|
_str = ("00000"+_str).substr(-5,5);
|
|||
|
str += _str+".";
|
|||
|
}
|
|||
|
|
|||
|
return str.slice(0,-1);
|
|||
|
}
|
|||
|
|
|||
|
export function isPatTa(str) {
|
|||
|
const r = /^[a-z,0-9,\-,\.,_,~]+$/.exec(str)
|
|||
|
return !!r;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
Goes from:
|
|||
|
~2018.7.17..23.15.09..5be5 // urbit @da
|
|||
|
To:
|
|||
|
(javascript Date object)
|
|||
|
*/
|
|||
|
export function daToDate(st) {
|
|||
|
var dub = function(n) {
|
|||
|
return parseInt(n) < 10 ? "0" + parseInt(n) : n.toString();
|
|||
|
};
|
|||
|
var da = st.split('..');
|
|||
|
var bigEnd = da[0].split('.');
|
|||
|
var lilEnd = da[1].split('.');
|
|||
|
var ds = `${bigEnd[0].slice(1)}-${dub(bigEnd[1])}-${dub(bigEnd[2])}T${dub(lilEnd[0])}:${dub(lilEnd[1])}:${dub(lilEnd[2])}Z`;
|
|||
|
return new Date(ds);
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
Goes from:
|
|||
|
(javascript Date object)
|
|||
|
To:
|
|||
|
~2018.7.17..23.15.09..5be5 // urbit @da
|
|||
|
*/
|
|||
|
|
|||
|
export function dateToDa(d, mil) {
|
|||
|
var fil = function(n) {
|
|||
|
return n >= 10 ? n : "0" + n;
|
|||
|
};
|
|||
|
return (
|
|||
|
`~${d.getUTCFullYear()}.` +
|
|||
|
`${(d.getUTCMonth() + 1)}.` +
|
|||
|
`${fil(d.getUTCDate())}..` +
|
|||
|
`${fil(d.getUTCHours())}.` +
|
|||
|
`${fil(d.getUTCMinutes())}.` +
|
|||
|
`${fil(d.getUTCSeconds())}` +
|
|||
|
`${mil ? "..0000" : ""}`
|
|||
|
);
|
|||
|
}
|
|||
|
|
|||
|
export function deSig(ship) {
|
|||
|
return ship.replace('~', '');
|
|||
|
}
|
|||
|
|
|||
|
// trim patps to match dojo, chat-cli
|
|||
|
export function cite(ship) {
|
|||
|
let patp = ship, shortened = "";
|
|||
|
if (patp.startsWith("~")) {
|
|||
|
patp = patp.substr(1);
|
|||
|
}
|
|||
|
// comet
|
|||
|
if (patp.length === 56) {
|
|||
|
shortened = "~" + patp.slice(0, 6) + "_" + patp.slice(50, 56);
|
|||
|
return shortened;
|
|||
|
}
|
|||
|
// moon
|
|||
|
if (patp.length === 27) {
|
|||
|
shortened = "~" + patp.slice(14, 20) + "^" + patp.slice(21, 27);
|
|||
|
return shortened;
|
|||
|
}
|
|||
|
return `~${patp}`;
|
|||
|
}
|