.
+translate
diff --git a/Misha's US/AWA GA Keys Checker/README.md b/Misha's US/AWA GA Keys Checker/README.md
new file mode 100644
index 000000000..2f17d5799
--- /dev/null
+++ b/Misha's US/AWA GA Keys Checker/README.md
@@ -0,0 +1,10 @@
+
+
+
+
+真実を明らかにするボタン。
+
+A button that tells you the truth.
+
+---
+Make by ❤ Code base on [Saulios](https://github.com/Saulios)'s [AWA Key Checker](https://github.com/Saulios/awa_key_checker).
diff --git a/Misha's US/Bilibili Live Mosaic Remover/Bilibili Live Mosaic Remover.user.js b/Misha's US/Bilibili Live Mosaic Remover/Bilibili Live Mosaic Remover.user.js
new file mode 100644
index 000000000..9b5bc8af1
--- /dev/null
+++ b/Misha's US/Bilibili Live Mosaic Remover/Bilibili Live Mosaic Remover.user.js
@@ -0,0 +1,132 @@
+// ==UserScript==
+// @name ビリビリライブモザイク削除くん
+// @name:en Bilibili Live Mosaic Remover
+// @name:zh-CN 破站直播马赛克删除君
+// @name:zh-TW B 站實況馬賽克移除君
+// @license CC-BY-NC-SA-4.0
+// @namespace https://space.bilibili.com/2033380
+// @version 2.1
+// @description モザイクなんてクソ食らえだ!
+// @description:en Fuck you mosaic!
+// @description:zh-CN 去你妈的傻逼马赛克!
+// @description:zh-TW 幹你娘的白癡馬賽克!
+// @author Misha
+// @match *://live.bilibili.com/*
+// @icon https://icons.duckduckgo.com/ip2/bilibili.com.ico
+// @grant none
+// @run-at document-end
+// @supportURL https://github.com/Mishasama/UserScript/issues
+// @homepageURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Bilibili%20Live%20Mosaic%20Remover/
+// @contributionURL https://ko-fi.com/mishasama
+// @contributionAmount 1¥
+// @compatible chrome
+// @compatible edge
+// @updateURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Bilibili%20Live%20Mosaic%20Remover/Bilibili%20Live%20Mosaic%20Remover.user.js
+// @installURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Bilibili%20Live%20Mosaic%20Remover/Bilibili%20Live%20Mosaic%20Remover.user.js
+// @downloadURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Bilibili%20Live%20Mosaic%20Remover/Bilibili%20Live%20Mosaic%20Remover.user.js
+// ==/UserScript==
+
+(function() {
+ 'use strict';
+
+ // Your code here...
+// ポーリング間隔を設定します(例:5000ミリ秒)
+var interval = 5000;
+var highestZIndex = 2147483647; // 最上層にボタンを保つための最大の32ビット整数
+
+// ページの読み込みが完了したらすぐに実行される関数
+function onPageLoad() {
+ var targetDiv = document.getElementById('web-player-module-area-mask-panel');
+ if (targetDiv) {
+ addRemoveButton(targetDiv);
+ }
+}
+
+// 削除ボタンを作成して追加する関数
+function addRemoveButton(targetDiv) {
+ var button = document.getElementById('remove-button');
+ if (!button) {
+ button = document.createElement('button');
+ button.id = 'remove-button';
+ button.innerHTML = 'モザイクを削除';
+
+ // ボタンのスタイルを設定します
+ button.style.position = 'fixed'; // 固定位置を使用します
+ button.style.zIndex = highestZIndex.toString(); // 最高のz-index値を設定します
+ styleButton(button); // スタイルを適用
+ document.body.appendChild(button);
+ }
+
+ // ボタンのクリックイベントを設定
+ button.onclick = function() {
+ targetDiv.remove();
+ button.remove();
+ };
+
+ // ボタンの位置を更新
+ updateButtonPosition(button, targetDiv);
+}
+
+// ボタンの位置を更新する関数
+function updateButtonPosition(button, targetDiv) {
+ var rect = targetDiv.getBoundingClientRect();
+ button.style.top = window.scrollY + rect.top + rect.height / 2 + 'px';
+ button.style.left = window.scrollX + rect.left + rect.width / 2 + 'px';
+}
+
+// ボタンのスタイルを設定する関数
+function styleButton(button) {
+ // 基本スタイル
+ button.style.padding = '10px 15px';
+ button.style.fontSize = '1rem';
+ button.style.fontWeight = 'bold';
+ button.style.color = '#fff';
+ button.style.background = '#007bff';
+ button.style.border = 'none';
+ button.style.borderRadius = '5px';
+ button.style.cursor = 'pointer';
+ button.style.transition = 'background-color 0.3s, box-shadow 0.3s';
+
+ // 影と遷移効果
+ button.style.boxShadow = '0 2px 4px rgba(0, 0, 0, 0.2)';
+
+ // マウスオーバー時のスタイル
+ button.onmouseover = function() {
+ button.style.background = '#0056b3';
+ button.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.3)';
+ };
+
+ // マウスアウト時のスタイル
+ button.onmouseout = function() {
+ button.style.background = '#007bff';
+ button.style.boxShadow = '0 2px 4px rgba(0, 0, 0, 0.2)';
+ };
+}
+
+// DOMの変更を監視するMutationObserverを使用
+var observer = new MutationObserver(function(mutations) {
+ mutations.forEach(function(mutation) {
+ if (mutation.addedNodes.length > 0) {
+ var targetDiv = document.getElementById('web-player-module-area-mask-panel');
+ if (targetDiv) {
+ updateButtonPosition(document.getElementById('remove-button'), targetDiv);
+ }
+ }
+ });
+});
+
+// ページの読み込みが完了したイベントをリスン
+window.addEventListener('load', onPageLoad);
+
+// DOMの変更を監視を開始
+observer.observe(document.body, { childList: true, subtree: true });
+
+// setInterval関数を使用して、定期的にチェックとボタンの位置を更新
+setInterval(function() {
+ var button = document.getElementById('remove-button');
+ var targetDiv = document.getElementById('web-player-module-area-mask-panel');
+ if (button && targetDiv) {
+ updateButtonPosition(button, targetDiv);
+ }
+}, interval);
+})();
diff --git a/Misha's US/Bilibili Live Mosaic Remover/README.md b/Misha's US/Bilibili Live Mosaic Remover/README.md
new file mode 100644
index 000000000..82b2d02b4
--- /dev/null
+++ b/Misha's US/Bilibili Live Mosaic Remover/README.md
@@ -0,0 +1,2 @@
+
+消えろ!馬鹿野郎!
diff --git a/Misha's US/Gleam.io Winning Chance/Gleam.io Winning Chance.user.js b/Misha's US/Gleam.io Winning Chance/Gleam.io Winning Chance.user.js
new file mode 100644
index 000000000..72ffa2df0
--- /dev/null
+++ b/Misha's US/Gleam.io Winning Chance/Gleam.io Winning Chance.user.js
@@ -0,0 +1,48 @@
+// ==UserScript==
+// @name Gleam.io Winning Chance
+// @name:ja Gleam.io かちのチャンス
+// @name:zh-TW Gleam.io 勝率顯示
+// @name:zh-CN Gleam.io 胜率显示
+// @license CC-BY-NC-SA-4.0
+// @namespace Gleam.io
+// @version 1.2
+// @description Let's show the odds of winning.
+// @description:ja 勝算を示そう。
+// @description:zh-TW 展示勝率。
+// @description:zh-CN 展示胜率。
+// @author Royalgamer06 & albertopasqualetto & Misha
+// @icon https://gleam.io/assets/content/logo-icon-d03a2d45d7b2b59f244530b3e64cf310afee9825ea81a7de0a98877bb0f9b8ca.svg
+// @match *gleam.io/*
+// @grant none
+// @updateURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Gleam.io%20Winning%20Chance/Gleam.io%20Winning%20Chance.user.js
+// @installURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Gleam.io%20Winning%20Chance/Gleam.io%20Winning%20Chance.user.js
+// @downloadURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Gleam.io%20Winning%20Chance/Gleam.io%20Winning%20Chance.user.js
+// @supportURL https://github.com/Mishasama/UserScript/issues
+// @homepageURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Gleam.io%20Winning%20Chance
+// @contributionURL https://ko-fi.com/mishasama
+// @contributionAmount 1$
+// @compatible edge
+// @compatible chrome
+// ==/UserScript==
+
+$(document).ready(function() {
+ if (document.getElementById("current-entries") !== null) {
+ $('.span4.blue-square.ng-scope').after(' NaN Winning Chance
');
+ var elems = document.querySelectorAll("div.square-row.row-fluid.center.ng-scope > .span4");
+
+ for (var i = 0; i < elems.length; i++) {
+ elems[i].setAttribute("style", "width:25%;");
+ }
+
+ var gleam = setInterval(function() {
+ if (document.querySelector(".status.ng-binding") !== null) {
+ var own = parseInt(document.querySelector(".status.ng-binding").innerHTML);
+ var total = parseInt(document.querySelector(".current.ng-binding").textContent.replace(/[,.]/,''));
+ var chance = Math.round(100000 * own / total ) / 1000;
+ document.getElementById("winning_chance").innerHTML = chance + "%";
+ console.log("[Gleam W.C.] Your winning chance is " + chance + "%!");
+ clearInterval(gleam);
+ }
+ }, 500);
+ }
+})();
diff --git a/Misha's US/Gleam.io Winning Chance/README.md b/Misha's US/Gleam.io Winning Chance/README.md
new file mode 100644
index 000000000..009026be4
--- /dev/null
+++ b/Misha's US/Gleam.io Winning Chance/README.md
@@ -0,0 +1,4 @@
+# It's just calculating the win percentage for you and showing it......
+
+
+This is a fixed version of [this script](https://greasyfork.org/scripts/17903 "Gleam.io Winning Chance") with a fix suggested by [albertopasqualetto](https://greasyfork.org/scripts/17903-gleam-io-winning-chance/discussions/223619#comment-465386).
diff --git a/Misha's US/Twitch Command Buttons/staggerrilla.user.js b/Misha's US/Twitch Command Buttons/staggerrilla.user.js
new file mode 100644
index 000000000..b8200dc6d
--- /dev/null
+++ b/Misha's US/Twitch Command Buttons/staggerrilla.user.js
@@ -0,0 +1,99 @@
+// ==UserScript==
+// @name Twitch staggerrilla command buttons
+// @namespace https://github.com/Mishasama/UserScript/tree/master/Misha's%20US
+// @version 2.1.3
+// @description Adds buttons to send commands in the Twitch chat
+// @author Kurotaku & Misha
+// @license CC-BY-NC-SA-4.0
+// @match https://www.twitch.tv/staggerrilla*
+// @match https://www.twitch.tv/*/staggerrilla/chat*
+// @icon https://static-cdn.jtvnw.net/jtv_user_pictures/c0df83fd-4db0-4175-8db2-3f011757031f-profile_image-70x70.png
+// @updateURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Twitch%20Command%20Buttons/staggerrilla.user.js
+// @installURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Twitch%20Command%20Buttons/staggerrilla.user.js
+// @downloadURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Twitch%20Command%20Buttons/staggerrilla.user.js
+// @require https://update.greasyfork.org/scripts/547392/My%20own%20functions%20library.js
+// @require https://update.greasyfork.org/scripts/547394/Library%20Twitch%20Command%20Buttons.js
+// @require https://update.greasyfork.org/scripts/547397/interact.js
+// @require https://update.greasyfork.org/scripts/547401/sweetalert2-latest.js
+// @require https://openuserjs.org/src/libs/sizzle/GM_config.js
+// @grant GM_getValue
+// @grant GM_setValue
+// @grant GM_addStyle
+// @grant GM_notification
+// @grant GM_registerMenuCommand
+// @supportURL https://github.com/Mishasama/UserScript/issues
+// @homepageURL https://github.com/Mishasama/UserScript/tree/master/Misha's%20US/Twitch%20Command%20Buttons
+// @contributionURL https://ko-fi.com/mishasama
+// @contributionAmount 1¥
+// @compatible chrome
+// @compatible edge
+// @compatible firefox
+// ==/UserScript==
+
+
+let twitch_channel = "staggerrilla";
+let streamelements_store = "staggerrilla";
+
+(async function() {
+ await main();
+})();
+
+function init_gm_config() {
+ GM_registerMenuCommand('Settings', () => GM_config.open());
+ GM_config.init(
+ {
+ 'id': 'configuration',
+ 'title': 'Staggerrilla Config',
+ 'fields':
+ {
+ 'script_enabled': { 'type': 'checkbox', 'default': true, 'label': 'Enable/Disable the script' },
+ 'buttons_general': { 'type': 'checkbox', 'default': true, 'label': 'General buttons' },
+ 'voucher_buttons': { 'type': 'checkbox', 'default': true, 'section': ['Voucher'], 'label': 'Enable Voucher redemption buttons' },
+ 'irc': { 'type': 'checkbox', 'default': false, 'label': 'Use IRC (Recommended! Requires Oauth)', 'section': ['IRC'] },
+ 'auth_username': { 'label': 'Username', 'type': 'textbox' },
+ 'auth_oauth': { 'label': 'Oauth Token. Generate here: twitchtokengenerator.com', 'type': 'textbox' },
+ 'show_streamelements_points': { 'type': 'checkbox', 'default': true, 'section': ['Miscellaneous'], 'label': 'Show StreamElement Points' },
+ 'collect_point_bonus': { 'type': 'checkbox', 'default': true, 'label': 'Collect Point Bonus Automatically' },
+ 'notifications': { 'type': 'checkbox', 'default': false, 'label': 'Desktop notification if message contains your name' },
+ 'hide_powerups': { 'type': 'checkbox', 'default': true, 'label': 'Hide Power-Ups in Store' },
+ 'prevent_shadowban': { 'type': 'checkbox', 'default': true, 'label': 'Prevent Shadowban. Commands become random case.
Shadowban means your messages temporarily don\'t appear.
Without IRC, you can\'t see if you\'re shadowbanned' },
+ 'custom_css_styles': { 'label': 'Custom CSS Styles:', 'type': 'textarea' }
+ },
+ 'events': {
+ 'save': () => {location.reload()},
+ },
+ 'frame': document.body.appendChild(document.createElement('div')),
+ });
+}
+
+function generate_button_groups() {
+ let buttongroups = "";
+ if(GM_config.get("buttons_general"))
+ buttongroups += `${btngrp_label("General")}
+
+ ${btngrp_button("!bleep", "Bleep")}
+ ${btngrp_button("!bloop", "Bloop")}
+ ${btngrp_button("!bleep !bloop", "Bleep & Bloop")}
+
+
+
+ ${btngrp_button("!fish", "Fish")}
+ ${btngrp_button("!ticket", "Ticket")}
+ ${btngrp_button("!steam", "Steam")}
+
+
+
+ ${btngrp_button("!giveaway 1", "Giveaway")}
+ ${btngrp_button("!enter", "Enter")}
+ ${btngrp_button("!pokecatch", "Pokecatch")}
+
`;
+
+ return(buttongroups);
+}
+
+async function generate_voucher_buttons() {
+ insert_voucher_buttons(
+ generate_voucher_button("100k Bubbers!", "+100k") +
+ generate_voucher_button("Totes a Bot", "Bot")
+ );
+}
diff --git a/Misha's US/Twitch Latency Overlay.user.js b/Misha's US/Twitch Latency Overlay.user.js
new file mode 100644
index 000000000..b5dc287ce
--- /dev/null
+++ b/Misha's US/Twitch Latency Overlay.user.js
@@ -0,0 +1,104 @@
+// ==UserScript==
+// @name Twitch Latency Overlay
+// @name:ja Twitch 遅延オーバーレイ
+// @name:zh-CN Twitch 延迟浮窗
+// @name:zh-TW Twitch 延遲覆蓋
+// @license CC-BY-NC-SA-4.0
+// @namespace https://twitch.tv/kikka1225
+// @version 2025-04-20
+// @description Display latency to the broadcaster as an overlay on Twitch without embedding. - Fixed version of https://greasyfork.org/scripts/416704
+// @description:ja 配信者への遅延を埋め込みなしで Twitch 上のオーバーレイとして表示します。 - https://greasyfork.org/scripts/416704 の修正バージョン
+// @description:zh-CN 将延迟显示为 Twitch 上的叠加层,无需嵌入。 - 修复了 https://greasyfork.org/scripts/416704 的版本
+// @description:zh-TW 將延遲顯示為 Twitch 上的疊加層,無需嵌入。 - 為 https://greasyfork.org/scripts/416704 的修復版本
+// @author Misha
+// @match https://www.twitch.tv/*
+// @icon data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%0D%3C!----%3E%0A%3Csvg%20width%3D%22800px%22%20height%3D%22800px%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%3E%0A%0D%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M13%207.5l-2%202H9l-1.75%201.75V9.5H5V2h8v5.5z%22%2F%3E%0A%0D%3Cg%20fill%3D%22%239146FF%22%3E%0A%0D%3Cpath%20d%3D%22M4.5%201L2%203.5v9h3V15l2.5-2.5h2L14%208V1H4.5zM13%207.5l-2%202H9l-1.75%201.75V9.5H5V2h8v5.5z%22%2F%3E%0A%0D%3Cpath%20d%3D%22M11.5%203.75h-1v3h1v-3zM8.75%203.75h-1v3h1v-3z%22%2F%3E%0A%0D%3C%2Fg%3E%0A%0D%3C%2Fsvg%3E
+// @grant none
+// @run-at document-idle
+// @updateURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Twitch%20Latency%20Overlay.user.js
+// @installURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Twitch%20Latency%20Overlay.user.js
+// @downloadURL https://github.com/Mishasama/UserScript/raw/master/Misha's%20US/Twitch%20Latency%20Overlay.user.js
+// @supportURL https://github.com/Mishasama/UserScript/issues
+// @homepageURL https://github.com/Mishasama/UserScript/tree/master/Misha's%20US
+// @contributionURL https://ko-fi.com/mishasama
+// @contributionAmount 1¥
+// @compatible chrome
+// @compatible edge
+// ==/UserScript==
+
+(function() {
+ 'use strict';
+
+ // Your code here...
+//////////////////////////////////////////////
+// Set the position for the Overlay: [1 by default (top right)](you can click on the overlay button to toggle to the next position automatically)
+// 0: Outside of the Video (not visible for Theatre and Full-Screen) - 1, 2, 3, 4: Inside of the Video (work for Theatre and Full-Screen)
+// 0 = Menu Bar (in the top), near the search bar.
+// 1 = Top Right.
+// 2 = Bottom Right.
+// 3 = Bottom Left.
+// 4 = Top Left.
+ var tlo_position=1;
+// Set the font color for the Overlay ["#9463E8cc" by default (Twitch's light-purple with 80% opacity), using format #RGBA]
+ var tlo_font_color="#9463E8cc";
+// Set the button background color for the Overlay ["#18181ba8" by default (deep gray with 65% opacity), using format #RGBA]
+ var tlo_bb_color="#18181ba8";
+// Set the font size for the Overlay [13 by default]
+ var tlo_font_size=13;
+// Set the delay required before creating the overlay (in milliseconds, after loading the page) [3000 by default]
+ var tlo_create_delay=3000;
+//////////////////////////////////////////////
+///////// DO NOT EDIT PAST THIS LINE /////////
+//////////////////////////////////////////////
+ var tlo_main;
+ var tlo_index="width:90px;height:30px;font:bold "+tlo_font_size+"px Arial,sans-serif;line-height:30px;border-radius:4px;text-align:center;cursor:pointer;color:"+tlo_font_color;
+ var tlo_list=[];
+ tlo_list[0]="right:15px;top:10px;"+tlo_index;
+ tlo_list[1]="position:absolute;right:15px;top:10px;box-shadow:#111011e6 0px 0px 2px;background:"+tlo_bb_color+";"+tlo_index;
+ tlo_list[2]="position:absolute;right:15px;bottom:44px;box-shadow:#111011e6 0px 0px 2px;background:"+tlo_bb_color+";"+tlo_index;
+ tlo_list[3]="position:absolute;left:15px;bottom:44px;box-shadow:#111011e6 0px 0px 2px;background:"+tlo_bb_color+";"+tlo_index;
+ tlo_list[4]="position:absolute;left:15px;top:10px;box-shadow:#111011e6 0px 0px 2px;background:"+tlo_bb_color+";"+tlo_index;
+//////////////////////////////////////////////
+ function tlo_function_click(){
+ if(tlo_position == 4 || tlo_position == -1){tlo_position=0;document.querySelector("div[class='Layout-sc-1xcs6mc-0 kuGBVB']").appendChild(tlo_main);}
+ else{tlo_position+=1;document.querySelector("div[data-a-target='video-player']").appendChild(tlo_main);}
+ tlo_main.style.cssText=tlo_list[tlo_position];
+ }
+//////////////////////////////////////////////
+ function tlo_function_over(){tlo_main.style.background="#451B92c0";tlo_main.style.color="#ffffffff";if(tlo_position != 0){tlo_main.style.boxShadow="#7346b5e6 0px 0px 2px";}}
+//////////////////////////////////////////////
+ function tlo_function_out(){tlo_main.style.color=tlo_font_color;if(tlo_position == 0){tlo_main.style.background="transparent";}else{tlo_main.style.background=tlo_bb_color;tlo_main.style.boxShadow="#111011e6 0px 0px 2px";}}
+//////////////////////////////////////////////
+ window.addEventListener('load',function(){
+//////////////////////////////////////////////
+ setTimeout(function(){
+//////////////////////////////////////////////
+ setTimeout(function(){
+ document.querySelector("button[data-a-target='player-settings-button']").click();
+ setTimeout(function(){
+ document.querySelector("button[data-a-target='player-settings-menu-item-advanced']").click();
+ setTimeout(function(){
+ document.querySelector("div[data-a-target='player-settings-submenu-advanced-video-stats'] input").click();
+ setTimeout(function(){
+ document.querySelector("div[data-a-target='player-overlay-video-stats']").style.display="none";
+//////////////////////////////////////////////
+ tlo_main=document.querySelector("div[data-a-target='player-overlay-video-stats'] > table > tbody > tr:nth-child(8) > td:nth-child(2) > p");
+//////////////////////////////////////////////
+ tlo_main.addEventListener("click", tlo_function_click);
+ tlo_main.addEventListener("mouseover", tlo_function_over);
+ tlo_main.addEventListener("mouseout", tlo_function_out);
+//////////////////////////////////////////////
+ tlo_position-=1;tlo_function_click();
+ setTimeout(function(){
+ document.querySelector("button[data-a-target='player-settings-button']").click();
+ },100);
+ },50);
+ },150);
+ },200);
+ },2000);
+//////////////////////////////////////////////
+ }, tlo_create_delay);
+//////////////////////////////////////////////
+ })
+//////////////////////////////////////////////
+})();