Find Jobs
Hire Freelancers

Connect to tab.com.au and scrape racing data

$30-5000 USD

已取消
已发布将近 13 年前

$30-5000 USD

货到付款
We require Java software to connect to the TAB Live Odds Web Service API, to scan fixed odds horse racing markets according to the specifications below. Please note: If the TAB Live Odds Web Service (via xml) does not provide fixed odds markets, then create the program by scraping the website Note: Extensive sample code and documentation is available from TAB [login to view URL] We require 4 classes to be created (Horse, RaceMeeting, TABConnector and Engine). Each class will have various functions within it. ## Deliverables class Horse Functions getHorseName() - Return the horse name as stored by TAB getBackPrice() - Returns the back price isScratched() - Returns true if the horse is scratched, false otherwise class RaceMeeting Functions countHorse() - Returns the total number of horses in the race meeting including scratched horses getHorse(int whichHorse) - Returns a specific Horse. Valid input values are 0 ... countHorse() - 1. For example if there were 10 horses, valid inputs would be 0 to 9. Each number 0 to 9 must be guaranteed to return exactly one horse. getMeetingName() - Return the meeting name as stored by TAB getMeetingDate() - Return the meeting date in format DD/MM/YY getMeetingTime() - Return the meeting time in 24 hour format HH:MM isClosed() ??" If the close flag or in play flag is detected this will return true, false otherwise. class TABConnector The basic operation of the software called TABConnector should be as follows: This should run in its own thread. Configuration There must be a configuration file TAB.cfg. This configuration file is read through the constructor. The parameters within the configuration file are as follows: username=myusername password=mypassword minutesAhead=1440 eventTypeRefresh=30 logLevel={DEBUG, INFO, OFF} getAllPricesRate=1 The first two parameters are to store username and password. The third and fourth parameters are related to the scanMeetings() function (see below). logLevel specifies the level of logging detail. INFO should produce console output that contains Date (format DD/MM/YY), Time (24 hour format HH:MM), MeetingName, HorseName, back price. The logs will need to contain data from every race scanned and be stored in a csv format. However a new file will be created once the file size reaches 1MB. Example: 14/03/11, 15:20, Flem (AUS) 14th Mar - 15:20 R7 2000m Grp1, 3. Heart Of Dreams, 5.3 Functions scanMeetings() • Both win markets and place markets that have fixed odds should be scanned. All other markets should be ignored • Retrieve TAB racing ID’s in chronological order using minutesAhead to determine which races to scan. For example 1440 indicates that we should scan all markets that are commencing within the next 1440 minutes (which is 24 hours) • scanMeetings() should be called at intervals of eventTypeRefresh. For example 30 indicates that we should call scanMeetings() every 30 minutes. • Store racing ID’s in memory. getAllPrices() • getAllPrices() will scan the list of racing ID’s generated from scanMeetings() function. • For each meeting ID the following steps will be performed: o Generate RaceMeeting object with Date, Time, MeetingName o For each RaceMeeting generate a list of Horse objects • Scanning should be done according to getAllPricesRate parameter within the .cfg file. • All RaceMeeting objects should be stored in memory (not on disk or in a database) • If the isClosed() function returned ‘true’ no more prices should be polled and the racing ID should be deleted from memory and RaceMeeting object should be sent to deleteRaceMeeting() function in the Engine. • At the start of each cycle the software should read the [login to view URL] file that will be stored on the hard disk. • The [login to view URL] file will be a comma delimited file with the date, time and meeting name. Any race meeting on this should NOT be scanned. Example: 14/03/11, 15:20, Flem (AUS) • Compare RaceMeeting objects with prior RaceMeeting objects that are held in memory • If any Horse object changes it’s Back Price (getBackPrice()) then send the RaceMeeting object to updateRaceMeeting() function within Engine object getSinglePrice(Date, Time, MeetingName, HorseName) • Race meetings are uniquely identified by date, time and Meeting name • This should locate the meeting and horse and generate a new Horse object with fresh price data and then return the horse object. class Engine We require an implementation of Engine. Functions updateRaceMeeting(RaceMeeting) • When the getAllPrices() function detects a price change it calls the updateRaceMeeting() function and passes it a RaceMeeting object. deleteRaceMeeting(RaceMeeting) • Leave unimplemented stub Error Checking • Upon disconnection the software should automatically attempt to reconnect • The software must be free of memory leaks and should be able to run continuously for 72 hours with no noticeable degradation in performance Operating Systems • The code should be written in a platform independent manner. • It should run on Windows (XP through 7) and Linux (Centos 5) • For windows a batch file will need to be provided for starting the program (with brief install instructions) • For Linux, a shell script should be provided for running the program (with brief install instructions) • We will provide a linux server with command line access (not graphical interface) for you to fully test connectivity and functionality testing. For the job to be complete we need to see this running on the Linux server.
项目 ID: 3235033

关于此项目

4提案
远程项目
活跃13 年前

想赚点钱吗?

在Freelancer上竞价的好处

设定您的预算和时间范围
为您的工作获得报酬
简要概述您的提案
免费注册和竞标工作
4威客以平均价$191 USD来参与此工作竞价
用户头像
See private message.
$85 USD 在3天之内
5.0 (8条评论)
3.2
3.2
用户头像
See private message.
$42.49 USD 在3天之内
5.0 (10条评论)
3.0
3.0
用户头像
See private message.
$212.50 USD 在3天之内
4.6 (4条评论)
2.7
2.7
用户头像
See private message.
$425 USD 在3天之内
5.0 (4条评论)
2.2
2.2

关于客户

AUSTRALIA的国旗
Sydney, Australia
5.0
3
会员自3月 17, 2011起

客户认证

谢谢!我们已通过电子邮件向您发送了索取免费积分的链接。
发送电子邮件时出现问题。请再试一次。
已注册用户 发布工作总数
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
加载预览
授予地理位置权限。
您的登录会话已过期而且您已经登出,请再次登录。