Dolunayda Bir Pipedream İş Akışını Başlatmak (Çünkü Neden Olmasın?)

Raymond Camden

Bunu “Muhtemelen buna asla ihtiyacınız olmayacak ama…” altına dosyalayın, bunu biliyor muydunuz? Ulaşılması mümkün olmayan istek tanımlamanıza izin verecek kadar esnektir tamamen iş akışlarını başlatmanın özelleştirilmiş yolları? Ne kadar esnek? Dolunayda iş akışlarını başlatma yeteneğine ne dersiniz?

Bu dün aldığım e-posta ve evet, bunun olduğunu doğrulayabilirim:

Dolunay resmi

Kaynaklar Pipedream’de bir iş akışını başlatabilecek her şey vardır. Yani mesela:

  • “Google Drive’a eklenen yeni bir dosyada…”
  • “Bir kullanıcıdan gelen yeni bir Tweette…”
  • “Belirli bir programa göre”

Güzel olan, bu sistemin özelleştirilmiş kaynaklara da açık olmasıdır. Pipedream’s dokümanlar Kullanıcı arabiriminden veya CLI’den özel kaynakların nasıl oluşturulacağını açıklayın. Birkaç ay önce sıkıldım ve kurt adamların flört sahnesinde yaşayabileceği sorunları düşünürken aklıma geldi – dolunay için basit bir bildirim sistemi muhtemelen yardımcı olabilir!

CLI’den derleme yönergelerini izleyerek, mükemmel API’yi kullanan CRON tabanlı bir kaynak oluşturdum. görsel geçiş. Onların Zaman çizelgesi çok fazla bilgi içerir, ancak daha da önemlisi bir moonphase 0’dan (yeni ay), 0,5’e (dolunay) ve son olarak 1’e (bir sonraki yeni ay) giden değer.

İşte sonunda kullandığım son nokta – Ay evresini istemek zorunda kaldım ve ayrıca sonucu yalnızca ay evresine göre filtrelemesini istedim (biraz daha hızlı hale getirmek için):

https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/70508/today?key=${this.visualCrossingKey}&include=moonphase&elements=moonphase

Peki bu bir Pipedream kaynağının içinde nasıl görünüyor? İşte tam kod:

import fetch from "node-fetch";

export default {
  name: "Full Moon",
  description: "I check the moon phase daily and emit on a full moon.",
  props: {
    timer: {
        type:"$.interface.timer",
        default: {
            cron: "0 0 * * *"
        }
    },
    visualCrossingKey:{
        type:"string",
        label:"Visual Crossing API Key",
        description:"Get your key from visualcrossing.com"
    }
  },
  async run() {
    const endpoint = `https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/70508/today?key=${this.visualCrossingKey}&include=moonphase&elements=moonphase`;
    let resp = await fetch(endpoint);
    let data = await resp.json();
    let moonphase = data.days[0].moonphase;
    // only emit on the full moon
    if(moonphase === 0.5) this.$emit({ fullmoon:true });
  },
};

Kod, ad da dahil olmak üzere kaynakla ilgili meta verilerle başlar ve daha da önemlisi, bir props hem nasıl çalıştığını (bir zamanlayıcı) hem de görsel geçişten bir anahtar gerektirdiğini belirtebileceğim blok. Bu, anahtarım koda gömülü olmadığı için kaynağı dağıtmama ve başkalarıyla paylaşmama izin veriyor.

Dağıtıldıktan sonra yeni bir iş akışı oluşturdum, kaynağı anahtarımla yapılandırdım ve Pipedream tarafından oluşturulan bir “e-posta” eylemiyle sonlandırdım:

Tam iş akışı

Bu, Pipedream’deki daha eski bir V1 iş akışıdır, dolayısıyla burada paylaşabilirim: https://pipedream.com/@raymondcamden/email-on-full-moon-p_V9CaRmP. Buradaki özel örneğim pek kullanışlı olmasa da, umarım neyin mümkün olduğuna dair iyi bir örnektir. Ne düşündüğü söyle.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.