将新 URL 解析为 IFTTT

Parse new URL into IFTTT

IFTTT 中的 RSS reader 不喜欢 https://rss.art19.com/the-daily。 我正在使用 python 为每天早上 06:30 提取一个新的 link 和 schedule。但是,我发现将新的 url 解析为 IFTTT 小程序非常困难。我正在使用 glitch.com 来合并事件。

要点是在我的 Sonos 设置中 06:30 自动播放此播客。

import schedule
import time
from bs4 import BeautifulSoup
import requests


def job():
    url = 'https://rss.art19.com/the-daily'
    request = requests.get(url)
    respose = request.content.decode('utf-8')
    soup = BeautifulSoup(respose, 'lxml')

    link = soup.find_all('enclosure')[0]

    a = str(link).split(' ')[3]
    x = slice(a)
    y = str(x).split('"')[1]

    print(y) 



# def notification(message):
#  report = {}
#  report[“value1”] = message
#  requests.post('https://maker.ifttt.com/trigger/play_sonos/with/key/KEY", data=report')

# notification(number)

schedule.every().day.at("06:30").do(job,'It is 06:30am')
print('\n')
print(' Got it')

while True:
    schedule.run_pending()
    time.sleep(60)

我最终使用了 SOCO 库。

from soco import SoCo
import schedule
import time
from bs4 import BeautifulSoup
import requests

#Play5
five_son = SoCo('PLAYER_IP')

#Play5(Office)
five_office_son = SoCo('PLAYER_IP')

#Play3
three_son = SoCo('PLAYER_IP')
print( 'Players are Active! ')
print('\n')


def get():
    url = 'https://rss.art19.com/the-daily'
    request = requests.get(url)
    respose = request.content.decode('utf-8')
    soup = BeautifulSoup(respose, 'lxml')

    link = soup.find_all('enclosure')[0]

    a = str(link).split(' ')[3]
    x = slice(a)
    y = str(x).split('"')[1]

    return y

def job():  
    sonos = five_office_son.partymode()
    sonos.play_uri(get())

    track = sonos.get_current_track_info()

    print(track)

    sonos.pause()
    sonos.play()


schedule.every().monday.at("06:30").do(job,'It is 06:30am')
schedule.every().tuesday.at("06:30").do(job,'It is 06:30am')
schedule.every().wednesday.at("06:30").do(job,'It is 06:30am')
schedule.every().thursday.at("06:30").do(job,'It is 06:30am')
schedule.every().friday.at("06:30").do(job,'It is 06:30am')
print('\n')
print('Got it')

while True:
    schedule.run_pending()
    time.sleep(60)