MCPcopy Create free account
hub / github.com/Useful-Scripts-Extension/useful-script / keyDownHandler

Function keyDownHandler

scripts/insta_injectDownloadBtn.js:106–150  ·  view source on GitHub ↗
(event)

Source from the content-addressed store, hash-verified

104 document.addEventListener("keydown", keyDownHandler);
105
106 function keyDownHandler(event) {
107 if (window.location.href === "https://www.instagram.com/") return;
108
109 const mockEventTemplate = {
110 stopPropagation: function () {},
111 preventDefault: function () {},
112 };
113
114 if (event.altKey && (event.code === "KeyK" || event.key == "k")) {
115 let buttons = document.getElementsByClassName("download-btn");
116 if (buttons.length > 0) {
117 let mockEvent = { ...mockEventTemplate };
118 mockEvent.currentTarget = buttons[buttons.length - 1];
119 if (prefetchAndAttachLink || hoverToFetchAndAttachLink)
120 onMouseInHandler(mockEvent);
121 onClickHandler(mockEvent);
122 }
123 }
124 if (event.altKey && (event.code === "KeyI" || event.key == "i")) {
125 let buttons = document.getElementsByClassName("newtab-btn");
126 if (buttons.length > 0) {
127 let mockEvent = { ...mockEventTemplate };
128 mockEvent.currentTarget = buttons[buttons.length - 1];
129 if (prefetchAndAttachLink || hoverToFetchAndAttachLink)
130 onMouseInHandler(mockEvent);
131 onClickHandler(mockEvent);
132 }
133 }
134
135 if (event.altKey && (event.code === "KeyL" || event.key == "l")) {
136 // right arrow
137 let buttons = document.getElementsByClassName("_9zm2");
138 if (buttons.length > 0) {
139 buttons[0].click();
140 }
141 }
142
143 if (event.altKey && (event.code === "KeyJ" || event.key == "j")) {
144 // left arrow
145 let buttons = document.getElementsByClassName("_9zm0");
146 if (buttons.length > 0) {
147 buttons[0].click();
148 }
149 }
150 }
151
152 function isPostPage() {
153 return Boolean(window.location.href.match(postUrlPattern));

Callers

nothing calls this directly

Calls 3

onMouseInHandlerFunction · 0.85
onClickHandlerFunction · 0.85
clickMethod · 0.80

Tested by

no test coverage detected