Идея состоит в том, чтобы проверить канал RSS на <updated> </updated>
, если заголовок Обновленный RSS обновлен в соответствии с датой его запуска в данный момент, а затем перейти к загрузке.
Образец канала RSS:
<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text"> Updates</title>
<subtitle type="html"><![CDATA[Latest updates]]></subtitle>
<link href="http://website/website.rss"></link>
<id>http://website</id>
<link rel="alternate" type="text/html" href="http://website/website.rss" ></link>
<link rel="self" type="application/atom+xml" href="https://website/site/download" ></link>
<logo>http://website/website</logo>
<updated>2020-03-28 T17:32:48+00:00</updated>
<entry>
<author>
<name>ueam</name>
</author>
<title type="text"><![CDATA[2.0.4516]]></title>
<link rel="alternate" type="text/html" href="https://website/site/download"></link>
<id>https://website/site/download</id>
<summary type="html"><![CDATA[<ul>
<li>Patched for March 23rd update</li>
<li>Fixed known bug JIRA</li>
</ul>]]></summary>
<content type="html"><![CDATA[]]></content>
<updated>2020-03-28 17:32:48</updated>
</entry>
<entry>
<author>
<name>Team</name>
</author>
<title type="text"><![CDATA[2.0.4516]]></title>
<link rel="alternate" type="text/html" href="https://website/site/download"></link>
<id>https://website/site/download</id>
<summary type="html"><![CDATA[<ul>
<li>
Patch for March 23rd update
</li>
</ul>]]></summary>
<content type="html"><![CDATA[]]></content>
<updated>2020-03-28 17:32:48</updated>
</entry>
<entry>
<author>
<name>Team</name>
</author>
<title type="text"><![CDATA[2.0.4514]]></title>
<link rel="alternate" type="text/html" href="https://website/site/download></link>
<id>https://website/site/download</id>
<summary type="html"><![CDATA[<ul>
<li>Fixed Bug</li>
Здесь
<updated>2020-03-28 17:32:48</updated>
, который, если бы я работал сегодня, продолжил бы загрузку, так как она соответствует текущему дню
Загрузка тогда была бы вызвана через
Invoke-WebRequest -uri https://website/site/download
Я просто не уверен, как проанализировать RSS, чтобы посмотреть на "обновленные" и сравнить с текущей датой, и, если совпадения дат, перейти к загрузке.
Обновление: я попробовал следующее
#Grab RSS
$rssString = Invoke-WebRequest "http://website/website.rss"
# convert rss to xml
$xml = [xml] $rssString
# select the <updated> node
$updateString = $xml.SelectSingleNode("/feed/updated").innerText
# convert string to date
$date = Get-Date $updateString
# compare to todays date
if($date.Date -eq (Get-Date).Date){
# proceed to download
}
Вы получаете эту ошибку: Get-Date: Невозможно привязать параметр 'Date' к цели. Параметр исключения «Дата»: «Невозможно преобразовать значение NULL в тип« System.DateTime ».»
При запуске
$ updatestring
ничего не происходит возвращается и пусто, кажется, что обновленный узел не читается