mirror of
https://github.com/madari-media/madari-oss.git
synced 2026-04-20 14:12:04 +00:00
Project import generated by Copybara.
GitOrigin-RevId: c54f62a23f090b8f371ca3a42a2bb08da6a47214
This commit is contained in:
parent
7d8a0c3137
commit
f6de4ed23d
3 changed files with 24 additions and 10 deletions
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
Loading…
Reference in a new issue