Загрузка выпусков подкаста Радио 1С Энтерпрайз

27.07.23

Интеграция - WEB-интеграция

Код для загрузки всех выпусков подкаста Радио 1С Энтерпрайз для оффлайн-прослушивания.

На днях листал пожелтевшие страницы старых выпусков Зазеркалья и случайно наткнулся на заметку о старте второго сезона подкаста "Радио 1С Энтерпрайз". Сказать, что я был удивлён - это не сказать ничего. Причём меня удивило не то, что уже начался третий сезон этого подкаста и при этом в Зазеркалье до сих пор нет об этом заметки (это не удивило вообще), а то, что я ни сном, ни духом о существовании какого-то подкаста про 1С! А он оказывается есть!

Послушал пару первых выпусков первого сезона, и знаете, мне понравилось. Планирую продолжать слушать и дальше. Ну а поскольку я привык слушать на телефоне оффлайновые файлы через старый-добрый-ламповый проигрыватель VLC, а не с этих-ваших-модно-смузевых подкаст-сервисов, появилась необходимость выкачать все выпуски. 

Как известно, "лучше день потерять [на написание кода], потом за пять минут долететь всё скачать!"

Поэтому, собственно, вот она - моя наколенная подделка. Глядишь, кому пригодится. Умеет выводить результат в ТекстовыйДокумент в виде bash-/bat-скрипта с вызовами wget и в виде обычного html-я (не знаю зачем; просто сделал для визуализации результата). Формат вывода результата определяется значением переменной ФорматРезультата в самом начале кода.

Запускать через любую консоль кода (коих тут уже накопилось немногим меньше, чем внешних печатных форм счета-фактуры), или можно создать обработочку и добавить этот код как обработчик нажатия кнопки.

ФорматРезультата = "wget"; // "wget" или "html"

// Получаем данные в виде RSS: https://cloud.mave.digital/37402
Сервер = "cloud.mave.digital";
Порт = 443;
АдресРесурса = "/37402";

// запрос по HTTP
HTTPСоединение = Новый HTTPСоединение(Сервер, Порт,,,,, Новый ЗащищенноеСоединениеOpenSSL);
HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос);
Если HTTPОтвет.КодСостояния <> 200 Тогда
	ВызватьИсключение "Не удалось получить данные с сервера! Код состояния HTTP = " + HTTPОтвет.КодСостояния;
КонецЕсли;
ТекстRSS = HTTPОтвет.ПолучитьТелоКакСтроку();

// XML -> XDTO
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(ТекстRSS);
ОбъектRSS = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
ЧтениеXML.Закрыть();

// разбор XDTO
ВыпускиПодкаста = Новый Массив;
Для Каждого СтрокаItem Из ОбъектRSS.channel.item Цикл
	ОписаниеВыпуска = Новый Структура;
	ОписаниеВыпуска.Вставить("Сезон", ?(СтрокаItem.Свойства().Получить("season") <> Неопределено, СтрокаItem.season, "?"));
	ОписаниеВыпуска.Вставить("Эпизод", ?(СтрокаItem.Свойства().Получить("episode") <> Неопределено, СтрокаItem.episode, "?"));
	ОписаниеВыпуска.Вставить("ДатаВыхода", СтрокаItem.pubDate);
	ОписаниеВыпуска.Вставить("Описание", ?(СтрокаItem.Свойства().Получить("summary") <> Неопределено, СтрокаItem.summary, "?"));
	ОписаниеВыпуска.Вставить("АдресФайла", СтрокаItem.enclosure.url);
	ВыпускиПодкаста.Добавить(ОписаниеВыпуска);
КонецЦикла;

