Project import generated by Copybara.

GitOrigin-RevId: c54f62a23f090b8f371ca3a42a2bb08da6a47214
This commit is contained in:
Madari Developers 2025-01-05 15:58:36 +00:00
parent 7d8a0c3137
commit f6de4ed23d
3 changed files with 24 additions and 10 deletions

View file

@ -32,13 +32,20 @@ class StremioConnectionService extends BaseConnectionService {
for (final addon in config.addons) {
final manifest = await _getManifest(addon);
print(manifest);
print(addon);
if (manifest.resources == null) {
continue;
}
List<String> idPrefixes = [];
bool isMeta = false;
for (final item in manifest.resources!) {
if (item.name == "meta") {
idPrefixes.addAll((item.idPrefix ?? []) + (item.idPrefixes ?? []));
isMeta = true;
break;
}
@ -48,10 +55,10 @@ class StremioConnectionService extends BaseConnectionService {
continue;
}
final ids = manifest.idPrefixes
?.firstWhere((item) => id.id.startsWith(item), orElse: () => "");
final ids = ((manifest.idPrefixes ?? []) + idPrefixes)
.firstWhere((item) => id.id.startsWith(item), orElse: () => "");
if (ids == null) {
if (ids.isEmpty) {
continue;
}
@ -61,6 +68,8 @@ class StremioConnectionService extends BaseConnectionService {
),
);
print("${_getAddonBaseURL(addon)}/meta/${(id).type}/${id.id}.json");
return StreamMetaResponse.fromJson(jsonDecode(result.body)).meta;
}
@ -303,7 +312,9 @@ class StremioConnectionService extends BaseConnectionService {
return false;
}
final idPrefixes = resource.idPrefixes ?? addonManifest.idPrefixes;
final idPrefixes =
resource.idPrefixes ?? addonManifest.idPrefixes ?? resource.idPrefix;
final types = resource.types ?? addonManifest.types;
if (types == null || !types.contains(meta.type)) {
@ -328,9 +339,10 @@ class StremioConnectionService extends BaseConnectionService {
String? episode,
StremioManifest addonManifest,
) {
String streamTitle =
(item.name != null ? "${item.name} ${item.title}" : item.title) ??
"No title";
String streamTitle = (item.name != null
? "${(item.name ?? "")} ${(item.title ?? "")}"
: item.title) ??
"No title";
try {
streamTitle = utf8.decode(streamTitle.runes.toList());

View file

@ -39,11 +39,13 @@ class ResourceObject {
final String name;
final List<String>? types;
final List<String>? idPrefixes;
final List<String>? idPrefix;
ResourceObject({
required this.name,
this.types,
this.idPrefixes,
this.idPrefix,
});
factory ResourceObject.fromJson(Map<String, dynamic> json) =>
@ -251,7 +253,7 @@ class Meta extends LibraryItem {
@JsonKey(name: "slug")
final String? slug;
@JsonKey(name: "year")
final String? year;
final dynamic year;
@JsonKey(name: "status")
final String? status;
@JsonKey(name: "tvdb_id")
@ -637,7 +639,7 @@ class Video {
@JsonKey(name: "season")
final int season;
@JsonKey(name: "number")
final int number;
final int? number;
@JsonKey(name: "firstAired")
final DateTime? firstAired;
@JsonKey(name: "tvdb_id")

View file

@ -236,7 +236,7 @@ class _StremioItemViewerState extends State<StremioItemViewer> {
children: [
if (item!.year != null)
Chip(
label: Text(item!.year!),
label: Text("${item!.year ?? ""}"),
backgroundColor: Colors.white24,
labelStyle: const TextStyle(
color: Colors.white),