1

Тема: MT Motion

Поставил в очередной раз сабж.
Появилось много вопросов :)

1.как часто обновляется страница с фидом активности и от чего это зависит?
2.почему не все сервисы вносятся в фид активности. В профайле они указаны но в активности нет, например picasa и google reader
3.какой принцип работы Following и Followers?



2

Re: MT Motion

1. Чтобы сервесы обновлялись, нужно добавить в CRON задание, чтобы запускался файл tools/run-periodic-tasks.

2. А если вручную их обновить?

3. Это тип «Друзья» и «В друзьях».



3

Re: MT Motion

saahov пишет:

1. Чтобы сервесы обновлялись, нужно добавить в CRON задание, чтобы запускался файл tools/run-periodic-tasks.

2. А если вручную их обновить?

3. Это тип «Друзья» и «В друзьях».

1. Мне кажется это неправльный подход, когда предоставляется полный к работе дистрибутив и нужные нетривиальные действия чтоб он работал, причём явных инструкций нет. Я сам уже много раз пытался разобраться с этими кронами то тщетно, не програмер я :)
2. это как?
3. и что это даёт?



4

Re: MT Motion

На сервере добавляется задание в CRON, которое выполняется с определённой периодичность. У меня, например, раз в час. Скрипт tools/run-periodic-tasks запускает различные запланированные задачи (удаление спам-комментариев, публикация запланированных записей, обновление потоков в Action Streams,  и т.д.).

Чтобы добавить задание в CRON, нужно в панели управление (если это хостинг) найти пункт с CRON'ом, добавить задание:

cd /path/to/mt perl ./tools/run-periodic-tasks

На файл run-periodic-tasks должны быть права доступа 755, иначе он не запустится.

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

use lib 'lib', '../lib';

на

use lib 'lib', '/home/user/path/to/mt/lib';


5

Re: MT Motion

saahov пишет:

На сервере добавляется задание в CRON, которое выполняется с определённой периодичность. У меня, например, раз в час. Скрипт tools/run-periodic-tasks запускает различные запланированные задачи (удаление спам-комментариев, публикация запланированных записей, обновление потоков в Action Streams,  и т.д.).

Чтобы добавить задание в CRON, нужно в панели управление (если это хостинг) найти пункт с CRON'ом, добавить задание:

cd /path/to/mt perl ./tools/run-periodic-tasks

На файл run-periodic-tasks должны быть права доступа 755, иначе он не запустится.

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

use lib 'lib', '../lib';

на

use lib 'lib', '/home/user/path/to/mt/lib';

у меня давно стоит
cd /public_html/cgi-bin/mt; perl ./tools/run-periodic-tasks -verbose >> /log/mt.log
но ничего не работало и лог пустой
запуск стоит тоже каждый час.

сейчас вот поставил в файлу run-periodic-tasks такую строчку:

use lib 'lib', '/public_html/cgi-bin/mt/lib/';

ждёмс..



6

Re: MT Motion

вот что написал крон

cd: can't cd to /public_html/cgi-bin/mt
cannot create /log/mt.log: No such file or directory



7

Re: MT Motion

Значит такого пути нет на сервере. Скорее всего, путь был указан, как видно по FTP. Но это не полный путь. Нужно посмотреть в параметрах блога, какие там данные для пути блога.
-verbose >> /log/mt.log можно вообще вычеркнуть.



8

Re: MT Motion

saahov пишет:

Значит такого пути нет на сервере. Скорее всего, путь был указан, как видно по FTP. Но это не полный путь. Нужно посмотреть в параметрах блога, какие там данные для пути блога.
-verbose >> /log/mt.log можно вообще вычеркнуть.

исправил путь на cd /home/atmocub3/public_html/cgi-bin/mt; perl ./tools/run-periodic-tasks -verbose >> /home/atmocub3/log/mt.log

получил ответ от крона при выполнении:

TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'MT::Worker::Publish'
Working on MT::Worker::Publish ...
Publishing /home/atmocub3/public_html/motion/index.html
Odd number of elements in hash assignment at lib/MT/WeblogPublisher.pm line 1410.
Use of uninitialized value in join or string at (eval 564) line 2.
Use of uninitialized value in join or string at (eval 565) line 2.
Error rebuilding file /home/atmocub3/public_html/motion/index.html: Load of blog '5' failed:
job failed: Error rebuilding file /home/atmocub3/public_html/motion/index.html: Load of blog '5' failed:
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'MT::Worker::Publish'
Working on MT::Worker::Publish ...
Publishing /home/atmocub3/public_html/motion/archives.html
Odd number of elements in hash assignment at lib/MT/WeblogPublisher.pm line 1410.
Use of uninitialized value in join or string at (eval 564) line 2.
Use of uninitialized value in join or string at (eval 747) line 2.
Error rebuilding file /home/atmocub3/public_html/motion/archives.html: Load of blog '5' failed:
job failed: Error rebuilding file /home/atmocub3/public_html/motion/archives.html: Load of blog '5' failed:
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'MT::Worker::Publish'
Working on MT::Worker::Publish ...
Publishing /home/atmocub3/public_html/motion/mt.js
Odd number of elements in hash assignment at lib/MT/WeblogPublisher.pm line 1410.
Use of uninitialized value in join or string at (eval 564) line 2.
Use of uninitialized value in join or string at (eval 785) line 2.
Error rebuilding file /home/atmocub3/public_html/motion/mt.js: Load of blog '5' failed:
job failed: Error rebuilding file /home/atmocub3/public_html/motion/mt.js: Load of blog '5' failed:
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'MT::Worker::Publish'
Working on MT::Worker::Publish ...
Publishing /home/atmocub3/public_html/motion/compose.html
Odd number of elements in hash assignment at lib/MT/WeblogPublisher.pm line 1410.
Use of uninitialized value in join or string at (eval 564) line 2.
Use of uninitialized value in join or string at (eval 787) line 2.
Error rebuilding file /home/atmocub3/public_html/motion/compose.html: Load of blog '5' failed:
job failed: Error rebuilding file /home/atmocub3/public_html/motion/compose.html: Load of blog '5' failed:
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'MT::Worker::Publish'
Working on MT::Worker::Publish ...
Publishing /home/atmocub3/public_html/motion/members.html
Odd number of elements in hash assignment at lib/MT/WeblogPublisher.pm line 1410.
Use of uninitialized value in join or string at (eval 564) line 2.
Use of uninitialized value in join or string at (eval 1009) line 2.
Error rebuilding file /home/atmocub3/public_html/motion/members.html: Load of blog '5' failed:
job failed: Error rebuilding file /home/atmocub3/public_html/motion/members.html: Load of blog '5' failed:
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'MT::Worker::Publish'
Working on MT::Worker::Publish ...
Publishing /home/atmocub3/public_html/motion/atom.xml
Odd number of elements in hash assignment at lib/MT/WeblogPublisher.pm line 1410.
Use of uninitialized value in join or string at (eval 564) line 2.
Use of uninitialized value in join or string at (eval 1356) line 2.
Error rebuilding file /home/atmocub3/public_html/motion/atom.xml: Load of blog '5' failed:
job failed: Error rebuilding file /home/atmocub3/public_html/motion/atom.xml: Load of blog '5' failed:
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'MT::Worker::Publish'
Working on MT::Worker::Publish ...
Publishing /home/atmocub3/public_html/motion/rsd.xml
Odd number of elements in hash assignment at lib/MT/WeblogPublisher.pm line 1410.
Use of uninitialized value in join or string at (eval 564) line 2.
Use of uninitialized value in join or string at (eval 1359) line 2.
Error rebuilding file /home/atmocub3/public_html/motion/rsd.xml: Load of blog '5' failed:
job failed: Error rebuilding file /home/atmocub3/public_html/motion/rsd.xml: Load of blog '5' failed:
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
job failed:
syntax error at line 2, column 0, byte 111:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!ELEMENT noindex - - (%block;)+ -->
^
<!ATTLIST noindex %attrs; >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" id="nojs">
at /usr/local/lib/perl5/site_perl/5.8.8/mach/XML/Parser.pm line 187
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once got job of class 'ActionStreams::Worker'
Working on ActionStreams::Worker ...
TheSchwartz::work_once found no jobs

что это я не знаю :)



9

Re: MT Motion

кстати ручный апдейт спервисов помог увидеть goole reader
а вот свежая ошибка от крона

Parsing of undecoded UTF-8 will give garbage when decoding entities at /home/atmocub3/public_html/cgi-bin/mt/extlib/LWP/Protocol.pm line 204. updating photosight events for lexxa



10

Re: MT Motion

и ещё сразу вопрос, чтобы по крону публиковались архивы, нужно просто им поставить Publish Queue?
?



11

Re: MT Motion

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

А вот ошибка с UTF-8 показывает, что не удалось перекодировать символы в UTF-8. Скорее всего, сайт, с которого получаются данные, в другой кодировке.



12

Re: MT Motion

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

Pseudo-hashes are deprecated at /home/content/......extlib/TheSchwartz.pm line 471.
Pseudo-hashes are deprecated at /home/conten........extlib/TheSchwartz.pm line 471.
Pseudo-hashes are deprecated at /home/content/......extlib/TheSchwartz.pm line 473.
Pseudo-hashes are deprecated at /home/content/.......extlib/TheSchwartz.pm line 471.
.....

Use of uninitialized value in join or string at (eval 1285) line 2.


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

Можно ли эти action перенести как-то отдельно и целенаправленно исключительно к примеру вниз, чтобы оно не перемешивалось с нормальными записями в блоге.

В остальном Motion очень даже понравился.



13

Re: MT Motion

lexxa
Если ахивам поставить очередь публикации, то они действительно будут публиковаться только через Cron.

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

А вот записи перенести можно. Нужно просто разделить их в шаблонах. Я не смотрел Motion-шаблоны, но наверняка там один блок записей. Нужно сделать таких 2: в одном выводить записи, а в другом — активность.



14

Re: MT Motion

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