// вывод результата
ТД = Новый ТекстовыйДокумент;
КоличествоВыпусков = ВыпускиПодкаста.Количество();
НомерВыпуска = КоличествоВыпусков;
ФорматНомераВыпуска = СтрШаблон("ЧЦ=%1; ЧВН=; ЧГ=", Макс(СтрДлина(Формат(КоличествоВыпусков, "ЧГ=")), 3));
Для Каждого ОписаниеВыпуска Из ВыпускиПодкаста Цикл
	Сезон = ОписаниеВыпуска.Сезон;
	Эпизод = ОписаниеВыпуска.Эпизод;
	Описание = ОписаниеВыпуска.Описание;
	АдресФайла = ОписаниеВыпуска.АдресФайла;
	ДатаВыхода = ОписаниеВыпуска.ДатаВыхода;
	ИмяФайлаДляСохранения = "";
	ПозицияПоследнейТочки = СтрНайти(АдресФайла, ".", НаправлениеПоиска.СКонца);
	НомерМесяца = (СтрНайти("BAD,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", Сред(ДатаВыхода, 9, 3)) - 1) / 4;
	Если ПозицияПоследнейТочки <> 0
		И НомерМесяца > 0 Тогда
		ДатаВыходаГГГГММДД = Сред(ДатаВыхода, 13, 4) 
							+ "-" + Формат(НомерМесяца, "ЧЦ=2; ЧВН=; ЧГ=")
							+ "-" + Сред(ДатаВыхода, 6, 2);
		ИмяФайлаДляСохранения = Формат(НомерВыпуска, ФорматНомераВыпуска) + "_" + ДатаВыходаГГГГММДД + Сред(АдресФайла, ПозицияПоследнейТочки);
	КонецЕсли;
	Если ПустаяСтрока(ИмяФайлаДляСохранения) Тогда
		ВызватьИсключение "Не удалось сформировать имя файла для сохранения!";
	КонецЕсли;
	Если ФорматРезультата = "wget" Тогда
		Стр = СтрШаблон("wget -O %1 %2", ИмяФайлаДляСохранения, АдресФайла);
	Иначе
		// по умолчанию "html"
		Стр = СтрШаблон("<p><b>%1</b><br />%2.%3. %4<br /><a href=""%5"" download=""%6"">%7</a></p>", ДатаВыхода, Сезон, Эпизод, Описание, АдресФайла, ИмяФайлаДляСохранения, АдресФайла);
	КонецЕсли;
	ТД.ДобавитьСтроку(Стр);
	НомерВыпуска = НомерВыпуска - 1;
КонецЦикла;
ТД.Показать("Список выпусков Радио 1С Энтерпрайз", ?(ФорматРезультата = "wget", "download-podcast-1c.sh", "index-podcast-1c.html"));

 

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17801    19    22    

17

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    19885    13    17    

17

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14436    42    8    

18

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    1207    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1747 29.04.22 19:13 Сейчас в теме
5. q_i 584 30.04.22 00:02 Сейчас в теме
(1) в двух словах не расскажешь ))
Подкаст повествует о парадигме, теории и практике разработки программного обеспечения на платформе «1С: Предприятие», об управлении разработкой, о новых возможностях и механизмах платформы, об интересных и полезных разработчикам инструментах, техниках и методиках работы, ну – и так далее. Автор – Никита Зайцев (a.k.a. WildHare), эксперт по стеку технологий «1С: Предприятие», профессиональный стаж ~23 года, основная специализация – тяжелые, уникальные, большие и по-хорошему страшные системы / проекты.

В общем, про 1С и около. Попробуйте несколько выпусков на перемотке прослушать (или один-два целиком), сразу поймёте - зашло или нет.
ipoluhin; +1 Ответить
7. ipoluhin 30.04.22 21:36 Сейчас в теме
(5)Очень крутая серия передач! Информативности, познавательной и достаточно лаконично. Целый день слушая сначала.
2. CheBurator 2712 29.04.22 20:18 Сейчас в теме
https://t.me/radio1c - телега.
это подкаст Никиты Зайцева, известный в 1С кругах человек.
https://infostart.ru/journal/news/news/nikita-zaytsev-a-k-a-wildhare-ya-universalnyy-soldat-v-mire-1s_1250753/
q_i; RustIG; +2 Ответить
3. RustIG 1747 29.04.22 23:44 Сейчас в теме
А в телеграмме разве нельзя прослушать? Обязательно через музыкальные сервисы слушать? Или через оффлайновые проигрыватели?
6. q_i 584 30.04.22 00:07 Сейчас в теме
(3) Я про телеграм узнал только сегодня из (2) ))
Предыдущие выпуски точно буду слушать через оффлайновый проигрыватель (рыться в истории телеграма в поисках старых выпусков лениво и скучно). Новые может быть через телеграм, посмотрю-подумаю.
9. Lapitskiy 1061 05.05.22 13:14 Сейчас в теме
(3) на яндекс музыке вроде как тоже есть
4. RustIG 1747 29.04.22 23:44 Сейчас в теме
Плюс за поднятие темы
8. Alex17 7 05.05.22 13:00 Сейчас в теме
Слушаю через Яндекс Музыку, нравиться тем что во время не за монитором с пользой.
Оставьте свое сообщение