source: trunk/UTIL/PYTHON/bibweb/biglmdwebsite/lmdall.py @ 1288

Last change on this file since 1288 was 1206, checked in by aslmd, 12 years ago

BIBWEB. workaround a bug with biglmdwebsite and includemonth.

  • Property svn:executable set to *
File size: 6.5 KB
Line 
1#! /usr/bin/env python
2#-*- coding: utf8 -*-
3import ads
4import numpy as np
5import os
6
7##########################################
8# Aymeric SPIGA
9# Laboratoire de Météorologie Dynamique
10# 15-20/12/2013. teams 01/2014.
11##########################################
12
13#### SETTINGS
14titpre = "<CENTER><H2><EM><font color='#B8860B;'>" # title prefix
15titsuf = "</font></EM></H2></CENTER>" # title suffix
16anneec = 2014 # last year to include
17oneyear = None
18oneyear = 2013
19usercond = None
20usercond = ''' -c 'not journal:"Discussions"' ''' # fixes the EGU Discussions journals problem
21usercond = usercond + ''' -c 'not journal:"Polymer Science"' ''' # strange inclusions
22####
23
24### FOLDER
25folder = "/home/marshttp/www-mars/publmdall"
26if oneyear is not None: folder = folder + str(oneyear)
27
28### CLEAN
29os.system('rm -rf '+folder)
30
31### GET TEAM LIST and SIZE
32tnom,tprenom,tinitiales,tequipe,tanneedeb,tanneefin,taltnom = np.loadtxt("listpeople.txt",delimiter=";",dtype='string',unpack=True,skiprows=3,comments="#")
33
34### LOOP on EACH TEAM (and add a combined list for all TEAMS)
35ll = list(set(tequipe)) ; ll.append('all') ; ll = ll[::-1]
36for eqeq in ll:
37
38  ### GET ONLY MEMBERS OF THE TEAM
39  if eqeq != 'all':
40    w = np.where(tequipe==eqeq)
41    nom = tnom[w] ; prenom = tprenom[w] ; initiales = tinitiales[w] ; equipe = tequipe[w] 
42    anneedeb = tanneedeb[w] ; anneefin = tanneefin[w] ; altnom = taltnom[w]
43  else:
44    nom = tnom ; prenom = tprenom ; initiales = tinitiales ; equipe = tequipe
45    anneedeb = tanneedeb ; anneefin = tanneefin ; altnom = taltnom
46  ntot = nom.size
47 
48  ### PREPARE ADS LINK
49  # 1. generic parts
50  adslink1="http://adsabs.harvard.edu/cgi-bin/nph-abs_connect?db_key=AST&db_key=PHY&db_key=PRE&qform=PHY&arxiv_sel=astro-ph&arxiv_sel=cond-mat&arxiv_sel=cs&arxiv_sel=gr-qc&arxiv_sel=hep-ex&arxiv_sel=hep-lat&arxiv_sel=hep-ph&arxiv_sel=hep-th&arxiv_sel=math&arxiv_sel=math-ph&arxiv_sel=nlin&arxiv_sel=nucl-ex&arxiv_sel=nucl-th&arxiv_sel=physics&arxiv_sel=quant-ph&arxiv_sel=q-bio&aut_xct=YES&aut_logic=OR&author="
51  adslink2="+&ned_query=YES&sim_query=YES&start_mon=&start_year=&end_mon=&end_year=&ttl_logic=OR&title=&txt_logic=OR&text=&nr_to_return=1999&start_nr=1&jou_pick=NO&ref_stems="
52  if oneyear is not None:
53    adslink2="+&ned_query=YES&sim_query=YES&start_mon=&start_year="+str(oneyear)+"&end_mon=&end_year="+str(oneyear)+"&ttl_logic=OR&title=&txt_logic=OR&text=&nr_to_return=1999&start_nr=1&jou_pick=NO&ref_stems="
54  adslink3="&data_and=ALL&group_and=ALL&start_entry_day=&start_entry_mon=&start_entry_year=&end_entry_day=&end_entry_mon=&end_entry_year=&min_score=&sort=SCORE&data_type=BIBTEXPLUS&aut_syn=YES&ttl_syn=YES&txt_syn=YES&aut_wt=1.0&ttl_wt=0.3&txt_wt=3.0&aut_wgt=YES&obj_wgt=YES&ttl_wgt=YES&txt_wgt=YES&ttl_sco=YES&txt_sco=YES&version=1"
55  # 2. author list
56  st=adslink1 ; st2 = ""
57  tf = open("ads.testauthor", 'w') # this is just for testing ADS outside the script
58  for iii in range(ntot):
59    st = st + nom[iii].split()[0].replace('é',"%C3%A9")\
60            +"++%2C++"\
61            + prenom[iii].split()[0].replace('é',"%C3%A9")\
62            +"++%3B++"\
63            + nom[iii].split()[0].replace('é',"%C3%A9")\
64            +"++%2C++"\
65            + initiales[iii].split()[0].replace('é',"%C3%A9")\
66            +"++%3B++"
67    st2 = st2 + nom[iii] + " , " + prenom[iii] + " ; " + nom[iii] + " , " + initiales[iii] + " ; "
68    if altnom[iii].split()[0] != "-":
69      st = st + altnom[iii].split()[0].replace('é',"%C3%A9")\
70              +"++%2C++"\
71              + prenom[iii].split()[0].replace('é',"%C3%A9")\
72              +"++%3B++"\
73              + altnom[iii].split()[0].replace('é',"%C3%A9")\
74              +"++%2C++"\
75              + initiales[iii].split()[0].replace('é',"%C3%A9")\
76              +"++%3B++"
77      st2 = st2 + altnom[iii] + " , " + prenom[iii] + " ; " + altnom[iii] + " , " + initiales[iii] + " ; "   
78  st=st+adslink2
79  tf.write(st2)
80  tf.close()
81  # 3. journal list
82  jn = ""
83  f = open("listjournals.txt", 'r')
84  for line in f:
85    jj = line.strip().replace("&","%26")
86    jn = jn + jj + "+"
87  st=st+jn+adslink3
88  # 4. write final result
89  dalink = folder+eqeq.strip()+".link"
90  os.system('rm -rf '+dalink)
91  daf = open(dalink, 'w')
92  daf.write(st)
93  daf.close()
94 
95  ### RETRIEVE COMPLETE BIBTEX FILE (NB: does not seem to work without month)
96  ads.makepage('lmd_dummy',retrieve=True,linkads=dalink,customcond=usercond,verbose=False,includemonth=True)
97 
98  ### LOOP ON NAMES
99  miny = 9999 ; maxy = -9999 ; lk = "<br>Author:"
100  for iii in range(ntot):
101    # 1. get and prepare various components
102    danom = nom[iii].strip() ; daprenom = prenom[iii].strip()
103    dayears = int(anneedeb[iii]) ; dayeare = int(anneefin[iii])
104    daini = initiales[iii].split()[0]
105    if usercond is None: cc = ''' -c ' '''
106    else: cc = usercond + ''' -c ' '''
107    cc = cc + ''' author:"'''+danom+'''" '''
108    if altnom[iii].split()[0] != "-": 
109       danomalt = altnom[iii].split()[0]
110       cc = cc + ''' or author:"'''+danomalt+'''" '''
111    cc = cc+''' ' '''
112    # -- if year start 0000 and year end 0000 do not do anything
113    if dayears + dayeare != 0:
114      if dayears == 0: dayears = anneec
115      if dayeare == 0: dayeare = anneec
116      # 2. info
117      print danom+"-"+daprenom+"-"+str(dayears)+"-"+str(dayeare)
118      # 3. make page
119      if oneyear is None: ly = range(dayeare,dayears-1,-1)
120      else: ly = [oneyear]
121      ads.makepage('lmd_'+danom.replace(" ", ""),\
122                 retrieve = False,\
123                 customcond = cc,\
124                 listyear = ly,\
125                 linkads = dalink,\
126                 title = titpre+daprenom+" "+danom+titsuf,\
127                 printnum = True,\
128                 verbose = False,\
129                 includemonth=True,\
130                 target = folder)
131      # 4. get intervals of years for the whole lab
132      if oneyear is None:
133        if dayears < miny: miny = dayears
134        if dayeare > maxy: maxy = dayeare 
135      # 5. get authors link list
136      lk = lk + ''' <a href="lmd_'''+danom.replace(" ", "")+'''.html">'''+daini+" "+danom.replace('é',"&eacute;")+"</a> /"
137 
138  ### MAKE FINAL PAGE
139  if oneyear is None: ly = range(maxy,miny-1,-1)
140  else: ly = [oneyear]
141  ads.makepage('lmd_'+eqeq.strip(),\
142               retrieve = False,\
143               listyear = ly,\
144               linkads = dalink,\
145               title = "<CENTER><H2><EM><font color='#B8860B;'>Peer-reviewed publications for team "+eqeq.strip()+"</font></EM></H2></CENTER>",\
146               addlink = lk,\
147               customcond = usercond,\
148               printnum = True,\
149               includemonth=True,\
150               target = folder)
151
152### CLEAN
153os.system('rm -rf *dummy*')
154os.system('rm -rf '+folder+'*.link*')
155
Note: See TracBrowser for help on using the repository browser.