Исправлены ошибки в бесплатном пингаторе

Присказка

После просмотра скринкаста о трастовом пингаторе я начал следить за этой темой. Особенно меня заинтриговал следующий комментарий:

Все ругаются на цену, однако никто не задумывался, что стоило его создать и отладить. Переписки с саппортами поисковых систем всем знакомы? Так вот, чтобы отладить его работу понадобилось чуть ли не пол года и цена в 40$ — просто смех! Закажите такой пингатор на фрилансе и получите ценник в 6 раз больше + нерабочий скрипт, т.к. никто не будет тратить своё время на переписку и устранение багов с саппортом ПС.

В моем понимании пинг это простой GET или POST запрос и мне стало интересно посмотреть, что там такого наворотил Яндекс, что понадобилось полгода для отладки плагина.

Сказка

Сначала почитал соответствующую документацию от Google Blog Search и Яндекс Блоги — на первый взгляд все просто.

Потом скачал плагин пингатор для оправки сообщений Яндексу и Google.

После дебага выяснил, что пинг к Яндексу не идет в принципе.
Список моих изменений:
  • Поправил отправку пинга по протоколу Weblogs.Ping (через XML-RPC)
  • Исправил ошибки при создании новой статьи
  • Исправил ошибку совместимости с NiceUrl (точнее они сами пропали после всех фиксов)
  • Пока убрал использование PCNTL т.к. для отправки нескольких параллельных запросов достаточно использовать curl_multi_exec
  • Пинг Google Blog Search поменял с REST на XML-RPC
  • Порефакторил код и привел наименования переменных с стандартам LiveStreet (венгерская нотация)

Проверил работоспособность плагина на Кукораме. Пинги к сервисам идут и ответы приходят положительные. Рецепт "Тайский салат" появился в выдаче поиска по блогам Яндекса примерно через 10ть минут после редактирования рецепта. В Google Blog Search пока тишина, но я только сегодня скормил ему rss ленту Кукорамы — думаю нужно подождать.

Где скачать?

Рабочую версию плагина я залил на рапидшару.

Трастовый пингатор

Теперь, что касается плагина "Трастовый пингатор". В этом плагине реализовано больше функционала чем в бесплатном пингаторе. Это:
  • Стандартизация под Рейтинг блог сервисов Яндекcа
  • Отображение в поисках по блогам в Яндексе Google
  • FOAF
Думаю, что полгода ушло именно на отладку этого функционала и если вам это нужно, то 40$ нормальная цена.

UPD. У кого есть информация о том, что нужно для отображения сайта в рейтинге блогосервисов Яндекса?

UPD2. Я помню о баннероиде. Там вылезло несколько багов и я опубликую плагин после того как они будут исправлены. Если плагин очень нужен, то могу скинуть его на мыло (с вас багрепорты) — пишите в личку.

62 комментария

avatar
Вот так посоветуешь человеку ЛС заниматься а он потом начнет аналоги твоих модулей бесплатные писать)
  • ozz
  • +3
avatar
ну «писать» это громко сказано. я просто пофиксил баги в существующем плагине :)
avatar
Пусть лучше будет выбор, чем его отсутствие.

Каждый для себя сможет подобрать — либо более функциональный платный плагин (который наверное поддерживается автором) или на свое усмотрение начнет с бесплатного без всякой поддержки.
avatar
Вот такая проблема вылазиет

Fatal error: Class 'ModuleModuleBlog' not found in .../public_html/engine/classes/Engine.class.php on line 164
avatar
спасибо, поправил и обновил — скачайте ещё раз.
avatar
UPD. У кого есть информация о том, что нужно для отображения сайта в рейтинге блогосервисов Яндекса?
Вообще по словам поддержки нужно что бы rss нормальный был, 100 активных блогов, и пингатор.

По поводу rss — где то у меня записи были, только не смейтесь, в тетрадке. Как всё вспомню или найду напишу.

Пингатор есть! ) Спасибо за отладку!!!

100 активных блогов — слышал что это не обязательно(но по словам поддержки Яндекса нужно)
avatar
Что то немного затупил с rss. У яндекса же теперь есть подробное объяснение — что и как!

Здесь всё рассказывается.

Как Я понял лучше сделать для яндекса отдельный rss канал, или совместить его с пользовательским что наверное неудобно для пользователей.

Тоесть нужны каналы:
1. канал с записями блога, с указанием ссылки на канал с комментариями блога и ссылки на профиль автора.
2. канал с комментариями блога, так же с ссылкой на статью и на автора комментария.
3. профиль в формате FOAF — тут немного не пойму(можно указать всё в html или что то вроде rss нужно?).
avatar
Вот примерный вариант rss блога со вставками от яндекса. Как его реализовать пока что не знаю.

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>{$aChannel.title}</title>
	<link>{$aChannel.link}</link>
	<atom:link href="{$PATH_WEB_CURRENT}/" rel="self" type="application/rss+xml" />
	<description><![CDATA[{$aChannel.description}]]></description>
	<language>{$aChannel.language}</language>
	<managingEditor>{$aChannel.managingEditor} ({cfg name='path.root.web'})</managingEditor>
	<webMaster>{$aChannel.managingEditor} ({cfg name='path.root.web'})</webMaster>
	<copyright>{cfg name='path.root.web'}</copyright>
	<generator>{$aChannel.generator}</generator>
 // начало ------------------------------------------------------------------------------
	<wfw:commentRss>{ссылка на rss-фид со всеми комментариями фида}</wfw:commentRss>
	<ya:more>{ссылка на следующую страницу RSS - с постами 98 и 97 ...}</ya:more>
	<image>
	  <url>{ссылка на картинку блога}</url>
	  <width>100</width>
	  <height>100</height>
	</image>                                                                         
// конец---------------------------------------------------------------------------------
{foreach from=$aItems item=oItem}
		<item>
			<title>{$oItem.title|escape:'html'}</title>
			<guid isPermaLink="true">{$oItem.guid}</guid>
// автор		<author>{ссылка на профайл автора}</author>  
			<link>{$oItem.link}</link>
			<dc:creator>{$oItem.author}</dc:creator> // это наверное нужно будет удалить ???
   <description><![CDATA[{$oItem.description} 
   <a href="{$oItem.link}">Читать далее</a>]]></description>
			<pubDate>{date_format date=$oItem.pubDate format="r"}</pubDate>			
			<category>{$oItem.category|replace:',':'</category>
			<category>'}</category>
// вставка      	<comments>{ссылка на коментарии на страничке статьи}</comments> 
		</item>
{/foreach}
</channel>
</rss>
avatar
в чем отличия от обычного rss Atom?
avatar
Единственное что знаю это то что Atom появился позже и был усовершенствованной версией rss. Он более прост в написании и похож на html. И Atom поддерживает или поддерживал гугл.

А так смысл один и тот же.
avatar
Кто-нибудь знает как можно реализовать эти 2 элемента?
<wfw:commentRss>{ссылка на rss-фид со всеми комментариями фида}</wfw:commentRss>
Сюда нужна ссылка на rss комментариев блога(пока заменил ссылкой на все комментарии allcomments)
<ya:more>{ссылка на следующую страницу RSS - с постами 98 и 97}</ya:more>
Просто не знаю как сделать эту ссылку.

Пока продолжаю копать. Как найду расскажу.

Как сделать страничку пользователя в foaf стандарте, и ссылку на ней не нашёл.
avatar
Немного с foaf разобрался! Теперь надо как то это всё объеденить и опубликовать.
avatar
можно посмотреть наработки?
avatar
Вот только закончил описывать! Здесь!
avatar
Так что скажешь? Про foaf.
avatar
прочитал. понял что это. не понял только насколько это актуально для моего сайта :)
avatar
Я пока не написал статью про rss канал для яндекс-блогов, которую сделал в соответствии с их стандартами.
Жаль что там не всё, что хотел смог реализовать, но там как раз и учитывается foaf, для определения блогеров.
avatar
Кстати можешь помочь заполнить Мои пробелы в foaf? И Rss?
avatar
Сделал отдельный rss для яндекса, пока не всё реализовал из описанного выше.

Кто-нибудь знает как правильно это сделать и главное как сделать страничку пользователя в foaf стандарте.
avatar
Отличные доработки, да и плагин супер, большое спасибо stfalcon..:)
Кто нибудь тестировал его с niceurl..?
avatar
У меня ошибок не выдавало!
avatar
Спасибо, буду тоже тестировать..:)
avatar
Я что то какой то бедовый. При создании топика все норма, при повторном редактировании вылазит такая штука. Вернешься на зад на страничку опять все норм.

Notice: name lookup timed out in .../public_html/plugins/empblogping/classes/modules/empping/Empping.class.php on line 37

Warning: Cannot modify header information — headers already sent by (output started at .../public_html/plugins/empblogping/classes/modules/empping/Empping.class.php:37) in .../public_html/engine/include/function.php on line 215

Warning: Cannot modify header information — headers already sent by (output started at .../public_html/plugins/empblogping/classes/modules/empping/Empping.class.php:37) in .../public_html/engine/include/function.php on line 216
avatar
ответ от dns сервера долго шел. это на локальном хосте? регулярно такая проблема?
avatar
спасибо, хорошее решение
avatar
респект
avatar
Спасибо! Ошибок при добавлении поста больше не видно, бот приходит. Красота!
avatar
Простите за немного странный вопрос, но а как проверить работает ли (правильно ли работает) плагин?
avatar
Чувствуя себя полным неучем и покорно присоединяюсь к вопросу.
avatar
самый просто вариант это смотреть или страница появилась в выдаче blogs.yandex.ru
или добавить в код плагина вывод ответов для отладки
avatar
а чё делать если не появился?
avatar
сайт добавлен в Яндекс Поиск по блогам?
avatar
Нашол уже проблему, походу в php не стоят нужные модули, ибо при добавлении поста пишет: could not connect to host…
avatar
какие именно?
avatar
php5-curl, pcntl… сейчас работает, пост конечно создаёться правда долго, кстати сайт не добавлен в поиск по блогам, как добавить?(
avatar
поищите. там форма есть для добавления сайтов
avatar
Попробовал сделать что то вроде записи ответа в лог, после отправки пинга, неуклюже конечно сделал, но что смог…
Ответ при пинге приходит такой.
<?xml version="1.0"?>
 <methodResponse>
  <params>
   <param>
    <value>
     <struct>
      <member>
       <name>flerror</name>
       <value>
        <boolean>0</boolean>
       </value>
      </member>
      <member>
       <name>message</name>
       <value>Thanks for the ping.</value>
      </member>
     </struct>
    </value>
   </param>
  </params>
</methodResponse>
<?xml version="1.0"?>
<methodResponse><params>
  <param><value><struct>
    <member>
      <name>flerror</name><value><boolean>0</boolean></value>
    </member>
    <member>
      <name>message</name><value>Thanks for the ping.</value>
    </member>
  </struct></value></param>
</params></methodResponse>

Суде по ответу всё норм. Но последнее время Яндекс бот реже стал заходить. В первые дни после установки в течении получаса появлялся, теперь дольше жду.
avatar
После редактирования уже опубликованного топика, после нажатия «Опубликовать» появляется вот такая ошибка на белом фоне:

Notice: name lookup timed out in .../plugins/empblogping/classes/modules/empping/Empping.class.php on line 37

Warning: Cannot modify header information — headers already sent by (output started at .../plugins/empblogping/classes/modules/empping/Empping.class.php:37) in .../engine/include/function.php on line 215

Warning: Cannot modify header information — headers already sent by (output started at .../plugins/empblogping/classes/modules/empping/Empping.class.php:37) in .../engine/include/function.php on line 216

Появляется довольно стабильно, т.е. выбираю свежий топик — нажимаю редактировать-опубликовать, все хорошо. Тут же, без задержки — редактировать-опубликовать — появилась и т.д.

Нажимаешь кнопку «обновить» — страница загружается без проблем.
  • Yuta
  • 0
avatar
это локально или продакшн?
avatar
продакшн
avatar
а что с этой ошибкой решили то? Такая же вылетает регулярно.
avatar
После редактирования топика стабильно вижу такую ошибку:
Notice: Use of undefined constant CURLOPT_URL — assumed 'CURLOPT_URL' in /var/www/domen.ru/plugins/empblogping/classes/modules/empping/Empping.class.php on line 27 Notice: Use of undefined constant CURLOPT_RETURNTRANSFER — assumed 'CURLOPT_RETURNTRANSFER' in /var/www/domen.ru/plugins/empblogping/classes/modules/empping/Empping.class.php on line 28 Notice: Use of undefined constant CURLOPT_TIMEOUT — assumed 'CURLOPT_TIMEOUT' in /var/www/domen.ru/plugins/empblogping/classes/modules/empping/Empping.class.php on line 29
Notice: Use of undefined constant CURLOPT_POSTFIELDS — assumed 'CURLOPT_POSTFIELDS' in /var/www/domen.ru/plugins/empblogping/classes/modules/empping/Empping.class.php on line 30
Fatal error: Call to undefined function curl_init() in /var/www/domen.ru/plugins/empblogping/classes/modules/empping/Empping.class.php on line 33

Поставил php-curl, но не помогло. Debian Squeeze, nginx 1.1.1, php 5.3.8, LS 0.4.2
avatar
Хм… Ребутнул php, почистил кеш движка и ошибка при редактировании исчезла. Публиковать пока не пробовал.
avatar
Аналогичная ошибка при публикации и редактировании:
Notice: Use of undefined constant CURLOPT_URL — assumed 'CURLOPT_URL' in /users/almanacss/www/plugins/empblogping/classes/modules/empping/Empping.class.php on line 27

Notice: Use of undefined constant CURLOPT_RETURNTRANSFER — assumed 'CURLOPT_RETURNTRANSFER' in /users/almanacss/www/plugins/empblogping/classes/modules/empping/Empping.class.php on line 28

Notice: Use of undefined constant CURLOPT_TIMEOUT — assumed 'CURLOPT_TIMEOUT' in /users/almanacss/www/plugins/empblogping/classes/modules/empping/Empping.class.php on line 29

Notice: Use of undefined constant CURLOPT_POSTFIELDS — assumed 'CURLOPT_POSTFIELDS' in /users/almanacss/www/plugins/empblogping/classes/modules/empping/Empping.class.php on line 30

Fatal error: Call to undefined function curl_init() in /users/almanacss/www/plugins/empblogping/classes/modules/empping/Empping.class.php on line 33

Версия пингатора: v.1.0.2
avatar
вышеописанную ошибку еще не поправили?
avatar
Curl поставил, кеш почистил, ребутнул nginx и php-fpm, потом и весь сервак ребутнул, но ошибка никуда не исчезла.
curl           7.21.0-2       Get a file from an HTTP, HTTPS or FTP server
avatar
Понял в чем косяк) Я установил curl, а нужен php5-curl.
avatar
а можно еще добавить другие сервисы?
список серверов я предоставлю.
avatar
предоставьте. посмотрю
avatar
rpc.pingomatic.com/
blogsearch.google.com/ping/RPC2
blogsearch.google.ru/ping/RPC2
rpc.pingomatic.com/
ping.feedburner.com
ping.blogs.yandex.ru/RPC2
rpc.technorati.com/rpc/ping
api.my.yahoo.com/rss/ping
api.my.yahoo.com/RPC2
audiorpc.weblogs.com/RPC2
blog.goo.ne.jp/XMLRPC
blogpeople.net/servlet/weblogUpdates
hamo-search.com/ping.php
blog.youdao.com/ping/RPC2
ping.kutsulog.net/
ping.myblog.jp
ping.fc2.com
ping.namaan.net/rpc
ping.syndic8.com/xmlrpc.php
ping.weblogalot.com/rpc.php
rpc.blogrolling.com/pinger/
rpc.icerocket.com:10080
rpc.reader.livedoor.com/ping
rpc.twingly.com
www.blogpeople.net/servlet/weblogUpdates
www.syndic8.com/xmlrpc.php
rpc.weblogs.com/RPC2
www.blogdigger.com/RPC2
www.wasalive.com/ping/
xianguo.com/xmlrpc/ping.php
xping.pubsub.com/ping
xping.pubsub.com/ping/
wasalive.com/ping/
rpc.weblogs.com/RPC2
rpc.icerocket.com:10080/
pinger.blogflux.com/rpc
ping.weblogalot.com/rpc.php
ping.syndic8.com/xmlrpc.php
ping.feedburner.com
blogpeople.net/servlet/weblogUpdates
api.moreover.com/RPC2
www.xianguo.com/xmlrpc/ping.php
www.feedsky.com/api/RPC2
www.blogpeople.net/servlet/weblogUpdates
rpc.reader.livedoor.com/ping
ping.namaan.net/rpc
ping.kutsulog.net
ping.fc2.com
ping.blogoon.net
rpc.pingomatic.com
ping.weblogs.se/
blogmatcher.com/u.php
coreblog.org/ping/
bulkfeeds.net/rpc
ping.myblog.jp
ping.bitacoras.com
ping.bloggers.jp/rpc/
ping.blogmura.jp/rpc/
— это список для wordpress движка.
я так понимаю там все это через XML сделано.
avatar
боюсь тут большинство неактуально для наших реалий
avatar
каких реалий?:)
давайте рассмотрим, какие стоит добавить.
думаю:
rpc.pingomatic.com
ping.feedburner.com
rpc.technorati.com/rpc/ping
api.my.yahoo.com/RPC2
ping.blogoon.net
avatar
отечественных реалий :)

