📄 textpresenceprovider.java
字号:
/** * $Revision$ * $Date$ * * Copyright (C) 2006 Jive Software. All rights reserved. * * This software is published under the terms of the GNU Public License (GPL), * a copy of which is included in this distribution. */package org.jivesoftware.wildfire.plugin.presence;import org.xmpp.packet.Presence;import org.xmpp.packet.JID;import org.xmpp.packet.PacketError;import org.jivesoftware.wildfire.XMPPServer;import org.jivesoftware.wildfire.user.User;import org.jivesoftware.wildfire.user.UserNotFoundException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;/** * The TextPresenceProvider provides the user's presence status in plain-text format. * The returned text is the last known presence status of the user. If the user is offline * then the unavailable presence will be recreated with the last known presence status. * * @author Greg Unrein */class TextPresenceProvider extends PresenceInfoProvider { public void sendInfo(HttpServletRequest request, HttpServletResponse response, Presence presence) throws IOException { response.setContentType("text/plain"); PrintWriter out = response.getWriter(); if (presence == null) { // Recreate the unavailable presence with the last known status JID targetJID = new JID(request.getParameter("jid")); presence = new Presence(Presence.Type.unavailable); XMPPServer server = XMPPServer.getInstance(); try { User user = server.getUserManager().getUser(targetJID.getNode()); String status = server.getPresenceManager().getLastPresenceStatus(user); if (status != null) { presence.setStatus(status); } } catch (UserNotFoundException e) { // Ignore. } presence.setFrom(targetJID); } out.println(presence.getStatus()); out.flush(); } public void sendUserNotFound(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/plain"); PrintWriter out = response.getWriter(); // Send a forbidden presence Presence presence = new Presence(); presence.setError(PacketError.Condition.forbidden); try { presence.setFrom(new JID(request.getParameter("jid"))); } catch (Exception e) { // Ignore. } try { presence.setTo(new JID(request.getParameter("req_jid"))); } catch (Exception e) { // Ignore. } out.println(presence.getStatus()); out.flush(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -