Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Dieses iPhone Widget zeigt die 5 WebCams von Livespotting auf Sylt. Quelle: https://livespotting.tv/locations.html
// Variables used by Scriptable.
// These must be at the very top of the file. Do not edit.
// icon-color: blue; icon-glyph: camera-retro;
// Script by Jens Luetzen: <kliffkieker67@gmail.com>
//
//
// assigning parameters from scriptable callup
//
{
let param = args.widgetParameter;
//
// Initialization of variables
//
let campic; //number of cam being handed over to Widget
let errParam;
let url;
let widget;
let helpwidget;
//
// assignment of callup parameters to variables
//
if (param != null && param.length > 0) {
campic = param-1; //Correction by -1 as arrays begin at Zero
errParam = "Parameter received. ";
} else {
errParam = "No Parameter received";
}
//
// creating JSON for Cam location, preview jpg URL and livestream URL
//
let myWebCams = {
"Spotlocation" : [
"Westerland" ,
"Hörnum" ,
"Kampen" ,
"Rantum" ,
"Sansibar"],
"imgURL" : [
"https://cdn.livespotting.com/vpu/4b7r3v86/xhn7c8l2.jpg" ,
"https://cdn.livespotting.com/vpu/bgh4pz4b/2ux5cw8z.jpg" ,
"https://cdn.livespotting.com/vpu/zyk6yn5g/0w1w1gvh.jpg" ,
"https://cdn.livespotting.com/vpu/4b7r3v86/3phv8zc6.jpg" ,
"https://cdn.livespotting.com/vpu/r70utrec/o3tazsiz.jpg"] ,
"LiveStreamURL" : [
"https://player.livespotting.com/?alias=nn1xc3my&ch=LS_3f855" ,
"https://player.livespotting.tv/jwp.html?alias=PS_9c086" ,
"https://player.livespotting.com/?alias=nn1xc3my&ch=LS_8fbab" ,
"https://player.livespotting.tv/jwp.html?alias=PS_f9931&ch=LS_8ae47" ,
"https://player.livespotting.com/?alias=6nnbhf60&ch=o3tazsiz"]
};
//
// Creating value for date and time
//
let actualdate = new Date();
let lastrefresh = new DateFormatter();
lastrefresh.useShortDateStyle();
lastrefresh.useShortTimeStyle();
timestamp = lastrefresh.string(actualdate);
//
// Main: display preview pics with information or helpwidget, if parameters are missing
//
switch (errParam) {
case "Parameter received. ":
camLocation = myWebCams.Spotlocation[campic];
camSubtitle = timestamp;
url = myWebCams.LiveStreamURL[campic];
let imgReq = await new Request(myWebCams.imgURL[campic]);
let img = await imgReq.loadImage();
let widget = createWidget(img,camLocation,camSubtitle,url);
if (!config.runsInWidget) {
await widget.presentLarge();
} else {
await Script.setWidget(widget);
}
break;
case "No Parameter received":
let helpwidget = createHelpWidget();
if (!config.runsInWidget) {
await helpwidget.presentLarge();
} else {
await Script.setWidget(helpwidget);
}
break;
}
Script.complete()
}
//
// end Main
//
//
// Here come the functions
//
//
// Creating Widget with parameters img, camLocation cLoc and camSubtitle cSub
//
function createWidget(prv_img,prv_Loc,prv_Subt,prv_URL) {
const widget = new ListWidget();
widget.backgroundColor = Color.black();
widget.url = prv_URL;
widget.backgroundImage = prv_img;
widget.addSpacer();
const titleText = widget.addText(prv_Loc);
titleText.font = Font.boldSystemFont(12);
titleText.textColor = Color.white();
titleText.shadowRadius = 3;
titleText.shadowColor = Color.black();
widget.addSpacer(2);
const subtitleText = widget.addText(prv_Subt);
subtitleText.font = Font.systemFont(8);
subtitleText.textColor = Color.white();
subtitleText.textOpacity = 0.8;
subtitleText.shadowRadius = 3;
subtitleText.shadowColor = Color.black();
return widget;
}
//
// Creating HELP-Widget without parameters
//
function createHelpWidget() {
const helpwidget = new ListWidget;
helpwidget.backgroundColor = Color.blue();
const titleText = helpwidget.addText("To Do's to configure the Widget");
titleText.leftAlignText();
titleText.font = Font.boldSystemFont(12);
titleText.textColor = Color.white();
myText = addLine(helpwidget,"===============================");
helpwidget.addSpacer(1);
myText = addLine(helpwidget,"1. long press widget for config mode");
helpwidget.addSpacer(1);
myText = addLine(helpwidget,"2. Option Scripts: select this script");
helpwidget.addSpacer(1);
myText = addLine(helpwidget,"3. Option When interacting: set to 'Open URL'");
helpwidget.addSpacer(1);
myText = addLine(helpwidget,"4. Option Parameter: number between 1 and 5");
helpwidget.addSpacer(1);
myText = addLine(helpwidget,"5. Done with single widget, repeat for all 5 Cams");
helpwidget.addSpacer(1);
myText = addLine(helpwidget,"6. Arrange widgets to single scrollable smart stack");
helpwidget.addSpacer(2);
myText = addThankyouLine(helpwidget,"Special thanks to the team from Livespotting.com for their professional and kind support");
return helpwidget;
}
//
// Adds single line to the widget, parameter: text to be displayed;
// same for Thankyou line, only smaller
//
function addLine(prvHW,prvTXT) {
var TextLine = prvHW.addText(prvTXT)
TextLine.leftAlignText();
TextLine.font = Font.boldSystemFont(10);
TextLine.textColor = Color.white();
}
function addThankyouLine(prvHW,prvTXT) {
var TextLine = prvHW.addText(prvTXT)
TextLine.leftAlignText();
TextLine.font = Font.boldSystemFont(7);
TextLine.textColor = Color.white();
}
@JLuetzen

