ZebroidФорумПубличный разделПредложенияАрхивПродвинутый автопостинг.

Продвинутый автопостинг.

28 октября 2009, 11:28
Зарегистрирован: 18 октября 2009, 10:46
Добрый вечер, господа.

В новой версии была введена замечательная функция, которую я ну никак не ожидал увидеть в Зеброиде. Это функция настраиваемого автопостинга. По идее, это подразумевает настраиваемый постинг чего угодно, куда угодно. Так уж получилось, что эта тема мне очень близка. Настолько близка, что я каждый раз пишу для себя всякие авто-постеры в-комментарии, в-форумы, и пр. и пр. Каждый раз начинаю с белого листа проекта Borland C++. Нужно ли говорить, что на это уходит значительное количество времени.

Что же я вижу здесь? На первый взгляд — удобный Delphi-like язык, который позволяет совершать базовые операции над сайтом, при том, что он исполняется "на лету". Впрочем, рекомендую вам ознакомиться с ним самим, попробовав создать другой шаблон.

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

А пока, вопросы к adminу:

Я очень хотел бы увидеть полный список поддерживаемых функций, хотя бы с минимальным описанием.(В принципе, многое понятно из названий) И список $Макросов, которые можно использовать, а так так же узнать некоторые детали всего механизма.. Вы используете стандартный компонент WebBrowser ? Каким образом интерпретируется содержание шаблона, в каком порядке это происходит сейчас?

Вопросов, если честно, много — но думаю, что многие из них отпадут, когда я увижу то, что просил выше.

Почему в предложениях? Уверен, что предложений будет много, и чтобы не переносить тему создал её здесь.



31 октября 2009, 07:27
Зарегистрирован: 10 апреля 2012, 00:00
Ясно, ответ — реализовать это текущими средствами невозможно.

Вы мне подскажите про мою любимую многострочную переменную || массив, с возможностью оперировать каждым элементом в отдельности, с типом данных AnsiString (Если я не ошибаюсь, он используется в Navigate)?

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

Спасибо!


Я честно говоря не понимаю в чём проблема, вот информация по массивах в паскале: http://www.delphisources.ru/pages/faq/f ... y.php.html



01 ноября 2009, 09:11
Зарегистрирован: 18 октября 2009, 10:46
Прошу прощения, я невнимательно чиатал — сейчас в соседней теме увидел, интерпретатор поддерживает конструкции pascal полностью. Я думал, вы задали ограниченное количество функций, типов данных и операций над ними. В дальнейшем, думаю, вопросов не возникнет. Возможно, это последний: то, что я могу использовать конструкции вроде if, while, for, Понятно. Есть ли возможность использовать процедуры из стандартных библиотек pascal, например тот же ShowMessage, IntToStr и прочее? "В лоб" у меня это сделать не получается.



01 ноября 2009, 10:41
Зарегистрирован: 10 апреля 2012, 00:00
Есть ли возможность использовать процедуры из стандартных библиотек pascal, например тот же ShowMessage, IntToStr и прочее? "В лоб" у меня это сделать не получается.


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



01 ноября 2009, 13:55
Зарегистрирован: 18 октября 2009, 10:46
Хорошо, я отпишу только необходимые, немного позже.

А пока: по всей видимости, автопостер не в состоянии обрабатывать такие кнопки:

<form action="includes/process.php" method="post" onsubmit="return updateLocation(this)">

<input type="text" autocomplete="off" name="u" style="width:575px;border:1px inset #000"> <input type="submit" value="Go" style="width:50px;border:0">

</form>


То, что выделено жирным — кнопка. Как я только не пытался её нажать.. Мне это так и не удалось.

Это очень частый случай — использование form action.

Как бы всё-таки её нажать?

UPD. Кстати, конкретно в моём случае — подошло бы программное нажатие Enter, но, боюсь, Зеброид это не в состоянии сделать. Я не ошибаюсь?

Но для всех случаев это не панацея.

Upd. Вопрос решил — нажимаю Javascript"ом, но это, по-моему, решение через одно место.



01 ноября 2009, 15:58
Зарегистрирован: 10 апреля 2012, 00:00
Хорошо, я отпишу только необходимые, немного позже.

А пока: по всей видимости, автопостер не в состоянии обрабатывать такие кнопки:

[quote:3vrd0fyk]<form action="includes/process.php" method="post" onsubmit="return updateLocation(this)">

<input type="text" autocomplete="off" name="u" style="width:575px;border:1px inset #000"> <input type="submit" value="Go" style="width:50px;border:0">