я не вижу тут реальных источников траффика для моего ресурса. можете добавить поддержку нужных вам источников и сделать pull request
avatar
так я думал не дело не в трафике, а в более быстрой индексации.
запись в блоге отправляет пинг на все эти сервисы. паук поисковика сканя их, переходит на данный блог
avatar
а какой смысл в индексации этими сервисами если с них не будет траффика :)?
avatar
нам в итоге ведь нужно, чтобы было проиндексировано наибольшее количество страниц в наименьшие сроки. так?
если пузомерки у сайта еще небольшие, то паук поисковика будет заходить редко.
Итак, появилась новая запись.Нам надо рассказать о ней наибольшему числу других сайтов.
Мы отправляем им пинг. типа «Ау!!!». ок. услышали.
Вероятность того, что на эти сайты зайдет поисковик достаточно большая. и чем больше сайтов, тем больше вероятность, что поисковик заметит ссылку о нашей записи и перейдет к нам в «гости». :)
profit!
avatar
я понял. вы можете добавить их. ничего не имею против.

для меня профит не с поисковиков, а с людей, которые с них пришли. поэтому мне пока достаточно уведомлений для гугля и яндекса. остальные поисковики из этого списка практически не используются на постсоветском пространстве и я не вижу в их заходах ценности для своего сайта.
avatar
stfalcon , те, что в списке это не поисковики это сервисы, которые отправляют пинги поисковикам.
как добавить новый сервис?
я так понимаю надо добавить аналогичные записи в config.php,empping.class.php и еще куда то, где прописывается url.
avatar
при редактировании выдало ошибку
Notice: name lookup timed out in /public_html/plugins/empblogping/classes/modules/empping/Empping.class.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at public_html/plugins/empblogping/classes/modules/empping/Empping.class.php:37) in /public_html/engine/include/function.php on line 224

Warning: Cannot modify header information - headers already sent by (output started at /public_html/plugins/empblogping/classes/modules/empping/Empping.class.php:37) in /public_html/engine/include/function.php on line 225

что сие значит?
avatar
вывод нотайсов отключите в браузер
avatar
Что то под 1.0.1 с пингаторами совсем плохо:) Планируете что нибудь?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.