Skip to content

Instantly share code, notes, and snippets.

@fredgido
Last active April 2, 2021 04:05
Show Gist options
  • Save fredgido/6bd0e22977bb4d53764835bcdb27a392 to your computer and use it in GitHub Desktop.
Save fredgido/6bd0e22977bb4d53764835bcdb27a392 to your computer and use it in GitHub Desktop.
http://dev.kanotype.net:8003/deepdanbooru/uploadhttp://dev.kanotype.net:8003/deepdanbooru/uploadhttp://dev.kanotype.net:8003/deepdanbooru/upload// ==UserScript==
// @name Look Into The Deep Inside
// @namespace LITDI
// @version 0.000001
// @description ...
// @author made by fredgy-kun
// @match https://*.donmai.us/uploads/new*
// @match https://*.donmai.us/posts/*
// @connect kanotype.iptime.org
// @connect pbs.twimg.com
// @connect hentai-foundry.com
// @connect *
// @grant GM.xmlHttpRequest
// @downloadURL https://gist.github.com/fredgido/6bd0e22977bb4d53764835bcdb27a392/raw/LITDI.user.js
// @run-at document-idle
// ==/UserScript==
async function changer(event) {
console.log("ran changer")
function getUserDataWithPromise() {
return new Promise(function(resolve, reject) {
GM.xmlHttpRequest({
overrideMimeType: "text/plain; charset=x-user-defined",
method: "GET",
url: (window.location.href.includes('uploads/new')? document.getElementById("image").src : document.getElementsByClassName("image-container")[0].getAttribute("data-large-file-url")),
onload: function(response) {
resolve(response);
}
});
});
};
let imgblob = await getUserDataWithPromise();
var ra = imgblob.responseText
var bytedata = new Uint8Array(ra.length)
var i = 0
while (i < ra.length) {
bytedata[i] = ra.charCodeAt(i)
i++
}
imgblob = new Blob([bytedata], {
type: "image/png"
})
var formData = new FormData();
formData.append("file", imgblob, "1.png")
formData.append("network_type", "general")
function getPage() {
return new Promise(function(resolve, reject) {
GM.xmlHttpRequest({
method: "POST",
data: formData,
url: "http://dev.kanotype.net:8003/deepdanbooru/upload",
onload: function(response) {
resolve(response);
}
});
});
};
var page = await getPage();
page = page.responseText;
var btn = document.createElement("div");
btn.innerHTML = page.split("<tbody>")[1].split("</tbody>")[0];
var taglist = [];
btn.querySelectorAll("a").forEach(k => taglist.push(k.text /*.replace(/^\s+|\s+$|,|\r\n|\r|\n/g, '')*/ ));
var htmlinsert = [`<div class="tag-column deep-tags-column is-empty-false"> <h6>deep</h6><ul> `, `</ul> </div>`];
htmlinsert.splice(1, 0, taglist.map(k => `<li class="tag-type-0" data-tag-name="${k}"><a class="search-tag selected" href="/posts?tags=${k}">${k}</a></li>`).join(""));
htmlinsert = htmlinsert.join("");
document.getElementsByClassName("related-tags")[0].innerHTML += htmlinsert;
console.log("added tags");
Danbooru.RelatedTag.update_selected();
}
if (window.location.href.split("?")[0] == "https://danbooru.donmai.us/uploads/new" && document.getElementById("image").src.length > 1)
changer();
else
document.getElementById("post-edit-link").onclick = changer;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment