<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 13/04/16 17:12, Jorge Villaseñor
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAPirPste6weTD=+XjbGivUqUaZD=UbKJq--wTaa=t3mQ1H78uQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">On Tue, Apr 16, 2013 at 3:23 AM, Zoltán Sólyom <span
          dir="ltr"><<a moz-do-not-send="true"
            href="mailto:z-ismeretlen@freemail.hu" target="_blank">z-ismeretlen@freemail.hu</a>></span>
        wrote:<br>
        <div class="gmail_extra">
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">Yesterday
              I tried to implement custom_smiley_add etc. in
              PurpleConversationUiOps for my Visual Studio program. The
              callback gets a PurpleConversation pointer, the text of
              the smiley, and a bool called "remote" (which I have no
              idea what it does, but it doesn't matter right now).<br>
              <br>
              The PurpleConversation contains the name/title of the
              conversation, and it seems to be used for identifying the
              sender of the smiley. As I see it, this is the only way to
              know who sent it. This works if talking with a single
              buddy, but not in a group chat. Is there no way to find
              out who sent the smiley in a chat? I could probably read
              the next sent message to identify the sender, but in that
              case I can't cache the custom smiles. It is always
              possible that someone else also sent a custom smiley with
              the same text, but it is a different smiley.<br>
            </blockquote>
            <div><br>
            </div>
            <div style="">For smiley caching and identifying any given
              smiley, we store them using a hash of the image as
              filename/identifier, not the name. Maybe this can help on
              that.</div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Does that mean that the custom_smiley_add callback is not the place
    to handle received custom smiles? It does not get a filename nor an
    identifier, just the shortcut text that was entered on the other
    side. I saw that the raw data contains some code that could be taken
    as an identifier (<font color="#000000">i.e.: <img alt='_D'
      src='<a class="moz-txt-link-freetext" href="cid:sha1+0113a2090b8a4ad3ca1d04df2ac866b7c21c10c2@bob.xmpp.org'/">cid:sha1+0113a2090b8a4ad3ca1d04df2ac866b7c21c10c2@bob.xmpp.org'/</a>>)
      though I'm not sure whether it's for that purpose. The callback
      for received messages gets some meaningless XML tags too (i.e. </font><font
      color="#000000"><font color="#000000"><html
        xmlns='<a class="moz-txt-link-freetext" href="http://jabber.org/protocol/xhtml-im">http://jabber.org/protocol/xhtml-im</a>'><body
        xmlns='<a class="moz-txt-link-freetext" href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>'></font>), but that is
      only called once custom_smiley_add returned.<br>
      That XML tag (and the raw data) seems to be XMPP specific and I'm
      sure it's not a good idea to directly use it, if the program
      should be able to show custom smileys from many protocols. (I
      tried custom smileys from Live Messenger but those arrived as
      simple text so I don't know how other protocols handle this.)<br>
    </font>
  </body>
</html>