mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 16:05:18 +00:00

- Updated database schema to include `repository` and `pluginApiVersion` columns in the `MetadataPluginsTable`. - Modified `PluginConfiguration` model to include new fields for `repository` and `pluginApiVersion`. - Enhanced JSON serialization and deserialization for the new fields in `PluginConfiguration`. - Refactored `SettingsMetadataProviderPage` to display installed plugins with their repository information. - Created new components `MetadataInstalledPluginItem` and `MetadataPluginRepositoryItem` for better UI representation of plugins. - Updated plugin installation logic to handle new fields and display relevant information. - Bumped `youtube_explode_dart` dependency version to `2.5.1`.
31 lines
835 B
Dart
31 lines
835 B
Dart
part of 'metadata.dart';
|
|
|
|
enum PluginType { metadata }
|
|
|
|
enum PluginApis { webview, localstorage, timezone }
|
|
|
|
enum PluginAbilities { authentication }
|
|
|
|
@freezed
|
|
class PluginConfiguration with _$PluginConfiguration {
|
|
const PluginConfiguration._();
|
|
|
|
factory PluginConfiguration({
|
|
required PluginType type,
|
|
required String name,
|
|
required String description,
|
|
required String version,
|
|
required String author,
|
|
required String entryPoint,
|
|
required String pluginApiVersion,
|
|
@Default([]) List<PluginApis> apis,
|
|
@Default([]) List<PluginAbilities> abilities,
|
|
String? repository,
|
|
}) = _PluginConfiguration;
|
|
|
|
factory PluginConfiguration.fromJson(Map<String, dynamic> json) =>
|
|
_$PluginConfigurationFromJson(json);
|
|
|
|
String get slug => name.toLowerCase().replaceAll(RegExp(r'[^a-z0-9]+'), '-');
|
|
}
|