Compare commits

...

7 Commits

Author SHA1 Message Date
Dele Olajide
9ae83f21a1
Merge pull request #899 from stokito/meeting_disco
Online Meeting plugin: cleanup and refactoring
2025-08-11 13:11:23 +01:00
Sergey Ponomarev
fb3d5d763e SparkMeetPlugin: reduce logging 2025-07-26 10:59:27 +03:00
Sergey Ponomarev
f212d884d0 SparkMeetPlugin: Use getBareJid().getLocalpart() 2025-07-26 10:59:26 +03:00
Sergey Ponomarev
fdd6ac67ca sparkmeet i18n 2025-07-26 10:28:38 +03:00
Sergey Ponomarev
269f50118e sparkmeet_i18n.properties: remove unused key sparkmeetEnabled 2025-07-26 10:28:29 +03:00
Sergey Ponomarev
7926dd0cd2 SparkMeetPlugin: initializeOnlineMeetings() use early return 2025-07-26 07:54:52 +03:00
Sergey Ponomarev
4943a05c44 SparkMeetPlugin: extract separate initializeOnlineMeetings() 2025-07-26 07:51:49 +03:00
5 changed files with 71 additions and 95 deletions

View File

@ -42,7 +42,7 @@ public class ChatRoomDecorator
ImageIcon ofmeetIcon = new ImageIcon(imageByte);
ofmeetButton = new RolloverButton(SparkRes.getImageIcon("PADE_ICON"));
ofmeetButton.setToolTipText(GraphicUtils.createToolTip(SparkMeetResource.getString("name")));
final String roomId = getNode(room.getBareJid().toString());
final String roomId = room.getBareJid().getLocalpart().toString();
final String sessionID = String.valueOf(System.currentTimeMillis());
ofmeetButton.addActionListener(event -> {
@ -52,7 +52,6 @@ public class ChatRoomDecorator
{
newUrl = plugin.url + newRoomId;
plugin.handleClick(newUrl, room, newUrl, Message.Type.groupchat);
} else {
newUrl = plugin.url + newRoomId;
plugin.handleClick(newUrl, room, newUrl, Message.Type.chat);
@ -61,25 +60,13 @@ public class ChatRoomDecorator
room.getEditorBar().add(ofmeetButton);
} catch (Exception e) {
Log.error("cannot create pade meetings icon", e);
}
}
public void finished()
{
Log.warning("ChatRoomDecorator: finished " + room.getBareJid());
Log.debug("ChatRoomDecorator: finished " + room.getBareJid());
}
private String getNode(String jid)
{
String node = jid;
int pos = node.indexOf("@");
if (pos > -1)
node = jid.substring(0, pos);
return node;
}
}

View File

