mirror of
https://gitlab.futo.org/videostreaming/grayjay.git
synced 2026-05-16 04:52:39 +02:00
Merge branch 'plugin-init-failures' into 'master'
Handle plugin init failures per source See merge request videostreaming/grayjay!168
This commit is contained in:
@@ -199,17 +199,25 @@ class StatePlatform {
|
||||
StatePlugins.instance.installMissingEmbeddedPlugins(context);
|
||||
|
||||
for (plugin in StatePlugins.instance.getPlugins()) {
|
||||
_icons[plugin.config.id] = StatePlugins.instance.getPluginIconOrNull(plugin.config.id) ?:
|
||||
ImageVariable(plugin.config.absoluteIconUrl, null);
|
||||
_iconsByName[plugin.config.name.lowercase()] = StatePlugins.instance.getPluginIconOrNull(plugin.config.id) ?:
|
||||
ImageVariable(plugin.config.absoluteIconUrl, null);
|
||||
|
||||
try {
|
||||
val client = JSClient(context, plugin);
|
||||
client.onCaptchaException.subscribe { c, ex ->
|
||||
StateApp.instance.handleCaptchaException(c, ex);
|
||||
}
|
||||
|
||||
_icons[plugin.config.id] = StatePlugins.instance.getPluginIconOrNull(plugin.config.id) ?:
|
||||
ImageVariable(plugin.config.absoluteIconUrl, null);
|
||||
_iconsByName[plugin.config.name.lowercase()] = StatePlugins.instance.getPluginIconOrNull(plugin.config.id) ?:
|
||||
ImageVariable(plugin.config.absoluteIconUrl, null);
|
||||
_availableClients.add(client);
|
||||
}
|
||||
catch(ex: Throwable) {
|
||||
Logger.e(TAG, "Failed to initialize plugin [${plugin.config.name}]", ex);
|
||||
StateApp.instance.scopeOrNull?.launch(Dispatchers.Main) {
|
||||
UIDialogs.toast("Plugin ${plugin.config.name} failed to load\n${ex.message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(_availableClients.distinctBy { it.id }.count() < _availableClients.size) {
|
||||
val dups = _availableClients.filter { x-> _availableClients.count { it.id == x.id } > 1 };
|
||||
|
||||
Reference in New Issue
Block a user