Skip to content

Commit 903dc5b

Browse files
author
Wasin Waeosri
committed
Merge branch 'v13_revisecode'
2 parents cbd81e6 + 26d010f commit 903dc5b

File tree

8 files changed

+223
-182
lines changed

8 files changed

+223
-182
lines changed

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ $>python <application>.py
3030
```
3131

3232
## Optional - How to install requests
33-
The best way is to get the pip package management tool
33+
The best way is via the pip package management tool
3434
1. export <Python_folder>\Scripts to your OS PATH environment
3535
2. call pip command to install requests
3636
```
@@ -75,4 +75,7 @@ You can modify the scripts to run with Python 3 (with requests library installed
7575
- revies README.md
7676
- modify trkd_authen.py
7777
- modify trkd_quote.py
78+
- version 1.0.7: 9 May 2017
79+
- revies README.md
80+
- modify the rest of application files
7881

trkd_chart.py

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,22 @@
1515
import getpass
1616
import urllib2
1717

18-
18+
# Send HTTP request for all services
1919
def doSendRequest(url, requestMsg, headers):
2020
result = None
2121
try:
2222
##send request
2323
result = requests.post(url, data=json.dumps(requestMsg), headers=headers)
24-
if result.status_code == 500:
25-
print 'Request fail'
26-
print 'response status %s' % result.status_code
27-
print 'Error: %s' % result.json()
28-
sys.exit(1)
24+
## handle error
25+
if result.status_code is not 200:
26+
print('Request fail')
27+
print('response status %s'%(result.status_code))
28+
if result.status_code == 500: ## if username or password or appid is wrong
29+
print('Error: %s'%(result.json()))
30+
result.raise_for_status()
2931
except requests.exceptions.RequestException, e:
30-
print 'Exception!!!'
31-
print e
32+
print('Exception!!!')
33+
print(e)
3234
sys.exit(1)
3335
return result
3436

@@ -40,11 +42,11 @@ def CreateAuthorization(username, password, appid):
4042
authenMsg = {'CreateServiceToken_Request_1': { 'ApplicationID':appid, 'Username':username,'Password':password }}
4143
authenURL = 'https://api.trkd.thomsonreuters.com/api/TokenManagement/TokenManagement.svc/REST/Anonymous/TokenManagement_1/CreateServiceToken_1'
4244
headers = {'content-type': 'application/json;charset=utf-8'}
43-
print '############### Sending Authentication request message to TRKD ###############'
45+
print('############### Sending Authentication request message to TRKD ###############')
4446
authenResult = doSendRequest(authenURL, authenMsg, headers)
4547
if authenResult is not None and authenResult.status_code == 200:
46-
print 'Authen success'
47-
print 'response status %s'%(authenResult.status_code)
48+
print('Authen success')
49+
print('response status %s'%(authenResult.status_code))
4850
##get Token
4951
token = authenResult.json()['CreateServiceToken_Response_1']['Token']
5052

@@ -272,56 +274,58 @@ def RetrieveChart(token, appid):
272274
'ReturnPrivateNetworkURL': False,
273275
}}}
274276
##construct Chart URL and header
275-
chartURL = 'http://api.rkd.reuters.com/api/Charts/Charts.svc/REST/Charts_1/GetChart_2'
277+
chartURL = 'http://api.rkd.reuters.com/api/Charts/Charts.svc/REST/Charts_1/GetChart_2BB'
276278
headers = {'content-type': 'application/json;charset=utf-8' ,'X-Trkd-Auth-ApplicationID': appid, 'X-Trkd-Auth-Token' : token}
277279

278-
print '############### Sending Chart request message to TRKD ###############'
280+
print('############### Sending Chart request message to TRKD ###############')
279281
chartResult = doSendRequest(chartURL, chartRequestMsg,headers)
280282
if chartResult is not None and chartResult.status_code == 200:
281-
print 'Time Series Interday response message: '
282-
print chartResult.json()
283+
print('Time Series Interday response message: ')
284+
print(chartResult.json())
283285
##print returned server, tag and image url
284286
server = chartResult.json()['GetChart_Response_2']['ChartImageResult']['Server']
285-
print '\nServer: %s'%(server)
287+
print('\nServer: %s'%(server))
286288
tag = chartResult.json()['GetChart_Response_2']['ChartImageResult']['Tag']
287-
print 'Tag: %s'%(tag)
289+
print('Tag: %s'%(tag))
288290
imageUrl = chartResult.json()['GetChart_Response_2']['ChartImageResult']['Url']
289-
print 'Url: %s'%(imageUrl)
291+
print('Url: %s'%(imageUrl))
290292
return imageUrl
291293

292294
##download image url from the TRKD Chart service as chart.png
293295
def downloadChartImage(chartURL):
294296
##create header
295297
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
296298
headers = { 'User-Agent' : user_agent }
297-
print '\nDownlading chart.png file from %s'%(chartURL)
299+
print('\nDownlading chart.png file from %s'%(chartURL))
298300
##download image using Python urllib2
299301
downloadResult = urllib2.Request(chartURL, headers=headers)
300302
imgData = urllib2.urlopen(downloadResult).read()
301303
##write file
302304
fileName = './chart.png'
303305
with open(fileName,'wb') as outfile:
304306
outfile.write(imgData)
305-
print 'save chart.png file complete'
307+
print('save chart.png file complete')
306308

