Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/ExternalBoardPlugInMain.pas

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

revision 1.1 by yoffy, Sun Nov 16 10:50:27 2003 UTC revision 1.2 by yoffy, Mon Nov 17 08:21:11 2003 UTC
# Line 102  begin Line 102  begin
102  end;  end;
103    
104  // *************************************************************************  // *************************************************************************
105  // 指定した URL をダウンロードして返す  // ソケットを初期化する(雑用関数)
106  // *************************************************************************  // *************************************************************************
107  function InternalDownload(  procedure       InitializeSocket(
108          inURL                                                   : PChar;        // ダウンロードする URL          inSocket : TIdHTTP
109          var ioModified          : Double;       // 最後に取得した日時  );
         var outResultData       : PChar;        // ダウンロードされた文字列  
         inRangeStart                    : DWORD;        // 開始位置  
         inRangeEnd                              : DWORD         // 終了位置  
 ) : Longint; stdcall;                                   // レスポンスコード  
 var  
         httpSocket                              : TIdHTTP;  
         resStream                                       : TMemoryStream;  
         content                                         : string;  
110  begin  begin
111    
112          {$IFDEF DEBUG}          if inSocket <> nil then begin
         Writeln('ExternalBoardManager.InternalDownload');  
         {$ENDIF}  
         Result := -1;  
   
         httpSocket := TIdHTTP.Create( nil );  
         try  
113                  // イベントの設定                  // イベントの設定
114                  if Assigned( OnWork ) then                  if Assigned( OnWork ) then
115                          httpSocket.OnWork                               := OnWork;                          inSocket.OnWork                         := OnWork;
116                  if Assigned( OnWorkBegin ) then                  if Assigned( OnWorkBegin ) then
117                          httpSocket.OnWorkBegin  := OnWorkBegin;                          inSocket.OnWorkBegin    := OnWorkBegin;
118                  if Assigned( OnWorkEnd ) then                  if Assigned( OnWorkEnd ) then
119                          httpSocket.OnWorkEnd            := OnWorkEnd;                          inSocket.OnWorkEnd              := OnWorkEnd;
120    
121                  // 通信に関する設定                  // 通信に関する設定
122                  httpSocket.Request.CustomHeaders.Clear;                  inSocket.Request.CustomHeaders.Clear;
123                  httpSocket.Response.Clear;                  inSocket.Response.Clear;
124                  httpSocket.Request.Clear;                  inSocket.Request.Clear;
125    
126                  httpSocket.Request.UserAgent    := GikoSys.GetUserAgent;                  inSocket.Request.UserAgent      := GikoSys.GetUserAgent;
127                  httpSocket.RecvBufferSize                       := Gikosys.Setting.RecvBufferSize;                  inSocket.RecvBufferSize                 := Gikosys.Setting.RecvBufferSize;
128                  httpSocket.ProxyParams.BasicAuthentication := False;                  inSocket.ProxyParams.BasicAuthentication := False;
129                  {$IFDEF DEBUG}                  {$IFDEF DEBUG}
130                  Writeln('------------------------------------------------------------');                  Writeln('------------------------------------------------------------');
131                  {$ENDIF}                  {$ENDIF}
132                  //httpSocket.AllowCookies := False;                  //inSocket.AllowCookies := False;
133                  if GikoSys.Setting.ReadProxy then begin                  if GikoSys.Setting.ReadProxy then begin
134                          if GikoSys.Setting.ProxyProtocol then                          if GikoSys.Setting.ProxyProtocol then
135                                  httpSocket.ProtocolVersion := pv1_1                                  inSocket.ProtocolVersion := pv1_1
136                          else                          else
137                                  httpSocket.ProtocolVersion := pv1_0;                                  inSocket.ProtocolVersion := pv1_0;
138                          httpSocket.ProxyParams.ProxyServer              := GikoSys.Setting.ReadProxyAddress;                          inSocket.ProxyParams.ProxyServer                := GikoSys.Setting.ReadProxyAddress;
139                          httpSocket.ProxyParams.ProxyPort                        := GikoSys.Setting.ReadProxyPort;                          inSocket.ProxyParams.ProxyPort                  := GikoSys.Setting.ReadProxyPort;
140                          httpSocket.ProxyParams.ProxyUsername    := GikoSys.Setting.ReadProxyUserID;                          inSocket.ProxyParams.ProxyUsername      := GikoSys.Setting.ReadProxyUserID;
141                          httpSocket.ProxyParams.ProxyPassword    := GikoSys.Setting.ReadProxyPassword;                          inSocket.ProxyParams.ProxyPassword      := GikoSys.Setting.ReadProxyPassword;
142                          if GikoSys.Setting.ReadProxyUserID <> '' then                          if GikoSys.Setting.ReadProxyUserID <> '' then
143                                  httpSocket.ProxyParams.BasicAuthentication := True;                                  inSocket.ProxyParams.BasicAuthentication := True;
144                          {$IFDEF DEBUG}                          {$IFDEF DEBUG}
145                          Writeln('プロキシ設定あり');                          Writeln('プロキシ設定あり');
146                          Writeln('ホスト: ' + GikoSys.Setting.ReadProxyAddress);                          Writeln('ホスト: ' + GikoSys.Setting.ReadProxyAddress);
# Line 162  begin Line 148  begin
148                          {$ENDIF}                          {$ENDIF}
149                  end else begin                  end else begin
150                          if GikoSys.Setting.Protocol then                          if GikoSys.Setting.Protocol then
151                                  httpSocket.ProtocolVersion := pv1_1                                  inSocket.ProtocolVersion := pv1_1
152                          else                          else
153                                  httpSocket.ProtocolVersion := pv1_0;                                  inSocket.ProtocolVersion := pv1_0;
154                          httpSocket.ProxyParams.ProxyServer              := '';                          inSocket.ProxyParams.ProxyServer                := '';
155                          httpSocket.ProxyParams.ProxyPort                        := 80;                          inSocket.ProxyParams.ProxyPort                  := 80;
156                          httpSocket.ProxyParams.ProxyUsername    := '';                          inSocket.ProxyParams.ProxyUsername      := '';
157                          httpSocket.ProxyParams.ProxyPassword    := '';                          inSocket.ProxyParams.ProxyPassword      := '';
158                          {$IFDEF DEBUG}                          {$IFDEF DEBUG}
159                          Writeln('プロキシ設定なし');                          Writeln('プロキシ設定なし');
160                          {$ENDIF}                          {$ENDIF}
161                  end;                  end;
162            end;
163    
164    end;
165    
166    // *************************************************************************
167    // 指定した URL をダウンロードして返す
168    // *************************************************************************
169    function InternalDownload(
170            inURL                                                   : PChar;        // ダウンロードする URL
171            var ioModified          : Double;       // 最後に取得した日時
172            var outResultData       : PChar;        // ダウンロードされた文字列
173            inRangeStart                    : DWORD;        // 開始位置
174            inRangeEnd                              : DWORD         // 終了位置
175    ) : Longint; stdcall;                                   // レスポンスコード
176    var
177            httpSocket                              : TIdHTTP;
178            resStream                                       : TMemoryStream;
179            content                                         : string;
180    begin
181    
182            {$IFDEF DEBUG}
183            Writeln('ExternalBoardManager.InternalDownload');
184            {$ENDIF}
185            Result := -1;
186    
187            httpSocket := TIdHTTP.Create( nil );
188            try
189                    InitializeSocket( httpSocket );
190    
191                  httpSocket.Request.ContentRangeStart    := inRangeStart;                  httpSocket.Request.ContentRangeStart    := inRangeStart;
192                  httpSocket.Request.ContentRangeEnd              := inRangeEnd;                  httpSocket.Request.ContentRangeEnd              := inRangeEnd;
# Line 237  begin Line 251  begin
251  end;  end;
252    
253  // *************************************************************************  // *************************************************************************
254    // 指定した URL へデータを送信する
255    // *************************************************************************
256    function        InternalPost(
257            inURL                                                   : PChar;                        // 送信する URL
258            inSource                                        : PChar;                        // 送信する内容
259            var outResultData       : PChar                         // 返ってきた文字列
260    ) : Longint; stdcall;                                                   // レスポンスコード
261    var
262            httpSocket                              : TIdHTTP;
263            content                                         : string;
264            resStream                                       : TStringStream;
265            sourceStream                    : TStringStream;
266    begin
267    
268            {$IFDEF DEBUG}
269            Writeln('ExternalBoardManager.InternalPost');
270            {$ENDIF}
271            Result := -1;
272    
273            httpSocket := TIdHTTP.Create( nil );
274            try
275                    InitializeSocket( httpSocket );
276    
277                    httpSocket.Request.CustomHeaders.Add('Pragma: no-cache');
278                    httpSocket.Request.AcceptLanguage       := 'ja';
279                    httpSocket.Request.Accept                                       := 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*';
280                    httpSocket.Request.ContentType          := 'application/x-www-form-urlencoded';
281    
282                    resStream                       := TStringStream.Create( content );
283                    sourceStream    := TStringStream.Create( string( inSource ) );
284                    try
285                            try
286                                    {$IFDEF DEBUG}
287                                    Writeln('URL: ' + inURL);
288                                    Writeln('Source: ' + inSource);
289                                    {$ENDIF}
290                                    httpSocket.Post( string( inURL ), sourceStream, resStream );
291                                    {$IFDEF DEBUG}
292                                    Writeln('取得で例外なし');
293                                    {$ENDIF}
294    
295                                    Result := httpSocket.ResponseCode;
296    
297                                    outResultData := CreateResultString( resStream.DataString );
298                            except
299                                    on E: EIdSocketError do begin
300                                            outResultData   := nil;
301                                    end;
302                                    on E: EIdConnectException do begin
303                                            outResultData   := nil;
304                                    end;
305                                    on E: Exception do begin
306                                            {$IFDEF DEBUG}
307                                            Writeln('取得で例外あり');
308                                            Writeln('E.Message: ' + E.Message);
309                                            {$ENDIF}
310                                            outResultData   := nil;
311                                            Result                          := httpSocket.ResponseCode;
312                                    end;
313                            end;
314                    finally
315                            resStream.Free;
316                            sourceStream.Free;
317                    end;
318            finally
319                    httpSocket.Free;
320            end;
321    
322    end;
323    
324    // *************************************************************************
325  // 2ちゃんねるの dat 形式をローカルあぼ〜んに通す  // 2ちゃんねるの dat 形式をローカルあぼ〜んに通す
326  // *************************************************************************  // *************************************************************************
327  function InternalAbon(  function InternalAbon(
# Line 246  var Line 331  var
331          datList : TStringList;          datList : TStringList;
332  begin  begin
333    
         {$IFDEF DEBUG}  
         Writeln('ExternalBoardManager.InternalAbon');  
         {$ENDIF}  
334          datList := TStringList.Create;          datList := TStringList.Create;
335          datList.Text := string( inDatText );          datList.Text := string( inDatText );
336          //GikoSys.FAbon.IndividualAbon( datList, ChangeFileExt(FileName,'.NG'));          //GikoSys.FAbon.IndividualAbon( datList, ChangeFileExt(FileName,'.NG'));
# Line 272  var Line 354  var
354          threadItem      : TThreadItem;          threadItem      : TThreadItem;
355  begin  begin
356    
         {$IFDEF DEBUG}  
         Writeln('ExternalBoardManager.InternalDat2HTML');  
         {$ENDIF}  
357          // ダミーのクラス          // ダミーのクラス
358          board                           := TBoard.Create;          board                           := TBoard.Create;
359          threadItem      := TThreadItem.Create;          threadItem      := TThreadItem.Create;
# Line 294  exports Line 373  exports
373          DisposeResultString,          DisposeResultString,
374          VersionInfo,          VersionInfo,
375          InternalDownload,          InternalDownload,
376            InternalPost,
377          InternalAbon,          InternalAbon,
378          InternalDat2HTML;          InternalDat2HTML;
379    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26