- // ==UserScript==
- // @name Twitter Labs
- // @description Enable hidden Twitter PWA feature flags (Chromium only!)
- // @author Darek
- // @namespace
- // @version 1.0
- // @date 2021-05-2
-
- // @icon https://script.sominemo.com/twitter_labs/icon.png
- // @icon64 https://script.sominemo.com/twitter_labs/icon64.png
-
- // @run-at document-start
- // @match https://twitter.com/*
- // @match https://mobile.twitter.com/*
-
- // @grant GM_registerMenuCommand
- // @grant GM_unregisterMenuCommand
- // @grant unsafeWindow
- // ==/UserScript==
-
- (function() {
- 'use strict';
- Object.defineProperty(
- unsafeWindow,
- "__INITIAL_STATE__",
- {
- set(s) {
- const curMode = unsafeWindow.localStorage.getItem("twitter-labs-replace-mode") || "0"
-
- const rewrites = {
- conversation_controls_limited_replies_creation_enabled: true,
- responsive_web_composer_card_previews_enabled: true,
- responsive_web_conversation_tree_enabled: true,
- responsive_web_conversation_tree_toggle: true,
- responsive_web_dm_quick_access_enabled: true,
- responsive_web_hide_media_previews_enabled: true,
- responsive_web_dm_quick_access_with_close_enabled: true,
- responsive_web_dm_quick_access_no_empty_drawer_enabled: true,
- responsive_web_elevated_qt_combined_retweets_dynamic_label: true,
- dm_reactions_config_active_reactions: [
- "😂:funny",
- "😲:surprised",
- "😢:sad",
- "❤:like",
- "🔥:excited",
- "👍:agree",
- "👎:disagree",
- "😠:angry",
- ],
- dm_reactions_config_inactive_reactions: [],
- responsive_web_feature_switch_dash_enabled: true,
- responsive_web_hw_cards_in_dms_enabled: true,
- responsive_web_inline_reply_enabled: true,
- responsive_web_inline_reply_with_fab_enabled: true,
- responsive_web_instream_video_enabled: true,
- responsive_web_live_video_parity_periscope_auth_enabled: true,
- responsive_web_moment_maker_enabled: true,
- responsive_web_ntab_verified_mentions_vit_internal_dogfood: true,
- responsive_web_second_degree_replies_nudge_get_enabled: true,
- responsive_web_second_degree_replies_nudge_force_enabled: true,
- responsive_web_second_degree_replies_nudge_show_enabled: true,
- responsive_web_tweet_detail_to_tweet_enabled: true,
- responsive_web_zipkin_api_requests_enabled: true,
- search_channels_discovery_page_enabled: true,
- search_channels_description_enabled: true,
- topic_landing_page_enabled: true,
- topics_descriptions_enabled: true,
- topics_dismiss_control_enabled: true,
- topics_new_mgmt_enabled: true,
- unified_cards_cta_color_blue_cta: true,
- }
-
- if (curMode === "1") {
- Object.entries(s.featureSwitch.config).forEach(([key, {value}]) => {
- if (value === false) s.featureSwitch.config[key] = {value: true}
- })
- } else {
- Object.entries(rewrites).forEach(([key, value]) => {s.featureSwitch.config[key] = {value}})
- }
-
- unsafeWindow.fakeInit = s
- },
- get() {return unsafeWindow.fakeInit},
- configurable: true
- })
-
-
- let curCommand = null
- let sw
- function updatePalette() {
- const curMode = unsafeWindow.localStorage.getItem("twitter-labs-replace-mode") || "0"
- if (curCommand !== null) GM_unregisterMenuCommand(curCommand)
- if (curMode === "0") curCommand = GM_registerMenuCommand("Use false-to-true mode", sw)
- if (curMode === "1") curCommand = GM_registerMenuCommand("Use manual rewrites mode", sw)
- }
- sw = () => {
- const curMode = unsafeWindow.localStorage.getItem("twitter-labs-replace-mode") || "0"
- if (curMode === "0") {
- unsafeWindow.localStorage.setItem("twitter-labs-replace-mode", "1")
- updatePalette()
- unsafeWindow.location.reload()
- }
- else if (curMode === "1") {
- unsafeWindow.localStorage.setItem("twitter-labs-replace-mode", "0")
- updatePalette()
- unsafeWindow.location.reload()
- }
- }
- updatePalette()
- })();