Skip to content

Commit 152ea1b

Browse files
committed
show verified icon next to verified orgs on profile page
1 parent 084e279 commit 152ea1b

File tree

5 files changed

+271
-254
lines changed

5 files changed

+271
-254
lines changed

lib/client/client.dart

+29-20
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ class _QuackerTwitterClient extends TwitterClient {
3030
if (response?.statusCode != null && response!.statusCode >= 200 && response.statusCode < 300) {
3131
return response;
3232
} else {
33-
print(response?.body);
3433
return Future.error(HttpException(response?.body ?? response?.statusCode.toString() ?? ""));
3534
}
3635
});
@@ -114,7 +113,7 @@ class Twitter {
114113
};
115114

116115
static Map<String, bool> gqlFeatures = {
117-
"blue_business_profile_image_shape_enabled": false,
116+
"blue_business_profile_image_shape_enabled": true,
118117
"freedom_of_speech_not_reach_fetch_enabled": false,
119118
"graphql_is_translatable_rweb_tweet_is_translatable_enabled": false,
120119
"interactive_text_enabled": false,
@@ -136,7 +135,7 @@ class Twitter {
136135
"tweetypie_unmention_optimization_enabled": false,
137136
"verified_phone_label_enabled": false,
138137
"vibe_api_enabled": false,
139-
"view_counts_everywhere_api_enabled": false
138+
"view_counts_everywhere_api_enabled": true
140139
};
141140

142141
static Future<Profile> getProfileById(String id) async {
@@ -150,22 +149,30 @@ class Twitter {
150149
'features': jsonEncode({
151150
'responsive_web_graphql_timeline_navigation_enabled': true,
152151
'responsive_web_twitter_blue_verified_badge_is_enabled': true,
153-
'verified_phone_label_enabled': false,
152+
'verified_phone_label_enabled': true,
154153
})
155154
});
156155

157156
return _getProfile(uri);
158157
}
159158

