OSDN Git Service

まちBBSで削除レスがあるレス番号とスレの件数がずれる不具合を修正
[gikonavigoeson/gikonavi.git] / HTMLCreate.pas
index f87d94c..2a97234 100644 (file)
@@ -102,7 +102,7 @@ var
 implementation
 
 uses
-    Trip;
+    Trip, AbonInfo;
 
 const
        URL_CHAR: string = '0123456789'
@@ -339,7 +339,8 @@ begin
                         else
                             href := Format('%s%s', [_HEAD[idx2], url]);
 
-                        if (AnsiPos(EMOTICONS, url) = 1) and (IsImageExp(url) = True) then
+                        if (GikoSys.Setting.IconImageDisplay = True) and
+                           (AnsiPos(EMOTICONS, url) = 1) and (IsImageExp(url) = True) then
                             PRes.FBody := Format('%s<img src="%s" title="%s">', [PRes.FBody, href, url])
                         else
                             PRes.FBody
@@ -995,6 +996,7 @@ var
        FileName: string;
        Res: TResRec;
        body : TBufferedWebBrowser;
+    ThreadInfo: TAbonThread;
 {$IFDEF DEBUG}
        st, rt: Cardinal;
 {$ENDIF}
@@ -1018,18 +1020,23 @@ begin
                                ReadList := TStringList.Create;
                                try
                                        if ThreadItem.IsLogFile then begin
+                        ThreadInfo := TAbonThread.Create;
+                        ThreadInfo.Is2ch  := ThreadItem.ParentBoard.Is2ch;
+                        ThreadInfo.Board  := ThreadItem.ParentBoard.BBSID;
+                        ThreadInfo.Thread := ChangeFileExt(ThreadItem.FileName, '');
                                                ReadList.BeginUpdate;
                                                FileName := ThreadItem.GetThreadFileName;
                                                ReadList.LoadFromFile(FileName);
                                                ReadList.EndUpdate;
                                                GikoSys.FAbon.IndividualAbon(ReadList, ChangeFileExt(FileName,'.NG'));
-                                               GikoSys.FAbon.Execute(ReadList);                //       \82 \82Ú\81`\82ñ\82µ\82Ä
-                                               GikoSys.FSelectResFilter.Execute(ReadList); //\83\8c\83X\82Ì\83t\83B\83\8b\83^\83\8a\83\93\83O\82ð\82·\82é
+                                               GikoSys.FAbon.Execute(ReadList, ThreadInfo);            //       \82 \82Ú\81`\82ñ\82µ\82Ä
+                                               GikoSys.FSelectResFilter.Execute(ReadList, ThreadInfo); //\83\8c\83X\82Ì\83t\83B\83\8b\83^\83\8a\83\93\83O\82ð\82·\82é
                                                if ThreadItem.Title = '' then begin
                                                        DivideStrLine(ReadList[0], @Res);
                                                        sTitle := Res.FTitle;
                                                end else
-                                                       sTitle := ThreadItem.Title
+                                                       sTitle := ThreadItem.Title;
+                        ThreadInfo.Free;
                                        end else begin
                                                sTitle := CustomStringReplace(ThreadItem.Title, '\81\97\81M', ',');
                                        end;
@@ -1077,6 +1084,8 @@ var
        tmp, tmp1: string;
        ThreadName: String;
        ResLink : TResLinkRec;
+    ThreadInfo: TAbonThread;
+
        function LoadSkin( fileName: string ): string;
        begin
                Result := LoadFromSkin( fileName, ThreadItem, ThreadItem.Size );
@@ -1143,14 +1152,19 @@ begin
                        ReadList := TStringList.Create;
                        try
                                if ThreadItem.IsLogFile then begin
+                    ThreadInfo := TAbonThread.Create;
+                    ThreadInfo.Is2ch  := ThreadItem.ParentBoard.Is2ch;
+                    ThreadInfo.Board  := ThreadItem.ParentBoard.BBSID;
+                    ThreadInfo.Thread := ChangeFileExt(ThreadItem.FileName, '');
                                        FileName := ThreadItem.GetThreadFileName;
                                        ReadList.LoadFromFile(FileName);
                                        GikoSys.FAbon.IndividualAbon(ReadList, ChangeFileExt(FileName,'.NG'));
