Vulpo One

Фикс Prosody на PostgreSQL в CentOS 7

Натолкнулся тут на не очень приятное поведение Prosody, хранящего данные в Посгресе. При перезапуске pg или даже если просто prosody запущен при загрузке раньше, чем pg, он не может найти данные и не работает. К счастью, для CentOS с systemd есть быстрый фикс, уменьшающий неприятности этой проблемы — надо лишь чуть-чуть подправить файл сервиса.

  1. Если бы у нас был новый systemd, мы бы набрали команду

    systemctl edit prosody
    

    и попали бы на шаг 2

  2. но systemd в CentOS 7 уже староват и там такой команды еще не было, так что делаем всё вручную

    mkdir /etc/systemd/system/prosody.service.d
    cd /etc/systemd/system/prosody.service.d
    touch override.conf
    
  3. в override.conf помещаем следующий текст:

    [Unit]
    After=postgresql.service
    Requires=postgresql.service
    
  4. даем systemd обновить конфиги

    systemctl daemon-reload
    
  5. Профит! Теперь при запуске prosody будет пытаться сначала запустить и подождать postgres и перезапускаться при его перезапуске

Comments


Prosody @ SunChaser.info

Переселил jabber для домена с монструозного ejabberd на легкий Prosody. Высвободил ~200 МБ оперативы на VPS-ке. В принципе, полет нормальный, только хранение истории на сервере теперь через новый стандарт, который ни один клиент не поддерживает :( Пришлось запилить по-быстрому веб-интерфейс.

Если кому нужна конвертилка истории из mod_archive_odbc ejabberd в mod_mam_sql Prosody — их есть у меня (холст, масло, сыр, PHP)

Comments



Напоминальщик Noty

Был раньше такой удобный напоминальщик — Noty, жил в джаббере по адресу noty@ximik.net. Т.к. он похоже то ли откинул копыта, то ли на него автор забил просто, решил поднять свою копию, благо он опенсорс. Живет на noty@sunhome.im, код взят с github.com/Ximik

Comments


Jabber Server

Взял VPS (об этом потом, когда все проекты перетащу) и установил на нём ежа. Теперь у меня свой жабасервер!

p.s. могу захостить кому-нибудь виртхост

p.p.s. открытой реги не будет (по крайней мере пока)

p.p.p.s. спасибо проекту abcd.bz за предоставленный сервак

Comments



Jabber вКонтакте

ВКонтакте подолжает гордое шествие по стопам Facebook и тоже обзавёлся своим неработающим Jabber-ом.

JID для подключения ваше_выбранное_имя@vk.com (в смысле которое http://vkontakte.ru/ваше_выбранное_имя)

Ссылка на хелп — http://vk.com/help.php?page=jabber

Отпишитесь у кого работает, а то у меня не хочет :(

Спасибо @muhas за инфо :)

Comments


Chesspark влился в Chess.com

Когда-то восхваляемый мной сервис Chesspark.com слил свою базу пользователей порталу Chess.com и приказал долго жить.

Хорошо это или плохо?

Для шахмат… с одной стороны, куда бóльшая база пользователей — это хорошо, но AI дико тормозной. Впрочем, людей всех квалификаций дотстаточно.

Для джабббера же это EPIC FAIL. Ибо накрыалсь единственная более или менее известная игра с XMPP как протоколом. Вот так. Хотя еще возможно, что сервак реанимируют, клиент опять прикрутят и будет EPIC WIN. Только вот ни слышно, ни вероятно.

А сервис ничё, мне понравился.

Comments


Psi Options —> Jabber Roster Utility (XSLT)

Сервер с моим основным аккаунтом лёг. Видимо, наконец решил оправдать своё имя — unstable.nl

Соответственно встал вопрос о переносе контактов на новый сервер. Чем это можно сделать? Конечно же Jabber Roster Utility, чем же еще? Но! JRE сначала должен получить контакты со старого, а сервер-то лежит. Ростер, конечно же, скеширован клиентом, коим у меня является Psi. Но формат-то там неподходящий! Если перебивать ручками, то проще покажется добавить ручками же контакты прямо в клиенте. Не вариант.

Сначала в голову полезла шальная мысль написать парсер, но она была сразу отброшена. Psi хранит настройки в XML, a значит можно поступить проще.

Возьмем нужный нам файл настроек: %psidatadir%/profiles/%profilename%/accounts.xml и применим к нему xslt-стиль. Стиль этот очень прост:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://psi-im.org/options">
    <xsl:output method="text"/>
    <xsl:template match="/accounts/accounts/*">
        Account <xsl:value-of select="jid"/><xsl:apply-templates select="roster-cache"/>
    </xsl:template>
    <xsl:template match="roster-cache/*">
        +,<xsl:value-of select="jid"/>,<xsl:value-of select="name"/>,none,<xsl:value-of select="groups/item"/>
    </xsl:template>
</xsl:stylesheet>

В результате мы получим ростеры всех прописанных туда аккаунтов в формате, который хавает JRE

Account jid@domain.tld
+,elem1@dom1.tld,Element 1,none,Group
+,elem2@dom2.tld,Element 2,none,Group
+,elem3@dom3.tld,Element 3,none,Group 2

Account jid2@domain2.tld
+,elem1@dom1.tld,Element 1,none,
+,elem4@dom4.tld,Element 2,none,

Вуаля, кормим JRE.

Как применить стиль?

Самый простой способ — браузер. Открываем accounts.xml (рекомендую сделать копию и издеваться над ней, а не резать по живому), вписываем первой строкой

<?xml-stylesheet type="text/xsl" href="accounts-xslt.xml"?>

копируем стиль в папку с этим accounts.xml и открываем accounts.xml в браузере.

Если не сработает, удаляем из accounts.xml строку <!DOCTYPE accounts> и элемент xmlns="http://psi-im.org/options"

Знаю, что не по фэн-шую, но мне почему-то помогло.

Скачать стиль: accounts-xslt.xml

Comments