четверг, 31 января 2008 г.

доступ к комментариям по xml-rpc в wordpress: проблемы с преобразовании дат

Сегодня трудился над реализацией и отладкой интерфейса для доступа к комментариям по xml-rpc в wordpress. Относительно несложно оказалось написать и отладить - все работает, вот только возникли проблемы с форматом даты. Проблема в следующем: в базе mysql даты хранятся в своем формате - на выдачи текстовая строка, которую надо переводить в формат datetime = float как принято в php, а затем отдавать в каком то iso стандарте для передачи в xml. Это на стороне сервера отправляю дату. Когда получаю дату - ее тоже надо сконвертировать. Возможно что и сам xml-rpc клиент конвертит автоматом даты - не знаю точно. Где то в этой цепочке у меня закралась ошибка - выискивать ее полнейшее занудство и отнимает много энергии: ничего не создаю, а тупо проверять каждый элементарный шаг…

Меня до сих пор удивляет как это все работает: я для теста написал небольшой скрипт xml-rpc клиентом, который вызывает функции на сервере. Все работает как запланировано: передается список комментариев, забирается комментарий, удаление, смена статуса, создание нового и редактирование. Дополнительно реализовал пару удаленных функций - get_blog_info и getpermalink - для последующей работы с комментариями и записями в блоге пригодятся, ну например получить урл таблицы стилей, чтобы его применить во время редактирования записи или комментария - по идеи должно отображаться как и на сайте, но эту тему предстоит еще исследовать .

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

Здесь можно оставить свои комментарии. Выпуск подготовленплагином wordpress для subscribe.ru

среда, 30 января 2008 г.

интервью с генеральным директором яндекс на радио “Эхо Москвы”

Только что прослушал по радио “Эхо Москвы” часовое интервью с гендиректором яндекса. Кратко - зря я это делал, лучше бы расписывал интерфейс xml-rpc доступа к комментариям в wordpress. Журналистки тупили или на самом деле дуры - интервью получилось невнятным и малоинтересным. Приколол факт, что какой то руководитель по финансам в яндексе индус с американским паспортом. Еще я сделал вывод из интервью, что руководство яндекса реально озабочено падением доли яндекса по поисковым запросам - такого в явном виде в интервью не было и быть не могло, но на то и голова чтобы думать, а что ею еще можно делать? Жрать и разговаривать более утомительные занятия.

Мой сайт arhivperipiski.ru полностью вылетел из индекса еще в воскресенье, достигнув количества страниц в индексе 2200. Я написал письмо в яндекс - пока что ответа нет. Хорошо подойдет слово “нервозность” к яндексу, как и к погоде последние несколько лет - температура скачет мало предсказуемым образом. В этом отношении гугл более предсказуем и устойчив. Хоть гендиректор и говорил про то, что в алгоритмах яндекса много математики. Но на мой взгляд явно математика не та что у гугла. Мне не жалко яндекс - выдача у него хуже чем у гугла.

Сейчас пишу на php реализацию доступа по xml-rpc к комментариям wordpress. Неожиданно много возни с безопасностью и правами доступа разным юзерам: чтобы злодеи спамеры не могли повредить. Выбрал пространство имен для этого апи - “wp.extension.functionname”.

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

Здесь можно оставить свои комментарии. Выпуск подготовленплагином wordpress для subscribe.ru

вторник, 29 января 2008 г.

плагин wordpress to blogger.com (blogspot.com) - кроспостинг в блоггер

Сделал отдельный плагин, который добавляет новые статьи на blogger.com (blogspot.com). До этого у меня был один универсальный скрипт для кроспостинга в subscribe.ru и в blogger .com (blogspot.com). Новую версию для перекрестного постинга можно найти в предыдущей статье.

Плагин остался прежним - простым и работающим. Зато сейчас есть возможность выбирать галочку - постить анонс или полностью. Также сократил размер подписи.

Для установки плагина просто скопируйте его и активируйте, при этом настройки останутся. Скачать плагин wordpress to blogger.com (blogspot.com) - wp2bloggercom.zip.

Здесь можно оставить свои комментарии. Выпуск опубликован при помощи плагина subscribe.ru and blogspot.com cross poster

плагин Wordpress to subscribe.ru - из блога в рассылку

По просьбам блогеров сделал новую версию плагина для кроспостинга в subscribe.ru.

    Внесенные изменения

  • Добавлена галочка, выбирающая постить только анонс или полностью
  • Перемещен в отдельный плагин кросспостинг в blogger.com (blogspot.com)
  • Поменял название плагина - предыдущее было слишком длинным
  • Сократил подпись в конце поста

Для установки плагина деактивируйте старый плагин, и активируйте новый, при этом настройки останутся. Скачать Wordpress to subscribe.ru cross poster - wp2subscriberu.zip.

Здесь можно оставить свои комментарии. Выпуск опубликован при помощи плагина subscribe.ru and blogspot.com cross poster

понедельник, 28 января 2008 г.

плагин wordpress пропускающий комментарии только на русском

За вчерашнюю ночь мне пришло более полусотни комментариев - спама на английском языке. Акисмед, конечно, пометил их как спам и не пропустил, но мне от этого не легче: перед удалением я то их просматривал. Я задался написать простой плагин для wordpress - если текст комментария не содержит русского текста, то его не пропускать. Какого же было мое удивление, что в wordpress не существует корректного механизма, не пропускающего нежелательные комментарии. Ну если очень хочется, то можно: посмотрев исходник wordpress файл wp-comments-post.php, на который отправляются комментарии из формы, я увидел, что если комментарий не соответствует каким то условиям, то его обработка завершается просто окончанием работы скрипта - функция wp_die. А я то, привыкший к системному мышлению, не мог помыслить, чтобы плагин по своей инициативе самостоятельно прервал бы цепочку выполняющихся скриптов. По моим убеждениям плагин не должен иметь никакой возможности нарушить выполнение других частей движка: движок должен сам решать, когда завершить работу скриптов. В программирование на дельфи, такая парадигма является безусловно правильной, но вот это не так для движка wordpress. Еще на один бал упал в моих глазах wordpress.

