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

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

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

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

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

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

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

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

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

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



03 ноября 2009, 13:33
Зарегистрирован: 18 октября 2009, 10:46
Мне казалось, вам не сложно отвечать на мои вопросы.

инструмент заливки контента на сайт - с этой задачей программа справляется


А вы используете её не по назначению


Строго эту задачу я и выполняю — я заливаю контент, подготовленный программой, ровно на один сайт. Мне кажется логичным моё желание этот процесс автоматизировать, тем более вы предоставили для этого относительно удобный инструмент. Он ещё сыроват, и всё, что я делаю — это пишу здесь о сложностях, которые у меня при этом возникают. Я внимательно читаю ваши сообщения, мне всегда не хочется писать гигантские посты, и объяснять суть проблемы. Так и сейчас — я читал эту тему, и тему с описаниями функций много раз. Этой информации недостаточно для результативной работы. К примеру, пресловутое добавление поста работает так, как вы описали — но с некоторым количеством нюансов — и эти нюансы связаны с тем, что вы затачивали всю систему под Ucoz.

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

Я не имею к вам никаких претензий — свою основную задачу Зеброид выполняет, и платил деньги я именно за это.

На данном этапе следует позиционировать систему автопостинга (для новичков, а также людей, не сильных в программировании) только как средство постинга в ограниченное кол-во cms, для которых вы лично создали шаблоны. На данном этапе — только Укоз, так как без Javascriptoвых "хаков" сделать некоторые базовые операции, как правило необходимые для успешного постинга в сложные cms, просто невозможно. Рядом на столе лежит бумажка — записывал, что хотел бы видеть в будущем. Опубликовать не успел, да и не буду теперь. Я больше не буду тратить своё и ваше время на отзывы. С автопостингом лично под себя я разобрался — получился код на 60 строчек — но он, слава богу, работает в моём конкретном случае, и экономит мне ~30 минут работы каждый день. Это замечательно, это стоит больше 60$. За это спасибо.

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

Ладно, пойду делать сателлиты.

Я прошу вас закрыть мой топик.



04 ноября 2009, 02:30
Зарегистрирован: 10 апреля 2012, 00:00
Вы меня не правильно поняли, или я вас. Раньше звучала фраза в которой вы объясняли, что пытаетесь постить комментарии с помощью автопостинга. Извините, но это и есть нестандартная ситуация, программа расчитана на строгий постинг контента в CMS стандартной структуры, т.е. в которой необходимо:

1. Залогинится

2. Зайти в админку, чтобы добавить новые категории

3. Добавить категории

4. Перейти на страницу добавления постов

5. Добавить посты.

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

Я считаю, что на данном этапе этот инструмент не нуждается в том, чтобы с него снимали все ограничения, я вам уже объяснял почему.

Возможно в будущем будет разработана поддержка плагинов, вот тогда вы с данными сможете творить абсолютно всё что угодно.

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

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

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



22 ноября 2009, 06:58
Зарегистрирован: 18 октября 2009, 10:46
Добрый день.

Итак, достаточно поработав с Автопостингом, я хотел бы предложить вам добавить в эту замечательную часть Зеброида следующее:

*) Возможность отключения картинок, звука и флеша в браузере.

*) Добавить функции — MessageBox(с возможностью проверки результата, т.е. if MsgBox()==OK, do), Random (ну, и соответственно Randomize), функцию работы со временем (TDateTime?), функцию сохранения AnsiString в файл, и в частности сохранения лога.

*) Эмуляция нажатия клавиши. (Для использования вместо document.form[x].submit(), это было бы очень и очень удобно, не искать номер формы, не менять его каждый раз, если он изменился.. Но, не ограничиваясь этим, конечно.)

*) Добавьте процедуры "Обновить", "Вперёд", "Назад" для управления браузером.

*) Если возможно — добавьте, пожалуйста, ClearCoockies(). Не всегда можно сразу нажать кнопку "Выход".

*) Нормальный поиск в исходном коде страницы! Хотя, возможно я не до конца разобрался с текущей функцией SearchInSource — ищет не более одного слова, на результат проверяю сравнением, вообще не понимаю логику работы этой странной функции.

Что я хотел бы увидеть — функцию SearchInHTML, использовать которую можно так: SearchInHTML("длинная фраза, раз два"); и которая возвращает 1, если фраза присутствует, 0 если нет.

*) Функцию, которая возвращает весь HTML загруженной страницы в AnsiString.

*) Отмените, пожалуйста, ограничение на использование макросов $ в других функциях. Только нервы портит. Ограничение срабатывает один раз — на второй запуск все работает. Т.е., сейчас это ограничение заставляет меня два раза нажимать одну и ту же кнопку.

*) Сталкивался с такой ситуацией — есть ссылка, анкор у нее постоянный, а href всегда разный. Т.е. я не могу использовать Navigate(). Возможно ли добавить функцию "перейти по ссылке", где от ссылки — только её анкор?