This comment has been minimized.

Copy link
Owner Author

@JLuetzen JLuetzen commented Feb 14, 2021

5 Livespotting Webcams Sylt


Aktuell gibt es 5 WebCams auf Sylt, die man über Livespotting aufrufen kann.
Dieses sind:

  1. Westerland Kurpromendade
  2. Hörnum Leuchtturm
  3. Kampen Quermarkenfeuer (2021.04: kein Video verfügbar)
  4. Rantum Strand
  5. Sansibar

Das Script auf dieser Seite zeigt je eine der 5 WebCams von Livespotting in Echtzeit direkt auf dem iPhone Homescreen.
Alle 5 WebCams können so angeordnet werden, dass man mit dem Daumen durchscrollen kann.
Wenn man dann ein Bild antippt, öffnet sich es sich im Browser in großer Darstellung.

Das Script verwendet die App Scriptable

image

HowTo: (Einfach) (nach unten scrollen für die detaillierte Anleitung)


Auf dem iPhone:

  1. Das Script über diesem Kommentar markieren (von unten nach oben), kopieren, als neues Script in Scriptable einfügen und unter einem Namen speichern. Beispiel
  2. Auf den HomeScreen tippen, bis die Icons wackeln und über das Pluszeichen ein neues Scriptable Widget hinzufügen. Das Widget so einstellen, dass es das neue Script verwendet, bei "when interacting" auf "Open URL" und bei "Parameter" auf eine Zahl zwischen 1..5 stellen. Beispiel
  3. Schritt 2 wiederholen und wenn die Icons wackeln, das neue Widget auf das vorherige ziehen, um einen Smart Stapel zu bauen.

Bitte Folgendes berücksichtigen:


  • Für sämtliche Bilder gilt das Copyright des Besitzers der WebCam
  • Die WebCams aktualisieren das Bild alle 4 Sekunden
  • Das iPhone aktualisiert die Bilder alle 15-20 Minuten
  • Durch die Nutzung der Widgets erhöht sich der mobile Datenverbrauch

Dieses und andere Widgets teilen:


