Chase Your Dreams!

Christian Archer

  • Home
  • Profile
  • Friends
  • Forums
  • Gallery
  • Homepage
  • Copyright
Twitter Facebook RSS

Psi Options –> Jabber Roster Utility (XSLT)

Posted on August 13, 2009 by SunChaser
7 CommentsLeave a comment

Сервер с моим основным аккаунтом лёг. Видимо, наконец решил оправдать своё имя — 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”

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

Скачать стиль: http://misc.sunchaser.info/software/psi2jre.zip

  • Share this:
  • Email
  • ВКонтакте
Categories: Jabber, XML | Tags: jabber roster utility, psi, xslt
Short URLs от Dot.tk
За широкопрофильное образование

7 Responses to “Psi Options –> Jabber Roster Utility (XSLT)”

  1. Murz says:
    August 19, 2009 at 16:47

    Умел бы этот JRE работать с Gmail-ростером (TLS) – цены бы ему не было! Но, увы, так и не держит он TLS, а мне порядка 300 контактов переносить вломы, так что сижу жду щастья, пока добавять в JRE поддержку TLS гугловского…

    Reply
    • SunChaser says:
      August 20, 2009 at 08:47

      Вывести из гугла можно способом выше. А переходить на гугл… не вижу смысла, если честно. Минусов больше, чем плюсов

      Reply
      • Murz says:
        August 20, 2009 at 09:01

        А какие минусы?
        Для меня основные плюсы такие:
        - доступ из любого места через браузер (хоть из инет-кафе) без доп. настроек
        - работает с любым жаббер-клиентом
        - прикручиваются шлюзы в аську и другие мессенджеры
        - хистори всех разговоров (в том числе и через шлюзы в аську) на серваке с удобным поиском (даже с мобилы через wap можно найти например почтовый адрес, который тебе скинули, а ты забыл записать и стоишь на улице у дома вспоминаешь), в результате не надо мучаться с синхронизацией хистори дома, на работе, на ноуте, на сотовом – всё в одном месте и не потеряется.

        Какой из других серверов Jabber имеет аналогичный функционал?

        Reply
        • SunChaser says:
          August 20, 2009 at 10:13

          мэээ… яндекс?

          > работает с любым жаббер-клиентом

          поддерживающим TLS. в принципе, не очень актуально, но у меня на телефоне бомбусь с шифорванием не дружит. да, старый телефон, но… всё равно обидно

          > прикручиваются шлюзы в аську и другие мессенджеры

          почему-то у некоторых с этим часто проблемы

          а еще добавляет какой-то аццкий текст к имени ресурса и не принимает мессаги от неавторизованных клиентов

          в целом минусы не критичны, но меня раздражают

          Reply
          • Murz says:
            August 20, 2009 at 11:32

            Хм, надо будет попробовать яндекс, может и правда что-нибудь хорошое состряпали они…
            А насчёт минусов – да, сталкивался с ними, немного раздражают но тоже не критично… Если яндекс получше сделал – придётся изменить гуглу с ним ;)

            Reply
            • SunChaser says:
              August 20, 2009 at 15:07

              у яндекса стандартный ej с доработками. в результате и плюсы почти те же и с “обычными” серваками конфликтов меньше

              Reply
              • Murz says:
                September 6, 2009 at 18:13

                О, насчет яндекса – спасибо, надо будет пощупать, вроде много хороших отзывов про него было. Только вот насчет защищённости у меня к нему доверия конешно меньше чем к гуглу, всё ж московская контора – ФСБ прижучит её быстрее при необходимости чем Гугля, если чё-нить из аськохистори про меня накопать захотят… Ну а свой сервак для этого заводить лениво (хотя он и есть) – нет уже готовых решений с удобным вёб-интерфейсом и морфологическим поиском по хистори аля гугл-яндекс, а самому писать как всегда времени жалко ;(

                Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • Similar Posts

    • XSLT and Web
    • XSLT и поисковики
    • AIM/ICQ XMPP Access
    • Psi: партнёрство с Barracuda Networks и Yandex Inc.
    • И коротко о XSLT и браузерах
  • Blogroll

    • Блог android разработчика
  • FeedBurner

  • Calendar

    August 2009
    M T W T F S S
    « Jul   Sep »
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31  
  • Archives

  • Categories

    • ? (1)
    • Bookmarks (15)
    • Culture (186)
      • Books (10)
      • Comics (1)
      • Holidays (1)
      • Law (3)
      • Linguistics (13)
      • Movies and TV (45)
      • Music (25)
      • Nippon (47)
        • Anime (43)
      • Politics (25)
      • Quotes (20)
      • Religion (3)
      • Science (15)
      • Video (16)
    • Development (38)
      • Design (4)
      • Qt (4)
      • Ruby (1)
      • Web Development (19)
    • Fun (75)
    • IT (218)
      • Cross-site Connectivity (11)
        • oEmbed (2)
        • OpenID (9)
      • Games (15)
      • Howtos (11)
      • Instant Messaging (38)
        • Jabber (26)
      • Internet Misc (37)
      • Linux (46)
      • Multimedia (3)
      • Phones (1)
      • Windows (21)
        • Linux Software in Windows (4)
      • WordPress (13)
      • XML (4)
    • Miscellaneous (43)
    • Personal (95)
      • Blog Flashmob (2)
      • Random Thoughts (25)
      • Secret Wishes (3)
      • Travel (3)
    • Pictures (20)
      • Gallery Updates (10)
      • Photography (3)
  • Recent Comments

    • SunChaser on DNS Service
    • Johan on DNS Service
    • SunChaser on DNS Service
    • SunChaser on DNS Service
    • SunChaser on DNS Service
  • Forum Topics

    • Jabber Server
  • SunChaser on Twitter

    • RT @xenia_sobchak: Якеменко публичноотказал мне во вступлении в его партию.как жить дальше?есть ли смысл?обьявляюУстричную голодовку по ... 13 hours ago
    • @ilyabirmannet Most likely he uses some third party caching plugin 14 hours ago
    • RT @read_the_tweet: Вовочка очень хотел конфету, но отдал её Маше, потому что Машу он хотел больше. 16 hours ago
    • RT @KermlinRussia: Скоро начнут людей на улицах хватать и назначать полпредами. 3 days ago
    • @kwizme_en spare 3 days ago
© 2006-2012 by Christian Archer Proudly Powered by WordPress | Nest Theme by YChong
loading Cancel
Post was not sent - check your email addresses!
Email check failed, please try again
Sorry, your blog cannot share posts by email.