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);
|
StatePlugins.instance.installMissingEmbeddedPlugins(context);
|
||||||
|
|
||||||
for (plugin in StatePlugins.instance.getPlugins()) {
|
for (plugin in StatePlugins.instance.getPlugins()) {
|
||||||
_icons[plugin.config.id] = StatePlugins.instance.getPluginIconOrNull(plugin.config.id) ?:
|
try {
|
||||||
ImageVariable(plugin.config.absoluteIconUrl, null);
|
|
||||||
_iconsByName[plugin.config.name.lowercase()] = StatePlugins.instance.getPluginIconOrNull(plugin.config.id) ?:
|
|
||||||
ImageVariable(plugin.config.absoluteIconUrl, null);
|
|
||||||
|
|
||||||
val client = JSClient(context, plugin);
|
val client = JSClient(context, plugin);
|
||||||
client.onCaptchaException.subscribe { c, ex ->
|
client.onCaptchaException.subscribe { c, ex ->
|
||||||
StateApp.instance.handleCaptchaException(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);
|
_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) {
|
if(_availableClients.distinctBy { it.id }.count() < _availableClients.size) {
|
||||||
val dups = _availableClients.filter { x-> _availableClients.count { it.id == x.id } > 1 };
|
val dups = _availableClients.filter { x-> _availableClients.count { it.id == x.id } > 1 };
|
||||||
|
|||||||
Reference in New Issue
Block a user