Для этого:
- Создайте аккаунт на imgbb.com;
- Получите API-ключ на api.imgbb.com;
- Добавьте его в юзерскрипт.
В результате у вас появится загрузчик изображений в редакторах (старом и в новом), а также возможность самостоятельно удалять изображения через свой аккаунт.
Обратите внимание, что в шики (dere \ nyaa) изображение сохраняется даже после удаления комментария.
Еще вместо того чтобы использовать мой pirateimg.vercel.app/ вы сможете загружать изображения в отличном качестве сразу через шики а также через аккаунт удалять, если захотите.
Пример работы:

// ==UserScript==
// @name imgbb uploader
// @namespace http://shikimori.me/
// @version 1.0
// @description Загрузчик изображений
// @author pirate~
// @match *://shikimori.one/*
// @match *://shikimori.me/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
let APIKEY = 'СЮДА ВАШ КЛЮЧ';
function insertBBCodeForEditor(editorContainer, imageUrl) {
var bbcode = '[img]' + imageUrl + '[/img]';
var field = editorContainer.querySelector('textarea[name="comment[body]"]') || editorContainer.querySelector('input[name="comment[body]"]');
if (field) {
if (field.tagName.toLowerCase() === 'textarea') {
var start = field.selectionStart, end = field.selectionEnd;
field.value = field.value.slice(0, start) + bbcode + field.value.slice(end);
field.selectionStart = field.selectionEnd = start + bbcode.length;
field.focus();
} else {
field.value += bbcode;
field.dispatchEvent(new Event('input', { bubbles: true }));
}
return;
}
var proseMirror = editorContainer.querySelector('.ProseMirror');
if (proseMirror) {
proseMirror.focus();
document.execCommand('insertText', false, bbcode);
var hiddenInput = editorContainer.querySelector('input[name="comment[body]"]');
if (hiddenInput) {
hiddenInput.value += bbcode;
hiddenInput.dispatchEvent(new Event('input', { bubbles: true }));
}
}
}
function createUploadButton(editorContainer, parentElement) {
var btn = document.createElement('span');
btn.classList.add('imgbb');
btn.style.cursor = 'pointer';
btn.style.marginLeft = '10px';
btn.style.color = '#444';
btn.textContent = '🖼';
btn.addEventListener('click', function() {
var fileInput = document.createElement('input');
fileInput.type = 'file';
fileInput.accept = 'image/*';
fileInput.style.display = 'none';
document.body.appendChild(fileInput);
fileInput.addEventListener('change', function() {
if (fileInput.files && fileInput.files[0]) {
var file = fileInput.files[0];
var reader = new FileReader();
reader.onload = function(e) {
var dataUrl = e.target.result;
var base64Index = dataUrl.indexOf('base64,') + 7;
var base64Data = dataUrl.substring(base64Index);
var formData = new FormData();
formData.append('key', APIKEY);
formData.append('image', base64Data);
formData.append('name', file.name);
fetch('https://api.imgbb.com/1/upload', { method: 'POST', body: formData })
.then(response => response.json())
.then(data => {
if (data.success) {
insertBBCodeForEditor(editorContainer, data.data.url);
} else {
alert('ошибка загрузки: ' + (data.error.message || 'неизвестная ошибка'));
}
})
.catch(error => {
console.error('ошибка запроса:', error);
alert('ошибка загрузки изображения');
})
.finally(() => { fileInput.remove(); });
};
reader.readAsDataURL(file);
}
});
fileInput.click();
});
parentElement.appendChild(btn);
}
function addButtonToEditors() {
var classicEditors = document.querySelectorAll('.b-shiki_editor:not(.b-shiki_editor-v2)');
classicEditors.forEach(editor => {
var controls = editor.querySelector('.editor-controls');
if (controls && !controls.querySelector('.imgbb')) {
createUploadButton(editor, controls);
}
});
var v2Editors = document.querySelectorAll('.vue-node');
v2Editors.forEach(editor => {
var menubar = editor.querySelector('.menubar .menu_group-block');
if (menubar && !menubar.querySelector('.imgbb')) {
createUploadButton(editor, menubar);
}
});
}
document.addEventListener('DOMContentLoaded', addButtonToEditors);
setInterval(addButtonToEditors, 100);
})();
Не забудьте в коде ввести тут апи ключ:
let APIKEY = 'СЮДА ВАШ КЛЮЧ';
@pirate~, а как такое делается, идея в 3-х словах? Кроме поиска кандидатов в какой-нибудь хентайной коллекции.@pirate~@pirate~, в любом случае, это далеко не самая приоритетная проблема для Шикимори. (Если вообще признать это как проблему)@pirate~,@S John@Соnnоisseur_desu, еще как приоритетная, могу тебе в лс скинуть одного чела который пожаловался рнк… точнее его материал. и из за этих хентай пикч, проблемы были у сайта..@S John, юзер загружает пикчу локально или через ссылку, чекер анализирует, если +18 = пикча удаляется, и вместо нее загружается шаблонная (осторожно взрослый контент) .@S John@pirate~@S John,@S John@pirate~, а как понимает?Для решения такой задачи нужен крутой комп, которого у Шики нет.
@pirate~@S John, он анализирует изображение с помощью нейронной сети, оценивает, насколько оно подходит под категории порно, хентай или секси, и если уверенность высокая, заменяет картинку на предупреждение.на шики его легко установить.
@S John@pirate~@S John, он использует мощности самого сервера, на который установлен, обрабатывая данные через локальную нейронную сеть через [которую я тебе не назову..] без обращения к внешним сервисам.хочешь установить к себе в вордпресс?
@S John@pirate~, нет, просто заинтересовался. Мне всегда представлялось, что задача слишком ресурсоемкая для обычных компов.@cgi-bin@S John, github.com/infinitered/nsfwjs@S John,@Librake@cgi-bin, спасибо. Получается, что такой пакет все равно требует человеческого вмешательства (пакет по твоей ссылке базируется на nsfw_model).Источник: hal.science
@cgi-binЧто самое ироничное использовал этот же самый инструмент:
Ну что сказать...
p.s. Ржу, что нейронка отправила мем с Билли Херрингтона в категорию порно. Как бы да, но
@S John@S John, да ну, человеки не нужны, точность распознавания - 93%, технологическая сингулярность уже буквально у нас под носом.@chugou,@S John@cgi-bin, доктор, откуда у вас такие картинки?@pirate~@S John, Твой источник с 2023 года — за два года нейронки значительно эволюционировали. А твои 72% — цифры из воздуха.Моя штучка отлично справляется с фильтрацией пикчей, а скоро будет фильтровать и гифки.
P.S | Будь это мой сайт, боты выполняли бы всю работу. Я бы не вводил баны, а просто добавил бота, который читает комментарии и удаляет те, что нарушают правила сайта. Как я и говорил - нейронки значительно эволюционировали.
@S John@pirate~, может быть.