#!/bin/tcsh -f #(ie run the tshell on this but don't read the .cshrc or .tcshrc) echo version = 1.08 of yvp 2009 Apr 17 # 2009 Apr 17, 1.08: grab the reference if it was found! # 2008 Aug 18, 1.07: allow pages like: `yvp 2008 3 e2774` # 2008 Aug 05, 1.06: year, volume and page checks # 2007 Nov 01, 1.05: released to the web # 2007 Sep 01, 1.04: handle 1 argument case! # 2007 Jun 30, 1.03: constructed url is now given at end # 2007 Jun 19, 1.02: correct documentation # 2007 Jun 18, 1.01: allow additional tags # 2007 Jun 13, 1.00: origin from avp # set browser = firefox if ($#argv <= 1) then echo 'usage: yvp [year] [volume] [page]' echo ' or ' echo ' yvp [volume] [page]' echo ' or ' echo ' yvp [year] [volume] [page] [another key]' echo 'Find article with given year/volume/page in PubMed' echo "by setting your mozilla-type browser to it." echo echo "Also, extract the reference in bibtex format." echo echo "Documentation:" echo "http://www.ccrnp.ncifcrf.gov/~toms/yvp.html" echo echo "Dr. Thomas D. Schneider" echo "National Institutes of Health" echo "National Cancer Institute" echo "Center for Cancer Research Nanobiology Program" echo "Molecular Information Theory Group" echo "Frederick, Maryland 21702-1201" echo "toms@ncifcrf.gov" echo "permanent email: toms@alum.mit.edu" echo "http://www.ccrnp.ncifcrf.gov/~toms/" exit endif # preset values set year = "" set volume = "" set page = "" set key = "" # example: # http://www.ncbi.nlm.nih.gov/sites/entrez?orig_db=PubMed&db=PubMed&cmd=Search&term=104%5Bvolume%5D%20AND%209278%5Bpage%5D if ($#argv == 2) then echo "year ignored, using volume and page" set volume = "$1" set page = "$2" set url = "http://www.ncbi.nlm.nih.gov/sites/entrez?orig_db=PubMed&db=PubMed&cmd=Search&term=${volume}%5Bvolume%5D%20AND%20${page}%5Bpage%5D" endif if ($#argv == 3) then echo "using year volume and page" set year = "$1" set volume = "$2" set page = "$3" set url = "http://www.ncbi.nlm.nih.gov/sites/entrez?orig_db=PubMed&db=PubMed&cmd=Search&term=${volume}%5Bvolume%5D%20AND%20${page}%5Bpage%5D" set url = "http://www.ncbi.nlm.nih.gov/sites/entrez?orig_db=PubMed&db=PubMed&cmd=Search&term=${volume}%5Bvolume%5D%20AND%20${page}%5Bpage%5D%20AND%20${year}%5Bpdat%5D" endif if ($#argv == 4) then echo "using year volume and page and key" set year = "$1" set volume = "$2" set page = "$3" set key = "$4" #set url = "http://www.ncbi.nlm.nih.gov/sites/entrez?orig_db=PubMed&db=PubMed&cmd=Search&term=${volume}%5Bvolume%5D%20AND%2014%5Bpage%5D%20AND%20${year}%5Bpdat%5D" set url = "http://www.ncbi.nlm.nih.gov/sites/entrez?orig_db=PubMed&db=PubMed&cmd=Search&term=${volume}%5Bvolume%5D%20AND%20${page}%5Bpage%5D%20AND%20${year}%5Bpdat%5D%5B%20AND%20${key}" set url = "http://www.ncbi.nlm.nih.gov/sites/entrez?Db=PubMed&Cmd=DetailsSearch&Term=${volume}%5Bvolume%5D+AND+${page}%5Bpage%5D+AND+${year}%5Bpdat%5D+AND+${key}%5BAll+Fields%5D" endif # tests: # mozillaurl "$url" # $browser -remote "openURL($url)" # check values set beep = '' if ($year != '') then if ($year > `date "+%Y"`) then echo "$beep year $year is bad" exit endif if ($year < 1500) then echo "$beep year $year is bad" exit endif endif if ($volume != '') then if ($volume < 1) then echo "$beep volume $volume is bad" exit endif endif # allow pages like e2774 in `yvp 2008 3 e2774` # if ("$page" != '') then # if ("$page" < 1) then # echo "$beep page $page is bad" # exit # endif # endif browserurl "$url" echo --- url: echo "$url" # 2009 Apr 17: if one can get a PMID, call mq with it! set tmp = /tmp/`whoami`.yvp wgetas "$url" $tmp set line = `grep 'PMID' $tmp` if (`echo "$line" | grep "PMID: " | wc -l` != 0) then echo "$line" # extract the number set pmid = `echo "$line"|sed "s/PMID: /@/"|tr '@ ' '\n\n'|head -3|tail -1` echo "pmid: $pmid" cd mq "$pmid" endif