Ihr wollt vielleicht die Links zu diesem und anderen Widgets teilen:

Auf YouTube:


Demo aller Widgets
https://youtu.be/En-h2LZYh1w

Demo Autozug / Sylt-Shuttle
https://youtu.be/okgi-ZKg_PY

Erklärung Script Laden am Beispiel Westerland Kurpromenade
https://youtu.be/tRHFpwIr_l0

Erklärung Widget Einrichten auf dem Homescreen am Beispiel Westerland Kurpromenade
https://youtu.be/LnrikIM3T0U

Erklärung Widget Einrichten auf dem Homescreen am Beispiel Autozug / Sylt-Shuttle
https://youtu.be/vTvw9BsSmVY

2,99 € für die Kaffeedose:


Die hier zur Verfügung gestellten Widgets sind kostenlos und "as-is".
Wenn sie Euch gefallen, würde ich mich freuen, wenn Ihr mir einen Kaffee ausgebt.
Hier sind meine Kaffeedosen:

  • Paypal: HERE
  • Bitcoin Wallet address: 3KfoBpECeSpk1Jiz6Tc1FuHwtm5XFY9e2L

image

HowTo: (detaillierte Schritt für Schritt Anleitung)


  1. Im App Store die App Scriptable auf dem iPhone installieren
  2. Dann den Code auf dieser Seite (oben) von unten nach oben markieren und kopieren. Bitte passt auf, dass Ihr alle Zeichen kopiert!
  3. Auf die App "Scriptable" wechseln und das blaue Pluszeichen rechts oben antippen. Damit öffnet sich ein leeres Fenster vom Scriptable Editor.
  4. Da hineintippen und "Einfügen" wählen, dann "Done" klicken. Jetzt das neue Script lang-tippen (Untitled Script) und unter "Rename" einen neuen Namen eingeben, zB "Livespotting"
  5. Zum Schluss noch das "Done" in der oberen linken Ecke antippen und dann sind wir hier fertig: Wir haben in Scriptable das neue Script unter einem Namen abgelegt. Jetzt muss das Widget eingestellt werden:
  6. Einmal lange auf den HomeScreen tippen, bis die Icons wackeln. Dann über das Plus-Zeichen oben ein neues Widget erstellen.
  7. Nach unten scrollen und "Scriptable" auswählen (Schneller gehts, wenn man in das Suchfenster SC eingibt...), die mittlere Widget-Größe auswählen und "Add Widget" antippen.
  8. Die Icons sollten immer noch wackeln. Jetzt das neue Widget antippen, um die Einstellung zu starten
  9. Falls die Icons nicht wackeln, einfach den Homescreen lang drücken, bis sie es tun
  10. Unter "Script" das neue Script auswählen, zB "Livespotting"
  11. Unter "When interacting" auf "Open URL" stellen
  12. Unter Parameter: eine Zahl zwischen 1..5 wählen, mit 1 beginnen. Die Zahlen stehen für diese WebCams:
    1 zeigt die WebCam "Westerland Kurpromenade",
    2 zeigt die WebCam "Hörnum Leuchtturm",
    3 zeigt die WebCam "Kampen Quermarkenfeuer",
    4 zeigt die WebCam "Rantum Strand",
    5 zeigt die WebCam "Sansibar".
  13. Das war's. Jetzt auf den HomeScreen tippen, um die Einstellung abzuschliessen.
  14. Schritte 6-12 wiederholen, um das nächste Widget zu erstellen. Bei "Parameter" die 2 eingeben für die 2. WebCam.
  15. Wenn die Icons wackeln, das neue Widget auf das vorherige ziehen, um einen Smart Stapel zu erzeugen, mit dem man durch die Cams mit dem Daumen durchscrollen kann. Das ist ein Smart Stack
    Anmerkung:
    Wenn Ihr vergesst, bei "Parameter" eine Zahl einzugeben, zeigt das Widget einen blauen Hilfetext, der auch kommt, wenn man in Scriptable auf das Script tippt.

Hits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment