Changeset 5


Ignore:
Timestamp:
Mar 14, 2013, 7:55:02 PM (11 years ago)
Author:
chronos
Message:
  • Upraveno: Použita knihovna openssl namísto cryptlib. Přidány binární knihovny.
  • Přidáno: Třídy TFioAPI nyní umí načítat data přes API.
  • Přidáno: Dokument popisu API rozhraní.
Location:
trunk
Files:
8 added
5 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Packages/synapse/source/lib/laz_synapse.lpk

    r2 r5  
    11<?xml version="1.0"?>
    22<CONFIG>
    3   <Package Version="3">
     3  <Package Version="4">
    44    <Name Value="laz_synapse"/>
     5    <AddToProjectUsesSection Value="True"/>
    56    <CompilerOptions>
    6       <Version Value="8"/>
     7      <Version Value="11"/>
    78      <SearchPaths>
    8         <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)/"/>
     9        <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
    910      </SearchPaths>
    10       <Parsing>
    11         <SyntaxOptions>
    12           <UseAnsiStrings Value="True"/>
    13         </SyntaxOptions>
    14       </Parsing>
    1511      <Other>
    1612        <CompilerPath Value="$(CompPath)"/>
    1713      </Other>
    1814    </CompilerOptions>
    19     <Files Count="33">
     15    <Files Count="34">
    2016      <Item1>
    2117        <Filename Value="asn1util.pas"/>
     
    9591      </Item19>
    9692      <Item20>
    97         <Filename Value="ssfpc.pas"/>
    98         <AddToUsesPkgSection Value="False"/>
    99         <UnitName Value="ssfpc"/>
     93        <Filename Value="synachar.pas"/>
     94        <UnitName Value="synachar"/>
    10095      </Item20>
    10196      <Item21>
    102         <Filename Value="sswin32.pas"/>
    103         <AddToUsesPkgSection Value="False"/>
    104         <UnitName Value="sswin32"/>
     97        <Filename Value="synacode.pas"/>
     98        <UnitName Value="synacode"/>
    10599      </Item21>
    106100      <Item22>
    107         <Filename Value="synachar.pas"/>
    108         <UnitName Value="synachar"/>
     101        <Filename Value="synacrypt.pas"/>
     102        <UnitName Value="synacrypt"/>
    109103      </Item22>
    110104      <Item23>
    111         <Filename Value="synacode.pas"/>
    112         <UnitName Value="synacode"/>
     105        <Filename Value="synadbg.pas"/>
     106        <UnitName Value="synadbg"/>
    113107      </Item23>
    114108      <Item24>
    115         <Filename Value="synacrypt.pas"/>
    116         <UnitName Value="synacrypt"/>
     109        <Filename Value="synafpc.pas"/>
     110        <UnitName Value="synafpc"/>
    117111      </Item24>
    118112      <Item25>
    119         <Filename Value="synadbg.pas"/>
    120         <UnitName Value="synadbg"/>
     113        <Filename Value="synaicnv.pas"/>
     114        <UnitName Value="synaicnv"/>
    121115      </Item25>
    122116      <Item26>
    123         <Filename Value="synafpc.pas"/>
    124         <UnitName Value="synafpc"/>
     117        <Filename Value="synaip.pas"/>
     118        <UnitName Value="synaip"/>
    125119      </Item26>
    126120      <Item27>
    127         <Filename Value="synaicnv.pas"/>
    128         <UnitName Value="synaicnv"/>
     121        <Filename Value="synamisc.pas"/>
     122        <UnitName Value="synamisc"/>
    129123      </Item27>
    130124      <Item28>
    131         <Filename Value="synaip.pas"/>
    132         <UnitName Value="synaip"/>
     125        <Filename Value="synaser.pas"/>
     126        <UnitName Value="synaser"/>
    133127      </Item28>
    134128      <Item29>
    135         <Filename Value="synamisc.pas"/>
    136         <UnitName Value="synamisc"/>
     129        <Filename Value="synautil.pas"/>
     130        <UnitName Value="synautil"/>
    137131      </Item29>
    138132      <Item30>
    139         <Filename Value="synaser.pas"/>
    140         <UnitName Value="synaser"/>
     133        <Filename Value="synsock.pas"/>
     134        <UnitName Value="synsock"/>
    141135      </Item30>
    142136      <Item31>
    143         <Filename Value="synautil.pas"/>
    144         <UnitName Value="synautil"/>
     137        <Filename Value="tlntsend.pas"/>
     138        <UnitName Value="tlntsend"/>
    145139      </Item31>
    146140      <Item32>
    147         <Filename Value="synsock.pas"/>
    148         <UnitName Value="synsock"/>
     141        <Filename Value="ssl_openssl.pas"/>
     142        <UnitName Value="ssl_openssl"/>
    149143      </Item32>
    150144      <Item33>
    151         <Filename Value="tlntsend.pas"/>
    152         <UnitName Value="tlntsend"/>
     145        <Filename Value="ssl_openssl_lib.pas"/>
     146        <UnitName Value="ssl_openssl_lib"/>
    153147      </Item33>
     148      <Item34>
     149        <Filename Value="ssfpc.inc"/>
     150        <Type Value="Include"/>
     151      </Item34>
    154152    </Files>
    155153    <Type Value="RunAndDesignTime"/>
  • trunk/Packages/synapse/source/lib/laz_synapse.pas

    r2 r5  
    33 }
    44
    5 unit laz_synapse; 
     5unit laz_synapse;
    66
    77interface
    88
    99uses
    10     asn1util, blcksock, clamsend, dnssend, ftpsend, ftptsend, httpsend,
     10  asn1util, blcksock, clamsend, dnssend, ftpsend, ftptsend, httpsend,
    1111  imapsend, ldapsend, mimeinln, mimemess, mimepart, nntpsend, pingsend,
    1212  pop3send, slogsend, smtpsend, snmpsend, sntpsend, synachar, synacode,
    1313  synacrypt, synadbg, synafpc, synaicnv, synaip, synamisc, synaser, synautil,
    14   synsock, tlntsend, LazarusPackageIntf;
     14  synsock, tlntsend, ssl_openssl, ssl_openssl_lib, LazarusPackageIntf;
    1515
    1616implementation
    1717
    18 procedure Register; 
     18procedure Register;
    1919begin
    20 end; 
     20end;
    2121
    2222initialization
    23   RegisterPackage('laz_synapse', @Register); 
     23  RegisterPackage('laz_synapse', @Register);
    2424end.
  • trunk/UFioAPI.pas

    r4 r5  
    66
    77uses
    8   Classes, SysUtils, httpsend;
     8  Classes, SysUtils, httpsend, ssl_openssl;
    99
    1010type
     
    1313
    1414  TFioAPI = class
     15  private
     16    function Download(URL: string; Data: TStrings): Boolean;
     17  public
    1518    Token: string;
    1619    Format: string;
    17     function Download: Boolean;
     20    function DownloadInterval(TimeFrom, TimeTo: TDateTime; Data: TStrings): Boolean;
     21    function DownloadMonthly(Year, Id: Integer; Data: TStrings): Boolean;
     22    function DownloadLast(Data: TStrings): Boolean;
    1823  end;
    1924
     
    2227{ TFioAPI }
    2328
    24 function TFioAPI.Download: Boolean;
     29function TFioAPI.Download(URL: string; Data: TStrings): Boolean;
    2530var
    2631  HTTPSender: THTTPSend;
     
    3035    Format := 'xml';
    3136    Token := 'dd';
    32 //    HTTPSender.HTTPMethod('GET', 'https://www.fio.cz/ib_api/rest/periods/' + Token +
    33 //      '/2013-03-01/2013-03-15/transactions.' + Format);
    34 HTTPSender.HTTPMethod('GET', 'https://www.fio.cz/e-broker/e-broker.cgi');
     37    HTTPSender.HTTPMethod('GET', URL);
    3538    try
    3639    case HTTPSender.Resultcode of
    3740        100..299:
    3841          begin
    39 {            with TFileStream.Create(TargetFile, fmCreate or fmOpenWrite) do
    40             try
    41               Seek(0, soFromBeginning);
    42               CopyFrom(HTTPSender.Document, 0);
    43             finally
    44               Free;
    45             end;}
     42            Data.LoadFromStream(HTTPSender.Document);
    4643            Result := True;
    4744          end; //informational, success
     
    5350    except
    5451      // We don't care for the reason for this error; the download failed.
    55       Result := false;
     52      Result := False;
    5653    end;
    5754  finally
     
    6057end;
    6158
     59function TFioAPI.DownloadInterval(TimeFrom, TimeTo: TDateTime; Data: TStrings
     60  ): Boolean;
     61begin
     62  Result := Download('https://www.fio.cz/ib_api/rest/periods/' + Token +
     63    '/' + FormatDateTime('yyyy-mm-dd', TimeFrom) +
     64    '/' + FormatDateTime('yyyy-mm-dd', TimeTo) +
     65    '/transactions.' + Format, Data);
     66end;
     67
     68function TFioAPI.DownloadMonthly(Year, Id: Integer; Data: TStrings): Boolean;
     69begin
     70  Result := Download('https://www.fio.cz/ib_api/rest/by-id/' + Token +
     71    '/' + IntToStr(Year) + '/' + IntToStr(Id) +
     72    '/transactions.' + Format, Data);
     73end;
     74
     75function TFioAPI.DownloadLast(Data: TStrings): Boolean;
     76begin
     77  Result := Download('https://www.fio.cz/ib_api/rest/last/' + Token +
     78    '/transactions.' + Format, Data);
     79end;
     80
    6281end.
    6382
  • trunk/UFormMain.lfm

    r4 r5  
    2626  end
    2727  object Button1: TButton
    28     Left = 56
     28    Left = 16
    2929    Height = 25
    30     Top = 184
     30    Top = 344
    3131    Width = 112
    3232    Action = ADownload
    3333    TabOrder = 1
     34  end
     35  object Memo1: TMemo
     36    Left = 16
     37    Height = 271
     38    Top = 56
     39    Width = 453
     40    TabOrder = 2
    3441  end
    3542  object TrayIcon1: TTrayIcon
  • trunk/UFormMain.pas

    r4 r5  
    2121    ImageList1: TImageList;
    2222    LabeledEdit1: TLabeledEdit;
     23    Memo1: TMemo;
    2324    MenuItem1: TMenuItem;
    2425    MenuItem2: TMenuItem;
     
    5960  FioAPI := TFioAPI.Create;
    6061  try
    61     FioAPI.Download;
     62    FioAPI.Token := LabeledEdit1.Text;
     63    FioAPI.Format := 'xml';
     64    FioAPI.DownloadInterval(EncodeDate(2013, 03, 01), EncodeDate(2013, 03, 14),
     65      Memo1.Lines);
    6266  finally
    6367    FioAPI.Free;
Note: See TracChangeset for help on using the changeset viewer.