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()
-)
-