Итак
.

Здесь можно оставить свои комментарии. Выпуск опубликован при помощи плагина subscribe.ru and blogspot.com cross poster

xml rpc в delphi

Я пишу приложения для Windows на дельфи. В стандартных пакетах к дельфи нет поддержки протокола xml-rpc. Есть поддержка SOAP, но соап более навороченный стандарт вызова удаленных функций, чем xml-rpc. Если взглянуть на библиотеку на php реализующую xml-rpc, то это будет всего один файл class-IXR.php (820 строк) - он находится в каталоге wp-includes wordpress’а.

Для дельфи такого простого модуля я не нашел. Нашел бесплатную библиотеку на sourceforge.com, но вот сейчас ссылку на эту библиотеку никак не могу найти, в исходниках встретил ссылку на один из сайтов разработчиков: The Delphi Inspiration [Delphi Inspiration]. Библиотека не развивалась с 2001 года и для INDY 10 версии необходимо немного поработать напильником. Библиотека старая и по большому счету нуждается в причесывании под дельфи 6/7 - строки передаются по значению, во всех строковых функциях следовало бы добавить const. В этой библиотеке есть свой собственный xml парсер - не используется ДОМ. Проверял - работает как надо, для всех http запросах используется INDY, что дает определенную гибкость и управляемость, и если потребуется то и поддержку https. Чем плох стандарт xml-rpc так это тем, что все функции придется расписывать вручную - те кто импортировал wsdl интерфейс в SOAP поймет, какой же это отстой…

Будет ли когда нибудь wordpress поддерживать соап я не знаю, скорее всего никогда. начав разбираться с wordpress я начал понимать, что этот движок достаточно плох. Очень бросается то, что нынешние версии выросли из плохого кода, ориентированного на программирование функций. Более естественным было бы построить движок используя идеологию объектно ориентированного программирования. Увы этого нет. Если движок не будет переписан с учетом простых требований организации логики работы движка, то перспектив для развития у него мало. Тут еще проблема самого php, как языка плохо приспособленного для объектно ориентированного программирования и слабой типизации данных. Хотя в пятой версии php улучшена работа с объектами, ему безумно далеко до стройности дельфи. Что уж загадывать далеко на будущее, поживем - увидим, какая судьба ждет wordpress.

Здесь можно оставить свои комментарии. Выпуск опубликован при помощи плагина subscribe.ru and blogspot.com cross poster

Клиент для комментариев wordpress

Начав разбираться с комментариями в wordpress и спамом родилась у меня идея написать еще клиента для комментариев в wordpress. Стандартное api предоставляемое через xml-rpc wordpress (смотрите файл xmlrpc.php в корне блога) не имеет функций по управлению комментариями. Значит такое апи надо написать самому. На вскидку там должны быть функции аналоги как и для управления постами: получить список, получить, удалить, создать, отредактировать, изменить статус (между спамом, подтвержден, не поддвержден). Да и все, а большего и не надо. Комментарии можно будет организовать подобно письмам в почтовых клиентах - соответствующие стандартные папки: входящие, ожидают модерации, спам, архив - там будут все комментарии. Остается открытым вопрос об аккаунтах - программа сможет обслуживать сразу несколько блогов, то как лучше: одни и теже папки для всех блогов или для каждого блога набор стандартных папок. Полная аналогия этой ситуации - ящики POP3 и IMAP в Outlook Express. Все письма из POP3 ящиков по умолчанию кладутся в папку входящие, а для каждого ящика IMAP создается дерево папок, точнее загружается с сервера. У комментариев в wordpress нет никаких папок, хотя сейчас возникла мысль - создать дерево папок из постов, а в каждой такой папке-посте находится только комментарии для этого поста. Думаю такая придумка будет отлично рулить на блогах с большим количеством комментариев на каждый пост. Если же комментариев у блога мало, то такая организация только безосновательно затруднит использование программы. Отсюда вытекает, что надо делать две версии программы - pro и обычную. Версию pro скорее всего за деньги - если у блога на каждый пост более полусотни комментариев, то должны быть деньги. В про версии каждый аккаунт будет иметь собственное дерево папок и папки с постами. В обычной версии будут по одной папке новые, ожидают модерации, спам, а также для каждого блога отдельная папка, где будут все комментарии одного блога. Папка архив оказывается неудачная идея.

При первом запуске программы все комментарии не будут загружаться ни в одной версии: будет получен список ID комментариев, а потом каждый комментарий будет подгружаться по требованию - аналогия с письмами IMAP, когда загружаются только заголовки писем, а письмо загружается при наведении на него.

Менеджер аккаунтов будет один для всей линейки программ: блог клиент, клиент для комментариев (comment client?) обычной и про версий. Планирую также включить в настройки возможность использования прокси, и дополнительно gzip компрессию - кто как, а я вот через мобильник выхожу в интернет, и мне лишний трафик ни к чему.

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

Здесь можно оставить свои комментарии. Выпуск опубликован при помощи плагина subscribe.ru and blogspot.com cross poster