diff --git a/DanbooruApi.own b/DanbooruApi.own index d5ebd13..544e7b1 100644 --- a/DanbooruApi.own +++ b/DanbooruApi.own @@ -10,6 +10,22 @@ class DanbooruApi { } } + def getPost(id) { + url = "https://danbooru.donmai.us/posts/" + id + ".json" + response = okhttp.request() + .headers(this.headers) + .url(url) + .get() + .newCall(okhttp.client) + .execute() + .body() + .string() + if (!length(response)) return [] + post = jsondecode(response) + if (typeof(post) != MAP) return [] + return new Post(post) + } + def getPosts(params) { url = "https://danbooru.donmai.us/posts.json" + params response = okhttp.request() @@ -91,3 +107,34 @@ class Post { return src } } + +// Helpers +def strToHashtag(str) = + "#" + str.toLowerCase() + .replaceAll("[^a-z_0-9\s]", "") + .replaceAll("\s+", "_") + +def getCharacterHashtags(post) { + characters = post.getCharacters() + if characters.isEmpty() { + return "#original" + } + copyrights = post.getCopyrights() + hashtags = [] + for character : characters { + hashtag = strToHashtag(character) + // Clean-up copyright suffix + for copyright : copyrights { + replaceFrom = "_" + copyright + hashtag = hashtag.replace(replaceFrom, "") + } + hashtags += hashtag + } + return hashtags.joinToString(" ") +} + +def getCaption(post) = sprintf( + "%s | source", + getCharacterHashtags(post), + post.getSource() +) diff --git a/danboo.own b/danboo.own index 0852f5d..502d74a 100644 --- a/danboo.own +++ b/danboo.own @@ -72,34 +72,3 @@ thread(def() { exit(0) }) -// Helpers -def strToHashtag(str) = - "#" + str.toLowerCase() - .replaceAll("[^a-z_0-9\s]", "") - .replaceAll("\s+", "_") - -def getCharacterHashtags(post) { - characters = post.getCharacters() - if characters.isEmpty() { - return "#original" - } - copyrights = post.getCopyrights() - hashtags = [] - for character : characters { - hashtag = strToHashtag(character) - // Clean-up copyright suffix - for copyright : copyrights { - replaceFrom = "_" + copyright - hashtag = hashtag.replace(replaceFrom, "") - } - hashtags += hashtag - } - return hashtags.joinToString(" ") -} - -def getCaption(post) = sprintf( - "%s | source", - getCharacterHashtags(post), - post.getSource() -) -