Skip to content

Instantly share code, notes, and snippets.

@richardgill
Created July 24, 2020 17:14
Show Gist options
  • Save richardgill/4b613fd689bd66b237ec4fbe08bcb426 to your computer and use it in GitHub Desktop.
Save richardgill/4b613fd689bd66b237ec4fbe08bcb426 to your computer and use it in GitHub Desktop.
// Immediately-invoked function expression
"use strict";
var duration = /(-?(?:\d+\.?\d*|\d*\.?\d+)(?:e[-+]?\d+)?)\s*([a-zµμ]*)/gi;
/**
* conversion ratios
*/
parse.nanosecond = parse.ns = 1 / 1e6;
parse["µs"] = parse["μs"] = parse.us = parse.microsecond = 1 / 1e3;
parse.millisecond = parse.ms = 1;
parse.second = parse.sec = parse.s = parse.ms * 1000;
parse.minute = parse.min = parse.m = parse.s * 60;
parse.hour = parse.hr = parse.h = parse.m * 60;
parse.day = parse.d = parse.h * 24;
parse.week = parse.wk = parse.w = parse.d * 7;
parse.month = parse.b = parse.d * (365.25 / 12);
parse.year = parse.yr = parse.y = parse.d * 365.25;
/**
* convert `str` to ms
*
* @param {String} str
* @param {String} format
* @return {Number}
*/
function parse(str = "", format = "ms") {
var result = null;
// ignore commas
str = str.replace(/(\d),(\d)/g, "$1$2");
str.replace(duration, function (_, n, units) {
units = parse[units] || parse[units.toLowerCase().replace(/s$/, "")];
if (units) result = (result || 0) + parseFloat(n, 10) * units;
});
return result && result / parse[format];
}
var delay = (time) => new Promise((res) => setTimeout(() => res(), time));
var loadScript = (scriptSrc) => {
var script = document.createElement("SCRIPT");
script.type = "text/javascript";
script.onload = function () {
console.log("loaded!");
var $ = jQuery;
console.log($);
var filterTripsLessThanMins = defineFilterTripsLessThanMins($);
makeBig($);
filterTripsLessThanMins(40);
};
script.src = scriptSrc;
document.getElementsByTagName("head")[0].appendChild(script);
};
(function () {
loadScript(
"https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"
);
// loadScript("https://cdn.jsdelivr.net/npm/parse-duration@0.4.4/index.min.js");
})();
var makeBig = ($) => {
$("#transit-calendar-placeholder").parentsUntil(".modal-container").css({
top: 0,
left: 0,
// height: "100%",
height: "3000px",
width: "100%",
});
$("#calendar").css({
height: "3000px",
});
};
var defineFilterTripsLessThanMins = ($) => (maxDurationMins) => {
const filterTrips = async () => {
console.log("Filtering Trips!");
$("li.trip")
.toArray()
.filter((trip) => {
const timeText = $(trip).find(".duration").first().text();
const timeInMinutes = parse(timeText) / 1000 / 60;
console.log("timeText", timeText);
console.log("timeInMinutes", timeInMinutes);
console.log("maxDurationMins", maxDurationMins);
return timeInMinutes > maxDurationMins;
})
.forEach((trip) => $(trip).css({ opacity: 0 }));
await delay(500);
filterTrips();
};
filterTrips();
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment