OInt CLI - приложение Открытого пакета интеграций для командной строки

15.04.24

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

Все методы интеграции ОПИ теперь в формате приложения для CMD/Shell! Простой и компактный исполняемый файл со встроенной справкой - удобный инструмент для тестирования и работы с вашими любимыми сервисами. Пока в раннем доступе

Если вы не слышали ранее об Открытом Пакете Интеграций (что вполне вероятно), то небольшая вводная часть ниже, под катом. Для тех, кто уже знаком с ОПИ, данный раздел можно пропустить.

 
 Что такое Открытый Пакет Интеграций

 

Открытый Пакет Интеграций (ОПИ) - это набор open-source библиотек для интеграции с некоторыми популярными API для 1С:Предприятие и OneScript. Он представляет из себя расширение (а для OneScript - пакет), состоящее из общих модулей, каждый из которых отвечает за свой собственный сервис для работы. 


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

 

 

 

  • Удобная единая документация. Она расположена на сайте opi.neocities.org и содержит в себе всю информацию, необходимую для работы: инструкции по предварительным действиям для начала интеграции, описания всех методов с параметрами и возвращаемыми значениями, примеры кода и т.д. Каждый API имеет там свой раздел.

 

 

 

 

  • Простая установка. ОПИ распространяется сразу в 3-х вариантах для 1С: как XML файлы расширения, как EDT проект расширения и как файл расширения формата .cfe (версия 1С 8.3.9), а также как файл пакета для OneScript. Однако, помимо этого, вы даже можете просто скопировать код ОПИ руками! Весь проект состоит из модулей, которые можно перенести в аналогичные, созданные самостоятельно в конфгураторе/проекте.

 

На момент последнего обновления данной статьи, доступны следующие API:

Наиболее актуальную информацию можно посмотреть в репозитории или на вводной странице документации.

 

В прошлом большом обновлении для Открытого пакета интеграций появилась версия для OneScript. Текущий релиз это логическое продолжение данной идеи - реализация библиотеки в еще более интуитивном формате и с еще меньшим количеством необходимых действий для начала работы

 

В самом деле, большинство разработчиков, использующих OS, применяют его как инструмент для своих повседневных задач, но не для создания универсальных продуктов. И это вовсе не плохо. OneScript - хороший инструмент, который поможет выпутаться из многих непростых ситуации, когда дело касается выхода за пределы уютного 1С



Но тем острее становится вопрос соотношения гибкости и сложности. Без широкого горизонта возможностей не получится заниматься разработкой программного продукта, но нужно ли это разработчику, который уже использует этот самый программный продукт по прямому, утилитарному назначению? Для использования, например, любого пакета в качестве законченного решения, новому пользователю потребуется как минимум:

  • Иметь OneScript на машине
  • Иметь необходимый пакет
  • Знать методы и особенности этого пакета (а это возможно только при наличии хотя бы мало-мальской документации)
  • Написать некоторое окружение для работы: вызовы, заполнение параметров, обработку ответа и пр.

Это открывает большие возможности по тонкой настройке, но подобная свобода не всегда необходима, а главное - сопряжена со множеством трудностей.

Применительно к проекту ОПИ, это и было основной мыслью при создания CLI версии - конвертировать пакет в конкретную утилиту без необходимости думать обо всем вышеперечисленном

 

 

Что из себя представляет?

 

OInt CLI - практически полный перенос функционала Открытого пакета интеграций на рельсы единого исполняемого файла для терминала/командной строки. Для его создания использованы версия ОПИ под OneScript (которая OInt), библиотека cmdline для работы с опциями и аргументами, ну и, конечно же, возможность OneScript собирать скрипты в готовое приложение.

 

Список доступных команд:

  • telegram - методы работы с Telegram Bot API 
  • vk - методы работы с VK API
  • viber - методы работы с Viber API
  • twitter - методы работы с Twitter/X API
  • notion - методы работы с Notion API
  • yandex - методы работы с API Yandex ID
  • yadisk - методы работы с Yandex.Disk API
  • google - методы работы с API Google Workspace
  • gcalendar - методы работы с Google Calendar API
  • gdrive - методы работы с Google Drive API
  • tools - пара небольших инструментов общего пользования

 

Целью было создать максимально простое в использовании ПО - простое как для людей, которые уже используют оригинальный пакет, так и для совсем новых пользователей. Что еще интересного мы можем там найти?

 

Встроенная справка

 

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

 

