Return stringified multi-valued list
This commit is contained in:
		
							parent
							
								
									82f7522809
								
							
						
					
					
						commit
						7fba972dec
					
				@ -14,70 +14,76 @@
 | 
				
			|||||||
#+name: export_block
 | 
					#+name: export_block
 | 
				
			||||||
#+begin_src emacs-lisp :exports none
 | 
					#+begin_src emacs-lisp :exports none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(setq export-file "SpaceCompanies.csv")
 | 
					  (setq export-file "SpaceCompanies.csv")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun get-multi-valued (pom prop)
 | 
					  (defun get-multi-valued (pom prop)
 | 
				
			||||||
  (let ((end (save-excursion (search-forward ":END:")))
 | 
					    (let ((end (save-excursion (search-forward ":END:")))
 | 
				
			||||||
        (elt-b nil)
 | 
					          (elt-b nil)
 | 
				
			||||||
        (elt-e nil)
 | 
					          (elt-e nil)
 | 
				
			||||||
        (elt nil)
 | 
					          (elt nil)
 | 
				
			||||||
        (values '()))
 | 
					          (values '())
 | 
				
			||||||
    (save-excursion
 | 
					          (values-str ""))
 | 
				
			||||||
      (setq elt-b (search-forward-regexp (format ":%s\\+?:" prop) end t))
 | 
					      (save-excursion
 | 
				
			||||||
      (while elt-b
 | 
					        (setq elt-b (search-forward-regexp (format ":%s\\+?:" prop) end t))
 | 
				
			||||||
        (setq elt-e (line-end-position))
 | 
					        (while elt-b
 | 
				
			||||||
        (setq elt (format "%s" (buffer-substring-no-properties
 | 
					          (setq elt-e (line-end-position))
 | 
				
			||||||
                                    elt-b elt-e)))
 | 
					          (setq elt (format "%s" (buffer-substring-no-properties
 | 
				
			||||||
        (setq values (cons elt values))
 | 
					                                  elt-b elt-e)))
 | 
				
			||||||
        (setq elt-b (search-forward-regexp (format ":%s\\+?:" prop) end t)))
 | 
					          (setq values (cons elt values))
 | 
				
			||||||
      )
 | 
					          (setq elt-b (search-forward-regexp (format ":%s\\+?:" prop) end t)))
 | 
				
			||||||
    values
 | 
					 | 
				
			||||||
    ))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(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)
 | 
					 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
  )
 | 
					      (dolist (elt values values-str)
 | 
				
			||||||
 | 
					        (let ((sep (if (> (length values-str) 0) ", " "")   ))
 | 
				
			||||||
 | 
					          (setq values-str (format "%s%s%s" values-str sep elt))
 | 
				
			||||||
 | 
					          ))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (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
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+RESULTS: export_block
 | 
				
			||||||
 | 
					: t
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Terms
 | 
					* Terms
 | 
				
			||||||
- SBIR
 | 
					- SBIR
 | 
				
			||||||
- STTR
 | 
					- STTR
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user