CanvasScripts/copier.js
2023-12-19 10:30:50 +01:00

95 lines
4.2 KiB
JavaScript

// ==UserScript==
// @name copier
// @namespace none
// @version 0.1
// @description sussy
// @author sussy
// @match
// @icon none
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Create a persistent clipboard notification element
const notificationDiv = document.createElement('div');
notificationDiv.id = 'tm-clipboard-notification';
notificationDiv.style = 'position: fixed; bottom: 10px; left: 50%; transform: translateX(-50%); background-color: rgba(0, 0, 0, 0.7); color: white; padding: 5px 10px; border-radius: 5px; z-index: 10000; font-size: 14px; font-family: Arial, sans-serif;';
notificationDiv.textContent = 'Clipboard: (click "Check Clipboard" to view contents)';
document.body.appendChild(notificationDiv);
// Button to check clipboard content
const checkClipboardBtn = document.createElement('button');
checkClipboardBtn.textContent = 'Check Clipboard';
checkClipboardBtn.style = 'position: fixed; bottom: 10px; left: 50%; transform: translateX(-60%); margin-left: 1000px; z-index: 10001;';
document.body.appendChild(checkClipboardBtn);
// Function to update the clipboard notification
function updateClipboardNotification() {
navigator.clipboard.readText().then(text => {
notificationDiv.textContent = `Clipboard: ${text}`;
}).catch(err => {
notificationDiv.textContent = 'Clipboard: (unable to access clipboard)';
console.error('Error reading clipboard', err);
});
}
// Event listener for the button click
checkClipboardBtn.addEventListener('click', updateClipboardNotification);
const destroyBtn = document.createElement('button');
destroyBtn.textContent = 'Destroy';
destroyBtn.style = 'margin-left: 10px; background-color: red; color: white; border: none; border-radius: 3px; padding: 3px 6px; cursor: pointer;';
notificationDiv.appendChild(destroyBtn);
// Event listener to remove the notification on click
destroyBtn.addEventListener('click', function() {
notificationDiv.remove();
checkClipboardBtn.remove();
});
// Function to copy text to clipboard using the modern Clipboard API
function copyToClipboard(text) {
navigator.clipboard.writeText(text).then(function() {
console.log('Text copied to clipboard:', text);
}, function(err) {
console.error('Could not copy text:', err);
});
}
// Determine and copy text based on the question content
function determineAndCopyText(question) {
let textToCopy = "";
const questionText = question.textContent.trim();
// Check the specific conditions for each question text
if (questionText.startsWith("Oceń, czy poniższe zdania są prawdziwe.")) {
// Copy the answer text for this specific question
const answerLabel = question.closest('.question').querySelector('.answer label');
if (answerLabel) {
textToCopy = answerLabel.textContent.trim();
}
} else if (questionText.startsWith("Uporządkuj wydarzenia w kolejności chronologicznej")) {
// Copy one of the options from the dropdown for this specific question
const dropdown = question.closest('.question').querySelector('select.question_input');
if (dropdown && dropdown.options.length > 1) {
// Assuming you want to copy the first actual option (not the placeholder)
textToCopy = dropdown.options[1].text; // Adjust index if needed
}
} else {
// For other questions, copy the first sentence or block of text
textToCopy = questionText.split('.')[0] + '.';
}
// Copy the determined text to the clipboard
if (textToCopy) {
copyToClipboard(textToCopy);
}
}
// Observe the document for changes and apply the logic
window.addEventListener('load', function() {
const questions = document.querySelectorAll('.question_text');
questions.forEach(determineAndCopyText);
});
})();