Update embedded csv generating script
This commit is contained in:
parent
7520c8f1d4
commit
974ef0fe7a
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user