-                                       GikoSys.FAbon.Execute(ReadList);                //       \82 \82Ú\81`\82ñ\82µ\82Ä
-                                       GikoSys.FSelectResFilter.Execute(ReadList); //\83\8c\83X\82Ì\83t\83B\83\8b\83^\83\8a\83\93\83O\82ð\82·\82é
+                                       GikoSys.FAbon.Execute(ReadList, ThreadInfo);            //       \82 \82Ú\81`\82ñ\82µ\82Ä
+                                       GikoSys.FSelectResFilter.Execute(ReadList, ThreadInfo); //\83\8c\83X\82Ì\83t\83B\83\8b\83^\83\8a\83\93\83O\82ð\82·\82é
                                        DivideStrLine(ReadList[0], @Res);
                                        //Res.FTitle := CustomStringReplace(Res.FTitle, '\81\97\81M', ',');
                                        sTitle := Res.FTitle;
+                    ThreadInfo.Free;
                                end else begin
                                        sTitle := CustomStringReplace(ThreadItem.Title, '\81\97\81M', ',');
                                end;
@@ -1307,6 +1321,7 @@ var
     boardPlugIn : TBoardPlugIn;
     Html: TStringList;
        ResLink : TResLinkRec;
+    ThreadInfo: TAbonThread;
 begin
 
     Html := TStringList.Create;
@@ -1324,13 +1339,14 @@ begin
         Hint.Title := '';
         Hint.RawDocument := '';
         Hint.Thread := nil;
-        
+
                //\83^\83C\83g\83\8b\95\\8e¦
                if Title then
                                if ThreadItem <> nil then
                                        Hint.Title := ThreadItem.Title;
 
         if ThreadItem <> nil then begin
+            ThreadInfo := TAbonThread.Create;
             Hint.Thread := ThreadItem;
             ResLink.FBbs := ThreadItem.ParentBoard.BBSID;
             ResLink.FKey := ChangeFileExt(ThreadItem.FileName, '');
@@ -1346,16 +1362,19 @@ begin
                     Line := i;
                                        //\82±\82±\82Å\82Q\82¿\82á\82ñ\82Ë\82é\82Ìdat\82Ì\8c`\8e®\82Å\82P\8ds\93Ç\82Ý\8d\9e\82ß\82ê\82Î¥¥¥\81B\81«\93Ç\82ß\82é\82æ\82¤\82É\82È\82Á\82½
                                        tmp := boardPlugIn.GetDat( DWORD( threadItem ), i );
-                    if (tmp <> '') And ( not GikoSys.FAbon.CheckAbonPopupRes(tmp) And( not GikoSys.FAbon.CheckIndividualAbonList(line))) then begin
+                    if (tmp <> '') And ( not GikoSys.FAbon.CheckAbonPopupRes(tmp, ThreadInfo) And( not GikoSys.FAbon.CheckIndividualAbonList(line))) then begin
                         Html.Add(GetResString(Line-1, tmp, @ResLink));
                                        end;
                                end;
                        end else begin
+                ThreadInfo.Is2ch  := ThreadItem.ParentBoard.Is2ch;
+                ThreadInfo.Board  := ThreadItem.ParentBoard.BBSID;
+                ThreadInfo.Thread := ChangeFileExt(ThreadItem.FileName, '');
                                for i := StNum to ToNum do begin
                                        Line := i;
                                        FileName := ThreadItem.FilePath;
                                        tmp := GikoSys.ReadThreadFile(FileName, Line);
-                                       if (tmp <> '') And ( not GikoSys.FAbon.CheckAbonPopupRes(tmp) And( not GikoSys.FAbon.CheckIndividualAbonList(line))) then begin
+                                       if (tmp <> '') And ( not GikoSys.FAbon.CheckAbonPopupRes(tmp, ThreadInfo) And( not GikoSys.FAbon.CheckIndividualAbonList(line))) then begin
                                                Html.Add(GetResString(Line-1, tmp, @ResLink));
                                        end;
                                end;
@@ -1363,6 +1382,7 @@ begin
             if (Html.Count > 0) then begin
                 Hint.RawDocument := '<DL>' + Html.Text + '</DL>';
             end;
+            ThreadInfo.Free;
                end;
        finally
         Html.Free;