1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
#!/bin/sh
#
# Authenticate and grab quotes, read new symbols from stdin.
#
echo "$*" > /tmp/ggg
# If mode is "L2", then get L2 quotes for a single symbol, else
# get real time quotes for a bunch of symbols.
MODE="$1"
jsessionid=
if [ "$MODE" = Daily ]; then
USER=rcfile
SYM="$2"
else
read USER
fi
case "$USER" in
rcfile)
USER=demouser
PW=XXXXXX
while read tag eq val
do
case "$tag" in
username) USER="$val";;
password) PW="$val";;
esac
done < $HOME/.linuxtrade/moneyam.com
;;
jsessionid)
read jsessionid
;;
*)
read PW
;;
esac
SITE="http://$HOSTNAME:$PORT"
UA="Mozilla/4.78 [en] (X11; U; Linux 2.4.9-13 i686)"
#
# Get a session cookie
#
if [ "$jsessionid" = "" ]; then
URL="https://www.moneyam.com/action/user/processLogin"
jsessionid=`curl -A "$UA" -s \
-D- \
-d action=login \
-d username=$USER \
-d password=$PW \
-d saveDetails=on \
-o/dev/null $URL \
| sed -n 's/Set-Cookie: JSESSIONID=\([^;]*\).*/\1/p'`
echo "_J$jsessionid"
fi
#
# Setup to get quotes
#
case "$MODE" in
L2)
# Demo symbols are: RYB PTY
URL="http://level2.moneyam.com/data.dat"
URL="$URL?Class=L2&linuxtrade=$USER&JSESSIONID=$jsessionid"
;;
Chart)
URL="http://streamer.moneyam.com/data.dat"
URL="$URL?Class=Chart&chartType=Intraday&keyCodes=VOD"
URL="$URL&startDate=2003-06-26&endDate=2003-06-26"
URL="$URL&JSESSIONID=$jsessionid"
curl -A "$UA" -s "$URL" 2>/dev/null
exit
;;
Daily)
URL="http://streamer.moneyam.com/data.dat"
URL="$URL?Class=Chart&chartType=Historical&keyCodes=$SYM"
# URL="$URL&startDate=2003-06-01&endDate=2003-06-26"
URL="$URL&startDate=$3&endDate=$4"
URL="$URL&JSESSIONID=$jsessionid"
curl -A "$UA" -s "$URL" 2>/dev/null
exit
;;
*)
URL="http://streamer.moneyam.com/data.dat"
URL="$URL?Class=Stock&JSESSIONID=$jsessionid"
;;
esac
cleanup() {
if [ $PID -gt 1 ]; then
kill $PID 2>/dev/null
fi
}
#
# Use our private version of curl unless curl version 7.10.6 or
# newer is installed.
#
case `curl --version` in
curl\ [0-6].*) CURL=linuxtrade-curl;;
curl\ 7.[0-9].*) CURL=linuxtrade-curl;;
curl\ 7.10.[1-5]\ *) CURL=linuxtrade-curl;;
curl\ *) CURL=curl;;
*) CURL=linuxtrade-curl;;
esac
#
# Loop, checking for new symbol requests and getting quotes
#
PID=0
trap cleanup 0
while :
do
read SYMS
if [ $PID -gt 1 ]; then
kill $PID 2>/dev/null; PID=0
echo "_MARKER"
fi
if [ "$SYMS" = "" ]; then
exit
fi
if [ "$MODE" = L2 ]; then
# For debugging
# cat /home/rick/proj/lt2/xxxvod.l2
# cat /home/rick/proj/lt2/xxxryb.l2
:
fi
# Temporary hack: use private copy of curl where the -N option
# is not broken.
$CURL -N -A "$UA" -s "$URL&keyCodes=$SYMS" 2>/dev/null &
PID=$!
if [ "$?" != 0 ]; then
exit 1
fi
done
|