Adjust European short trip heuristic from >3 days to >1 day to correctly detect when user has returned home from European trips. This fixes the April 29-30, 2023 case where the location incorrectly showed "Sankt Georg, Hamburg" instead of "Bristol" when the user was free (no events scheduled) after the foss-north trip ended on April 27. The previous logic required more than 3 days to pass before assuming return home from European countries, but for short European trips by rail/ferry, users typically return within 1-2 days. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
45 lines
922 B
JavaScript
45 lines
922 B
JavaScript
'use strict';
|
|
|
|
var path = require('path');
|
|
|
|
function getLongExtension(basename) {
|
|
if (basename[basename.length - 1] === '.') {
|
|
return null;
|
|
}
|
|
|
|
var startIndex = basename[0] === '.' ? 1 : 0;
|
|
|
|
var dotIndex = basename.indexOf('.', startIndex);
|
|
if (dotIndex <= startIndex) {
|
|
return null;
|
|
}
|
|
|
|
return basename.slice(dotIndex);
|
|
}
|
|
|
|
function getPossibleExtensions(longExtension) {
|
|
var arr = [longExtension];
|
|
var len = longExtension.length;
|
|
var startIndex = 1;
|
|
|
|
while (startIndex < len) {
|
|
var dotIndex = longExtension.indexOf('.', startIndex);
|
|
if (dotIndex < 0) {
|
|
break;
|
|
}
|
|
arr.push(longExtension.slice(dotIndex));
|
|
startIndex = dotIndex + 1;
|
|
}
|
|
|
|
return arr;
|
|
}
|
|
|
|
module.exports = function (input) {
|
|
var basename = path.basename(input);
|
|
var longExtension = getLongExtension(basename);
|
|
if (!longExtension) {
|
|
return;
|
|
}
|
|
return getPossibleExtensions(longExtension);
|
|
};
|