Skip to content

Commit

Permalink
add some inconsistency check when loading/importing accounts.
Browse files Browse the repository at this point in the history
  • Loading branch information
j-fbriere committed Feb 15, 2024
1 parent 3841e37 commit 54914ff
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 8 deletions.
33 changes: 27 additions & 6 deletions lib/client/client_account.dart
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,13 @@ class TwitterAccount {
email: twitterProfilesDbData[i]['email'] as String?,
phone: twitterProfilesDbData[i]['phone'] as String?
);
_twitterProfileLst.add(tpe);
if (tpe.username.isNotEmpty && tpe.password.isNotEmpty) {
_twitterProfileLst.add(tpe);
}
else {
// this should not happens, but you nerver know...
// maybe there was some manipulation importing data?
}
}
var twitterTokensDbData = await repository.query(tableTwitterToken);
_twitterTokenLst.clear();
Expand All @@ -71,13 +77,28 @@ class TwitterAccount {
oauthTokenSecret: twitterTokensDbData[i]['oauth_token_secret'] as String,
createdAt: DateTime.parse(twitterTokensDbData[i]['created_at'] as String)
);
if (!tte.guest) {
TwitterProfileEntity? twitterProfile = _twitterProfileLst.firstWhereOrNull((e) => e.username == tte.screenName);
if (twitterProfile != null) {
tte.profile = twitterProfile;

if (tte.oauthToken.isNotEmpty && tte.oauthTokenSecret.isNotEmpty) {
if (!tte.guest) {
TwitterProfileEntity? twitterProfile = _twitterProfileLst.firstWhereOrNull((e) => e.username == tte.screenName);
if (twitterProfile != null) {
tte.profile = twitterProfile;
_twitterTokenLst.add(tte);
}
else {
// this should not happens, but you nerver know...
// maybe there was some manipulation importing data?
}
}
else {
_twitterTokenLst.add(tte);
}
}
_twitterTokenLst.add(tte);
else {
// this should not happens, but you nerver know...
// maybe there was some manipulation importing data?
}

}
if (_twitterTokenLst.isNotEmpty) {
sortAccounts();
Expand Down
7 changes: 5 additions & 2 deletions lib/settings/_data.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,13 @@ class SettingsData {
List<TwitterTokenEntity>? twtTokens;
// guestAccounts from previous versions
if (json['guestAccounts'] != null) {
twtTokens = List.from(json['guestAccounts']).map((e) => TwitterTokenEntity.fromMap(e)).toList();
// make sure to filter out the badly manipulated files
twtTokens = List.from(json['guestAccounts']).map((e) => TwitterTokenEntity.fromMap(e)).where((e) => e.guest && e.profile == null).toList();
}
if (json['twitterTokens'] != null) {
twtTokens ??= await Future.wait(List.from(json['twitterTokens']).map((e) async => TwitterTokenEntity.fromMapSecured(e)).toList());
// make sure to filter out the badly manipulated files
twtTokens ??= (await Future.wait(List.from(json['twitterTokens']).map((e) async => TwitterTokenEntity.fromMapSecured(e))))
.where((e) => (e.guest && e.profile == null) || (!e.guest && e.profile != null && e.profile!.username.isNotEmpty && e.profile!.password.isNotEmpty)).toList();
}
return SettingsData(
settings: json['settings'],
Expand Down

0 comments on commit 54914ff

Please sign in to comment.