j2969719 / doublecmd-plugins

Additions for Double Commander (third-party)
102 stars 24 forks source link

trashwdx.lua: Пара моментов #20

Closed Skif-off closed 5 years ago

Skif-off commented 5 years ago
  1. В формате даты не хватает YYYY.MM.DD hh:mm:ss, так удобнее сортировать по дате :) Или копию YYYY-MM-DD hh:mm дополнить секундами?

  2. Тут

    if FileName:find("/%.?Trash%-?%d*/files/.-$") then

    похоже, ошибка в конце? /.+$?

  3. /.Trash/<UID>/files таки попадается, DC учитывает - src/platform/utrash.pas#l218 и далее.

P.S. А вот переход в trash:/// в целом (как и в консоли дёргать gio/gvfs) - временами не очень удобен, точнее, совсем не... :( Думал с Dialogs.InputListBox замутить поиск корзин: /etc/mtab и т.д....

j2969719 commented 5 years ago

минусом меньший кусок походу хотел брать, но ток доллар все равно до конца строку тащит.. походу разница с плюсом в том что в теории может сработать и на саму папку files если dc где передаст с разделителем в конце

Skif-off commented 5 years ago

походу разница с плюсом в том что в теории может сработать и на саму папку files если dc где передаст с разделителем в конце

Похоже на аналог жадности из PCRE, сам не пользуюсь, стараюсь обще, т.е. похоже, делать и вообще предпочитаю по возможности без паттернов обходится :) По идее, не должен с разделителем в конце передавать, нигде по умолчанию не передаёт, в отличие от ТС.

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

j2969719 commented 5 years ago

я наоборот люблю патернами упарываться, хоть в них и не шарю)

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

Skif-off commented 5 years ago

Моя поделка в общем-то давно готова, с прошлой недели всё собираюсь спросить, что думаешь, подумал - ты заметил и решил сделать по своему :) Подумываю дополнить его ещё булевыми "Сегодня", "Сутки", "3 суток", "Неделя" и изменить проверку, чтобы не срабатывал на файлах внутри удалённых папок, только в корне files.

Насчёт паттернов - это ж регэкспы почти: мне как-то один сишный программист объяснял, что регэкспы отрабатывают заметно медленнее простых операций, ну и с математикой - простые сложение, вычитание и побитовые операции быстрее. Только в DC хз как проверить и сравнить скорости :(

j2969719 commented 5 years ago

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

Skif-off commented 5 years ago

Тут чуть-чуть, там чуть-чуть, а если файлов много, то будет много чуть-чуть :) Какая глубокая мысль :)) Где-то в параллельной вселенной, наверное, пишу прошивки для микроконтроллеров - считаю такты, буфера...

Допилил вроде, можешь глянуть, если будет время?

j2969719 commented 5 years ago

норм, ток файл забыл закрыть походу Not older than можно мультичойсом сделать щас на трезвую голову сообразил что мультичойс не подойдет т.к. файл может быть не старше например одного или двух дней одновременно а в for добавить brake c проверкой на fieldindex чтоб больше строк не читал

Skif-off commented 5 years ago

ток файл забыл закрыть походу

Точно, спасибо, поправлю.

а в for добавить brake c проверкой на fieldindex чтоб больше строк не читал

Там их всего три по спецификации и кроме первой все нужные, сам встанет :) Попроще было бы с continue, чтобы избежать лишнюю проверку, но нет, а что-то громоздить не хочется. У INI по идее порядок ключей в секции не имеет значения, на всякий случай так сдедал. Была ещё мысль читать всё и распотрошить с string.gmatch(): всё равно идёт поиск \n, но зато уже в ОЗУ. Подумаю, может, разберу с string.find()/string.sub().

Надо добавить ещё проверку, чтобы io.open(ti, 'r') не дёргала ФС, только string.len(p) придётся загнать в переменную.

j2969719 commented 5 years ago

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

Skif-off commented 5 years ago

Почти так и сделал, немного изменив подход: читаю сразу, но полное имя и дату выкусываю не сразу, а когда и если понадобится.

Заливаю? Или что-то стоит изменить?

j2969719 commented 5 years ago

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

Skif-off commented 5 years ago

Файлы специфические + три строки всего, сюда вряд ли кто полезет косячить :)