Разбор списка и преобразование его в XML

в 22:10, , рубрики: powershell, XML, метки: ,

В последнее время у меня нет времени на ЖЖ. Совсем.
Поэтому передо мной стала задача — отслеживание, кто чего написал.
Google Reader любезно согласился мне помочь, но переносить больше сотни пользователей в RSS Reader — кощунство, когда это можно автоматизировать.
Посмотрел я на свой список друзей (при копипасте из профиля это список пользователей, разделенный запятыми) и подумал, что автоматизировать это дело можно легко и быстро.

Задача: превратить файл со списком пользователей «ааа, bbb, ccc», при условии что удалённые журналы мы удаляем руками, а закрытые мы увидим по обычно верхнему открытому посту, или вообще без записей (что, в итоге, получилось), в opml файл для скармливания его rss-читалке.

####
# This script make an a OPML file from list of ljusernames, which separated by commas.
# "ljusername1, ljusername2"
####

# Тут мы жестко прописываем файл.
$Filename="ljusers.txt"

# Выходной файл
$Outfile="lj.opml"

# Получаем в переменную содержимое нашего файла
$UserList = Get-Content $Filename

# Прописываем заголовок
add-content -Encoding UTF8 -path $Outfile -Value "`<`?xml version=`"1.0`" encoding=`"UTF-8`"?`>"
add-content -Encoding UTF8 -path $Outfile -Value "  <opml version=`"1.0`">"
add-content -Encoding UTF8 -path $Outfile -Value "    <head>"

# Папка в rss-reader'е, Google Reader её прекрасно определил, как и теги.
add-content -Encoding UTF8 -path $Outfile -Value "        <title>Подписки в ЖЖ</title>"
add-content -Encoding UTF8 -path $Outfile -Value "    </head>"
add-content -Encoding UTF8 -path $Outfile -Value "    <body>"
add-content -Encoding UTF8 -path $Outfile -Value "        <outline title=`"Друзья в ЖЖ`" text=`"Друзья в ЖЖ`">"

# Рисуем сами подписки (в цикле, но названия ЖЖ будет равняться имени пользователя, чтобы не
# перепутать если оно меняется, пробелами выставляется форматирование полученной XML)

foreach ($ljusername in $UserList -Split ", ")
{ "                <outline text=`"http://$ljusername.livejournal.com/data/rss`"",
 "                title=`"$ljusername`"",
 "                xmlUrl=`"http://$ljusername.livejournal.com/data/rss`"",
 "                htmlUrl=`"http://$ljusername.livejournal.com/`"`/`>`n" | out-file -Append -FilePath $Outfile -Encoding UTF8
}

# footer - закрываем лоткрытые теги.
add-content -Encoding UTF8 -path $Outfile -Value "        </outline>"
add-content -Encoding UTF8 -path $Outfile -Value "    </body>"
add-content -Encoding UTF8 -path $Outfile -Value "</opml>"

# Конец скрипта.

— Приветствуются усовершенствования и критика.

Автор: foxmuldercp

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js