Around July 3 plex.tv started returning the profile language-list fields (defaultAudioLanguages, defaultSubtitleLanguages, mediaReviewsLanguages) as comma-separated strings instead of arrays. The generated cast threw on the successful 201 /switch response, dropping the freshly minted Home user token: every rebind failed, the binder retried a /switch mint every 1-2s, and the app sat permanently in offline mode even after re-signing in. Accounts without language prefs set were unaffected, which is why the breakage looked sporadic. Parse the language lists with a CSV-aware coercion, and make UserSwitchResponse.fromJson strict only about authToken: decorative fields now coerce tolerantly and a broken profile blob falls back to defaults, so account-API drift can never brick token minting again. close #1488
43 lines
2.0 KiB
Dart
43 lines
2.0 KiB
Dart
// GENERATED CODE - DO NOT MODIFY BY HAND
|
|
|
|
part of 'plex_user_profile.dart';
|
|
|
|
// **************************************************************************
|
|
// JsonSerializableGenerator
|
|
// **************************************************************************
|
|
|
|
PlexUserProfile _$PlexUserProfileFromJson(
|
|
Map<String, dynamic> json,
|
|
) => PlexUserProfile(
|
|
autoSelectAudio: _boolOrTrue(json['autoSelectAudio']),
|
|
defaultAudioAccessibility: _intOr0(json['defaultAudioAccessibility']),
|
|
defaultAudioLanguage: _flexibleLanguage(json['defaultAudioLanguage']),
|
|
defaultAudioLanguages: flexibleCsvStringList(json['defaultAudioLanguages']),
|
|
defaultSubtitleLanguage: _flexibleLanguage(json['defaultSubtitleLanguage']),
|
|
defaultSubtitleLanguages: flexibleCsvStringList(
|
|
json['defaultSubtitleLanguages'],
|
|
),
|
|
autoSelectSubtitle: _intOr0(json['autoSelectSubtitle']),
|
|
defaultSubtitleAccessibility: _intOr0(json['defaultSubtitleAccessibility']),
|
|
defaultSubtitleForced: _intOr1(json['defaultSubtitleForced']),
|
|
watchedIndicator: _intOr1(json['watchedIndicator']),
|
|
mediaReviewsVisibility: _intOr0(json['mediaReviewsVisibility']),
|
|
mediaReviewsLanguages: flexibleCsvStringList(json['mediaReviewsLanguages']),
|
|
);
|
|
|
|
Map<String, dynamic> _$PlexUserProfileToJson(PlexUserProfile instance) =>
|
|
<String, dynamic>{
|
|
'autoSelectAudio': instance.autoSelectAudio,
|
|
'defaultAudioAccessibility': instance.defaultAudioAccessibility,
|
|
'defaultAudioLanguage': instance.defaultAudioLanguage,
|
|
'defaultAudioLanguages': instance.defaultAudioLanguages,
|
|
'defaultSubtitleLanguage': instance.defaultSubtitleLanguage,
|
|
'defaultSubtitleLanguages': instance.defaultSubtitleLanguages,
|
|
'autoSelectSubtitle': instance.autoSelectSubtitle,
|
|
'defaultSubtitleAccessibility': instance.defaultSubtitleAccessibility,
|
|
'defaultSubtitleForced': instance.defaultSubtitleForced,
|
|
'watchedIndicator': instance.watchedIndicator,
|
|
'mediaReviewsVisibility': instance.mediaReviewsVisibility,
|
|
'mediaReviewsLanguages': instance.mediaReviewsLanguages,
|
|
};
|