{$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,'
',''); frase:=ProcuraeSubstitui(frase,'',''); frase:=ProcuraeSubstitui(frase,'',''); frase:=ProcuraeSubstitui(frase,'',''); frase:=ProcuraeSubstitui(frase,'',''); frase:=ProcuraeSubstitui(frase,'',''); frase:=ProcuraeSubstitui(frase,'',''); frase:=ProcuraeSubstitui(frase,'é','é'); frase:=ProcuraeSubstitui(frase,'ó','ó'); frase:=ProcuraeSubstitui(frase,'á','á'); frase:=ProcuraeSubstitui(frase,'í','í'); frase:=ProcuraeSubstitui(frase,'ú','ú'); frase:=ProcuraeSubstitui(frase,'è','è'); frase:=ProcuraeSubstitui(frase,'ò','ò'); frase:=ProcuraeSubstitui(frase,'à','à'); frase:=ProcuraeSubstitui(frase,'ì','ì'); frase:=ProcuraeSubstitui(frase,'ù','ù'); frase:=ProcuraeSubstitui(frase,'ê','ê'); frase:=ProcuraeSubstitui(frase,'ô','ô'); frase:=ProcuraeSubstitui(frase,'â','â'); frase:=ProcuraeSubstitui(frase,'î','î'); frase:=ProcuraeSubstitui(frase,'û','û'); frase:=ProcuraeSubstitui(frase,'õ','õ'); frase:=ProcuraeSubstitui(frase,'ã','ã'); frase:=ProcuraeSubstitui(frase,'ü','ü'); frase:=ProcuraeSubstitui(frase,'ç','ç'); 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;