Имена методов полностью соответствуют таковым в родительской библиотеке, имена же самих библиотек - сокращены для удобства. Но они все равно говорящие: думаю, ни у кого не возникнет проблем с тем, что gdrive - это OPI_GoogleDrive, библиотека для работы с Google Drive-ом

 

 

Была обновлена и онлайн справка на opi.neocities.org - каждый раздел был дополнен списком опций для CLI и примерами возможных команд

 

 

Про ввод и вывод данных

 

Для ввода сообщений используются опции. Аргументы - нет.

Помимо того, что это красиво, на мой субъективный взгляд, куда более удобно, данное решение, к тому же, позволило очень сильно упростить разработку всего решения

 

Зачастую, передаваемые в опции значения - строки. Однако в ОПИ полно и тех функций, которые принимают коллекции (структуры или массивы), а бывает и даты. Решено это было следующим образом:

 

  • Массивы передаются как ['Элемент1','Элемент2','Элемент3']
  • Структуры и соответствия передаются как JSON (в качестве строки или как путь к файлу)
  • Даты передаются как строки в формате ISO 8601

 

Но запоминать это не обязательно: во всех случаях, когда методы принимают подобные типы параметров, встроенная справка дополняется соответствующей подсказкой

 

 

Само преобразование строк в необходимые типы данных - не отдельный функционал CLI версии (хотя создавался именно для нее), но работает и в остальных вариантах библиотеки: обработчики вызываются уже непосредственно в основных методах, так что передавать JSON, массивы в квадратных скобках и ISO-даты теперь можно вне зависимости от используемой версии - 1С, OneScript или CLI

 

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

 

 

 

Инструменты и утилиты

 

Помимо общих методов ОПИ, специально для CLI был выделен отдельный набор с инструментами и утилитами под командой tools. Пока он не может похвастаться разнообразием, но это дело наживное. В данный момент я бы хотел заострить внимание на одном из существующих методов, так как он оказался действительно крайне полезным в реальной работе.

 

При использовании любого API частой является ситуация, при которой выполнение определенного действия требует отправки нескольких связанных запросов. Так, например, для работы с любыми сервисами Google Workspace необходимо периодически обновлять токен, так как старый сгорает через определенное время. Т.е. нам сначала необходимо отправить запрос на обновление токена, получить его, а уже только потом работать с необходимыми методами. Небольшой инструмент, о котором я сейчас расскажу, как раз и поможет нам вытаскивать данные из JSON ответов и передавать полученную информацию для дальнейшего использования

 

Рассмотрим на примере все того же Google Workspace: мы отправляем запрос на обновление токена, после чего получаем ответ с новым его значением. Как теперь достать это значение и передать в новый запрос? Для этого мы используем метод команды tools - РазложитьJSON

 

Данная функция имеет два режима работы: если опция --name указана, то возвращаются чистые данные поля с именем, равным её значению. Если же нет - возвращается список всех доступных полей, полученных из JSON. 

Чистое значение, полученное при указании имени поля, можно записать в переменную в зависимости от типа вашей оболочки и использовать в последующих вызовах.

 

Требования и ограничения

 

OInt CLI делит свое единственное (найденное на данный момент) ограничение со своим "старшим братом" - пакетом для OS. Насколько я понимаю, OneScript не может записывать в поток двоичные данные размером > 2 GB

 

Масштаб проблемы, честно говоря, оценить сложно: API соц. сетей и мессенджеров, вроде VK, Telegram, Viber или Twitter, так и так не дадут вам загружать настолько большие файлы. Для Google Drive это проблемой не является, так для него в ОПИ реализована отдельная ветка загрузки больших файлов - все, что больше 256 МБ дробится на части и отправляется в особом режиме самого API от Google. Это могло быть проблемой разве что для API Yandex, но при загрузке чего-то большого на Яндекс.Диск его API не отвечает и при загрузке из 1С, где такой проблемы с размером файла нет

Скажем так: для большинства покрываемых задач это ограничение не играет роли

 

Системные требования - системные требования самого OneScript: .NET Framework 4.8 или Mono совместимой версии

 

Поставка

 

На данный момент есть четыре варианта поставки OInt:

  • Исполняемый файл (бинарник, .exe). Он одинаково работает и на Windows и на Linux - лишь бы был .NET Framework
  • Небольшой установщик для Windows (Временное решение: запускать необходимо от имени администратора, PATH пропишется после перезагрузки)
  • Deb-пакет для Debian/Ubuntu
  • RPM-пакет для Fedora/CentOS

 

Пакеты для Linux содержат в себе список необходимых зависимостей, которые будут установлены автоматически при установке OInt (собственно, mono)

