Open gh-Destiny opened 6 months ago
upload.ee Ссылка для удаления для некоторых хостингов доступна в истории загрузок. Я добавлю эту возможность для upload.ee. Вы хотите видеть эту ссылку в результатах загрузки?
imgbb.com С этим сложнее. Честно говоря, я сейчас не готов думать об этом. Я не смогу это сделать быстро, особенно если учесть, что используемый GUI-фреймворк недостаточно гибок и морально устарел. ~Вариант - выбрать наиболее часто встречающие опции и захардкодить их.~ Можно взять уже имеющийся Property editor и показывать его перед каждой загрузкой, вроде там есть и ComboBox.
Мммммм... Вы знаете меня в 1 очередь интересовал именно консольный вариант - когда можно в скрипте закодить все настройки нужному сервису (к примеру время жизни для imgbb.com, выбрать сам сервис), вызвать сабж и получить на выходе нужные URL: для эскиза, для полной картинки, для удаления. Ну и конечно именно просто ссылки, т.к. под нужные теги форматирования для форумов я именно в скрипте и доведу дело до конца. Но именно сразу все три варианта! А уж где там эти все ссылки могут быть доступны в GUI оболочке - это дело десятое - потому как там места много.
Ну и разумеется, если есть/будет возможность показа ссылок для удаления - то для все тех уже тогда сервисов, у которых эта опция есть, надо бы сделать это. Хорошо конечно, что для upload.ee это может появиться очень быстро, но и все другие сервисы не должны быть обойдены вниманием относительно этой новой фичи.
Что же касается выбора/установки времени жизни загружаемого файла на сервис, то .. Опять-таки - т.к. это в 1 очередь о консольке речь, то просто для каждого сервиса, где есть такая возможность - предусмотреть в его файле настроек перечисление этих минут/часов/дней/недель/... Потому как их никто не будет менять каждый день/месяц/год - я про разрабов/поддержку самих сервисов сейчас. Для того же imgbb есть 23 варианта, включая "Никогда не удалять" - и их я там года два/три уже помню. Соответственно, если такое перечисление в настройке сервиса есть и есть/будет поддержка нового ключа в ком.строке для консольки - то при их совместном использовании - выполнять это действие.
P.S. кстати, странно, что консолька не понимает команду /? - выдать справку по работе. Только --help надо вводить - неинтуитивно, учитывая, что консольку я под виндой запускаю. И так же странно, что нет примеров, показывающих - ЧТО и в каком ИМЕННО формате вернет утилита, если я запускаю консольку.
Ну и конечно именно просто ссылки, т.к. под нужные теги форматирования для форумов я именно в скрипте и доведу дело до конца.
Может добавить в консольную утилиту вывод в виде JSON?
P.S. кстати, странно, что консолька не понимает команду /? - выдать справку по работе. Только --help надо вводить - неинтуитивно, учитывая, что консольку я под виндой запускаю.
Обычно у кросс-платформенного софта под Windows именно такое поведение.
Может добавить в консольную утилиту вывод в виде JSON?
Очень интересное решение. В принципе весьма да.
Обычно у кросс-платформенного софта под Windows именно такое поведение.
Ээээ. ну по умолчанию наверняка да. Но явно же можно добавить БОЛЕЕ стандартный ключ вызова помощи справки для винды? И так же ВСЁ ещё странно, что нет примеров, показывающих - ЧТО и в каком ИМЕННО формате вернет утилита, если я запускаю консольку. Т.е. показать список ключей, поддерживаемых утилитой - это верно - но и результаты вывода ЗАРАНЕЕ в той же помощи хорошо бы показать. Ну, или на сайте хотя бы с картинками показать - а то и там лишь сугубо список ключей и ничего более.
Решил потестировать ночнушку с выше упомянутыми правками и .... Result: [ { "delete_url" : "", "direct_url" : "https://i.ibb.co/vHkjh1 ........................
как видим - ссылки для удаления почему-то нет в выводе.
P.S. так же вопрос - а зачем для сохранения ссылки в upload.ee.nut код вида: local reg2 = CRegExp("href=\"(.+\?killcode=\w+)\"", "i"); if (reg2.match(nm.responseBody())) { options.setDeleteUrl(reg2.getMatch(1)) } если выше есть УЖЕ перехват всего тела ответа в объект типа Document, из которого уже можно вытягивать нужное в стиле: doc.find("input#file_src")?
пытался вставить запись лога - вроде же есть функция WriteLog, но ничего нигде не появилось само. Стал искать справку по ней вроде это должно быть справка языка Squirrel но при переходе на их сайт: 1) ошибка проверки самоподписанного сертификата 2) File not found (404 error) по итогу.
P.S. блин, вроде эта функция не от этого языка. КАК в итоге воспользоваться записью лога? ГДЕ его файл? P.P.S. еще раз блин, но вроде умолчательная реализацию логера это ConsoleLogger, но вот чёт я вывода на экран консоли не замечаю.... НО и это тоже странно - ДОЛЖНА быть опция для CLI - чтоб указывать: КУДА я хочу перенаправлять ВЕСЬ вывод. Или хотя бы ИМЕННО вывод встроенного логера.
P.P.P.S.
вообще что-то. Я выставил return 0;
сразу после:
local doc = Document(nm.responseBody());
в файле upload.ee.nut и .....
программа как ни в чем не бывало - выполняет загрузку картинки и выдает итоговый JSON.....
как видим - ссылки для удаления почему-то нет в выводе.
потому что я не трогал скрипт imgbb.com
так же вопрос - а зачем для сохранения ссылки в upload.ee.nut код вида:
Потому что нужная ссылка <a>
не имеет ни класса, ни ID, по которому её можно найти в документе. Проще регуляркой.
P.S. блин, вроде эта функция не от этого языка.
Эта функция не попала в документацию по API, должна быть в списке глобальных функций.
По умолчанию встроенный логер пишет в STDERR. Но, как оказалось, в ConsoleLogger перепутаны аргументы. Исправлю. Плюс добавлю перевод строки, чтобы текст не затирался.
НО и это тоже странно - ДОЛЖНА быть опция для CLI - чтоб указывать: КУДА я хочу перенаправлять ВЕСЬ вывод. Или хотя бы ИМЕННО вывод встроенного логера.
Вывод результата в файл:
imgupload.exe -s upload.ee bicycle-kick-min.gif -cl json > d:\\results.txt
Вывод stderr в лог:
imgupload.exe -s upload.ee bicycle-kick-min.gif -cl json 2> d:\\log.txt
P.P.P.S. вообще что-то. Я выставил return 0; сразу после:
ну, может перепутали файл
да, дурачина я, простофиля. Реально перепутал. Надо под upload проверять, а чинилось для imgbb..... НО тогда уж жду фикса логгера - чтобы уж точно с ним проверить все возможности. Спасибо за проделанное! Очень вдохновляет и радует!
P.S.
но все же касательно поддерживаемых ключей и опций....
То, что можно перебросить канал вывода через > или >& - это в целом для скрипта конечно же доступно.
НО! скажем так, основываясь на неких плохих ситуациях, когда этот вывод все равно был недостаточно корректен и/или порой невозможен из-за глубокого уровня косвенности вызова(текст вывода будет банально замусорен другими строками от других компонент), возникает вопрос - ну неужели не правильнее будет ввести опцию -slog <имя потока>
=> save log to? Если имя потока это "cerr" - то в STDERR выводить, если "cout" - то в STDOUT. А если это имя файла с расширением(или полным путем) - то в файл пишем.
И так же касательно /?
=> вот сколько надо было мне перепроверять список поддерживаемых ключей - я всегда ошибался по факту, когда набирал эту последовательно символов - но, блин, я же в винде сижу! Вроде это нормально! Для нее это самая что ни на есть естественная последовательность для вызова справки!
А оказывается нет - я в линукс-версии сижу программы(((
P.P.S.
для случая, когда ссылки для удаления нет в парсере сервиса, более логичным в выводе JSON было бы увидеть строку вида:
"delete_url" : "<support in service ... is absent>",
где подставлялось бы имя сервиса вместо троеточия.
P.P.S. для случая, когда ссылки для удаления нет в парсере сервиса, более логичным в выводе JSON было бы увидеть строку вида:
"delete_url" : "<support in service ... is absent>",
где подставлялось бы имя сервиса вместо троеточия.
А чем просто пустая строка не подходит? Программа не видит разницы между "при написании скрипта не подумали про ссылку на удаление", и "сервис не поддерживает ссылки на удаление", "сервис вернул пустую ссылку". Всё равно пустая строка. Или может быть лучше там был null?
А чем просто пустая строка не подходит?
А чем она отличается от ситуации, когда поддержка есть, но она сломалась и выдала просто пустую строку? Получив вывод утилиты, хотелось бы сразу понимать ЧТО именно дало такой результат. И моя фраза-заполнитель предусматривает ИМЕННО вариант - когда в NUT-файле нет готового правила для парсинга/сохранения ссылки на удаление. А если в самом сервисе ее нет - то это можно и логично не расписывать.
P.S.
тогда можно доуточнить фразу так:
"delete_url" : "<support in NUT-file for service ... is absent>",
или покороче:
<NO rule in NUT-file for that>
ну неужели не правильнее будет ввести опцию
-slog <имя потока>
=> save log to? Если имя потока это "cerr" - то в STDERR выводить, если "cout" - то в STDOUT. А если это имя файла с расширением(или полным путем) - то в файл пишем. И так же касательно/?
=> вот сколько надо было мне перепроверять список поддерживаемых ключей - я всегда ошибался по факту, когда набирал эту последовательно символов - но, блин, я же в винде сижу! Вроде это нормально! Для нее это самая что ни на есть естественная последовательность для вызова справки! А оказывается нет - я в линукс-версии сижу программы((( => должен запоминать--help
@zenden2k Так как насчет рассмотрения вышеизложенного? И вроде бы с консольным логгером вы исправили ситуацию, но я почему-то не могу понять - а откуда/где я тогда смог бы скачать nightly билды с этим фиксом, ну или просто самый последний nightly....
Так как насчет рассмотрения вышеизложенного?
Я пока думаю, как переделать систему логирования, потому что техущая схема запутанная.
а откуда/где я тогда смог бы скачать nightly
Там же, где и раньше https://svistunov.dev/ru/imageuploader_nightly
Благодарю, чёт совсем забылся и на сайт не полез за ночнушками. Думал они тут где-то точно должны были бы быть.
Приветствую! Среди сервисов, что перечислены - как минимум в двух: www.upload.ee/ и imgbb.com/ есть доп.опции, которые очень важны при заливке туда контента. Для upload.ee важным является наличие на итоговой странице ссылки для удаления залитого. Т.е. надо по-быстрому залить - но потом! не забыть удалить, а для этого нужна ссылка, которая будет показана в итогах процедуры заливки! поле называется "Адрес удаления файла". Для imgbb.com важным является выбор ПЕРЕД процессом заливки времени, в течение которого будет рабочей эта ссылка. На сайте прям комбобокс выводится предварительно с вариантами таких периодов. Т.е. и в программе (и в командной строке - CLI в первую очередь!!!) надо бы предусмотреть возможность указания такого периода.
Так же вполне возможно, что не только в этих двух сервисов есть подобные возможности - но просто это те, про которые СРАЗУ же вспоминаешь, когда надо о подобном рассказать.