/[drupal]/contributions/modules/stockapi/stockapi.module
ViewVC logotype

Contents of /contributions/modules/stockapi/stockapi.module

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.11 - (show annotations) (download) (as text)
Thu Jul 24 21:23:47 2008 UTC (16 months ago) by mathias
Branch: MAIN
CVS Tags: HEAD
Changes since 1.10: +2 -2 lines
File MIME type: text/x-php
Fixed braino
1 <?php
2 // $Id: stockapi.module,v 1.10 2008/07/21 05:25:56 mathias Exp $
3
4 /**
5 * @file
6 * API for retrieving stock information from Yahoo!
7 */
8
9 // TODO: Add historical data option.
10 // http://help.yahoo.com/l/us/yahoo/finance/quotes/quote-12.html
11
12 module_load_include('inc', 'stockapi');
13
14 /**
15 * Implementation of hook_menu().
16 */
17 function stockapi_menu() {
18 $items = array();
19
20 $items['admin/settings/stockapi'] = array(
21 'title' => 'Stock API settings',
22 'description' => t('Configure cron run settings.'),
23 'page callback' => 'drupal_get_form',
24 'page arguments' => array('stockapi_admin_settings'),
25 'access arguments' => array('administer site configuration'),
26 );
27 $items['stockapi'] = array(
28 'title' => 'Stock API',
29 'description' => t('Foo'),
30 'page callback' => 'stockapi_page',
31 'access arguments' => array('access content'),
32 );
33
34 return $items;
35 }
36
37 /**
38 * Implementation of hook_cron().
39 */
40 function stockapi_cron() {
41 if (time() - variable_get('stockapi_fetch_last', 0) > variable_get('stockapi_fetch', 3600)) {
42 $result = db_query_range('SELECT symbol FROM {stockapi} ORDER BY updated', 0, 199);
43 $symbols = array();
44 while ($data = db_fetch_object($result)) {
45 $symbols[] = $data->symbol;
46 }
47 $stocks = stockapi_fetch($symbols);
48 foreach ($stocks as $key => $stock) {
49 stockapi_save(_stockapi_to_object($stock));
50 }
51 variable_set('stockapi_fetch_last', time());
52 cache_clear_all('variables', 'cache');
53 }
54 }
55
56 function stockapi_admin_settings() {
57 $period = drupal_map_assoc(array(900, 1800, 3600, 21600, 43200, 86400), 'format_interval');
58 $rows = drupal_map_assoc(array(30, 100, 500, 1000, 2500, 5000, 10000));
59
60 $form['stockapi_fetch'] = array(
61 '#type' => 'select',
62 '#title' => t('Stock data update frequency'),
63 '#default_value' => variable_get('stockapi_fetch', 3600),
64 '#options' => $period,
65 '#description' => t('How often to refresh the stock data from Yahoo! Finance. Default is 1 hour (3600 seconds).'),
66 );
67
68 $quotetype = array('basic' => 'basic', 'extended' => 'extended', 'real-time' => 'realtime');
69 $form['stockapi_quotetype'] = array(
70 '#type' => 'select',
71 '#title' => t('Select the type of quotes to retrieve'),
72 '#default_value' => variable_get('stockapi_quotetype', 'basic'),
73 '#options' => $quotetype,
74 '#description' => t('FOO'),
75 );
76
77 return system_settings_form($form);
78 }
79
80 function stockapi_page() {
81 $symbols = array('A','AAPL','AAUK','AAV','ABAX','ABB','ABCO','ABI','ABII','ABMD','ABT','ABV','ABX','ACAP','ACAS','ACC','ACG','ACI','ACL','ACOR','ACUR','ADBE','ADI','ADP','ADPT','ADS','ADSK','ADTN','ADVS','ADX','AEM','AFB','AFFY','AGG','AGN','AGU','AIA','AINV','AIXG','AKAM','AKR','AKRX','ALD','ALGN','ALKS','ALNY','ALOG','ALTR','ALX','ALXN','AMAG','AMAT','AMB','AMCC','AMCN','AME','AMED','AMG','AMGN','AMLN','AMMD','AMRI','AMSC','AMT','AMTD','AMX','ANAD','ANGO','ANH','ANR','ANSS','ANST','AOB','APA','APC','APEI','APF','APH','APOL','APPX','APWR','ARA','ARAY','ARB','ARBA','ARCC','ARD','ARE','AREX','ARMH','ARNA','ARRY','ARST','ARTC','ARTG','ARUN','ASA','ASEI','ASIA','ASR','ATB','ATE','ATF','ATHN','ATHR','ATMI','ATN','ATNI','ATVI','ATW','AU','AUXL','AUY','AVAV','AVB','AVK','AWC','AWF','AXYS','AYE','AZK','AZN','BABY','BANF','BAP','BARE','BAX','BBBB','BBD','BBEP','BBG','BBL','BCA','BCF','BCH','BCPC','BCR','BDE','BDV','BDX','BEAT','BEN','BEXP','BF-B','BFIN','BFK','BFS','BGCP','BGR','BHI','BHK','BHP','BIDU','BIIB','BIV','BK','BKCC','BKE','BKF','BKMU','BKT','BLE','BLK','BLKB','BLUD','BLW','BMC','BMI','BMR','BMRN','BMY','BNA','BNCL','BNI','BNS','BNT','BOE','BOH','BOKF','BPL','BPO','BPT','BRCD','BRCM','BRE','BRKL','BRKR','BRL','BRM','BRO','BRY','BSX','BTE','BTI','BTO','BTU','BUCY','BUD','BUSE','BVN','BWP','BX','BXP','BXS','BYM','BZF','BZP','CA','CACC','CAEI','CAM','CAP','CASS','CAVM','CBSH','CBST','CBU','CCBG','CCI','CCJ','CCL','CCMP','CCOI','CCU','CDE','CDR','CEDC','CEE','CEF','CELG','CEO','CEP','CEPH','CERN','CET','CETV','CF','CFFN','CFR','CFX','CGNX','CHCO','CHFC','CHH','CHI','CHK','CHKP','CHL','CHN','CHNR','CHT','CHTT','CHY','CIB','CIEN','CIG','CISG','CKXE','CL','CLB','CLDA','CLF','CLI','CLNE','CLP','CLR','CLWR','CME','CMED','CMG','CML','CMP','CMTL','CMZ','CNET','CNI','CNQ','CNQR','CNS','CNX','COG','COGT','COH','COMV','COV','CP','CPE','CPHD','CPLA','CPLP','CPRT','CPS','CPST','CPT','CPTS','CPWR','CRA','CREE','CRESY','CRK','CRL','CRM','CRME','CRO','CRR','CRT','CRXL','CRY','CRZO','CSCO','CSGP','CSQ','CSR','CSWC','CSX','CT','CTBI','CTCM','CTCT','CTRP','CTSH','CTXS','CUZ','CVA','CVBF','CVD','CVLT','CVTX','CWEI','CXG','CXO','CXW','CY','CYB','CYBS','CYBX','CYN','CYPB','DAC','DASTY','DBC','DBV','DCOM','DCS','DCT','DDR','DDUP','DECK','DEI','DEL','DEO','DES','DFS','DFT','DGIT','DHR','DHT','DHX','DIA','DIOD','DISCA','DLB','DLR','DM','DMLP','DMRC','DNA','DNB','DNDN','DNEX','DNN','DNP','DNR','DO','DOX','DPTR','DR','DRE','DRIV','DRQ','DRRX','DRYS','DSCP','DSM','DSU','DSX','DTSI','DV','DVN','DVY','DWA','EAC','EAD','EBAY','ECA','ECLP','ECOL','EDR','EDU','EEM','EFA','EFG','EFR','EFT','EFV','EFX','EGLE','EGN','EGO','EGOV','EGP','EGY','EHI','EHTH','EIG','EIM','EJ','ELG','ELN','ELON','ELOS','ELRC','ELS','EMF','ENDP','ENER','ENL','ENOC','ENP','ENSI','ENZ','EOC','EOG','EOI','EOS','EP','EPB','EPIQ','EPP','EPR','EQIX','EQR','EQT','EQY','ERC','ERES','ERF','ERTS','ESD','ESE','ESEA','ESGR','ESI','ESLR','ESS','ESV','ETB','ETG','ETO','ETV','ETW','EURX','EV','EVEP','EVG','EVT','EVTC','EVV','EVVV','EW','EWA','EWC','EWD','EWG','EWH','EWJ','EWL','EWM','EWP','EWQ','EWS','EWT','EWU','EWW','EWY','EWZ','EXAC','EXAR','EXBD','EXC','EXEL','EXLS','EXM','EXPE','EXPO','EXR','EZA','EZCH','EZM','EZU','FARO','FAST','FAX','FCBC','FCE-A','FCEL','FCF','FCL','FCN','FCT','FDG','FDRY','FDS','FEED','FEZ','FFC','FFIN','FFIV','FGF','FIF','FIG','FII','FLIR','FLY','FMBI','FMCN','FMER','FMO','FNB','FNFG','FNX','FOLD','FOR','FORM','FORR','FPO','FR','FRO','FRT','FRX','FSIN','FSLR','FSP','FST','FTEK','FTK','FWRD','FXI','G','GA','GAB','GAF','GAM','GASS','GBCI','GBL','GBN','GCS','GDP','GDV','GDX','GENZ','GERN','GEX','GF','GFA','GFI','GG','GGG','GGN','GGP','GHDX','GHL','GHM','GIGM','GIL','GILD','GIM','GIVN','GLAD','GLD','GLF','GLG','GLNG','GLQ','GLRE','GLS','GLW','GMCR','GMKT','GML','GMR','GMXR','GNK','GNTX','GOLD','GOOG','GPN','GPOR','GPRO','GRC','GRI','GRMN','GRS','GSG','GSH','GSK','GSOL','GSS','GST','GSX','GTE','GTI','GTXI','GTY','GU','GWR','GXDX','GYI','HAE','HAL','HALO','HANS','HBC','HBHC','HCBK','HCN','HCP','HDB','HEP','HERO','HEV','HGSI','HGT','HI','HIL','HIO','HITT','HIW','HIX','HK','HL','HLIT','HLTH','HME','HMIN','HMSY','HMY','HNBC','HNR','HNSN','HOLX','HOMB','HOO','HOS','HP','HPF','HPI','HPS','HQH','HR','HSVLY','HTD','HTH','HTLD','HTS','HTV','HTX','HXM','HYT','HYV','IAG','IART','IAU','IBB','IBKC','IBN','IBOC','ICE','ICF','ICGE','ICLR','ICON','ID','IDC','IDCC','IDIX','IDRA','IDTI','IDU','IDXX','IEF','IEP','IEV','IEX','IEZ','IFN','IGD','IGE','IGM','IGR','IGT','IGV','IHG','IHS','IIF','IIT','IIVI','IJH','IJJ','IJK','IJR','IJS','IJT','ILF','ILMN','IMA','IMAX','IMCL','INCY','INDB','INFA','INFN','INFY','INTC','INTU','INWK','IO','IOO','IPCR','IPGP','IPI','IRC','IRETS','IRIS','ISBC','ISCA','ISIL','ISIS','ISRG','ISYS','ITA','ITC','ITMN','ITU','IVAN','IVE','IVGN','IVV','IVW','IVZ','IWA','IWB','IWD','IWF','IWM','IWN','IWO','IWOV','IWP','IWR','IWS','IWV','IWW','IXC','IXJ','IXN','IXP','IYE','IYF','IYH','IYJ','IYK','IYM','IYR','IYT','IYW','IYY','IYZ','JASO','JCOM','JFR','JKE','JKH','JKHY','JLA','JNJ','JNPR','JNS','JOBS','JOE','JOYG','JPC','JPS','JPZ','JQC','JRJC','JRS','JSN','JTP','KBE','KDN','KF','KFN','KGC','KGS','KIM','KLAC','KNSY','KNX','KNXA','KO','KRC','KRG','KRNY','KSU','KTF','KWK','KYE','KYN','LAMR','LDK','LDR','LEO','LFC','LFL','LFT','LGCY','LGND','LIHR','LLNW','LLTC','LLY','LMDIA','LMNX','LNN','LO','LOGI','LOOP','LQD','LRN','LRY','LTC','LUFK','LUK','LULU','LVS','MA','MAA','MAC','MASI','MATK','MATW','MAV','MBT','MCD','MCF','MCHP','MCHX','MCO','MCR','MCRL','MCRS','MDAS','MDCO','MDR','MDRX','MDT','ME','MEDX','MEE','MELI','MFA','MFE','MFG','MFL','MGRC','MGU','MHN','MICC','MIL','MIN','MINI','MIR','MLM','MLNX','MMSI','MMT','MNT','MNTA','MO','MON','MORN','MOS','MPEL','MPW','MPWR','MQY','MR','MRB','MRH','MRK','MRVL','MRX','MSB','MSCC','MSCS','MSF','MSFT','MSTR','MTB','MTL','MTU','MUC','MUI','MVC','MVF','MVL','MVSN','MWE','MXB','MXF','MXI','MXT','MYD','MYGN','MYI','MYN','N','NAC','NAD','NAL','NAT','NATI','NBG','NBL','NBR','NBTB','NCTY','NCV','NCZ','NDAQ','NDSN','NE','NEM','NEOG','NETC','NETL','NFBK','NFJ','NFX','NG','NGPC','NGS','NHI','NHP','NICE','NIHD','NIO','NL','NLY','NMA','NMO','NMR','NMX','NMZ','NNDS','NNN','NOG','NOV','NOVL','NPBC','NPD','NPI','NPM','NPP','NPT','NPX','NQI','NQM','NQS','NQU','NRP','NRT','NSC','NSH','NSM','NSR','NTAP','NTCT','NTES','NTLS','NTRS','NUAN','NUV','NUVA','NVG','NVO','NVS','NVT','NWSB','NXY','NXZ','NYB','NYX','NZ','NZF','NZH','O','OEF','OEH','OFC','OHI','OII','OMAB','OMCL','OMRI','OMTR','ONB','ONNN','OPK','ORA','ORCL','ORIT','OSIP','OSIR','OTEX','OXPS','OXY','OZM','PAAS','PAC','PAL','PANL','PAR','PAX','PAYX','PBCT','PBF','PBNY','PBR','PBT','PBW','PCK','PCL','PCLN','PCN','PCP','PCS','PCX','PDC','PDE','PDLI','PDS','PDT','PDX','PEGA','PEO','PEP','PETD','PFE','PFN','PFP','PFS','PFWD','PG','PGH','PGJ','PGNX','PHD','PHI','PHK','PHO','PHT','PHX','PICO','PID','PIM','PKE','PKY','PLLL','PMCS','PMF','PMFG','PML','PMM','PMO','PMTC','PMX','PNC','PNFP','PODD','POT','POWI','POZN','PPA','PPDI','PPL','PPO','PPR','PPS','PPT','PQ','PRA','PRAA','PRF','PRFS','PRGS','PRK','PRO','PRSP','PSA','PSB','PSE','PSEC','PSEM','PST','PSY','PTEC','PTEN','PTIE','PTY','PVA','PVG','PVR','PVTB','PWB','PWC','PWE','PWJ','PWRD','PX','PXD','PXJ','PXP','PZN','QCOM','QCOR','QDEL','QELP','QGEN','QID','QLGC','QSFT','QSII','RAME','RATE','RAVN','RBA','RBCAA','RBCN','RBN','RCI','RCS','RDC','RDY','REG','REGN','RES','REXX','RGLD','RHT','RIG','RIGL','RIMM','RIO','RLF','RLRN','RMBS','RMD','RMG','RNOW','RNP','ROLL','ROMA','ROP','ROS','ROSE','ROY','RPF','RPT','RQI','RRC','RSP','RTIX','RTP','RTU','RUK','RVBD','RVT','RWR','RWX','RY','RYAAY','RYN','RZ','SAN','SAP','SAY','SB','SBAC','SBG','SBIB','SBLK','SBNY','SBR','SCBT','SCC','SCD','SCHW','SCMP','SCMR','SCOR','SCR','SD','SDS','SDTH','SDXC','SE','SEIC','SEP','SFI','SFL','SFNC','SFSF','SFY','SGEN','SGLP','SGMO','SGMS','SGP','SGY','SHEN','SHPGY','SHY','SIAL','SID','SIMO','SINA','SIRI','SIRO','SIVB','SJH','SJR','SJT','SJW','SKIL','SKT','SLAB','SLB','SLG','SLH','SLV','SLW','SM','SMBL','SMTC','SNCR','SNDA','SNG','SNH','SNHY','SNI','SNN','SNPS','SNY','SOHU','SOL','SONE','SONO','SONS','SOR','SPG','SPIL','SPN','SPNC','SPSS','SPWR','SQM','SQNM','SRCL','SRDX','SRO','SRVY','SSL','SSS','SSW','SSYS','STAR','STBA','STD','STEC','STEL','STJ','STOSY','STP','STR','STRA','STT','STV','SU','SUBK','SUPX','SUSQ','SVNT','SVR','SWKS','SWN','SWZ','SXCI','SY','SYBT','SYK','SYMC','SYMX','SYNA','SYNT','SYT','SYUT','TAC','TAL','TASR','TBSI','TC','TCK','TCL','TCLP','TCO','TD','TDC','TDF','TDG','TDW','TECH','TEI','TESO','TEVA','TFSL','TGB','TGH','TGP','THFF','THI','THOR','THRX','TIBX','TII','TIP','TIVO','TKC','TKLC','TLEO','TLK','TLL','TLM','TLP','TLT','TMO','TMP','TMRK','TNDM','TNH','TNK','TNP','TOMO','TOWN','TPL','TR','TRAD','TRAK','TRC','TRCA','TRI','TRLG','TRMB','TRMD','TROW','TRP','TRST','TS','TSL','TSM','TSRA','TSS','TTES','TTGT','TV','TWTI','TXCO','TXN','TY','TYG','TYL','TYPE','TZIX','UA','UB','UBA','UBB','UBSI','UDR','UEPS','UHT','ULTI','UMBF','UMC','UNP','UNT','UPL','URBN','USA','USB','USO','UST','UTEK','UTF','UTG','UTHR','UVSP','V','VALU','VAR','VAW','VB','VBK','VBR','VCO','VCP','VDC','VDE','VDSI','VFH','VGK','VGM','VGT','VHT','VICR','VIG','VIP','VISN','VIT','VITL','VIVO','VKI','VKQ','VLCCF','VLCM','VLNC','VLTR','VLY','VMC','VMO','VMW','VNO','VNQ','VNUS','VO','VOCS','VOD','VOLC','VPFG','VPHM','VPL','VPRT','VPU','VPV','VQ','VRSN','VRTX','VRUS','VSEA','VTI','VTR','VTV','VUG','VV','VVR','VVUS','VWO','VXF','WABC','WASH','WAT','WAUW','WAVE','WBMD','WBSN','WCN','WCRX','WDR','WES','WFC','WFR','WFSL','WFT','WGOV','WGW','WHG','WHQ','WIA','WIND','WIT','WIW','WL','WLL','WLT','WMGI','WMS','WPC','WPZ','WRE','WRES','WRI','WSC','WTI','WTR','WU','WWE','WWY','WX','WXS','WYE','WYNN','XCO','XEC','XHB','XLB','XLE','XLF','XLG','XLI','XLK','XLNX','XLP','XLTC','XLU','XLV','XLY','XME','XMSR','XNPT','XRAY','XTO','XXIA','YGE','YHOO','YSI','ZBRA','ZF','ZGEN','ZMH','ZOLT','ZTR');
82 //$symbols = array('aapl', 'UYG', 'SBUX', 'CROX');
83
84 $stocks = stockapi_fetch($symbols);
85 foreach ($stocks as $key => $stock) {
86 stockapi_save(_stockapi_to_object($stock));
87 }
88 var_dump(stockapi_load('aapl'));
89 var_dump(stockapi_multiload(array('A','AAPL','AAUK','AAV','ABAX','ABB','ABCO','ABI')));
90 }

  ViewVC Help
Powered by ViewVC 1.1.2