Fix type casting errors for Xtream API
This commit is contained in:
@@ -7,11 +7,18 @@ class XtreamCategory {
|
|||||||
factory XtreamCategory.fromJson(Map<String, dynamic> json) {
|
factory XtreamCategory.fromJson(Map<String, dynamic> json) {
|
||||||
return XtreamCategory(
|
return XtreamCategory(
|
||||||
id: json['category_id']?.toString() ?? '',
|
id: json['category_id']?.toString() ?? '',
|
||||||
name: json['category_name'] ?? '',
|
name: json['category_name']?.toString() ?? '',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int _parseInt(dynamic value) {
|
||||||
|
if (value == null) return 0;
|
||||||
|
if (value is int) return value;
|
||||||
|
if (value is String) return int.tryParse(value) ?? 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
class XtreamStream {
|
class XtreamStream {
|
||||||
final int streamId;
|
final int streamId;
|
||||||
final String name;
|
final String name;
|
||||||
@@ -33,12 +40,12 @@ class XtreamStream {
|
|||||||
|
|
||||||
factory XtreamStream.fromJson(Map<String, dynamic> json) {
|
factory XtreamStream.fromJson(Map<String, dynamic> json) {
|
||||||
return XtreamStream(
|
return XtreamStream(
|
||||||
streamId: json['stream_id'] ?? 0,
|
streamId: _parseInt(json['stream_id']),
|
||||||
name: json['name'] ?? '',
|
name: json['name']?.toString() ?? '',
|
||||||
streamIcon: json['stream_icon'],
|
streamIcon: json['stream_icon']?.toString(),
|
||||||
plot: json['plot'],
|
plot: json['plot']?.toString(),
|
||||||
rating: json['rating'],
|
rating: json['rating']?.toString(),
|
||||||
containerExtension: json['container_extension'],
|
containerExtension: json['container_extension']?.toString(),
|
||||||
url: null,
|
url: null,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -75,11 +82,11 @@ class XtreamSeries {
|
|||||||
|
|
||||||
factory XtreamSeries.fromJson(Map<String, dynamic> json) {
|
factory XtreamSeries.fromJson(Map<String, dynamic> json) {
|
||||||
return XtreamSeries(
|
return XtreamSeries(
|
||||||
seriesId: json['series_id'] ?? 0,
|
seriesId: _parseInt(json['series_id']),
|
||||||
name: json['name'] ?? '',
|
name: json['name']?.toString() ?? '',
|
||||||
cover: json['cover'],
|
cover: json['cover']?.toString(),
|
||||||
plot: json['plot'],
|
plot: json['plot']?.toString(),
|
||||||
rating: json['rating'],
|
rating: json['rating']?.toString(),
|
||||||
seasons: [],
|
seasons: [],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -113,12 +120,12 @@ class XtreamEpisode {
|
|||||||
|
|
||||||
factory XtreamEpisode.fromJson(Map<String, dynamic> json) {
|
factory XtreamEpisode.fromJson(Map<String, dynamic> json) {
|
||||||
return XtreamEpisode(
|
return XtreamEpisode(
|
||||||
episodeId: json['id'] ?? 0,
|
episodeId: _parseInt(json['id']),
|
||||||
seasonNumber: json['season'] ?? 0,
|
seasonNumber: _parseInt(json['season']),
|
||||||
episodeNumber: json['episode_num'] ?? 0,
|
episodeNumber: _parseInt(json['episode_num']),
|
||||||
title: json['title'] ?? '',
|
title: json['title']?.toString() ?? '',
|
||||||
info: json['info'],
|
info: json['info']?.toString(),
|
||||||
containerExtension: json['container_extension'],
|
containerExtension: json['container_extension']?.toString(),
|
||||||
url: null,
|
url: null,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -146,13 +153,13 @@ class XtreamUserInfo {
|
|||||||
factory XtreamUserInfo.fromJson(Map<String, dynamic> json) {
|
factory XtreamUserInfo.fromJson(Map<String, dynamic> json) {
|
||||||
final userInfo = json['user_info'] ?? json;
|
final userInfo = json['user_info'] ?? json;
|
||||||
return XtreamUserInfo(
|
return XtreamUserInfo(
|
||||||
username: userInfo['username'] ?? '',
|
username: userInfo['username']?.toString() ?? '',
|
||||||
password: userInfo['password'] ?? '',
|
password: userInfo['password']?.toString() ?? '',
|
||||||
maxConnections: int.tryParse(userInfo['max_connections']?.toString() ?? '1') ?? 1,
|
maxConnections: _parseInt(userInfo['max_connections']),
|
||||||
activeCons: int.tryParse(userInfo['active_cons']?.toString() ?? '0') ?? 0,
|
activeCons: _parseInt(userInfo['active_cons']),
|
||||||
isTrial: userInfo['is_trial'] == '1',
|
isTrial: userInfo['is_trial']?.toString() == '1',
|
||||||
expDate: userInfo['exp_date'],
|
expDate: userInfo['exp_date'] != null ? _parseInt(userInfo['exp_date']) : null,
|
||||||
status: userInfo['status'] ?? '',
|
status: userInfo['status']?.toString() ?? '',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user