# demo of how to query page and get result from next page.
# See http://ccmc.gsfc.nasa.gov/requests/GetInput/get_ace_K.php

from org.das2.datum import TimeParser

str= getParam( 'timerange', '2012-04-17T00:00:00//2012-04-17T21:57:00', 'timerange to load' )
tr= DatumRangeUtil.parseTimeRange(str)

tf= TimeParser.create('$Y/$m/$d $H:$M:$S')

str_start= tf.format( tr.min(), None )
str_stop=  tf.format( tr.max(), None )

import string

projected='T'
addshift= 0

import httplib, urllib

parms= { 
          'str_start': str_start, 
          'str_stop': str_stop, 
          'projected':'T',
          'fb':33,
          'addshift':0,
          'latest_year':2012,
          'latest_month':4,
          'latest_day':17,
          'earliest_year':2005,
          'earliest_month':3,
          'earliest_day':18,
          'latest_hour':21,
          'latest_min':57
           }

parms = urllib.urlencode(parms)

headers = {"Content-type": "application/x-www-form-urlencoded", "Accept":"text/html", 'User-Agent':'Autoplot/2012' }

baseurl= 'ccmc.gsfc.nasa.gov'
conn = httplib.HTTPConnection(baseurl)

url = "/cgi-bin/requests/GetInput/get_ace_K.cgi"

conn.request("POST", url, parms, headers)

response = conn.getresponse()
sdata = response.read()  # "data" variable name causes problems

i1= string.find( sdata, '<a href=\"' )
i2= string.find( sdata, '"', i1+9 )

print '==== response from server ===='
print sdata
print '==== end, response from server ===='

conn.close()

if ( i1<0 ):
   i2= string.find( sdata, '<br>' )
   msg= sdata
   if ( i2>-1 ): msg= sdata[0:i2]
   raise Exception(msg)

print '----------'
print i1+10, i2
print '----------'
#print sdata[0:100]
#<H1>ACE K Data Formatted for Runs on Request</H1>
#<p> Click <a href="/idl_images/sw1_16043.txt" TARG
#print '----------'
ur= sdata[i1+9:i2]

print 'downloading http://'+baseurl+ur 
fil= downloadResourceAsTempFile( URL('http://'+baseurl+ur), monitor )

data= getDataSet( 'vap+dat:%s?time=field0&timeFormat=$Y+$m+$d+$H+$M+$S+$(milli)&bundle=field7-field9' % fil )
#print data
ll= labels( ['Bx[nT]','By[nT]','Bz[nT]'] ) 
data.putProperty( QDataSet.DEPEND_1, ll )
data.putProperty( QDataSet.LABEL, 'CCMC Ace K Data Runs on Request' )