</form>


То, что выделено жирным — кнопка. Как я только не пытался её нажать.. Мне это так и не удалось.

Это очень частый случай — использование form action.

Как бы всё-таки её нажать?

UPD. Кстати, конкретно в моём случае — подошло бы программное нажатие Enter, но, боюсь, Зеброид это не в состоянии сделать. Я не ошибаюсь?

Но для всех случаев это не панацея.

Upd. Вопрос решил — нажимаю Javascript"ом, но это, по-моему, решение через одно место.[/quote:3vrd0fyk]

Добавлю решение не через одно место - подтверждение формы по имени без необходимости нажимать на кнопку.



01 ноября 2009, 16:34
Зарегистрирован: 18 октября 2009, 10:46
[quote="Siddhartha":3njwx0x1]

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

Создаём опр.кол-во постов = кол-ву комментариев, причем в теле поста — сам комментарий, в заголовке — адрес, куда постить. Это было бы удобно, все можно было бы уложть в 2 строчки:

Navigate('$POST_TITLE', 1), Fill(pole, '$POST_BODY') - (точные названия не помню, это сейчас не важно).

К сожалению, как я писал выше, интерпретатор не переварил такой Navigate и выдал ошибку.


Попробуйте так:

var

link : string;

begin

link := GetVar('$POST_TITLE');

Navigate(link, true);

...



[/quote:3njwx0x1]

Реакция:

Exception: Access violation at address 00405B06 in module 'zebroid.exe'. Read of address 00000009 возле 1.67



02 ноября 2009, 07:31
Зарегистрирован: 10 апреля 2012, 00:00
[quote="admin":1jwv9oj6][quote="Siddhartha":1jwv9oj6]

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

Создаём опр.кол-во постов = кол-ву комментариев, причем в теле поста — сам комментарий, в заголовке — адрес, куда постить. Это было бы удобно, все можно было бы уложть в 2 строчки:

Navigate('$POST_TITLE', 1), Fill(pole, '$POST_BODY') - (точные названия не помню, это сейчас не важно).

К сожалению, как я писал выше, интерпретатор не переварил такой Navigate и выдал ошибку.


Попробуйте так:

var

link : string;

begin

link := GetVar('$POST_TITLE');

Navigate(link, true);

...



[/quote:1jwv9oj6]

Реакция:

Exception: Access violation at address 00405B06 in module 'zebroid.exe'. Read of address 00000009 возле 1.67[/quote:1jwv9oj6]

Читайте внимательно инструкцию, вызывать переменные $POST_TITLE и т.д. можно только внутри процедур постинга статей. Если вы так и делали, то мне нужен полный текст скрипта и сайт на котором это тестировалось



03 ноября 2009, 09:44
Зарегистрирован: 18 октября 2009, 10:46
Ясно. Она использовалась внутри ф-ии Логин(). Мне непонятно, к чему это ограничение на использование макросов? Единственное, что я вижу в этом — вышеописанную проблему. Как я описал вам выше — я использую только ф-ию Логин(), так как не знаю, когда вызываются другие функции, как реализовано их повторение(а оно реализовано программно, я не могу в этом участвовать). Следовательно, я не использую то, что я не могу контролировать.

Объясните, с чем связано это ограничение? Не думаю, что это невозможно реализовать программно.

И, кстати, такая странность: я использую там же $ADDIT[], $POST_TEXT, $POST_TITLE.

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

Про те случаи: При одинаковых входных параметрах, и одинаковом коде, скрипт може сработать, а может вылететь с Access violation.

Причем, как ни странно, лечение нашёл такое: я премещаю несколько строчек кода вверх, и в цикле выполняется большее кол-во операций. Потом я делаю наоборот. Согласитесь, в этом нет никакого смысла. Но, пока, у меня нет другого выбора. Я сейчас записываю, что я хотел бы предложить вам добавить в Автопостинг. Думаю, до конца недели сформулирую в отдельный пост.



03 ноября 2009, 11:53
Зарегистрирован: 10 апреля 2012, 00:00
Я честно не понимаю к чему этот диалог: я создал инструмент заливки контента на сайт - с этой задачей программа справляется. А вы используете её не по назначению, игнорируете инструкцию написания скриптов и заявляете, что она некорректно работает и сыплет непонятными ошибками.

Убрать ограничения - и всю рутину которую я уже описал (а там поверьте не мало) переложится на плечи пользователя, плюс ему еще и придётся выучить тип и формат классов в которых я сохраняю информацию, вы честно думается что многие осилят?

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