mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-08-17 00:31:42 +02:00
.github
.idea
bld
lib
linux
resources
Content
api
error
images
introduction
login
notification
plugins
tweetdeck
globals
apply_rot13.js
get_class_style_property.js
get_column_name.js
get_hovered_column.js
get_hovered_tweet.js
inject_mustache.js
prioritize_newest_event.js
reload_browser.js
reload_columns.js
retrieve_tweet.js
show_tweet_detail.js
user_nft_status.js
add_tweetduck_to_settings_menu.js
bypass_t.co_links.js
clear_search_input.js
configure_first_day_of_week.js
configure_language_for_translations.js
disable_clipboard_formatting.js
disable_td_metrics.js
disable_tweetdeck_preview.js
drag_links_onto_columns.js
expand_links_or_show_tooltip.js
fix_dm_input_box_focus.js
fix_horizontal_scrolling_of_column_container.js
fix_marking_dm_as_read_when_replying.js
fix_media_preview_urls.js
fix_missing_bing_translator_languages.js
fix_os_name.js
fix_scheduled_tweets_not_appearing.js
fix_youtube_previews.js
focus_composer_after_alt_tab.js
focus_composer_after_image_upload.js
focus_composer_after_switching_account.js
handle_extra_mouse_buttons.js
hook_theme_settings.js
inject_css.js
keep_like_follow_dialogs_open.js
limit_loaded_dm_count.js
make_retweets_lowercase.js
middle_click_tweet_icon_actions.js
move_accounts_above_hashtags_in_search.js
mute_accounts_with_nft_avatars.js
offline_notification.js
open_search_externally.js
open_search_in_first_column.js
paste_images_from_clipboard.js
perform_search.js
pin_composer_icon.js
ready_plugins.js
register_composer_active_event.js
register_global_functions.js
register_global_functions_jquery.js
restore_cleared_column.js
screenshot_tweet.js
setup_column_type_attributes.js
setup_desktop_notifications.js
setup_link_context_menu.js
setup_sound_notifications.js
setup_tweet_context_menu.js
setup_tweetduck_account_bamboozle.js
setup_video_player.js
skip_pre_login_page.js
tweetdeck.css
tweetdeck_preview_warning.js
update
.all.js
bootstrap.js
load.js
Design
Guide
Plugins
..code-workspace
windows
.gitattributes
.gitignore
LICENSE.md
README.md
TweetDuck.sln
TweetDuck.sln.DotSettings
Version.cs
global.json
48 lines
1.0 KiB
JavaScript
48 lines
1.0 KiB
JavaScript
import { TD } from "../../api/td.js";
|
|
import { crashDebug } from "../../api/utils.js";
|
|
|
|
/**
|
|
* Injects custom HTML into mustache templates.
|
|
* @param {string} name
|
|
* @param {"replace"|"append"|"prepend"} operation
|
|
* @param {string} search
|
|
* @param {string} custom
|
|
* @returns {boolean}
|
|
*/
|
|
export function injectMustache(name, operation, search, custom) {
|
|
let replacement;
|
|
|
|
switch (operation) {
|
|
case "replace":
|
|
replacement = custom;
|
|
break;
|
|
|
|
case "append":
|
|
replacement = search + custom;
|
|
break;
|
|
|
|
case "prepend":
|
|
replacement = custom + search;
|
|
break;
|
|
|
|
default:
|
|
throw "Invalid mustache injection operation. Only 'replace', 'append', 'prepend' are supported.";
|
|
}
|
|
|
|
const prev = TD.mustaches?.[name];
|
|
|
|
if (!prev) {
|
|
crashDebug("Mustache injection is referencing an invalid mustache: " + name);
|
|
return false;
|
|
}
|
|
|
|
TD.mustaches[name] = prev.replace(search, replacement);
|
|
|
|
if (prev === TD.mustaches[name]) {
|
|
crashDebug("Mustache injection had no effect: " + name);
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|