Fido7AddQuotes

From 40tude Dialog Wiki

This script for correct russian quote.
If you get incoming message from russian newsgroups, 40tDialog does not find any quotes. In xUSSR standard citing will consist of the initials of the interlocutor, plus a symbol of citing, like "JS>".This script will automatically add the necessary symbols ">" in the accepted message and then it will be displayed correctly.

Qoute example1.png
Example 1. Incoming message from groups, like fido7.ru.* as is:

Qoute example2.png
Example2. Incoming message with this script:


I hope features of citing in the specified groups will be taken into account by developers in the following versions and need for this script will disappear. But I by then shall think up still something:)

{*This is russian text:
HanucaHo noKa 4ere3 }+{ony, Ho no gpyroMy He noJ\y4uJ\oCb. nuLLIuTE nuCbMa :)

А если так? - The_CyberShadow }

I'm Boddy. The script is thought up and write 22.05.2004, by me. Remarks, offers, curses to send on boddy@ua.fm
REM: before 6.06.2004 (fix 13.06.2004) UUENCODED strings may be corrupted, update this script if you using it.

08.02.2005 - updates for Beta 38 - update this script if you using it
09.02.2005 - update for yEncode


program OnBeforeSavingMessage;               

procedure AddQuot(Message:TStringlist);
  {Writed by Boddy. You can find me - boddy@ua.fm}
 var i,posQ, uue1,uue2,uue3:integer;
    Temp,Quote,Content:widestring;
    IsUUEPresent: boolean;
 begin                                                        
// WriteToLog('sc start',2);
  IsUUEPresent:=false;

      // 13.06.2004 - changed (fix) check for UUENCODED strings 
      // 08.02.2005 - update for Beta 38
      // 09.02.2005 - update for yEncode
    Temp:=LowerCase(trim(Message.text));  
    uue1 := pos('section',temp);
    if uue1>0 then begin
     uue2 := pos('of',temp);
      if uue2>0 then begin
       uue3 := pos('file',temp);
       if (uue1<uue2) and (uue2<uue3) then IsUUEPresent:=true;
      end;
    end;         
    
  i:=0;
      uue1 := pos('begin ',temp);
    if uue1>0 then begin
     uue2 := pos('end',temp);
      if uue2>0 then begin
       uue3 := 0;
        while Message.Strings[i]<>'' do i:=i+1;
        while (i<Message.Count-1) and (not IsUUEPresent) do begin
         i:=i+1;
         if (length(Message.Strings[i])=61) and (pos('m',Message.Strings[i])=1) then 
          uue3:=uue3+1;
        end;  
       if (uue1<uue2) and (uue3>0) then IsUUEPresent:=true;
      end;
    end;      
       
  i:=0;
      uue1 := pos('ybegin ',temp);
    if uue1>0 then begin
     uue2 := pos('yend',temp);
      if uue2>0 then begin
       if (uue1<uue2) then IsUUEPresent:=true;
      end;
    end;      
      // before 6.06.2004 (fix 13.06.2004) UUENCODED strings may be corrupted, 
      // update this script if you using it

      // 08.02.2005 - update for Beta 38
      // update this script if you using it
      
      // 09.02.2005 - update for yEncode
      // update this script if you using it
  i:=0;    
  while Message.Strings[i]<>'' do i:=i+1;
  while (i<Message.Count-1) and (not IsUUEPresent) do
  begin
    i:=i+1;
    Temp:=trim(Message.Strings[i]);
    Content:=Message.Strings[i];
    Quote:='';             
     posQ := pos('>',temp);
     if (posQ<>1) and (not IsUUEPresent) then begin
      while posQ>0 do
       begin
        if (posQ<6) then Quote:= Quote+'>';
        Temp := copy(Temp,posQ+1,Length(temp)-posQ);
        posQ := pos('>',temp);
       end;    
        if ((pos('M', Content)<>1) then
          if (length(Content)<>61)) then Message.Strings[i] := Quote+Content;  
     end; 
  end;
 end;  
 
 
procedure OnBeforeSavingMessage(var Message: TStringlist; Servername: string; IsEmail: boolean);
begin
  AddQuot(Message);
end;

begin
end.