Improve date parsing

This commit is contained in:
Daniel Triendl 2020-11-04 23:34:03 +01:00
parent 7db79afca2
commit ecb9097f5f
3 changed files with 27 additions and 25 deletions

View File

@ -3532,7 +3532,7 @@ class call_history_CallHistory {
updateCallHistoryEntry(call, callerId) {
if (callerId.tD_NAME !== '') {
var span = call.querySelector('span');
this.showTimeManager(call, span.nextSibling.textContent, callerId);
this.showTimeManager(call, span.nextSibling.textContent.trim(), callerId);
var text = span.textContent;
span.textContent = callerId.tD_NAME;
var br = document.createElement('br');
@ -3543,30 +3543,30 @@ class call_history_CallHistory {
span.parentNode.insertBefore(span2, span.nextSibling);
}
}
showTimeManager(call, time, callerId) {
showTimeManager(call, date, callerId) {
if (!callerId.tD_ID) {
return;
}
var timeParts = time.split(/, /);
var dateParts = date.match(/^(?<date>.*), (?<duration>[0-9]{2}:[0-9]{2}:[0-9]{2})$/);
var duration = '00:00:00';
if (timeParts.length >= 1) {
time = timeParts[0];
if (dateParts) {
date = dateParts.groups.date;
duration = dateParts.groups.duration;
}
if (timeParts.length >= 2) {
duration = timeParts[1];
}
var parsedDate = dist["de"].parseDate(time);
var parsedDate = dist["de"].parseDate(date);
if (!parsedDate) {
parsedDate = dist["parseDate"](time);
parsedDate = dist["parseDate"](date);
}
if (!parsedDate) {
return;
}
// Date parsing is awful, just assume the first number is the day of month
var day = date.match(/[0-9]+/)[0];
var parsedDuration = dist["parseDate"](duration);
console.log('TAPI call history time:', time, 'parsedDate:', parsedDate, 'duration:', duration, 'parsedDuration:', parsedDuration);
console.log('TAPI call history time:', date, 'parsedDate:', parsedDate, 'duration:', duration, 'parsedDuration:', parsedDuration);
var connect = parsedDate.getFullYear().toString() +
(parsedDate.getMonth() + 1).toString().padStart(2, '0') + // (January gives 0)
parsedDate.getDate().toString().padStart(2, '0') +
day.toString().padStart(2, '0') +
parsedDate.getHours().toString().padStart(2, '0') +
parsedDate.getMinutes().toString().padStart(2, '0');
var length = (parsedDuration.getHours() * 60 + parsedDuration.getMinutes()).toString();

View File

@ -1,7 +1,7 @@
{
"name": "3cp-tapi",
"description": "Build your UserScript with webpack",
"version": "7.0.0",
"version": "7.0.1",
"author": {
"name": "Daniel Triendl",
"email": "d.triendl@cp-solutions.at"

View File

@ -9,7 +9,7 @@ export class CallHistory {
if (callerId.tD_NAME !== '') {
var span = call.querySelector('span')
this.showTimeManager(call, span.nextSibling.textContent, callerId)
this.showTimeManager(call, span.nextSibling.textContent.trim(), callerId)
var text = span.textContent
span.textContent = callerId.tD_NAME
@ -22,32 +22,34 @@ export class CallHistory {
}
}
private showTimeManager (call: HTMLElement, time: string, callerId: TapiContact) {
private showTimeManager (call: HTMLElement, date: string, callerId: TapiContact) {
if (!callerId.tD_ID) {
return
}
var timeParts = time.split(/, /)
var dateParts = date.match(/^(?<date>.*), (?<duration>[0-9]{2}:[0-9]{2}:[0-9]{2})$/)
var duration = '00:00:00'
if (timeParts.length >= 1) {
time = timeParts[0]
if (dateParts) {
date = dateParts.groups.date
duration = dateParts.groups.duration
}
if (timeParts.length >= 2) {
duration = timeParts[1]
}
var parsedDate = chrono.de.parseDate(time)
var parsedDate = chrono.de.parseDate(date)
if (!parsedDate) {
parsedDate = chrono.parseDate(time)
parsedDate = chrono.parseDate(date)
}
if (!parsedDate) {
return
}
// Date parsing is awful, just assume the first number is the day of month
var day = date.match(/[0-9]+/)[0]
var parsedDuration = chrono.parseDate(duration)
console.log('TAPI call history time:', time, 'parsedDate:', parsedDate, 'duration:', duration, 'parsedDuration:', parsedDuration)
console.log('TAPI call history time:', date, 'parsedDate:', parsedDate, 'duration:', duration, 'parsedDuration:', parsedDuration)
var connect = parsedDate.getFullYear().toString() +
(parsedDate.getMonth() + 1).toString().padStart(2, '0') + // (January gives 0)
parsedDate.getDate().toString().padStart(2, '0') +
day.toString().padStart(2, '0') +
parsedDate.getHours().toString().padStart(2, '0') +
parsedDate.getMinutes().toString().padStart(2, '0')