liftie 3.56.4 → 3.56.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/resorts/abasin/index.js +12 -5
- package/lib/resorts/abasin/resort.json +1 -1
- package/lib/resorts/loveland/index.js +3 -3
- package/lib/resorts/monarch/index.js +16 -3
- package/lib/resorts/monarch/resort.json +1 -5
- package/package.json +1 -1
- package/public/scripts/liftie-embed.js +0 -41
- package/public/scripts/liftie-embed.js.map +0 -7
- package/public/scripts/liftie.js +0 -1641
- package/public/scripts/liftie.js.map +0 -7
- package/public/stylesheets/style.css +0 -864
|
@@ -1,11 +1,18 @@
|
|
|
1
|
+
const { allText } = require('../../tools/domutil');
|
|
2
|
+
|
|
1
3
|
module.exports = {
|
|
2
|
-
selector: '.
|
|
4
|
+
selector: 'li.primary-option.lift-opt div.border-primary span',
|
|
3
5
|
parse: {
|
|
4
|
-
name:
|
|
6
|
+
name: node => {
|
|
7
|
+
// Get all text content from the span, excluding img elements
|
|
8
|
+
const text = allText(node);
|
|
9
|
+
// Remove the " (Lift)" suffix
|
|
10
|
+
return text.replace(/\s+\(Lift\)\s*$/i, '');
|
|
11
|
+
},
|
|
5
12
|
status: {
|
|
6
|
-
child: 0,
|
|
7
|
-
attribute: '
|
|
8
|
-
|
|
13
|
+
child: 0, // the img element
|
|
14
|
+
attribute: 'src',
|
|
15
|
+
regex: /\/([^/]+)\.svg$/
|
|
9
16
|
}
|
|
10
17
|
}
|
|
11
18
|
};
|
|
@@ -3,10 +3,10 @@ const { findText } = require('../../tools/domutil');
|
|
|
3
3
|
module.exports = {
|
|
4
4
|
selector: '.tablepress-table-name',
|
|
5
5
|
parse(node) {
|
|
6
|
-
const [name, status] = findText(node).split('
|
|
6
|
+
const [name, status] = findText(node).split('-');
|
|
7
7
|
return {
|
|
8
|
-
name,
|
|
9
|
-
status
|
|
8
|
+
name: name,
|
|
9
|
+
status: status
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
};
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
+
const { allText } = require('../../tools/domutil');
|
|
2
|
+
|
|
1
3
|
module.exports = {
|
|
2
|
-
selector: '.
|
|
4
|
+
selector: '.lifts-table tbody tr',
|
|
3
5
|
parse: {
|
|
4
|
-
name:
|
|
5
|
-
|
|
6
|
+
name: {
|
|
7
|
+
child: 0, // First td contains the lift name
|
|
8
|
+
// Strip out "(Tubing Park)" or similar suffixes
|
|
9
|
+
fn: v => v.replace(/\s+\(.+\)\s*$/, '')
|
|
10
|
+
},
|
|
11
|
+
status: {
|
|
12
|
+
child: 1, // Second td
|
|
13
|
+
fn: node => {
|
|
14
|
+
// Get the span text which contains "Closed", "Open", etc.
|
|
15
|
+
const span = node.children?.find(c => c.name === 'span');
|
|
16
|
+
return span ? allText(span) : 'closed';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
6
19
|
}
|
|
7
20
|
};
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "Monarch Mountain",
|
|
3
3
|
"url": {
|
|
4
|
-
"host": "https://
|
|
4
|
+
"host": "https://skimonarch.com",
|
|
5
5
|
"pathname": "/conditions/"
|
|
6
6
|
},
|
|
7
|
-
"dataUrl": {
|
|
8
|
-
"host": "https://pmw.skimonarch.com",
|
|
9
|
-
"pathname": "/conditions/snow-report/snow-report-conditions/"
|
|
10
|
-
},
|
|
11
7
|
"tags": [
|
|
12
8
|
"Colorado"
|
|
13
9
|
],
|
package/package.json
CHANGED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
(() => {
|
|
2
|
-
// lib/embed/index.js
|
|
3
|
-
function el(attrs) {
|
|
4
|
-
const attrStr = Object.keys(attrs).map((attr) => `${attr}="${attrs[attr]}"`).join(" ");
|
|
5
|
-
return ["<iframe ", attrStr, "></iframe>"].join("");
|
|
6
|
-
}
|
|
7
|
-
function addWidget(parent, resort, style) {
|
|
8
|
-
const query = style ? `?style=${encodeURIComponent(style)}` : "";
|
|
9
|
-
let html = el({
|
|
10
|
-
class: `lift-status ${resort}`,
|
|
11
|
-
src: `https://liftie.info/widget/resort/${resort}${query}`,
|
|
12
|
-
scrolling: "no"
|
|
13
|
-
});
|
|
14
|
-
html += '<p class="liftie-link">Lift status by <a href="https://liftie.info" target="_blank">Liftie</a></p>';
|
|
15
|
-
parent.insertAdjacentHTML("afterBegin", html);
|
|
16
|
-
}
|
|
17
|
-
function receiveMessage(event) {
|
|
18
|
-
if (!/^https?:\/\/liftie.info$/.test(event.origin)) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
if (!event.data.height) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
const iframe = document.querySelector(`.liftie-widget[data-resort="${event.data.resort}"] iframe`);
|
|
25
|
-
if (iframe) {
|
|
26
|
-
iframe.style.height = `${event.data.height}px`;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
function embed() {
|
|
30
|
-
let i;
|
|
31
|
-
const els = document.querySelectorAll(".liftie-widget[data-resort]");
|
|
32
|
-
if (els.length) {
|
|
33
|
-
window.addEventListener("message", receiveMessage, false);
|
|
34
|
-
}
|
|
35
|
-
for (i = 0; i < els.length; i++) {
|
|
36
|
-
addWidget(els[i], els[i].getAttribute("data-resort"), els[i].getAttribute("data-style"));
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
embed();
|
|
40
|
-
})();
|
|
41
|
-
//# sourceMappingURL=liftie-embed.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../lib/embed/index.js"],
|
|
4
|
-
"sourcesContent": ["/*global document, window */\n\nfunction el(attrs) {\n const attrStr = Object.keys(attrs)\n .map(attr => `${attr}=\"${attrs[attr]}\"`)\n .join(' ');\n\n return ['<iframe ', attrStr, '></iframe>'].join('');\n}\n\nfunction addWidget(parent, resort, style) {\n const query = style ? `?style=${encodeURIComponent(style)}` : '';\n let html = el({\n class: `lift-status ${resort}`,\n src: `https://liftie.info/widget/resort/${resort}${query}`,\n scrolling: 'no'\n });\n html += '<p class=\"liftie-link\">Lift status by <a href=\"https://liftie.info\" target=\"_blank\">Liftie</a></p>';\n parent.insertAdjacentHTML('afterBegin', html);\n}\n\nfunction receiveMessage(event) {\n // from liftie?\n if (!/^https?:\\/\\/liftie.info$/.test(event.origin)) {\n return;\n }\n // anything interesting?\n if (!event.data.height) {\n return;\n }\n const iframe = document.querySelector(`.liftie-widget[data-resort=\"${event.data.resort}\"] iframe`);\n if (iframe) {\n iframe.style.height = `${event.data.height}px`;\n }\n}\n\nfunction embed() {\n let i;\n const els = document.querySelectorAll('.liftie-widget[data-resort]');\n if (els.length) {\n window.addEventListener('message', receiveMessage, false);\n }\n for (i = 0; i < els.length; i++) {\n addWidget(els[i], els[i].getAttribute('data-resort'), els[i].getAttribute('data-style'));\n }\n}\n\nembed();\n"],
|
|
5
|
-
"mappings": ";;AAEA,WAAS,GAAG,OAAO;AACjB,UAAM,UAAU,OAAO,KAAK,KAAK,EAC9B,IAAI,UAAQ,GAAG,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,EACtC,KAAK,GAAG;AAEX,WAAO,CAAC,YAAY,SAAS,YAAY,EAAE,KAAK,EAAE;AAAA,EACpD;AAEA,WAAS,UAAU,QAAQ,QAAQ,OAAO;AACxC,UAAM,QAAQ,QAAQ,UAAU,mBAAmB,KAAK,CAAC,KAAK;AAC9D,QAAI,OAAO,GAAG;AAAA,MACZ,OAAO,eAAe,MAAM;AAAA,MAC5B,KAAK,qCAAqC,MAAM,GAAG,KAAK;AAAA,MACxD,WAAW;AAAA,IACb,CAAC;AACD,YAAQ;AACR,WAAO,mBAAmB,cAAc,IAAI;AAAA,EAC9C;AAEA,WAAS,eAAe,OAAO;AAE7B,QAAI,CAAC,2BAA2B,KAAK,MAAM,MAAM,GAAG;AAClD;AAAA,IACF;AAEA,QAAI,CAAC,MAAM,KAAK,QAAQ;AACtB;AAAA,IACF;AACA,UAAM,SAAS,SAAS,cAAc,+BAA+B,MAAM,KAAK,MAAM,WAAW;AACjG,QAAI,QAAQ;AACV,aAAO,MAAM,SAAS,GAAG,MAAM,KAAK,MAAM;AAAA,IAC5C;AAAA,EACF;AAEA,WAAS,QAAQ;AACf,QAAI;AACJ,UAAM,MAAM,SAAS,iBAAiB,6BAA6B;AACnE,QAAI,IAAI,QAAQ;AACd,aAAO,iBAAiB,WAAW,gBAAgB,KAAK;AAAA,IAC1D;AACA,SAAK,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AAC/B,gBAAU,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,aAAa,aAAa,GAAG,IAAI,CAAC,EAAE,aAAa,YAAY,CAAC;AAAA,IACzF;AAAA,EACF;AAEA,QAAM;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|