160159
static Future<Profile> getProfileByScreenName(String screenName) async {
161-
var uri = Uri.https('twitter.com', '/i/api/graphql/vG3rchZtwqiwlKgUYCrTRA/UserByScreenName', {
162-
'variables': jsonEncode({
163-
'screen_name': screenName,
164-
'withHighlightedLabel': true,
165-
'withSafetyModeUserFields': true,
166-
'withSuperFollowsUserFields': true
167-
}),
168-
'features': jsonEncode({'responsive_web_graphql_timeline_navigation_enabled': false})
160+
var uri = Uri.https('twitter.com', '/i/api/graphql/qW5u-DAuXpMEG0zA1F7UGQ/UserByScreenName', {
161+
'variables': jsonEncode({'screen_name': screenName, "withSafetyModeUserFields": true}),
162+
'features': jsonEncode({
163+
"hidden_profile_likes_enabled": true,
164+
"hidden_profile_subscriptions_enabled": true,
165+
"rweb_tipjar_consumption_enabled": true,
166+
"responsive_web_graphql_exclude_directive_enabled": true,
167+
"verified_phone_label_enabled": false,
168+
"subscriptions_verification_info_is_identity_verified_enabled": true,
169+
"subscriptions_verification_info_verified_since_enabled": true,
170+
"highlights_tweets_tab_ui_enabled": true,
171+
"responsive_web_twitter_article_notes_tab_enabled": true,
172+
"creator_subscriptions_tweet_preview_api_enabled": true,
173+
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
174+
"responsive_web_graphql_timeline_navigation_enabled": true
175+
})
169176
});
170177

171178
return _getProfile(uri);
@@ -209,6 +216,8 @@ class Twitter {
209216
}
210217
}
211218

219+
Logger.detached("").info(result);
220+
212221
var user = UserWithExtra.fromJson(
213222
{...result['legacy'], 'id_str': result['rest_id'], 'ext_is_blue_verified': result['is_blue_verified']});
214223
var pins = List<String>.from(result['legacy']['pinned_tweet_ids_str']);
@@ -324,9 +333,9 @@ class Twitter {
324333
static Future<TweetStatus> getTweet(String id, {String? cursor}) async {
325334
Map<String, Object> defaultParam = {
326335
"variables":
327-
"{\"focalTweetId\":\"1696081434153214389\",\"referrer\":\"profile\",\"controller_data\":\"DAACDAABDAABCgABAAAAAAAAAAAKAAkNObspUxawBQAAAAA=\",\"with_rux_injections\":false,\"includePromotedContent\":true,\"withCommunity\":true,\"withQuickPromoteEligibilityTweetFields\":true,\"withBirdwatchNotes\":true,\"withVoice\":true,\"withV2Timeline\":true}",
336+
"{\"focalTweetId\":\"1696081434153214389\",\"referrer\":\"profile\",\"controller_data\":\"DAACDAABDAABCgABAAAAAAAAAAAKAAkNObspUxawBQAAAAA=\",\"with_rux_injections\":false,\"includePromotedContent\":false,\"withCommunity\":true,\"withQuickPromoteEligibilityTweetFields\":true,\"withBirdwatchNotes\":true,\"withVoice\":true,\"withV2Timeline\":true}",
328337
"features":
329-
"{\"rweb_lists_timeline_redesign_enabled\":true,\"responsive_web_graphql_exclude_directive_enabled\":true,\"verified_phone_label_enabled\":false,\"creator_subscriptions_tweet_preview_api_enabled\":true,\"responsive_web_graphql_timeline_navigation_enabled\":true,\"responsive_web_graphql_skip_user_profile_image_extensions_enabled\":false,\"tweetypie_unmention_optimization_enabled\":true,\"responsive_web_edit_tweet_api_enabled\":true,\"graphql_is_translatable_rweb_tweet_is_translatable_enabled\":true,\"view_counts_everywhere_api_enabled\":true,\"longform_notetweets_consumption_enabled\":true,\"responsive_web_twitter_article_tweet_consumption_enabled\":false,\"tweet_awards_web_tipping_enabled\":false,\"freedom_of_speech_not_reach_fetch_enabled\":true,\"standardized_nudges_misinfo\":true,\"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled\":true,\"longform_notetweets_rich_text_read_enabled\":true,\"longform_notetweets_inline_media_enabled\":true,\"responsive_web_media_download_video_enabled\":false,\"responsive_web_enhance_cards_enabled\":false}",
338+
"{\"rweb_lists_timeline_redesign_enabled\":true,\"responsive_web_graphql_exclude_directive_enabled\":true,\"verified_phone_label_enabled\":true,\"creator_subscriptions_tweet_preview_api_enabled\":true,\"responsive_web_graphql_timeline_navigation_enabled\":true,\"responsive_web_graphql_skip_user_profile_image_extensions_enabled\":false,\"tweetypie_unmention_optimization_enabled\":true,\"responsive_web_edit_tweet_api_enabled\":true,\"graphql_is_translatable_rweb_tweet_is_translatable_enabled\":true,\"view_counts_everywhere_api_enabled\":true,\"longform_notetweets_consumption_enabled\":true,\"responsive_web_twitter_article_tweet_consumption_enabled\":false,\"tweet_awards_web_tipping_enabled\":false,\"freedom_of_speech_not_reach_fetch_enabled\":true,\"standardized_nudges_misinfo\":true,\"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled\":true,\"longform_notetweets_rich_text_read_enabled\":true,\"longform_notetweets_inline_media_enabled\":true,\"responsive_web_media_download_video_enabled\":false,\"responsive_web_enhance_cards_enabled\":false}",
330339
"fieldToggles": "{\"withArticleRichContentState\":false}"
331340
};
332341

@@ -386,7 +395,7 @@ class Twitter {
386395

387396
var features = {
388397
"responsive_web_graphql_exclude_directive_enabled": true,
389-
"verified_phone_label_enabled": false,
398+
"verified_phone_label_enabled": true,
390399
"creator_subscriptions_tweet_preview_api_enabled": true,
391400
"responsive_web_graphql_timeline_navigation_enabled": true,
392401
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
@@ -438,7 +447,7 @@ class Twitter {
438447

439448
var searchFeatures = {
440449
"responsive_web_graphql_exclude_directive_enabled": true,
441-
"verified_phone_label_enabled": false,
450+
"verified_phone_label_enabled": true,
442451
"creator_subscriptions_tweet_preview_api_enabled": true,
443452
"responsive_web_graphql_timeline_navigation_enabled": true,
444453
"responsive_web_graphql_skip_user_profile_image_extensions_enabled": false,
@@ -531,9 +540,9 @@ class Twitter {
531540
bool showPinnedTweet = true;
532541
Map<String, Object> defaultUserTweetsParam = {
533542
"variables":
534-
"{\"userId\":\"160534877\",\"count\":$count,\"includePromotedContent\":true,\"withQuickPromoteEligibilityTweetFields\":true,\"withVoice\":true,\"withV2Timeline\":true}",
543+
"{\"userId\":\"160534877\",\"count\":$count,\"includePromotedContent\":false,\"withQuickPromoteEligibilityTweetFields\":true,\"withVoice\":true,\"withV2Timeline\":true}",
535544
"features":
536-
"{\"rweb_lists_timeline_redesign_enabled\":true,\"responsive_web_graphql_exclude_directive_enabled\":true,\"verified_phone_label_enabled\":false,\"creator_subscriptions_tweet_preview_api_enabled\":true,\"responsive_web_graphql_timeline_navigation_enabled\":true,\"responsive_web_graphql_skip_user_profile_image_extensions_enabled\":false,\"tweetypie_unmention_optimization_enabled\":true,\"responsive_web_edit_tweet_api_enabled\":true,\"graphql_is_translatable_rweb_tweet_is_translatable_enabled\":true,\"view_counts_everywhere_api_enabled\":true,\"longform_notetweets_consumption_enabled\":true,\"responsive_web_twitter_article_tweet_consumption_enabled\":false,\"tweet_awards_web_tipping_enabled\":false,\"freedom_of_speech_not_reach_fetch_enabled\":true,\"standardized_nudges_misinfo\":true,\"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled\":true,\"longform_notetweets_rich_text_read_enabled\":true,\"longform_notetweets_inline_media_enabled\":true,\"responsive_web_media_download_video_enabled\":false,\"responsive_web_enhance_cards_enabled\":false}",
545+
"{\"rweb_lists_timeline_redesign_enabled\":true,\"responsive_web_graphql_exclude_directive_enabled\":true,\"verified_phone_label_enabled\":true,\"creator_subscriptions_tweet_preview_api_enabled\":true,\"responsive_web_graphql_timeline_navigation_enabled\":true,\"responsive_web_graphql_skip_user_profile_image_extensions_enabled\":false,\"tweetypie_unmention_optimization_enabled\":true,\"responsive_web_edit_tweet_api_enabled\":true,\"graphql_is_translatable_rweb_tweet_is_translatable_enabled\":true,\"view_counts_everywhere_api_enabled\":true,\"longform_notetweets_consumption_enabled\":true,\"responsive_web_twitter_article_tweet_consumption_enabled\":false,\"tweet_awards_web_tipping_enabled\":false,\"freedom_of_speech_not_reach_fetch_enabled\":true,\"standardized_nudges_misinfo\":true,\"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled\":true,\"longform_notetweets_rich_text_read_enabled\":true,\"longform_notetweets_inline_media_enabled\":true,\"responsive_web_media_download_video_enabled\":false,\"responsive_web_enhance_cards_enabled\":false}",
537546
"fieldToggles": "{\"withAuxiliaryUserLabels\":false,\"withArticleRichContentState\":false}"
538547
};
539548

@@ -578,9 +587,9 @@ class Twitter {
578587

579588
Map<String, Object> defaultUserTweetsParam = {
580589
"variables":
581-
"{\"userId\":\"160534877\",\"count\":20,\"includePromotedContent\":true,\"withQuickPromoteEligibilityTweetFields\":true,\"withVoice\":true,\"withV2Timeline\":true}",
590+
"{\"userId\":\"160534877\",\"count\":20,\"includePromotedContent\":false,\"withQuickPromoteEligibilityTweetFields\":true,\"withVoice\":true,\"withV2Timeline\":true}",
582591
"features":
583-
"{\"rweb_lists_timeline_redesign_enabled\":true,\"responsive_web_graphql_exclude_directive_enabled\":true,\"verified_phone_label_enabled\":false,\"creator_subscriptions_tweet_preview_api_enabled\":true,\"responsive_web_graphql_timeline_navigation_enabled\":true,\"responsive_web_graphql_skip_user_profile_image_extensions_enabled\":false,\"tweetypie_unmention_optimization_enabled\":true,\"responsive_web_edit_tweet_api_enabled\":true,\"graphql_is_translatable_rweb_tweet_is_translatable_enabled\":true,\"view_counts_everywhere_api_enabled\":true,\"longform_notetweets_consumption_enabled\":true,\"responsive_web_twitter_article_tweet_consumption_enabled\":false,\"tweet_awards_web_tipping_enabled\":false,\"freedom_of_speech_not_reach_fetch_enabled\":true,\"standardized_nudges_misinfo\":true,\"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled\":true,\"longform_notetweets_rich_text_read_enabled\":true,\"longform_notetweets_inline_media_enabled\":true,\"responsive_web_media_download_video_enabled\":false,\"responsive_web_enhance_cards_enabled\":false}",
592+
"{\"rweb_lists_timeline_redesign_enabled\":true,\"responsive_web_graphql_exclude_directive_enabled\":true,\"verified_phone_label_enabled\":true,\"creator_subscriptions_tweet_preview_api_enabled\":true,\"responsive_web_graphql_timeline_navigation_enabled\":true,\"responsive_web_graphql_skip_user_profile_image_extensions_enabled\":false,\"tweetypie_unmention_optimization_enabled\":true,\"responsive_web_edit_tweet_api_enabled\":true,\"graphql_is_translatable_rweb_tweet_is_translatable_enabled\":true,\"view_counts_everywhere_api_enabled\":true,\"longform_notetweets_consumption_enabled\":true,\"responsive_web_twitter_article_tweet_consumption_enabled\":false,\"tweet_awards_web_tipping_enabled\":false,\"freedom_of_speech_not_reach_fetch_enabled\":true,\"standardized_nudges_misinfo\":true,\"tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled\":true,\"longform_notetweets_rich_text_read_enabled\":true,\"longform_notetweets_inline_media_enabled\":true,\"responsive_web_media_download_video_enabled\":false,\"responsive_web_enhance_cards_enabled\":false}",
584593
"fieldToggles": "{\"withAuxiliaryUserLabels\":false,\"withArticleRichContentState\":false}"
585594
};
586595

lib/client/client_regular_account.dart

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ Future<Map<dynamic, dynamic>?> getAuthHeader(BasePrefService prefs) async {
2626
if (accounts.isNotEmpty) {
2727
Account account = Account.fromMap(accounts[Random().nextInt(accounts.length)]);
2828
final authHeader = Map.castFrom<String, dynamic, String, String>(json.decode(account.authHeader));
29-
Logger("").info(authHeader);
3029

3130
return authHeader;
3231
} else {

lib/client/login_webview.dart

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ class _TwitterLoginWebviewState extends State<TwitterLoginWebview> {
2828
onUrlChange: (change) async {
2929
if (change.url == "https://twitter.com/home") {
3030
final cookies = await webviewCookieManager.getCookies("https://twitter.com/i/flow/login");
31-
Logger("").info(cookies);
3231

3332
try {
3433
final expCt0 = RegExp(r'(ct0=(.+?));');

0 commit comments

Comments
 (0)