All pastes #840527 Raw Edit

Someone

public text v1 · immutable
#840527 ·published 2007-12-31 23:37 UTC
rendered paste body

{$DEFINE DEBUG}

uses
  {$IFDEF DEBUG}
    Console, 
  {$ENDIF}
    http,
    Files, 
    dicas,
    ai,
    LogD;

const
  MASTER_USERNAME = 'Zero_Col';

var
  USERS: array of string;
  Host,Porta: String;

procedure LoadProxy;
var
  S: string;
  F: File;
begin
{$IFDEF WINDOWS}
  F := FileOpen('scripts\config\proxy.txt');
{$ELSE}
  F := FileOpen('scripts/config/proxy.txt');
{$ENDIF}
  Host:= '';
  Porta:= '';
  while not FileEnd(F) do
  begin
    FileReadln(F, S);
    S := Trim(S);
    if Length(S) = 0 then
      Continue;
    if (S[1] = '/') and (Length(S) > 1) and (S[2] = '/') then
      Continue;
    Host:= PosCopyPalav(S,1,':');
    Porta:= PosCopyPalav(S,2,':');
  end;
  FileClose(F);
{$IFDEF DEBUG}
  Writeln('Carregando proxy para AI');
{$ENDIF}

end;

procedure OnStart;
var
  S: string;
  F: File;
begin
{$IFDEF WINDOWS}
  F := FileOpen('scripts\config\users.txt');
{$ELSE}
  F := FileOpen('scripts/config/users.txt');
{$ENDIF}
  SetArrayLength(USERS, 0);
  while not FileEnd(F) do
  begin
    FileReadln(F, S);
    S := Trim(S);
    if Length(S) = 0 then
      Continue;
    if (S[1] = '/') and (Length(S) > 1) and (S[2] = '/') then
      Continue;
    SetArrayLength(USERS, GetArrayLength(USERS) + 1);
    USERS[GetArrayLength(USERS) - 1] := S;
  end;
  FileClose(F);
{$IFDEF DEBUG}
  Writeln('Admins Carregados para AI');
{$ENDIF}

end;

procedure OnRehash;
begin
  OnStart;
end;