Установка была опробована на текущей LTS версии Ubuntu (deb) и (внезапно) на RED OS (rpm). На обеих чистых системах OInt встал без проблем и дополнительных действий, автоматически дополучив необходимые пакеты через apt/dnf

 

 

Ссылка на релиз, где можно скачать данные файлы, будет в конце статьи. При возникновении ошибок или нахождении багов, огромная просьба написать об этом в Issues на GitHub! Это будет самая большая возможная поддержка данному проекту, особенно сейчас - на старте запуска новой версии.

 

В принципе, про CLI версию у меня пока все

 

В заключении

 

«Автоматизируйте все что можно с самого начала — тестирование, сборку, публикацию версий, документирование. Эти вещи проще всего отложить на потом, но «потом» уже не будет времени все это автоматизировать»

Андрей Овсянкин, EvilBeaver

 

Конкретика в данной статье закончилась - остались только рассуждения

Дело в том, что Открытый пакет интеграций уже существует некоторое время и, я должен сказать - это было интересно. Проект сравнительно не такой уж старый или большой, но тем не мене, в качестве послесловия сегодня, мне бы хотелось поделится некоторыми выводами и размышлениями, которые я делал в процессе работы над ним - рассказать о своем скромном опыте. 

Вообще, через все эти мысли трудно протянуть какую-то единую нить повествования, так что будет лучше разбить их на отдельные пункты. Все они, тем не менее, будут связаны с вопросами ведения и разработки open-source проекта. Возможно, это сможет помочь тем, кто начинает или еще только планирует начать вести свой собственный открытый репозиторий:
 

  • Во-первых - про эпиграф (взят из этой статьи). Это чистая правда. Автоматизировать надо все и нет такого количества времени, которое было бы для этого "слишком большим". Лично у меня есть два примера для сравнения: автоматизированная конвертация ОПИ (1С) в OInt (OneScript) с запуском тестирования и вовсе даже неавтоматизированное создание документации. Надо ли говорит, какой механизм я ощущаю как воздух в легких, а какой вынуждает меня страдать каждый новый релиз? 

    Автоматизация пугает поначалу: ладно писать в VSCode при работе с OneScript, но разбираться в автотестах, Github Actions или Jenkins ради своего open-source проекта? Я нашел два момента, которые лично меня смотивировали этим заниматься:

    Во-первых, даже  если вы забросите свой проект спустя два дня - опыт останется с вами. Опыт это вообще, на мой взгляд, основной ориентир, которым необходимо руководствоваться при занятии подобными вещами - его вы получите гарантировано, в отличии от всего остального

    Во-вторых - ни что так не ломает мотивацию, как занятие рутиной. Освоив минимальные методы автоматизации своей работы, вы будете получать от ее реализации удовольствие, не меньшее чем от любых других видов написания кода. Я могу часами увлеченно писать OS-скрипт, который будет собирать yml для Github Actions, который будет запускать OS-скрипт для обработки исходников, но меня начинает тошнить спустя 20 минут после начала написания документации к новым методам, ей богу!

    Кстати, герой статьи, OInt CLI - это вообще плод исключительно процесса автоматизации. Вся его оснастка со списком методов - результат парсинга стандартных документирующих комментариев с небольшой доработкой 


     
  • Автоматизированное тестирование - это база. Данный пункт, конечно, тоже можно было бы отнести к автоматизации, но дело тут в другом. Если вас не ломает нудная работа и проект ваш разрабатывается в режиме "дзен", то можно ничего не автоматизировать. Ничего, кроме тестирования

    Это бывает странно осознавать, но если в вашей программе/пакете/расширении будет ошибка - не только лишь все, но очень немногие вам об этом скажут. Особенно на первых парах. Если ваш свежий, пытающийся набрать некоторую начальную популярность, проект у пользователя не запускается - его просто выкинут и пойдут искать новый. Большие репозитории могут себе позволить быть местами поломанными. Во-первых они большие, во-вторых они уже имеют базу пользователей, заинтересованных в починке больше, чем в переходе на нечто другое. Маленьким проектам в такой роскоши отказано. Они должны нормально работать и автотесты, вызываемые постоянно при изменениях в коде - единственны инструмент, который позволит вам в этом убедится (хотя бы на приемлемый %)
     
  • Документация важна. Это - достаточно очевидная мысль, я понимаю. Но, думаю, не у одного меня бывали моменты, когда при использовании какой-нибудь %ИмяПрограммы% приходилось искать ответы по случайным форумам и профильным порталам, так как сторонние люди, по всей видимости, лучше знают и яснее излагают тонкости работы с продуктом, чем это делают его разработчики

    Пусть это и не всегда справедливо - документация не обязана охватывать моменты конкретного применения, которые любят описывать в статьях и заметках. Но ни чуть не реже оказывается, что документации просто нет вовсе или использовать её будучи человеком с чувством прекрасного очень сложно. Все таки, нормальная цель для любого мейнтейнера - чтобы его продуктом было комфортно пользоваться, а не чтобы он, в принципе, работал. Читать же мысли разработчика, к сожалению, пока никакой возможности нет
     
  • Соблюдайте стандарты - они не просто так сделаны. Вообще, постарайтесь по мере сил сделать свой open-source проект местом сбора максимального количества best practice. В нем вы - хозяин-барин, и никакой заказчик не спросит у вас о целесообразности использования SonarQube или EDT. А используя хорошие инструменты на первых парах, вы очень быстро заметите, как сами неосознанно начинаете писать правильно - даже без подсказок

    Побочный эффект: сильно вырастет процент кода, который будет казаться вам отвратительным непотребством. В том числе и вашего кода. Во многой мудрости много печали

  • Не пренебрегайте красивостью и брендингом

    Опять же - просто рабочего продукта недостаточно, для того, чтобы его использовали. Да тот же ОПИ не собрал бы и половины из тех пользователей, что у него есть, если бы не альпака Виталий! Я до сих пор уверен, что люди на Github просто ему звезды ставят, за то что он такой желтый красивый! 

    Все мы человеки, а любой человек любит, когда красиво и прикольно, когда проект выглядит забавно и не угрожающе, будто бы несерьезно. Большинство продуктов, которыми вы пользуетесь каждый день, имеют маскота или, как минимум, узнаваемый логотип. Серьезные люди не считают это чем-то неважным - вот и вы не считайте. Тем более-то при возможностях сегодняшних нейросетей
     

