Update embedded csv generating script

This commit is contained in:
Jesse Millwood 2024-10-08 18:32:16 -04:00
parent 7520c8f1d4
commit 974ef0fe7a

View File

@ -11,47 +11,70 @@
#+end_src
#+begin_src emacs-lisp :exports none
(defun extract-data ()
(let* ((entry (org-element-at-point))
(level (org-element-property :level entry))
(props (org-entry-properties))
(name (cdr (assoc "ITEM" props)))
(homepage (cdr (assoc "HOME_PAGE" props)))
(category (cdr (assoc "CATEGORY" props)))
(jobsurl (cdr (assoc "JOB_POSTS_URL" props)))
(headquarters (cdr (assoc "HEADQUARTERS" props)))
(usoffice (cdr (assoc "US_OFFICE" props)))
(remotefreindly (cdr (assoc "REMOTE_FREINDLY" props)))
(org-point (point)))
(if (eq level 2)
(with-current-buffer "*Company Data*"
(message (format "PROPS: %S" props))
(insert (format "%s,%s,\"%s\",%s,\"%s\",\"%s\",%s\n"
name
homepage
category
jobsurl
headquarters
usoffice
remotefreindly
))
)
)
(setq export-file "SpaceCompanies.csv")
(defun get-multi-valued (pom prop)
(let ((end (save-excursion (search-forward ":END:")))
(elt-b nil)
(elt-e nil)
(elt nil)
(values '()))
(save-excursion
(setq elt-b (search-forward-regexp (format ":%s\\+?:" prop) end t))
(while elt-b
(setq elt-e (line-end-position))
(setq elt (format "%s" (buffer-substring-no-properties
elt-b elt-e)))
(setq values (cons elt values))
(setq elt-b (search-forward-regexp (format ":%s\\+?:" prop) end t)))
)
)
(save-excursion
(search-forward-regexp "^\* Companies")
(get-buffer-create "*Company Data*")
(with-current-buffer "*Company Data*"
(erase-buffer)
(insert "Name,Homepage,Category,Job Posts URL,Headquarters,US Office,Remote Friendly,Notes\n"))
(beginning-of-line)
(org-map-entries 'extract-data nil 'tree)
)
#+end_src
values
))
#+RESULTS:
(defun extract-company-data ()
(let* ((cur-point (point))
(entry (org-element-at-point))
(level (org-element-property :level entry))
(props (org-entry-properties))
(name (org-entry-get cur-point "ITEM"))
(homepage (org-entry-get cur-point "HOME_PAGE"))
(category (get-multi-valued cur-point "CATEGORY"))
(jobsurl (org-entry-get cur-point "JOB_POSTS_URL"))
(headquarters (org-entry-get cur-point "HEADQUARTERS"))
(usoffice (get-multi-valued cur-point "US_OFFICE"))
(remotefreindly (org-entry-get cur-point "REMOTE_FREINDLY")))
(if (eq level 2)
(with-current-buffer export-file
;; (message (format "PROPS: %S" props))
(insert (format "%s,%s,\"%s\",%s,\"%s\",\"%s\",%s\n"
name
homepage
category
jobsurl
headquarters
usoffice
remotefreindly
))
))
)
)
;; Main
(save-excursion
(goto-char (point-min))
(search-forward-regexp "^\* Companies" nil t)
(beginning-of-line)
(get-buffer-create export-file)
(with-current-buffer export-file
(erase-buffer)
(insert "Name,Homepage,Category,Job Posts URL,Headquarters,US Office,Remote Friendly,Notes\n"))
(org-map-entries 'extract-company-data nil 'tree)
(with-current-buffer export-file
(write-file export-file)
)
)
#+end_src
* Terms
- SBIR