*) По поводу интерфейса — так как окно Автопостинга дочернее, я не могу свернуть главное окно Зеброида во время его работы. Оно неактивно, ни на что не реагирует. Можно ли это исправить?


Это то, что сделало бы работу Автопостинга, на мой взгляд, гораздо удобнее, и то, что я не смог реализовать в нём программно.

Ранее этот список был больше, но я решил не высасывать проблем из пальца, и оставил только вещи, которые фактически необходимы для работы.

Надеюсь, вы реализуете данный функционал в программе. Тогда, думаю, Автопостинг станет гораздо более удобным инструментом.



22 ноября 2009, 12:57
Зарегистрирован: 10 апреля 2012, 00:00
ОК, постараюсь добавить это в скором времени, только есть пару моментов:

Добавить функции — MessageBox(с возможностью проверки результата, т.е. if MsgBox()==OK, do)


Я так понял должно выскакивать окошко в котором что-то спрашивалось, и скрипт должен ждать его закрытия?

*) Нормальный поиск в исходном коде страницы! Хотя, возможно я не до конца разобрался с текущей функцией SearchInSource — ищет не более одного слова, на результат проверяю сравнением, вообще не понимаю логику работы этой странной функции.

Ищет функция эта по регулярному выражению, синтаксис Пёрла. Вместо пробелов используют \s, если вам нужно искать не регулярное выражение, а точную строку, то перед поиском нужно экранировать все спецсимволы, с этим справляется функция function Ekranirovat(s:string):string;.

А теперь пример, как можно использовать это на практике. Вот допустим есть такая ситуация:

*) Сталкивался с такой ситуацией — есть ссылка, анкор у нее постоянный, а href всегда разный. Т.е. я не могу использовать Navigate(). Возможно ли добавить функцию "перейти по ссылке", где от ссылки — только её анкор?


Пишем вот такой обработчик:



...

var

href, ankor:string;

begin

...

ankor := Ekranirovat('текст анкора ссылки');

href := SearchInSource('<a\shref=["]?(.*?)["]?>' + ankor + '</a>', 1);



Navigate(href, true);

end;


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



22 ноября 2009, 14:35
Зарегистрирован: 18 октября 2009, 10:46
ОК, постараюсь добавить это в скором времени, только есть пару моментов:

[quote:25u1emfk]Добавить функции — MessageBox(с возможностью проверки результата, т.е. if MsgBox()==OK, do)


Я так понял должно выскакивать окошко в котором что-то спрашивалось, и скрипт должен ждать его закрытия?

[/quote:25u1emfk]

Всё верно, вы можете об этом прочитать, например, здесь — ссылка.

Неужели вы не знакомы с этой функцией? Младший брат её в Делфи — ShowMessage(), отличается функциональными возможностями, и, что самое главное, возвращает выбранное значение.

За разъяснение по поиску — спасибо, буду экспериментировать.



22 ноября 2009, 14:44
Зарегистрирован: 10 апреля 2012, 00:00
Неужели вы не знакомы с этой функцией? Младший брат её в Делфи — ShowMessage(), отличается функциональными возможностями, и, что самое главное, возвращает выбранное значение.



Знаком естественно, просто я сначала подумал, что вы хотите обрабатывать всплывающие сообщение на сайте, потому и уточнил :)



22 ноября 2009, 17:08
Зарегистрирован: 10 апреля 2012, 00:00
Добавил:

procedure DownloadOptions(images, sound, videos:boolean);

function GetHTML():string;

Описание в инструкции.

Что касается:

*) Отмените, пожалуйста, ограничение на использование макросов $ в других функциях. Только нервы портит. Ограничение срабатывает один раз — на второй запуск все работает. Т.е., сейчас это ограничение заставляет меня два раза нажимать одну и ту же кнопку.


То я ничего не могу с этим поделать. То что у вас работает со второго запуска, значит только то, что программа лезет в не освобождённый участок памяти, а это чревато последствиями. У меня нету в программе явного запрета на использования макросов в любых процедурах, сам алгоритм его запрещает, потому что цикл обхода по записям запускается только при постинге. Хотите чтобы не было запрета - предложите более верный алгоритм работы основной программы.



27 ноября 2009, 09:58
Зарегистрирован: 18 октября 2009, 10:46
Поправил пост 929 — зеленым пометил то, с чем справился, белым — то, что ещё актуально. Так же, добавил пару предложений с целью уменьшения количества строчек кода => сокращения времени выполнения скрипта. Надеюсь на скорейшую реализацию. Заранее спасибо!



27 ноября 2009, 11:50
Зарегистрирован: 10 апреля 2012, 00:00
*) Если возможно — добавьте, пожалуйста, ClearCoockies(). Не всегда можно сразу нажать кнопку "Выход".


ClearCache() не помогает? Он вроде куки тоже чистит