307309

308310

309311
## ------------------------------------------ Main App ------------------------------------------ ##
310-
##Get username, password and applicationid
311-
username = raw_input('Please input username: ')
312-
##use getpass.getpass to hide user inputted password
313-
password = getpass.getpass(prompt='Please input password: ')
314-
appid = raw_input('Please input appid: ')
315312

316-
token = CreateAuthorization(username,password,appid)
317-
print 'Token = %s'%(token)
318-
## if authentiacation success, continue subscribing Chart
319-
if token is not None:
320-
chartURL = RetrieveChart(token,appid)
321-
## if chart request success, continue downloading Chart image
322-
if chartURL is not None:
323-
print '############### Downloading Chart file from TRKD ###############'
324-
downloadChartImage(chartURL)
313+
if __name__ == '__main__':
314+
##Get username, password and applicationid
315+
username = raw_input('Please input username: ')
316+
##use getpass.getpass to hide user inputted password
317+
password = getpass.getpass(prompt='Please input password: ')
318+
appid = raw_input('Please input appid: ')
319+
320+
token = CreateAuthorization(username,password,appid)
321+
print('Token = %s'%(token))
322+
## if authentiacation success, continue subscribing Chart
323+
if token is not None:
324+
chartURL = RetrieveChart(token,appid)
325+
## if chart request success, continue downloading Chart image
326+
if chartURL is not None:
327+
print('############### Downloading Chart file from TRKD ###############')
328+
downloadChartImage(chartURL)
325329

326330

327331

trkd_interday.py

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,22 @@
1414
import json
1515
import getpass
1616

17-
17+
# Send HTTP request for all services
1818
def doSendRequest(url, requestMsg, headers):
1919
result = None
2020
try:
2121
##send request
2222
result = requests.post(url, data=json.dumps(requestMsg), headers=headers)
23-
if result.status_code == 500:
24-
print 'Request fail'
25-
print 'response status %s' % result.status_code
26-
print 'Error: %s' % result.json()
27-
sys.exit(1)
23+
## handle error
24+
if result.status_code is not 200:
25+
print('Request fail')
26+
print('response status %s'%(result.status_code))
27+
if result.status_code == 500: ## if username or password or appid is wrong
28+
print('Error: %s'%(result.json()))
29+
result.raise_for_status()
2830
except requests.exceptions.RequestException, e:
29-
print 'Exception!!!'
30-
print e
31+
print('Exception!!!')
32+
print(e)
3133
sys.exit(1)
3234
return result
3335

@@ -39,11 +41,11 @@ def CreateAuthorization(username, password, appid):
3941
authenMsg = {'CreateServiceToken_Request_1': { 'ApplicationID':appid, 'Username':username,'Password':password }}
4042
authenURL = 'https://api.trkd.thomsonreuters.com/api/TokenManagement/TokenManagement.svc/REST/Anonymous/TokenManagement_1/CreateServiceToken_1'
4143
headers = {'content-type': 'application/json;charset=utf-8'}
42-
print '############### Sending Authentication request message to TRKD ###############'
44+
print('############### Sending Authentication request message to TRKD ###############')
4345
authenResult = doSendRequest(authenURL, authenMsg, headers)
4446
if authenResult is not None and authenResult.status_code == 200:
45-
print 'Authen success'
46-
print 'response status %s'%(authenResult.status_code)
47+
print('Authen success')
48+
print('response status %s'%(authenResult.status_code))
4749
##get Token
4850
token = authenResult.json()['CreateServiceToken_Response_1']['Token']
4951

@@ -75,25 +77,26 @@ def RetrieveInteraday(token, appid):
7577
interdayURL = 'http://api.rkd.reuters.com/api/TimeSeries/TimeSeries.svc/REST/TimeSeries_1/GetInterdayTimeSeries_4'
7678
headers = {'content-type': 'application/json;charset=utf-8' ,'X-Trkd-Auth-ApplicationID': appid, 'X-Trkd-Auth-Token' : token}
7779

78-
print '############### Sending Time Series Interday request message to TRKD ###############'
79-
interdayResult = doSendRequest(interdayURL, interdayRequestMsg,headers)
80+
print('############### Sending Time Series Interday request message to TRKD ###############')
81+
interdayResult = doSendRequest(interdayURL, interdayRequestMsg, headers)
8082
if interdayResult is not None and interdayResult.status_code == 200:
81-
print 'Time Series Interday response message: '
82-
print interdayResult.json()
83+
print('Time Series Interday response message: ')
84+
print(interdayResult.json())
8385

8486

8587
## ------------------------------------------ Main App ------------------------------------------ ##
86-
##Get username, password and applicationid
87-
username = raw_input('Please input username: ')
88-
##use getpass.getpass to hide user inputted password
89-
password = getpass.getpass(prompt='Please input password: ')
90-
appid = raw_input('Please input appid: ')
88+
if __name__ == '__main__':
89+
##Get username, password and applicationid
90+
username = raw_input('Please input username: ')
91+
##use getpass.getpass to hide user inputted password
92+
password = getpass.getpass(prompt='Please input password: ')
93+
appid = raw_input('Please input appid: ')
9194

92-
token = CreateAuthorization(username,password,appid)
93-
print 'Token = %s'%(token)
94-
## if authentiacation success, continue subscribing Time Series interday
95-
if token is not None:
96-
RetrieveInteraday(token,appid)
95+
token = CreateAuthorization(username, password, appid)
96+
print('Token = %s'%(token))
97+
## if authentiacation success, continue subscribing Time Series interday
98+
if token is not None:
99+
RetrieveInteraday(token, appid)
97100

98101

99102

trkd_intraday.py

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,22 @@
1414
import json
1515
import getpass
1616

17-
17+
# Send HTTP request for all services
1818
def doSendRequest(url, requestMsg, headers):
1919
result = None
2020
try:
2121
##send request
2222
result = requests.post(url, data=json.dumps(requestMsg), headers=headers)
23-
if result.status_code == 500:
24-
print 'Request fail'
25-
print 'response status %s' % result.status_code
26-
print 'Error: %s' % result.json()
27-
sys.exit(1)
23+
## handle error
24+
if result.status_code is not 200:
25+
print('Request fail')
26+
print('response status %s'%(result.status_code))
27+
if result.status_code == 500: ## if username or password or appid is wrong
28+
print('Error: %s'%(result.json()))
29+
result.raise_for_status()
2830
except requests.exceptions.RequestException, e:
29-
print 'Exception!!!'
30-
print e
31+
print('Exception!!!')
32+
print(e)
3133
sys.exit(1)
3234
return result
3335

@@ -39,11 +41,11 @@ def CreateAuthorization(username, password, appid):
3941
authenMsg = {'CreateServiceToken_Request_1': { 'ApplicationID':appid, 'Username':username,'Password':password }}
4042
authenURL = 'https://api.trkd.thomsonreuters.com/api/TokenManagement/TokenManagement.svc/REST/Anonymous/TokenManagement_1/CreateServiceToken_1'
4143
headers = {'content-type': 'application/json;charset=utf-8'}
42-
print '############### Sending Authentication request message to TRKD ###############'
44+
print('############### Sending Authentication request message to TRKD ###############')
4345
authenResult = doSendRequest(authenURL, authenMsg, headers)
4446
if authenResult is not None and authenResult.status_code == 200:
45-
print 'Authen success'
46-
print 'response status %s'%(authenResult.status_code)
47+
print('Authen success')
48+
print('response status %s'%(authenResult.status_code))
4749
##get Token
4850
token = authenResult.json()['CreateServiceToken_Response_1']['Token']
4951

@@ -75,26 +77,27 @@ def RetrieveIntraday(token, appid):
7577
intradayURL = 'http://api.rkd.reuters.com/api/TimeSeries/TimeSeries.svc/REST/TimeSeries_1/GetIntradayTimeSeries_4'
7678
headers = {'content-type': 'application/json;charset=utf-8' ,'X-Trkd-Auth-ApplicationID': appid, 'X-Trkd-Auth-Token' : token}
7779

78-
print '############### Sending Time Series Intraday request message to TRKD ###############'
80+
print('############### Sending Time Series Intraday request message to TRKD ###############')
7981
intradayResult = doSendRequest(intradayURL, intradayRequestMsg,headers)
8082
if intradayResult is not None and intradayResult.status_code == 200:
81-
print 'Time Series Intraday response message: '
82-
print intradayResult.json()
83+
print('Time Series Intraday response message: ')
84+
print(intradayResult.json())
8385

8486

8587
## ------------------------------------------ Main App ------------------------------------------ ##
86-
##Get username, password and applicationid
87-
username = raw_input('Please input username: ')
88-
##use getpass.getpass to hide user inputted password
89-
password = getpass.getpass(prompt='Please input password: ')
90-
appid = raw_input('Please input appid: ')
88+
if __name__ == '__main__':
89+
##Get username, password and applicationid
90+
username = raw_input('Please input username: ')
91+
##use getpass.getpass to hide user inputted password
92+
password = getpass.getpass(prompt='Please input password: ')
93+
appid = raw_input('Please input appid: ')
9194

9295

93-
token = CreateAuthorization(username,password,appid)
94-
print 'Token = %s'%(token)
95-
## if authentiacation success, continue subscribing Time Series intraday
96-
if token is not None:
97-
RetrieveIntraday(token,appid)
96+
token = CreateAuthorization(username,password,appid)
97+
print('Token = %s'%(token))
98+
## if authentiacation success, continue subscribing Time Series intraday
99+
if token is not None:
100+
RetrieveIntraday(token,appid)
98101

99102

100103

0 commit comments

Comments
 (0)