diff options
Diffstat (limited to 'public/assets/js/util/format.js')
| -rw-r--r-- | public/assets/js/util/format.js | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/public/assets/js/util/format.js b/public/assets/js/util/format.js index e6104e5..7058cea 100644 --- a/public/assets/js/util/format.js +++ b/public/assets/js/util/format.js @@ -257,28 +257,40 @@ function get_age(t, long) { age /= 12; return r(age) + (long ? " years" : "y"); } -const ages = { - newest: 60 * 10, - newer: 60 * 60, - new: 60 * 60 * 8, - cool: 60 * 60 * 24, - cold: 60 * 60 * 24 * 7, - colder: 60 * 60 * 24 * 7 * 4, - coldest: 60 * 60 * 24 * 7 * 4 * 12, -}; +const age_scale = [ + [0, 1.0], + [60 * 10, 1.0], + [60 * 60, 0.95], + [60 * 60 * 8, 0.9], + [60 * 60 * 24, 0.85], + [60 * 60 * 24 * 7, 0.65], + [60 * 60 * 24 * 7 * 4, 0.55], + [60 * 60 * 24 * 7 * 4 * 12, 0.5], +]; function get_age_opacity(t) { var age = Math.abs(Date.now() / 1000 - t); - if (age < ages.newest) return 1; - if (age < ages.newer) - return lerp(norm(age, ages.newest, ages.newer), 1.0, 0.95); - if (age < ages.new) return lerp(norm(age, ages.newer, ages.new), 0.95, 0.9); - if (age < ages.cool) return lerp(norm(age, ages.new, ages.cool), 0.9, 0.85); - if (age < ages.cold) return lerp(norm(age, ages.cool, ages.cold), 0.85, 0.6); - if (age < ages.colder) - return lerp(norm(age, ages.cold, ages.colder), 0.6, 0.5); - if (age < ages.coldest) - return lerp(norm(age, ages.colder, ages.coldest), 0.5, 0.4); - return 0.39; + return get_scale_opacity(age, age_scale); +} +const size_scale = [ + [0, 0.0], + [1, 0.7], + [5, 0.8], + [10, 0.9], + [15, 0.95], + [20, 0.99], +]; +function get_size_opacity(n) { + return get_scale_opacity(n, size_scale); +} +function get_scale_opacity(value, scale) { + for (let i = 1; i < scale.length; i++) { + const [max_value, max_lerp] = scale[i]; + if (value < max_value) { + const [min_value, min_lerp] = scale[i - 1]; + return lerp(norm(value, min_value, max_value), min_lerp, max_lerp); + } + } + return scale[scale.length - 1][1]; } function tidy_urls(s, short_urls) { |