@ -80,11 +80,11 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
if (props.getProperty("url") != null)
{
url = props.getProperty("url");
Log.warning("ofmeet-info: ofmeet url from properties-file is= " + url);
Log.debug("ofmeet-info: ofmeet url from properties-file is= " + url);
}
} catch (IOException ioe) {
Log.warning("ofmeet-Error:", ioe);
Log.error("ofmeet-Error:", ioe);
}
} else {
@ -95,53 +95,48 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
chatManager.addGlobalMessageListener(this);
SparkMeetPreference preference = new SparkMeetPreference(this);
SparkManager.getPreferenceManager().addPreference(preference);
ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(SparkManager.getConnection());
SparkManager.getPreferenceManager().addPreference(preference);
DiscoverInfo discoverInfo = null;
String serverJid = SparkManager.getSessionManager().getServerAddress().toString();
try {
discoverInfo = discoManager.discoverInfo(JidCreate.domainBareFrom(serverJid));
}
catch (Exception e) {
Log.debug("Unable to disco " + serverJid);
}
boolean jitsiAvailable = false;
boolean galeneAvailable = false;
boolean ohunAvailable = false;
if (discoverInfo != null) {
jitsiAvailable = discoverInfo.containsFeature("urn:xmpp:http:online-meetings#jitsi");
galeneAvailable = discoverInfo.containsFeature("urn:xmpp:http:online-meetings#galene");
ohunAvailable = discoverInfo.containsFeature("urn:xmpp:http:online-meetings#ohun");
}
String sUrl = null;
if (jitsiAvailable) {
sUrl = getServerUrl("jitsi");
}
else
if (galeneAvailable) {
sUrl = getServerUrl("galene");
}
else
if (ohunAvailable) {
sUrl = getServerUrl("ohun");
}
if (sUrl != null) url = sUrl;
initializeOnlineMeetings();
}
private String getServerUrl(String app) {
private void initializeOnlineMeetings() {
ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(SparkManager.getConnection());
DiscoverInfo discoverInfo;
String serverJid = SparkManager.getSessionManager().getServerAddress().toString();
try {
discoverInfo = discoManager.discoverInfo(JidCreate.domainBareFrom(serverJid));
} catch (Exception e) {
Log.debug("Unable to disco " + serverJid);
return;
}
if (discoverInfo == null) {
return;
}
boolean jitsiAvailable = discoverInfo.containsFeature("urn:xmpp:http:online-meetings#jitsi");
boolean galeneAvailable = discoverInfo.containsFeature("urn:xmpp:http:online-meetings#galene");
boolean ohunAvailable = discoverInfo.containsFeature("urn:xmpp:http:online-meetings#ohun");
String sUrl = null;
if (jitsiAvailable) {
sUrl = getServerUrl("jitsi");
} else if (galeneAvailable) {
sUrl = getServerUrl("galene");
} else if (ohunAvailable) {
sUrl = getServerUrl("ohun");
}
if (sUrl != null) {
url = sUrl;
}
}
private String getServerUrl(String app) {
String serverUrl = null;
try {
try {
QueryRequest request = new QueryRequest(app);
request.setTo(JidCreate.fromOrThrowUnchecked(SparkManager.getSessionManager().getServerAddress()));
request.setType(IQ.Type.get);
@ -152,7 +147,7 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
if (response.url != null) serverUrl = response.url + "/";
} catch (Exception e) {
Log.warning("Unable to get meet url from server for app type " + app);
Log.error("Unable to get meet url from server for app type " + app);
}
return serverUrl;
}
@ -160,13 +155,12 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
public void commit(String url) {
this.url = url;
props.setProperty("url", url);
try {
try {
FileOutputStream outputStream = new FileOutputStream(pluginsettings);
props.store(outputStream, "Properties");
outputStream.close();
} catch (Exception e) {
Log.warning("ofmeet-Error:", e);
Log.error("ofmeet-Error:", e);
}
}
@ -174,7 +168,7 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
{
try
{
Log.warning("shutdown");
Log.debug("shutdown");
chatManager.removeChatRoomListener(this);
ProviderManager.removeIQProvider("query", QueryRequest.NAMESPACE);
@ -183,27 +177,21 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
}
catch(Exception e)
{
Log.warning("shutdown ", e);
Log.error("shutdown ", e);
}
}
@Override
public void messageReceived(ChatRoom room, Message message) {
try {
Localpart roomId = room.getJid().getLocalpart();
String body = message.getBody();
int pos = body.indexOf("https://");
if ( pos > -1 && (body.contains("/" + roomId + "-") || body.contains("meeting")) ) {
if (pos > -1 && (body.contains("/" + roomId + "-") || body.contains("meeting"))) {
showInvitationAlert(message.getBody().substring(pos), room, roomId);
}
} catch (Exception e) {
// i don't care
} catch (Exception ignored) {
}
}
private void showInvitationAlert(final String meetUrl, final ChatRoom room, final CharSequence roomId)
@ -317,8 +305,7 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
});
} catch (Exception t) {
Log.warning("Error opening url " + newUrl, t);
Log.error("Error opening url " + newUrl, t);
}
}
@ -330,8 +317,7 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
public void chatRoomClosed(ChatRoom chatroom)
{
String roomId = chatroom.getBareJid().toString();
Log.warning("chatRoomClosed: " + roomId);
Log.debug("chatRoomClosed: " + roomId);
if (decorators.containsKey(roomId))
{
@ -349,29 +335,25 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
public void chatRoomActivated(ChatRoom chatroom)
{
String roomId = chatroom.getBareJid().toString();
Log.warning("chatRoomActivated: " + roomId);
Log.debug("chatRoomActivated: " + roomId);
}
public void userHasJoined(ChatRoom room, String s)
{
String roomId = room.getBareJid().toString();
Log.warning("userHasJoined: " + roomId + " " + s);
Log.debug("userHasJoined: " + roomId + " " + s);
}
public void userHasLeft(ChatRoom room, String s)
{
String roomId = room.getBareJid().toString();
Log.warning("userHasLeft: " + roomId + " " + s);
Log.debug("userHasLeft: " + roomId + " " + s);
}
public void chatRoomOpened(final ChatRoom room)
{
String roomId = room.getBareJid().toString();
Log.warning("chatRoomOpened: " + roomId);
Log.debug("chatRoomOpened: " + roomId);
if (roomId.indexOf('/') == -1)
{
@ -381,7 +363,7 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
private void checkNatives()
{
Log.warning("checkNatives");
Log.debug("checkNatives");
new Thread()
{
@ -432,7 +414,7 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
{
String filePath = electronHomePath + File.separator + entry.getName();
Log.warning("writing file..." + filePath);
Log.debug("writing file..." + filePath);
if (!entry.isDirectory())
{
@ -454,7 +436,7 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
}
zipIn.close();
Log.warning("Native lib folder created and natives extracted");
Log.debug("Native lib folder created and natives extracted");
}
else {
Log.warning("Native lib folder already exist.");
@ -474,7 +456,7 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
}
catch (Exception e)
{
Log.warning(e.getMessage(), e);
Log.error(e.getMessage(), e);
}
}

View File

@ -1,6 +1,5 @@
name= Online Meetings
name=Online Meetings
preference.sparkmeetEnabled = Enable Online Meetings
preference.url = Online Meetings Base URL
preference.title = Online Meetings Settings
preference.title=Online Meetings Settings
preference.url=Online Meetings Base URL

View File

@ -0,0 +1,4 @@
name=Онлайн встречи
preference.url=Базовый URL-адрес для онлайн встреч
preference.title=Настройки онлайн встреч

View File

@ -0,0 +1,4 @@
name=Онлайн зустрічі
preference.url=Базова URL-адреса для онлайн зустрічей
preference.title=Налаштування онлайн зустрічей