summaryrefslogtreecommitdiff
path: root/.config/doom/custom-packages/ob-dall-e-shell.el
diff options
context:
space:
mode:
authorRoger Gonzalez <roger@rogs.me>2023-04-07 21:51:36 -0300
committerRoger Gonzalez <roger@rogs.me>2023-04-07 21:51:36 -0300
commitc68660f3bea9a9c2df16a0b312b2dd9a04d83552 (patch)
tree4317b8c4afbca597c5ffb86c636e23b7c7013185 /.config/doom/custom-packages/ob-dall-e-shell.el
parent3be4f6ae5206ffed0076e0165826d0324c27c2eb (diff)
Added chatgpt-shell to Emacs
Diffstat (limited to '.config/doom/custom-packages/ob-dall-e-shell.el')
-rw-r--r--.config/doom/custom-packages/ob-dall-e-shell.el68
1 files changed, 68 insertions, 0 deletions
diff --git a/.config/doom/custom-packages/ob-dall-e-shell.el b/.config/doom/custom-packages/ob-dall-e-shell.el
new file mode 100644
index 00000000..9fc3c753
--- /dev/null
+++ b/.config/doom/custom-packages/ob-dall-e-shell.el
@@ -0,0 +1,68 @@
+;;; ob-dall-e-shell.el --- Org babel functions for DALL-E evaluation -*- lexical-binding: t; -*-
+
+;; Copyright (C) Alvaro Ramirez
+
+;; Author: Alvaro Ramirez
+;; URL: https://github.com/xenodium/chatgpt-shell
+
+;;; License:
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;; Run and render DALL-E blocks using org babel.
+;;
+;; Install with:
+;;
+;; (require 'ob-dall-e-shell)
+;; (ob-dall-e-shell-setup)
+;;
+;; Usage:
+;;
+;; #+begin_src dall-e-shell
+;; Hello
+;; #+end_src
+
+;;; Requirements:
+
+;;; Code:
+(require 'ob)
+(require 'org)
+(require 'chatgpt-shell)
+(require 'map)
+
+(defalias 'dall-e-shell-mode #'text-mode)
+
+(defvar org-babel-default-header-args:dall-e-shell '((:results . "file")
+ (:version . nil)))
+
+(defun org-babel-execute:dall-e-shell(body params)
+ "Execute a block of DALL-E prompt in BODY with org-babel header PARAMS.
+This function is called by `org-babel-execute-src-block'"
+ (message "executing DALL-E source code block")
+ (chatgpt-shell-post-dall-e-prompt body (map-elt params :version)))
+
+(defun ob-dall-e-shell-setup ()
+ "Set up babel DALL-E support."
+ (org-babel-do-load-languages 'org-babel-load-languages
+ (append org-babel-load-languages
+ '((dall-e-shell . t))))
+ (add-to-list 'org-src-lang-modes '("dall-e-shell" . text)))
+
+(provide 'ob-dall-e-shell)
+
+;;; ob-dall-e-shell.el ends here