diff --git a/.gitignore b/.gitignore index 69e02ea..bdb7e40 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ .vscode/* temp/* - +*.ospx diff --git a/packagedef b/packagedef index 65ae1c7..ddaa6eb 100644 --- a/packagedef +++ b/packagedef @@ -1,10 +1,11 @@ Описание.Имя("releasecliexplorer") - .Версия("0.3.0") - .ВерсияСреды("1.4.0") + .Версия("0.4.0") + .ВерсияСреды("1.7.0") .ЗависитОт("1connector", "2.1.3") .ЗависитОт("asserts", "1.3.0") .ЗависитОт("logos") - .ЗависитОт("fs",) + .ЗависитОт("fs") + .ЗависитОт("coloratos") .ВключитьФайл("src") .ВключитьФайл("README.md") .ИсполняемыйФайл("src/cmd/ReleaseCliExplorer.os"); diff --git "a/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\320\276\320\272\320\260\320\267\320\260\321\202\321\214\320\241\320\262\320\265\320\266\320\270\320\265\320\240\320\265\320\273\320\270\320\267\321\213.os" "b/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\320\276\320\272\320\260\320\267\320\260\321\202\321\214\320\241\320\262\320\265\320\266\320\270\320\265\320\240\320\265\320\273\320\270\320\267\321\213.os" index 934b80e..1a2494b 100644 --- "a/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\320\276\320\272\320\260\320\267\320\260\321\202\321\214\320\241\320\262\320\265\320\266\320\270\320\265\320\240\320\265\320\273\320\270\320\267\321\213.os" +++ "b/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\320\276\320\272\320\260\320\267\320\260\321\202\321\214\320\241\320\262\320\265\320\266\320\270\320\265\320\240\320\265\320\273\320\270\320\267\321\213.os" @@ -15,5 +15,10 @@ // Выполняет логику команды Процедура ВыполнитьКоманду(Знач Команда) Экспорт + + //Команда.ПолучитьОпцию + days = Команда.ЗначениеОпции("days"); + testing = Команда.ЗначениеОпции("testing"); + ВызватьИсключение "Не реализовано" КонецПроцедуры \ No newline at end of file diff --git "a/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" "b/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" index 11f234b..d5b0cfe 100644 --- "a/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" @@ -3,7 +3,7 @@ КонецФункции Функция ВерсияПриложения() Экспорт - Возврат "0.3.0"; + Возврат "0.4.0"; КонецФункции Функция ИмяЛогаСистемы() Экспорт diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\320\260\320\271\321\202\320\260.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\320\260\320\271\321\202\320\260.os" index d29943b..b04502a 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\320\260\320\271\321\202\320\260.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\320\260\320\271\321\202\320\260.os" @@ -15,7 +15,6 @@ ДополнительныеПараметры = Новый Структура("ЭтоПерваяСтраница", Истина); Обозреватель = Новый ОбозревательСтраницы(Сессия, Адрес, РазмерСтраницы, ДополнительныеПараметры); - Консоль = Новый Консоль; Консоль.Очистить(); КонецПроцедуры diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\321\202\321\200\320\260\320\275\320\270\321\206\321\213.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\321\202\321\200\320\260\320\275\320\270\321\206\321\213.os" index ceb665d..e222066 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\321\202\321\200\320\260\320\275\320\270\321\206\321\213.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\320\276\320\267\321\200\320\265\320\262\320\260\321\202\320\265\320\273\321\214\320\241\321\202\321\200\320\260\320\275\320\270\321\206\321\213.os" @@ -1,3 +1,5 @@ +#Использовать coloratos + Перем Сессия; Перем АдресСтраницы; Перем ТаблицаДействий; @@ -44,7 +46,7 @@ Процедура ПросмотрСтраницы() - ЦветнойВывод.Вывести("получаю данные с сайта ...", "Серый"); + ЦветнойВывод.ВывестиСтроку("получаю данные с сайта ...", "Серый"); Результат = Сессия.ПолучитьСодержимое(АдресСтраницы); Если Результат.ЭтоФайл Тогда @@ -60,9 +62,8 @@ Процедура ВывестиПорцию(Старт = 0) Экспорт - Консоль = Новый Консоль(); Консоль.Очистить(); - ЦветнойВывод.Вывести("(Адрес:|#color=Белый) " + АдресСтраницы, "Желтый"); + ЦветнойВывод.ВывестиСтроку("(Адрес:|#color=Белый) " + АдресСтраницы, "Желтый"); ЗаполнитьТаблицу(Старт); @@ -163,7 +164,7 @@ Группы = Совпадения[0].Группы; Если Группы.Количество() > 1 Тогда НештатнаяСитуация = Истина; - ЦветнойВывод.Ввывести(Группы[1].Значение, "Малиновый"); + ЦветнойВывод.ВывестиСтроку(Группы[1].Значение, "Малиновый"); КонецЕсли; КонецЕсли; КонецЕсли; @@ -184,7 +185,7 @@ Процедура ВывестиТаблицу() Для Каждого стрДействие Из ТаблицаДействий Цикл - ЦветнойВывод.Вывести(СтрШаблон("[ (%1|#color=Желтый) ] - %2", стрДействие.КодОперации, стрДействие.Описание), стрДействие.ЦветТекста); + ЦветнойВывод.ВывестиСтроку(СтрШаблон("[ (%1|#color=Желтый) ] - %2", стрДействие.КодОперации, стрДействие.Описание), стрДействие.ЦветТекста); КонецЦикла; КонецПроцедуры @@ -193,15 +194,12 @@ ВыбранныйКод = ""; - Консоль = Новый Консоль; - Попытка - ПредыдущееЗначениеЦветаТекта = Консоль.ЦветТекста; - Исключение - ПредыдущееЗначениеЦветаТекта = Консоль.ЦветТекста; - КонецПопытки; + ПредыдущееЗначениеЦветаТекта = Консоль.ЦветТекста; + Если НЕ ЗначениеЗаполнено(ПредыдущееЗначениеЦветаТекта) Тогда + ПредыдущееЗначениеЦветаТекта = ЦветКонсоли.Белый; + КонецЕсли; - Консоль.ЦветТекста = ЦветКонсоли.Бирюза; - Консоль.Вывести(Сообщение); + ЦветнойВывод.Вывести(Сообщение, "Бирюза"); Консоль.ЦветТекста = ЦветКонсоли.Желтый; ВыбранныйКод = Консоль.ПрочитатьСтроку(); diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\265\320\241\320\241\320\260\320\271\321\202\320\276\320\274.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\265\320\241\320\241\320\260\320\271\321\202\320\276\320\274.os" index 9ef39a0..4c8cb12 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\265\320\241\320\241\320\260\320\271\321\202\320\276\320\274.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\320\265\320\241\320\241\320\260\320\271\321\202\320\276\320\274.os" @@ -1,5 +1,5 @@ #Использовать 1connector -#Использовать asserts +#Использовать coloratos #Использовать fs Перем Логин; @@ -22,10 +22,16 @@ Функция ПолучитьСодержимое(Адрес) Экспорт + Результат = Новый Структура("ЭтоФайл,ТекстСтраницы,Ошибка", Ложь, "", Ложь); + Префикс = ?(Лев(Адрес, 4) = "http", "", Домен); - Ответ = Сессия.ВызватьМетод("GET", Префикс + Адрес); + Попытка + Ответ = Сессия.ВызватьМетод("GET", Префикс + Адрес); + Исключение + Сообщить(ОписаниеОшибки()); + Возврат Результат; + КонецПопытки; - Результат = Новый Структура; Результат.Вставить("ЭтоФайл", Лев(Ответ.URL, 10) = "https://dl"); Если НЕ Результат.ЭтоФайл Тогда Результат.Вставить("ТекстСтраницы", Ответ.Текст()); @@ -57,7 +63,9 @@ ВремяВыполнения = Ответ.ВремяВыполнения / 1000; ДлинаФайла = ЗначениеЗаголовка(Ответ.Заголовки, "Content-Length", 0); РазмерФайла = Окр(ДлинаФайла / 1024, 1); - Сообщить(СтрШаблон("Скачан файл %1: %2 секунд, %3 kb " + Символы.ПС, Файл.ПолноеИмя, ВремяВыполнения, РазмерФайла)); + ТекстСообщения = СтрШаблон("Скачан файл %1: (%2|#color=Белый) секунд, (%3|#color=Белый) kb, (%4|#color=Белый) kb/s + |", Файл.ПолноеИмя, ВремяВыполнения, РазмерФайла, Формат(РазмерФайла/ВремяВыполнения, "ЧДЦ=1")); + ЦветнойВывод.ВывестиСтроку(ТекстСообщения); КонецЕсли; @@ -90,38 +98,34 @@ Процедура УстановитьПараметрыАвторизации() Экспорт - Консоль = Новый Консоль(); - Попытка - ПредыдущийЦветТекстаКонсоли = Консоль.ЦветТекста; - Исключение - ПредыдущийЦветТекстаКонсоли = ЦветКонсоли.Белый; - КонецПопытки; + ПредыдущееЗначениеЦветаТекта = Консоль.ЦветТекста; + Если НЕ ЗначениеЗаполнено(ПредыдущееЗначениеЦветаТекта) Тогда + ПредыдущееЗначениеЦветаТекта = ЦветКонсоли.Белый; + КонецЕсли; Если НЕ ЗначениеЗаполнено(Логин) Тогда - Консоль.ЦветТекста = ЦветКонсоли.Белый; - Консоль.Вывести("Введите login: "); + ЦветнойВывод.Вывести("Введите login: ", "Белый"); Консоль.ЦветТекста = ЦветКонсоли.Желтый; Пока НЕ ЗначениеЗаполнено(Логин) Цикл Логин = Консоль.ПрочитатьСтроку(); КонецЦикла; - Консоль.ЦветТекста = ПредыдущийЦветТекстаКонсоли; + Консоль.ЦветТекста = ПредыдущееЗначениеЦветаТекта; КонецЕсли; Если НЕ ЗначениеЗаполнено(Пароль) Тогда - Консоль.ЦветТекста = ЦветКонсоли.Белый; - Консоль.Вывести("Введите pass: "); + ЦветнойВывод.Вывести("Введите pass: ", "Белый"); Консоль.ЦветТекста = ЦветКонсоли.Черный; Пока НЕ ЗначениеЗаполнено(Пароль) Цикл Пароль = Консоль.ПрочитатьСтроку(); КонецЦикла; - Консоль.ЦветТекста = ПредыдущийЦветТекстаКонсоли; + Консоль.ЦветТекста = ПредыдущееЗначениеЦветаТекта; Консоль.Очистить(); //скрыть пароль с экрана @@ -158,8 +162,10 @@ Данные.Вставить("rememberMe", "on"); Ответ = Сессия.ВызватьМетод("POST", Ответ.URL, Новый Структура("Данные", Данные)); - Ожидаем.Что(Ответ.URL).Равно(Домен + "/total"); - + Если НЕ Ответ.URL = Домен + "/total" Тогда + ВызватьИсключение "Авторизация не выполнена. Проверьте логин или пароль"; + КонецЕсли; + КонецПроцедуры Процедура УстановитьПутьСохранения(Знач парамПутьСохранения) Экспорт diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\270\321\202\321\203\320\273\321\214\320\275\320\260\321\217\320\241\321\202\321\200\320\260\320\275\320\270\321\206\320\260\320\237\321\200\320\276\320\265\320\272\321\202\321\213.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\270\321\202\321\203\320\273\321\214\320\275\320\260\321\217\320\241\321\202\321\200\320\260\320\275\320\270\321\206\320\260\320\237\321\200\320\276\320\265\320\272\321\202\321\213.os" index 5f980b7..16f4915 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\270\321\202\321\203\320\273\321\214\320\275\320\260\321\217\320\241\321\202\321\200\320\260\320\275\320\270\321\206\320\260\320\237\321\200\320\276\320\265\320\272\321\202\321\213.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\270\321\202\321\203\320\273\321\214\320\275\320\260\321\217\320\241\321\202\321\200\320\260\320\275\320\270\321\206\320\260\320\237\321\200\320\276\320\265\320\272\321\202\321\213.os" @@ -31,8 +31,6 @@ стрПроект.НомерСтроки = сч; сч = сч + 1; - //Сообщить(" - " + стрПроект.Наименование); - КонецЦикла; КонецПроцедуры diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\270\321\202\321\203\320\273\321\214\320\275\320\260\321\217\320\241\321\202\321\200\320\260\320\275\320\270\321\206\320\260\320\240\320\260\320\267\320\264\320\265\320\273\321\213.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\270\321\202\321\203\320\273\321\214\320\275\320\260\321\217\320\241\321\202\321\200\320\260\320\275\320\270\321\206\320\260\320\240\320\260\320\267\320\264\320\265\320\273\321\213.os" index a00a745..5b5312c 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\270\321\202\321\203\320\273\321\214\320\275\320\260\321\217\320\241\321\202\321\200\320\260\320\275\320\270\321\206\320\260\320\240\320\260\320\267\320\264\320\265\320\273\321\213.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\270\321\202\321\203\320\273\321\214\320\275\320\260\321\217\320\241\321\202\321\200\320\260\320\275\320\270\321\206\320\260\320\240\320\260\320\267\320\264\320\265\320\273\321\213.os" @@ -12,7 +12,6 @@ стрРаздел = Таблица.Добавить(); стрРаздел.Код = Совпадение.Группы[1].Значение; стрРаздел.Наименование = Совпадение.Группы[2].Значение; - //Сообщить(стрРаздел.Наименование); ПроектыРаздела = Новый ТитульнаяСтраницаПроекты(ТекстСтраницы, стрРаздел.Код); ПроектыРаздела = ПроектыРаздела.ПолучитьТаблицу(); стрРаздел.ТаблицаПроектов = ПроектыРаздела; diff --git "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\246\320\262\320\265\321\202\320\275\320\276\320\271\320\222\321\213\320\262\320\276\320\264.os" "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\246\320\262\320\265\321\202\320\275\320\276\320\271\320\222\321\213\320\262\320\276\320\264.os" deleted file mode 100644 index fde7620..0000000 --- "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\246\320\262\320\265\321\202\320\275\320\276\320\271\320\222\321\213\320\262\320\276\320\264.os" +++ /dev/null @@ -1,127 +0,0 @@ -Перем ВыводВозможен; -Перем ЗапоминатьПредыдущееЗначениеЦвета; - -Процедура Вывести(Знач ФорматированнаяСтрока, Знач ЦветТекста = Неопределено) Экспорт - - ТаблицаПолей = РазобратьСтроку(ФорматированнаяСтрока, ЦветТекста); - - Если ВыводВозможен Тогда - - Консоль = Новый Консоль(); - Если ЗапоминатьПредыдущееЗначениеЦвета Тогда - ПредыдущееЗначениеЦветаТекта = Консоль.ЦветТекста; - Иначе - ПредыдущееЗначениеЦветаТекта = ЦветКонсоли.Белый; - КонецЕсли; - - Если ЦветТекста = Неопределено Тогда - ЦветТекста = ПредыдущееЗначениеЦветаТекта; - КонецЕсли; - Для Каждого Поле Из ТаблицаПолей Цикл - Если ЗначениеЗаполнено(Поле.Цвет) Тогда - Консоль.ЦветТекста = ЦветКонсоли[Поле.Цвет]; - Иначе - Консоль.ЦветТекста = ПредыдущееЗначениеЦветаТекта; - КонецЕсли; - Консоль.Вывести(Поле.Текст); - КонецЦикла; - - Консоль.ЦветТекста = ПредыдущееЗначениеЦветаТекта; - - Консоль.Вывести(Символы.ПС); - - Иначе - - МассивПолей = ТаблицаПолей.ВыгрузитьКолонку("Текст"); - НеФорматированнаяСтрока = СтрСоединить(МассивПолей); - - Сообщить(НеФорматированнаяСтрока); - - КонецЕсли; - -КонецПроцедуры - -Функция РазобратьСтроку(ФорматированнаяСтрока, ЦветТекста) - - Длина = СтрДлина(ФорматированнаяСтрока); - - Таблица = Новый ТаблицаЗначений(); - Таблица.Колонки.Добавить("Текст"); - Таблица.Колонки.Добавить("Цвет"); - - тзЦветныеПоля = ЦветныеПоля(ФорматированнаяСтрока); - - Поз = 1; - Для Каждого ЦветПоле Из тзЦветныеПоля Цикл - Если Поз < ЦветПоле.Позиция Тогда - Текст = Сред(ФорматированнаяСтрока, Поз, ЦветПоле.Позиция - Поз + 1); - Стр = Таблица.Добавить(); - Стр.Текст = Текст; - Стр.Цвет = ЦветТекста; - КонецЕсли; - - Стр = Таблица.Добавить(); - Стр.Текст = ЦветПоле.Текст; - Стр.Цвет = ЦветПоле.Цвет; - - Поз = ЦветПоле.Позиция + ЦветПоле.Длина + 1; - КонецЦикла; - - Если Поз-1 <= Длина Тогда - Текст = Сред(ФорматированнаяСтрока, Поз); - Стр = Таблица.Добавить(); - Стр.Текст = Текст; - Стр.Цвет = ЦветТекста; - КонецЕсли; - - Возврат Таблица; - -КонецФункции - -Функция ЦветныеПоля(ФорматированнаяСтрока) - - Выражение = "\((.+?)\|#color=(.+?)\)"; - РВ = Новый РегулярноеВыражение(Выражение); - Совпадения = РВ.НайтиСовпадения(ФорматированнаяСтрока); - - ЦветныеПоля = Новый ТаблицаЗначений; - ЦветныеПоля.Колонки.Добавить("Позиция"); - ЦветныеПоля.Колонки.Добавить("Текст"); - ЦветныеПоля.Колонки.Добавить("Длина"); - ЦветныеПоля.Колонки.Добавить("Цвет"); - - Для Каждого Совпадение Из Совпадения Цикл - Группы = Совпадение.Группы; - стр = ЦветныеПоля.Добавить(); - стр.Позиция = Совпадение.Индекс; - стр.Текст = Группы[1].Значение; - стр.Длина = Совпадение.Длина; - ЦветИмя = Группы[2].Значение; - стр.Цвет = ЦветИмя; - КонецЦикла; - - ЦветныеПоля.Сортировать("Позиция"); - - Возврат ЦветныеПоля; - -КонецФункции - -Процедура УстановитьВозможностьИспользованияЦветногоВывода() - - // возможно понадобится вообще запрещать цветной вывод - ВыводВозможен = Истина; - - Попытка - Консоль = Новый Консоль(); - Цвет = Консоль.ЦветТекста; - ЗапоминатьПредыдущееЗначениеЦвета = Истина; - Исключение - ЗапоминатьПредыдущееЗначениеЦвета = Ложь; - КонецПопытки; - -КонецПроцедуры - -УстановитьВозможностьИспользованияЦветногоВывода(); - -// Пример форматирования вывода -// Вывести("Оу! (Привет!|#color=Красный) Кажется - я ('цветной'|#color=Малиновый). Как (дела|#color=Желтый)???", "Синий");