Update embedded csv generating script
This commit is contained in:
parent
7520c8f1d4
commit
974ef0fe7a
@ -11,47 +11,70 @@
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src emacs-lisp :exports none
|
#+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)
|
(setq export-file "SpaceCompanies.csv")
|
||||||
(with-current-buffer "*Company Data*"
|
|
||||||
(message (format "PROPS: %S" props))
|
(defun get-multi-valued (pom prop)
|
||||||
(insert (format "%s,%s,\"%s\",%s,\"%s\",\"%s\",%s\n"
|
(let ((end (save-excursion (search-forward ":END:")))
|
||||||
name
|
(elt-b nil)
|
||||||
homepage
|
(elt-e nil)
|
||||||
category
|
(elt nil)
|
||||||
jobsurl
|
(values '()))
|
||||||
headquarters
|
(save-excursion
|
||||||
usoffice
|
(setq elt-b (search-forward-regexp (format ":%s\\+?:" prop) end t))
|
||||||
remotefreindly
|
(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)))
|
||||||
)
|
)
|
||||||
)
|
values
|
||||||
(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
|
|
||||||
|
|
||||||
#+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
|
* Terms
|
||||||
- SBIR
|
- SBIR
|
||||||
|
Loading…
x
Reference in New Issue
Block a user