Это то, что я хотел сегодня рассказать. Все же остальное, скорее всего, будет слишком персональным - опытом, который каждый должен прожить сам. Так что пока это все. И огромное спасибо за вашу поддержку - у проекта ОПИ без 2-х минут 100 звезд на GitHub, как ни как!
 

Спасибо за внимание!

 

 

Репозиторий ОПИ: github.com/Bayselonarrend/OpenIntegrations

Последний релиз: github.com/Bayselonarrend/OpenIntegrations/releases/tag/1.6.0

 

Другие статьи про Открытый пакет интеграций на Инфостарт:

 

 

 Мой GitHub:     https://gitub.com/Bayselonarrend 
 Лицензия MIT:   https://mit-license.org

ОПИ API АПИ интеграция web обмен http https библиотека github open source CLI софт

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

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

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

36000 руб.

03.08.2020    16014    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

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

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

5040 руб.

04.05.2021    18043    10    15    

14

SALE! 10%

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

28000 25200 руб.

28.05.2015    85223    26    51    

50

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

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

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

22656 руб.

25.05.2021    12947    32    8    

12

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    89509    163    217    

320
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Segate 230 15.04.24 10:47 Сейчас в теме
Вот я прям смотрю и у меня очень двоякая реакция, с одной стороны -
Вы делаете просто очень крутую и нужную штуку.

С другой стороны, когда дело доходит до оскрипта, - вы идете "своим путем" игнорируя огромное количество полезных наработок в сообществе...

Например, есть отличная библиотека https://github.com/oscript-library/cli или ее модная и осенняя инкарнация https://github.com/oscript-library/autumn-cli

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

То же самое с предыдущей итерацией, добавление самой реализации для оскрипта. Сама идея супер, реализация - тоже "свой путь". Надо бы добавиться в хаб, чтобы можно было подключать интеграции через #Использовать и работать с opm, надо бы все таки чуть переработать структуру исходников, добавив классы, чтобы можно было адекватно пользоваться настройками и не дублировать кучу кода...

В общем-то довольно мелкие изменения, но они мешают раскрыться вашему(очень крутому, я еще раз подчеркиваю) продукту.
2. bayselonarrend 1223 15.04.24 11:11 Сейчас в теме
(1) Спасибо за интерес)

На самом деле, все не так однозначно. Большинство существующих решений не игнорируются - они просто отваливаются при попытке внедрения

Надо бы добавиться в хаб, чтобы можно было подключать интеграции через #Использовать и работать с opm


