summaryrefslogtreecommitdiff
path: root/public/assets/js/util/format.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/js/util/format.js')
-rw-r--r--public/assets/js/util/format.js52
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) {