NeoAppBuilder

NeoAppBuilder - визуальный конструктор программ для Мобильных и Web платформ.
  1. Оффлайн

    Anton

    Звание: Прибывший

    Проверенные

    Сообщений: 8

    Создано тем: 0

    Рейтинг: 1

    Репа: 0

    Баллы: 51

    Страна: не указана!

    Был: 2016-04-10 05:46

    Я так понимаю это Примечания автора которые не видны пользователю. Они и не нужны. Это заметка, памятка для автора типа для чего этот плагин.

    Совершенно верно, этот участок в работе не участвует, так что им вполне можно пренебречь
    меняет после декомпиляции на:Код
    <Params>INTEGER=Month number (1-12);VARREF=Variable to store result</Params>
    <Template>%4 = dtDateDiff( %1, %2, %3 );</Template>

    Я просмотрел прикрепленный файл, все отлично все что требуется в нем есть. Такое незначительное изменение кода совершенно не проблема. Средствами Notepad++ на исправление синтаксиса до вида понимаемого PluginGenerator-ом  у  меня ушло порядка 1 минуты.  Так что в целом процесс починки кода я могу автоматизировать, и наверно даже написать утилиту которая будет сразу и чинить код, и упрощать руссифицикацию.
    То есть получается тебе нужно написать не только декомпилятор, но и компилятор. Сможешь?
    Компилятор не нужен. Как я уже написал, починка кода это фигня. Все потом без проблем будет компилиться стандартными средствами. Вот утилита которая могла бы доставать, такого вида код, без танцев с бубном, была бы нужна. Единственно, от себя хочу заметить, если ее получиться сделать, то наверно в свободное плавание ее отправлять не стоит. Фактически мы сейчас работаем с полноценным исходным кодом. И в веселых руках,  с банальными корректировками названий ссылок, плагины смогут приобрести новые авторские праваwink
    Сообщение отредактировал Anton 13 января 2016 - 09:01
    13 января 2016 - 13:51 / #11
  2. Оффлайн

    Автор темы

    mishem

    Звание: Бывалый

    Проверенные

    Сообщений: 159

    Создано тем: 1

    Рейтинг: 4

    Репа: (1|1|0)

    Баллы: 61

    Страна: не указана!

    Был: 2024-11-13 19:11

    Лайков: 3

    то наверно в свободное плавание ее отправлять не стоит

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

    И получается что от нее пользы может быть куда больше чем вреда.

    А авторство...
    Так думаю большинство плагинов будут писаться из готовых решений взятых в интернете. И тут еще можно будет поспорить кто настоящий автор.smile
    Сообщение отредактировал mishem 13 января 2016 - 09:26
    13 января 2016 - 13:51 / #12
  3. Оффлайн

    Anton

    Звание: Прибывший

    Проверенные

    Сообщений: 8

    Создано тем: 0

    Рейтинг: 1

    Репа: 0

    Баллы: 51

    Страна: не указана!

    Был: 2016-04-10 05:46

    И получается что от нее пользы может быть куда больше чем вреда.
    Безусловно, пользы куда больше. тем более без доступа к исходному коду:
    function dtMonthNumToName( num ) {
      var days = ["January","February","March","April","May","June","July","August","September","October","November","December"];
      return days[num];
    вот это не получиться локализовать.
    Так думаю большинство плагинов будут писаться из готовых решений взятых в интернете.
    Скорее всего да. Так или иначе будут использоваться чьи то решения, особенно на крупных плагинах врятли обойдется дело без весомых js библиотек.  Допустим тот плагин, что я перевел, имеет синтаксис очень похожий на описанный тут.  Но все-таки процесс адаптации скрипта под плагин присутствует, и он не всегда прост. И под Neobook, в плагинах порой используются готовые решения, просто их адаптируют до уровня плагина. Вообщем вопрос скользкий на самом деле...
    Сообщение отредактировал Anton 13 января 2016 - 11:29
    13 января 2016 - 13:52 / #13
  4. Оффлайн

    Автор темы

    mishem

    Звание: Бывалый

    Проверенные

    Сообщений: 159

    Создано тем: 1

    Рейтинг: 4

    Репа: (1|1|0)

    Баллы: 61

    Страна: не указана!

    Был: 2024-11-13 19:11

    Лайков: 3

    вот это не получиться локализовать.

    Почему не получится?
    Функции же тоже выдергиваются.

    Вообще то мне что бы понять, нужен от Nexus, выдернутый скрипт этого плагина. Исходник есть, будет с чем сравнить.
    13 января 2016 - 13:52 / #14
  5. Оффлайн

    Nexus

    Забанен

    Сообщений: 611

    Создано тем: 20

    Репа: 0

    Баллы: 0

    Был: 2022-07-03 23:07

    Лайков: 7

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

    Вот держи в прикреплении выдернутый скрипт DateTime.
    Единственно, от себя хочу заметить, если ее получиться сделать, то наверно в свободное плавание ее отправлять не стоит

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

    Вложения:

      Вам запрещено скачивать вложения.
    13 января 2016 - 22:22 / #15
  6. Оффлайн

    Автор темы

    mishem

    Звание: Бывалый

    Проверенные

    Сообщений: 159

    Создано тем: 1

    Рейтинг: 4

    Репа: (1|1|0)

    Баллы: 61

    Страна: не указана!

    Был: 2024-11-13 19:11

    Лайков: 3

    Ага, спасибо. Посмотрю.

    Программа-то вообще никому не известная

    Вообще то ей примерно два-три месяца всего от роду, а наофоруме от нее уже "ссат кипятком". ok

    Добавлено (13.01.2016, 23:43:15)
    ---------------------------------------------
    Nexus, отлично! То что нужно.

    Сами функции остаются без изменений. А это самое главное, так как именно они выполняют всю работу.

    вот это не получиться локализовать.

    Все получится. Все эти строки существуют, нужно просто не забывать что в самом скрипте тоже существуют строковые ресурсы.
    Переходишь в редакторе PlugInGenerator на вкладку "Код" и редактируешь.

    По переменным... Все как и предполагал.
    Названия переменных, это просто псевдоним. Переменные %1, %2 и т.д идут по порядку в зависимости от количества параметров.

    Например исходный код

    <Params>date1|STRING|First date;date2|STRING|Second date;format|STRING|Date format (mm/dd/yyyy, dd/mm/yyyy, etc.);result|VARREF|Variable to store result</Params>
    <Template>result = dtDateDiff( date1, date2, format );</Template>


    Берем тот что получили

    <Params>STRING=First date;STRING=Second date;STRING=Date format (mm/dd/yyyy, dd/mm/yyyy, etc.);VARREF=Variable to store result</Params>
    <Template>%4 = dtDateDiff( %1, %2, %3 );</Template>


    Получаем строку которая находится в теге Params.

    STRING=First date;STRING=Second date;STRING=Date format (mm/dd/yyyy, dd/mm/yyyy, etc.);VARREF=Variable to store result


    Парсим ее используя в качестве разделителя ; и получаем массив

    STRING=First date
    STRING=Second date
    STRING=Date format (mm/dd/yyyy, dd/mm/yyyy, etc.)
    VARREF=Variable to store result


    В цикле добавляем в начало строки номер переменной

    %1|STRING=First date
    %2|STRING=Second date
    %3|STRING=Date format (mm/dd/yyyy, dd/mm/yyyy, etc.)
    %4|VARREF=Variable to store result


    Заменяем первый знак равно на вертикальную черту | (в описании может тоже встретится знак равно, поэтому только первый)

    %1|STRING|First date
    %2|STRING|Second date
    %3|STRING|Date format (mm/dd/yyyy, dd/mm/yyyy, etc.)
    %4|VARREF|Variable to store result


    Объединяем массив используя все тот же разделитель ; , и заменяем строку

    <Params>STRING=First date;STRING=Second date;STRING=Date format (mm/dd/yyyy, dd/mm/yyyy, etc.);VARREF=Variable to store result</Params>


    на

    <Params>%1|STRING|First date;%2|STRING|Second date;%3|STRING|Date format (mm/dd/yyyy, dd/mm/yyyy, etc.);%4|VARREF|Variable to store result</Params>


    И все, мы имеем рабочий файл для его правки в PlugInGenerator.

    Теперь если мы сравним

    <Params>date1|STRING|First date;date2|STRING|Second date;format|STRING|Date format (mm/dd/yyyy, dd/mm/yyyy, etc.);result|VARREF|Variable to store result</Params>
    <Template>result = dtDateDiff( date1, date2, format );</Template>


    и

    <Params>%1|STRING|First date;%2|STRING|Second date;%3|STRING|Date format (mm/dd/yyyy, dd/mm/yyyy, etc.);%4|VARREF|Variable to store result</Params>
    <Template>%4 = dtDateDiff( %1, %2, %3 );</Template>


    то видим что номера переменных соответствуют их именам.

    Единственное различие, на вкладке "Команды" мы будем иметь не осмысленные имена переменных типа Result, а переменные в виде %*

    Все остальные строки остаются без изменений.
    Добавлено (13.01.2016, 23:51:54)
    ---------------------------------------------
    По поводу разделителя и разбора строки нужно еще подумать как правильно все это сделать. sad
    В описании так же могут присутствовать символы ;
    Так что все это наверно лучше вручную делать, а не программно. Не так то уж там и много исправлять.
    Добавлено (13.01.2016, 23:58:45)
    ---------------------------------------------
    Можно в принципе регуляркой заменить все типы переменных
    ;STRING
    ;VARREF
    и т.д

    На что то что точно в тексте не будет присутствовать, типа
    ;;;;STRING
    ;;;;VARREF

    и уже парсить используя разделитель ;;;;

    Ну это так, мысли вслух. smile
    Сообщение отредактировал mishem 14 января 2016 - 01:47
    14 января 2016 - 01:58 / #16
  7. Оффлайн

    Anton

    Звание: Прибывший

    Проверенные

    Сообщений: 8

    Создано тем: 0

    Рейтинг: 1

    Репа: 0

    Баллы: 51

    Страна: не указана!

    Был: 2016-04-10 05:46

    Да можно много чего придумать для автопочинки... Сейчас главное чтоб, появилась возможность доставать этот код по упрощенной схеме, и тут все зависит от Nexus. А пока ждем, надеемся и верим.
    16 января 2016 - 14:54 / #17
  8. Оффлайн

    Nexus

    Забанен

    Сообщений: 611

    Создано тем: 20

    Репа: 0

    Баллы: 0

    Был: 2022-07-03 23:07

    Лайков: 7

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

    Там не все так просто. Помимо того, что сам скрипт шифруется, так еще все это барахло сжимается своим компрессором. Ладно там дешифратор написать, это я могу, сколько их понаписывал. А вот написать распаковщик, который разархивирует содержимое - это уже на порядок сложнее. Тут алгоритм разбирать нужно. В общем, посмотрим.
    Anton, а почему не создадите на Ru-board тему об этой программе? Так быстрее популяризируете ее.
    16 января 2016 - 21:35 / #18
  9. Оффлайн

    Anton

    Звание: Прибывший

    Проверенные

    Сообщений: 8

    Создано тем: 0

    Рейтинг: 1

    Репа: 0

    Баллы: 51

    Страна: не указана!

    Был: 2016-04-10 05:46

    Anton, а почему не создадите на Ru-board тему об этой программе? Так быстрее популяризируете ее.
    Можно, но пока будет толка мало. Программа в бете. Справки по ней считай нет. Функционал пока слабоват для программ данного класса. Есть аналоги куда мощнее. Как стабильный релиз появится, тогда наверно можно будет заняться ее популяризацией.
    17 января 2016 - 12:17 / #19
  10. Оффлайн

    Slobod

    Сообщений: 0

    Создано тем: 0

    Репа:

    Баллы: 0

    Страна: не указана!

    Имя: не указано!

    Был: 2024-11-25 20:47

    Для заданного функционала есть более прокачанные проги. Но они сложнее.
    Сообщение отредактировал gazon01 18 января 2016 - 21:22
    18 января 2016 - 19:25 / #20

Статистика форума, пользователей онлайн: 0 (за последние 20 минут)

---
Создано тем
1197
Всего сообщений
15763
Пользователей
18017
Новый участник
shtaiger.e