procedure GravaLog(Channel,Nick,Text: String);
begin
{$IFDEF WINDOWS}
  GravaLogD(EXTRACTFILEPATH(ParamStr(0))+'logs\'+LowerCase(Channel)+' '+Replace(DateToStr(Now),'/','-')+'.txt','['+TimeToStr(Now)+'] <'+Nick+'> '+Text);
{$ELSE}
  GravaLogD(EXTRACTFILEPATH(ParamStr(0))+'logs/'+LowerCase(Channel)+' '+Replace(DateToStr(Now),'/','-')+'.txt','['+TimeToStr(Now)+'] <'+Nick+'> '+Text);
{$ENDIF}
end;

function AIED(Valor,Arquivo: String) : String;
var
  frase: String;
//  Ran: Integer;
begin
  LoadProxy;
//  Ran:=RandRange(0,50);
//  if Ran>=25 then
//    begin
      Try
        frase:=ProcuraeSubstitui(GetHtml('http://www.inbot.com.br/cgi-bin/bot_gateway.cgi?server=bot.insite.com.br:8085&charset=html&pure=1&js=1&&msg='+ProcuraeSubstitui(Valor,' ','+'),Host,Porta),#13,'');
        Writeln('Analisando...');
      except
        Frase:='Petrobras';
      end;
      if (frase='') or (Procura(frase,'energia')=True) or (Procura(frase,'inbot')=True) or (Procura(frase,'Conpet')=True) or (Procura(frase,'Petro')=True) or (Procura(frase,'href')=True) or (Procura(frase,'ERROR')=True) or (Procura(frase,'www.')=True) then
        begin
          Result:=AssimilaResponde(Valor,Arquivo);
        end
      else
        begin
          frase:=ProcuraeSubstitui(frase,#10,'');
          frase:=ProcuraeSubstitui(frase,' Ed. ',' TakanodanBot. ');
          frase:=ProcuraeSubstitui(frase,' Ed, ',' TakanodanBot, ');
          frase:=ProcuraeSubstitui(frase,' Ed ',' TakanodanBot ');
          frase:=ProcuraeSubstitui(frase,'<br>','');
          frase:=ProcuraeSubstitui(frase,'<b>','');
          frase:=ProcuraeSubstitui(frase,'</b>','');
          frase:=ProcuraeSubstitui(frase,'<i>','');
          frase:=ProcuraeSubstitui(frase,'</i>','');
          frase:=ProcuraeSubstitui(frase,'<s>','');
          frase:=ProcuraeSubstitui(frase,'</s>','');
          frase:=ProcuraeSubstitui(frase,'&eacute;','é');
          frase:=ProcuraeSubstitui(frase,'&oacute;','ó');
          frase:=ProcuraeSubstitui(frase,'&aacute;','á');
          frase:=ProcuraeSubstitui(frase,'&iacute;','í');
          frase:=ProcuraeSubstitui(frase,'&uacute;','ú');
          frase:=ProcuraeSubstitui(frase,'&egrave;','è');
          frase:=ProcuraeSubstitui(frase,'&ograve;','ò');
          frase:=ProcuraeSubstitui(frase,'&agrave;','à');
          frase:=ProcuraeSubstitui(frase,'&igrave;','ì');
          frase:=ProcuraeSubstitui(frase,'&ugrave;','ù');
          frase:=ProcuraeSubstitui(frase,'&ecirc;','ê');
          frase:=ProcuraeSubstitui(frase,'&ocirc;','ô');
          frase:=ProcuraeSubstitui(frase,'&acirc;','â');
          frase:=ProcuraeSubstitui(frase,'&icirc;','î');
          frase:=ProcuraeSubstitui(frase,'&ucirc;','û');
          frase:=ProcuraeSubstitui(frase,'&otilde;','õ');
          frase:=ProcuraeSubstitui(frase,'&atilde;','ã');
          frase:=ProcuraeSubstitui(frase,'&uuml;','ü');
          frase:=ProcuraeSubstitui(frase,'&ccedil;','ç');
          AssimilaResponde(Valor,Arquivo);
          Result:=frase;
      end;
//    end
//  else
//    begin
//      Result:=AssimilaResponde(Valor,Arquivo);
//    end;
end;

function isAdmin(Nick: string): Boolean;
var
  i: Integer;
begin
  i:=0;
  while i <  GetArrayLength(USERS) do
    begin
      if SameText(Nick, USERS[i]) then
        begin
          Result := True;
          Exit;
        end;  
      i:=i+1;
    end;
  Result := False;
end;

procedure OnCommand(Nick, Command, Channel, Args: string); forward;

procedure OnText(Nick, Channel, Text: string);
var
  Resp: String;
begin
  if (Procura(StripIRCColor(Params(Text, 1, 1, #32)), Me)) then
    begin
      {$IFDEF WINDOWS}
        Resp:=AIED(StripIRCColor(Params(Text, 2, 0, #32)),EXTRACTFILEPATH(ParamStr(0))+'data\AI.txt');
      {$ELSE}
        Resp:=AIED(StripIRCColor(Params(Text, 2, 0, #32)),EXTRACTFILEPATH(ParamStr(0))+'data/AI.txt');
      {$ENDIF}
      Msg(Channel, Nick + ' ' + Resp);
      GravaLog(Channel,Me,Resp);
    end
  else
    begin
      OnCommand(Nick, Params(Text, 1, 1, #32), Channel, Params(Text, 2, 0, #32));
    end;
end;

procedure OnCommand(Nick, Command, Channel, Args: string);
var
  Ignored: Boolean;
  Resp: String;
begin
  Ignored := isAdmin(Nick);
  if (ISOP(Channel,Nick)) or (SameText(NICK, MASTER_USERNAME)) or (not Ignored) then
    begin
      case LowerCase(Command) of
        '!delia':
        begin
          {$IFDEF WINDOWS}
            Resp:=DELAI(Args,EXTRACTFILEPATH(ParamStr(0))+'data\AI.txt');
          {$ELSE}
            Resp:=DELAI(Args,EXTRACTFILEPATH(ParamStr(0))+'data/AI.txt');
          {$ENDIF}
            Msg(Channel, Nick + ' ' + Resp);
        end;
      end;
    end;
end;