{"id":15133110,"url":"https://github.com/bayselonarrend/2athenaeum","last_synced_at":"2025-10-23T09:31:22.126Z","repository":{"id":196584253,"uuid":"696421053","full_name":"Bayselonarrend/2athenaeum","owner":"Bayselonarrend","description":"Проект Two-Digit Athenaeum - онлайн библиотека на 1C:Enterprise","archived":false,"fork":false,"pushed_at":"2024-04-17T05:45:48.000Z","size":18465,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-30T17:38:21.442Z","etag":null,"topics":["1c","1c-edt","1c-enterprise","api","backend","telegram-bot","vk-api","web","website"],"latest_commit_sha":null,"homepage":"https://athenaeum.digital","language":"1C Enterprise","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bayselonarrend.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-09-25T17:55:15.000Z","updated_at":"2024-05-10T20:14:31.000Z","dependencies_parsed_at":"2023-09-30T09:53:03.105Z","dependency_job_id":"526cfe9f-c320-4f35-aa4c-26020ece38f7","html_url":"https://github.com/Bayselonarrend/2athenaeum","commit_stats":null,"previous_names":["bayselonarrend/2athenaeum"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bayselonarrend%2F2athenaeum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bayselonarrend%2F2athenaeum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bayselonarrend%2F2athenaeum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bayselonarrend%2F2athenaeum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bayselonarrend","download_url":"https://codeload.github.com/Bayselonarrend/2athenaeum/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237807453,"owners_count":19369595,"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","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":["1c","1c-edt","1c-enterprise","api","backend","telegram-bot","vk-api","web","website"],"created_at":"2024-09-26T05:00:29.122Z","updated_at":"2025-10-23T09:31:17.169Z","avatar_url":"https://github.com/Bayselonarrend.png","language":"1C Enterprise","funding_links":[],"categories":[],"sub_categories":[],"readme":"![2athenaeum](https://github.com/Bayselonarrend/2athenaeum/raw/master/info/athenaeum.webp)\n\n# Two-Digit Athenaeum\n\n\u003eVK: [https://vk.com/aioniotis](https://vk.com/aioniotis)\u003cbr\u003e\n\u003eTelegram: [https://t.me/aioniotis](https://t.me/aioniotis)\u003cbr\u003e\n\u003eСайт: [https://athenaeum.digital/](https://athenaeum.digital/)\n\n*Two-Digit Athenaeum* - это облачная онлайн библиотека, расположенная по адресу https://athenaeum.digital. Книги в ней распространяются посредством отправки ботом сообщений в ВК и Telegram. Она состоит из:\n\n1. Сайта (html/css + js (ajax))\n2. Бэка (API и статика)\n3. CMS Для VK и Telegram\n4. Чат-бота для VK и Telegram\n\nПри этом, все, внезапно, реализовано на 1С:Enterprise и представляет из себя две базы/проекта EDT.\nПодобные разрозненные, на первый взгляд, механизмы, на самом деле, крепко связаны вокруг предметной области: \n\n1. Пользователь находит группу ВК (Телеграм), которая ведется из базы CMS\n2. Пользователь узнает о сайте / видит рекламу книги в группе  \n3. Пользователь авторизуется на сайте и выбирает книгу   \n4. Чат-бот ему её отправляет  \n5. Чат-бот находится в группе ВК или Telegram\n\nВсё это и есть Two-Digit Athenaeum\n\n## Для разработчиков в поиске решения своих задач ##\n\nРепозиторий не представляет из себя универсальные механизмы - реализация местами может быть заточена сугубо под конкретные задачи базы, однако в нем все равно представлено много решений, которые можно использовать с минимальными переработками:\nКак уже было упомянуто ранее, проект состоит из 2-х баз\n\n### Aioniotis CMS - проект управления контентом для группы ВК и канала Telegram\n\nДанная база отвечает за медийную часть проекта. Основной целью было создать систему управления контентом, которая могла бы минимизировать мое участие в ведении группы. Весь реализованный функционал нацелен на автоматизацию всего, что можно автоматизировать в жизни админа и криейтера: создание постов из сырых данных, очередь и планирование публикаций во времени, регулярные посты (вроде дней рождений писателей, повторяющихся каждый год), создание постов на основе генератора случайных чисел (как, например, опросы о любимом авторе по нескольким случайным авторам из справочника) и пр.\n\nВ этом проекте реализованы:\n\n1. Методы VK и Telegram API\n\n    Модули МетодыРаботыVK, МетодыРаботыTelegram\n  \n     На основе наработок данного проекта были созданы библиотеки [VKEnterprise](https://github.com/Bayselonarrend/VKEnterprise) и [TelegramEnterprise](https://github.com/Bayselonarrend/TelegramEnterprise). Для непосредественного использования гораздо удобнее взять сразу эти решения, однако здесь можно посмотреть на их использование:\n     \n     - Постинг\n     - Создание опросов (VK)\n     - Получение статистики (общей и по постам) (VK)\n     - Публикация историй (VK)\n     - Лайки и репосты (VK)\n     - Авторизация пользователей на сайте\n     - Работа с рекламным кабинетом (VK)\n     - Сокращение ссылок через VK.CC\n     - Некоторые иные мелкие механизмы\n\n___\n  \n2. Работа с ImageMagick (Статья [на Инфостарте](https://infostart.ru/1c/articles/1923036/))\n\n   Модуль МетодыОбработкиИзображений\n   \n   - Формирование карточек разных размеров по изображению\n   - Текст на картинках\n   - Наложение одной картинки на другую\n   - Создание комплексных пано на основе нескольких картинок, теней, текста\n\n3. Непосредственно сам бизнес-процесс\n\n    Модуль МетодыРегламентныхЗаданий, МетодыОбработкиИзображений, МетодыФормированияПостов\n    \n   - Очередь постов и расписание постинга с автоматической публикацией\n   - Простые посты картинка + текст и сложные посты из нескольких картинок с обработкой ImageMagick - этакие пайплайны, превращающие текст и двоичные данные из справочников/документов непосредственно в цепочки запросов к TG и VK с нужными данными\n   - Посты с аудиовложениями\n\n___ \n\n### Ferapont - интерактивная часть Two-Digit Athenaeum: бот и сайт\n\nФерапонт - имя телеграм бота, рассылающего книги из библиотеки, однако помимо бота в этот проект еще вошли методы для работы сайта. Для уменьшения нагрузки на сервер (1С все-таки) была выбрана следующая схема веб-приложения\n- Сам сайт непосредственно располагается на neocities (это такой сервис, позволяющий публиковать сатические веб-сайты. Нечто вроде GitHub Pages). Есть несколько статических страниц и ajax скрипты\n- Вся информация, которая не изменяется во времени (или изменяется крайне редко), хранится тоже там - в виде json файлов. Эти json файлы формирует по алгоритму 1С на основе информации из справочников и заливает в каталог сайта на neocities в нужной структуре. Т.е., например, есть статичная страница book.html (для показа книг), загружающая нужную книгу при помощи ajax. Просто обращается этот ajax не к моему серверу - к бэку, а запрашивает статический json у того же neocitites. ... PROFIT\n- Все, что статикой заменить никак нельзя, т.е. профиль и авторизацию, обрабатывает http-сервисами 1С. Профиль обрабатывается ajax запросами непосредственно к api, авторизация работает через Telegram и VK - к 1С обращаются уже они.\n\nВ этом проекте реализованы:\n\n1. Небольшие примеры использования 1С как RestAPI\n\n   Модуль МетодыApiСайта\n\n   - Формирование json для ajax\n   - Авторизация через Телеграм и ВК\n   - Профили пользователей и статистика\n\n___ \n\n2. Бот (единый механизм для VK и ТГ, ветвящийся на отправке сообщений)\n\n    Модуль МетодыБота\n\n   - Отправка текста и смайлов\n   - Работа с клавиатурами\n   - Рассылка напоминаний\n\n___\n\n3. Автотесты http-сервисов\n\n    Модуль МетодыТестирования\n   \n   Моя попытка в автоматизированное тестирование. Обусловленно жесточайщей необходимостью - трястись после каждой правки в механизм бота и проверять 20+ пунктов, начиная от регистрации нового пользователя в каждую соц. сеть (что требует миллион телодвижений), заканчивая отправкой книги по коду, просто невыносимо. Выглядит это тестирование так:\n\n   - Есть константа ЗаписыватьТесты. Когда она Истина - все сервисы, где прописано условие проверки этой константы, начинают записывать свои запросы в специальный справочник как:\n       - Имя Метода\n       - JSON тела, если есть (Строкой)\n       - Заголовки (как есть из HttpСервисЗапрос - в ХранилищеЗначений)\n       - Параметры запроса (как есть из HttpСервисЗапрос - в ХранилищеЗначений)\n    - После записи этот тест можно запустить. В процессе запуска он проходит 3 этапа\n       - Процедура предобработки - специально написанная процедура, добавленная в перечень процедур предобработки для конкретного теста. В нее попадают записанные в Спр. данные и их можно обработать. Можно обработать и что-нибудь другое. Так, например, при запуске теста регистрации, данная процедура чистит Telegram ID у моего пользователя, чтобы зарегистрировался новый, сохраняя его в доп. параметры для последющей сверки.\n       - Общая процедура отправки запроса на свой сервис, создающая запрос из сохраненных (и, возможно, подредактированных в предыдущем пункте) данных\n       - Процедура постобработки - специально написанная процедура, добавленная в перечень процедур предобработки для конкретного теста. В нее попадает Ответ от сервиса и доп. параметры из пред. обработки. Если вернуться к примеру с регистрацией, то тут я достаю сохраненный ранее ID, ищу в базе, создался ли новый пользователь с таким, после чего удаляю этого нового пользователя и возвращаю ID своему. Ошибку в прохождении теста я определяею Если Тогда ВызватьИсключение.\n\n    Информация о выполнении или невыполнении пишется в РС\n\n___\n\n## Для разработчиков, которые хотят поучаствовать ##\n\nЕсли у вас есть интересные идеи или вы пользуетесь билиотекой, но вам чего-то не хватает - присылайте. Помимо GitHub, у нас есть та самая [группа ВК](https://vk.com/aioniotis) - можно писать в обсуждения.\n\u003cbr\u003e\n\u003chr\u003e\n\n\u003e![Infostart](https://github.com/Bayselonarrend/TelegramEnterprise/raw/main/infostart.svg)\n\u003e\n\u003eВсе статьи из недр проекта на Инфостарте: \u003cbr\u003e\n\u003e[https://infostart.ru/1c/articles/1982182/](https://infostart.ru/1c/articles/1982182/)\u003cbr\u003e\n\u003e[https://infostart.ru/1c/articles/1996431/](https://infostart.ru/1c/articles/1996431/)\u003cbr\u003e\n\u003e[https://infostart.ru/1c/articles/1923036/](https://infostart.ru/1c/articles/1923036/)\u003cbr\u003e\n\n\u003cbr\u003e\n\u003chr\u003e\n\u003cbr\u003e\n\n## Что используется в проекте ##\n\nБиблиотеки TelegramEnterprise и VKEnterprise использют некоторые функции из проекта Коннектора\n\n\u003eCopyright 2017-2023 Vladimir Bondarevskiy под Apache License, Version 2.0\n\u003ehttps://github.com/vbondarevsky/Connector/\n\nИспользуются методы HMAC SHA-256 и некоторые другие из БСП\n\n\u003eCopyright (c) 2019, ООО 1С-Софт\n\u003eВсе права защищены. Эта программа и сопроводительные материалы предоставляются \n\u003eв соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)\n\u003eТекст лицензии доступен по ссылке:\n\u003ehttps://creativecommons.org/licenses/by/4.0/legalcode\n\nВ одном из прошлых релизов Для поднятия COM-соединения с 1С из node.js используется node-activex/winax \n\n\u003eCopyright (c) 2023 Yuri Dursin под MIT\u003cbr\u003e\n\u003ehttps://github.com/durs/node-activex\u003cbr\u003e\n\u003ehttps://www.npmjs.com/package/winax\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbayselonarrend%2F2athenaeum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbayselonarrend%2F2athenaeum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbayselonarrend%2F2athenaeum/lists"}