Я работаю над этим. Сам пакет собран с lib.config, где описана структура. Я сам подключаю Oint через #Использовать, просто его нельзя установить пока что из хаба - нужно скачать файл из релизов и сделать opm install -f ./oint.ospx. Дальнейшая работа ничем не отличается от работы с пакетом из хаба: #Использовать oint и все модули вызываются просто по имени. Может есть баг, я просто о нем не знаю?

Что касается классов - кодовая база Oint унифицирована с таковой у ОПИ для 1С. Это ключевой момент, так как позволяет не писать версию для OS отдельно. Я просто стараюсь вносить минимум разлада между ними и мне казалось, что функционал класса тут не настолько сильно нужен

Например, есть отличная библиотека https://github.com/oscript-library/cli


При начале разработки я использовал её, но потом отказался в пользу cmdline. Мне просто не нужен был весь тот функционал cli, так как основной идеей OInt CLI была полная автоматизация переноса функционала библиотеки в исполняемый файл. Я паршу все модули существующей библиотеки на предмет стандартных комментариев описания функций. На их основе автоматически создается модуль с ТЗ описания всех методов и их параметров. Создание подобного обработчика все равно неизбежно привело бы к тому, что большая часть кода была бы написана с нуля. Я просто взял пакет, который был поменьше, но при этом покрывал мои потребности.
3. Segate 230 15.04.24 11:32 Сейчас в теме
(2) Багов нет, есть сложности.
Например:
я делаю свое приложение и хочу добавить его в хаб. Я не могу использовать ваше, потому что конечному пользователю будет потом не объяснить, что надо где-то качать непонятный бинарь и ставить его отдельно... просто сложности, которые буквально на корню отрезают любое использование в тиражируемых решениях.

Почему не кли я понял.

По поводу совместимости - хороший аргумент. Но я бы посмотрел на опыт https://github.com/vbondarevsky/1connector
В итоге был сделан отдельный проект, потому что есть ряд конструктивных различий.

К примеру - у вас используется копия коннектора, но если вы попробуете добавить скачивание вложения больше 2гб - то получите ошибку. Это связано с работой с памятью httpСоединения.
В оскриптовом коннекторе - кстати, она уже исправлена, и если бы у вас использовался импорт проекта через #Использовать 1connector - То проблемы можно было бы избежать

И таких мелочей много... это прелесть проектов на оскрипте, она в том, что можно делить "зоны ответственности" гораздо более гибко.

а классы - общая структура - это как вишенка на торте просто
4. bayselonarrend 1223 15.04.24 11:40 Сейчас в теме
(3)
Я не могу использовать ваше, потому что конечному пользователю будет потом не объяснить, что надо где-то качать непонятный бинарь и ставить его отдельно... просто сложности, которые буквально на корню отрезают любое использование в тиражируемых решениях.


Да, это актуальная проблема, я постораюсь ее решить

В оскриптовом коннекторе - кстати, она уже исправлена


Мысль понятна. Вопрос - это для примера или правда так?) Я просто как раз к этому релизу искал пути обхода данной проблемы (в OInt свои методы работы с http) и лазил по исходникам 1connector. Реализация, которую я там нашел, также подобным грешила
5. Segate 230 15.04.24 11:42 Сейчас в теме
(4)https://github.com/vbondarevsky/1connector/pull/42
Правда ) Буквально недавно разбирались.
6. bayselonarrend 1223 15.04.24 11:47 Сейчас в теме
(5) А, понял. Это проблема скачивания больше 2-х ГБ. Я искал как сделать отправку (формирование) запроса больше 2-х ГБ)
7. bayselonarrend 1223 15.04.24 11:48 Сейчас в теме
(5)Надо, кстати, проверить скачивание. Что-то я о таком не задумывался
8. Segate 230 15.04.24 11:49 Сейчас в теме
(6) если там нет кэширования нормального - то наверное имеет смысл оставить досаду в репо оскрипта и обсудить ее в чатиках. Может и получится что-то поменять
9. bayselonarrend 1223 15.04.24 11:56 Сейчас в теме
(8) Интересно, кстати. OneScript же на .Net - сомневаюсь что у шарпистов такие же проблемы есть. Правда, однажды я попытался файл 10 ГБ разложить через РазделитьДвоичныеДанные, так OS всю память съел и окна упали в BSOD. Может защита от дурака, не знаю)
10. ixijixi 1802 17.04.24 14:41 Сейчас в теме
Очень круто, Антон, респектую!
11. bayselonarrend 1223 17.04.24 14:53 Сейчас в теме
Оставьте свое сообщение