{"id":13343042,"url":"https://github.com/ilyachalov/powershell-livejournal","last_synced_at":"2026-05-19T10:36:10.551Z","repository":{"id":159634382,"uuid":"597281967","full_name":"ilyachalov/powershell-livejournal","owner":"ilyachalov","description":"Общение с «LiveJournal.com» по сети из PowerShell","archived":false,"fork":false,"pushed_at":"2023-03-28T01:40:41.000Z","size":177,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T07:10:37.698Z","etag":null,"topics":["dotnet","http","livejournal","powershell","xml","xml-rpc"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ilyachalov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-04T03:42:20.000Z","updated_at":"2024-12-16T20:59:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"a9a2abe6-a825-415f-94dc-c83ae4600b5d","html_url":"https://github.com/ilyachalov/powershell-livejournal","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ilyachalov/powershell-livejournal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilyachalov%2Fpowershell-livejournal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilyachalov%2Fpowershell-livejournal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilyachalov%2Fpowershell-livejournal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilyachalov%2Fpowershell-livejournal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ilyachalov","download_url":"https://codeload.github.com/ilyachalov/powershell-livejournal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilyachalov%2Fpowershell-livejournal/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266552660,"owners_count":23947181,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnet","http","livejournal","powershell","xml","xml-rpc"],"created_at":"2024-07-29T19:30:36.715Z","updated_at":"2026-05-19T10:36:10.546Z","avatar_url":"https://github.com/ilyachalov.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# powershell-livejournal\nОбщение с «[LiveJournal.com](https://www.livejournal.com/about/)» (сокращенно «LJ»; по-русски «Живой Журнал», сокращенно «ЖЖ») по сети из PowerShell. Я пишу [статьи по этой теме](https://ilyachalov.livejournal.com/316277.html) в своем блоге. Здесь собираюсь хранить скрипты, фрагменты кода (сниппеты) и полезные ссылки для работы с «LiveJournal.com» по сети из командной строки в программе-оболочке «PowerShell».\n\n## Скрипты\n\nПока что в папке «[scripts](scripts/)» есть только один скрипт, который называется «[Get-LiveJournal](scripts/get-livejournal.ps1)». С его помощью можно загрузить все посты указанного в первом параметре журнала к себе на компьютер. Этот скрипт лишь сохраняет тела HTTP(S)-ответов программы-сервера ЖЖ с постами журнала в текстовые файлы в «сыром» виде (то есть в том виде, в котором их возвращает ЖЖ). Иллюстрация работы скрипта:\n\n_Программа-оболочка «PowerShell» версии 7.3.3, программа-«эмулятор терминала» «Windows Terminal» версии 1.17._\n\n![](scripts/get-lj.png)\n\nХоть полученные файлы являются текстовыми, их содержимое неудобно просматривать (и не просто неудобно, но и невозможно, так как текст поста по умолчанию [закодирован процентной кодировкой](https://ilyachalov.livejournal.com/317010.html), для чтения нужна расшифровка), так как ЖЖ возвращает данные постов в разбитом на множество параметров виде. Для дальнейшей работы с постами нужно создать скрипт, который преобразует полученные данные в какой-нибудь читабельный формат, например в XML или в HTML или в еще какой-либо вид. Еще можно создать отдельный скрипт, который загрузит полученные данные на какой-либо другой веб-сервис ведения блогов или сайт, например на «[WordPress.com](https://wordpress.com)» и т.п.\n\nСкрипт `Get-LiveJournal` предназначен для запуска из программы-оболочки `PowerShell` версии 7 или выше, в операционных системах Windows. В программе `PowerShell` имеются так называемые «[политики выполнения](https://learn.microsoft.com/en-gb/powershell/module/microsoft.powershell.core/about/about_execution_policies)», которые по умолчанию запрещают запуск скриптов. Для вре́менного снятия этих ограничений можно из окна программы `PowerShell` запустить еще один процесс программы `PowerShell` с отключенными ограничениями в рамках этого процесса (в этом случае информация о снятии ограничений не запоминается, ограничения вернутся после закрытия этого процесса) с помощью следующей команды:\n\n```\npwsh -ExecutionPolicy Unrestricted\n```\n\nИсполняемый файл программы `PowerShell` называется `pwsh.exe` в отличие от исполняемого файла программы `Windows PowerShell`, который называется `powershell.exe`. Не перепутайте! У меня есть [пост](https://ilyachalov.livejournal.com/223926.html) про политики выполнения.\n\n## Фрагменты кода (сниппеты)\n\n- [snippets-flat.md](snippets-flat.md) (для работы через [интерфейс «flat»](https://stat.livejournal.com/doc/server/ljp.csp.flat.protocol.html));\n- [snippets-xmlrpc.md](snippets-xmlrpc.md) (для работы через [интерфейс «XML-RPC»](https://stat.livejournal.com/doc/server/ljp.csp.xml-rpc.protocol.html)).\n\nЯ работаю в операционной системе «Windows 10». Использую программу-оболочку «[PowerShell](https://github.com/PowerShell/PowerShell)» версии 7 и программу-«эмулятор терминала» «[Windows Terminal](https://github.com/Microsoft/Terminal)» версии 1.17.\n\n![](pwsh-lj-http-request-example-flat.png)\n\n![](pwsh-lj-http-request-example-xmlrpc.png)\n\nИз программы-оболочки «PowerShell» удобно пользоваться классами платформы «[.NET](https://learn.microsoft.com/en-us/dotnet/)», я часто использую эту возможность в сниппетах.\n\nВ папке «[xml-examples](xml-examples/)» я собираюсь хранить примеры тел HTTP(S)-ответов в формате XML-RPC. Эти файлы неудобно полностью вставлять в пост, так как они занимают много места, но я буду оставлять в постах в своем блоге ссылки на эти файлы, чтобы читатель мог получить представление о том, как выглядит ответ в формате XML-RPC.\n\n## Полезные ссылки\n\n- [документация протокола общения](https://stat.livejournal.com/doc/server/ljp.csp.protocol.html) с «LiveJournal.com»;\n- [правила](https://www.livejournal.com/bots/) «LiveJournal.com» для роботов;\n- [пользовательское соглашение](https://www.livejournal.com/legal/tos-ru.bml) «LiveJournal.com» (обратить внимание на **пункт 9.2.6**);\n- [спецификация](http://xmlrpc.com/spec.md) протокола XML-RPC;\n- [документация](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest) командлета `Invoke-WebRequest`.\n\nСтатьи:\n\n- [PowerShell и LiveJournal (ЖЖ): три способа аутентификации](https://habr.com/ru/post/717914/)\u0026nbsp;— моя статья на «Хабре» от 20 фев.2023\u0026nbsp;г.;\n- [Основы работы с сервером livejournal.com](https://jenyay.net/Programming/LJServer)\u0026nbsp;— статья Евгения Ильина от 14 окт.2007\u0026nbsp;г.;\n- [PowerShell и LiveJournal (ЖЖ): скачивание постов журнала](https://habr.com/ru/post/724412/)\u0026nbsp;— моя статья на «Хабре» от 23 мар.2023\u0026nbsp;г.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filyachalov%2Fpowershell-livejournal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filyachalov%2Fpowershell-livejournal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filyachalov%2Fpowershell-livejournal/lists"}