Files
plezy/lib/models/plex/plex_user_profile.g.dart
T
edde746 96510f8aac fix(plex): tolerate account-API schema drift in profile and switch parsing
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
2026-07-05 06:23:34 +02:00

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,
};