Initial import of wikihelp Tools
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@600 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
1c8cd28631
commit
060c03ecf1
280
applications/wikihelp/src/wiki2html.lpi
Normal file
280
applications/wikihelp/src/wiki2html.lpi
Normal file
@ -0,0 +1,280 @@
|
||||
<?xml version="1.0"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<PathDelim Value="/"/>
|
||||
<Version Value="6"/>
|
||||
<General>
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value="./"/>
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<ActiveEditorIndexAtStart Value="1"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
<Language Value=""/>
|
||||
<CharSet Value=""/>
|
||||
</VersionInfo>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
<IgnoreBinaries Value="False"/>
|
||||
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<local>
|
||||
<FormatVersion Value="1"/>
|
||||
<CommandLineParams Value="/media/Volume/prometheus/output/i386-linux/help"/>
|
||||
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="2">
|
||||
<Item1>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="general"/>
|
||||
</Item2>
|
||||
</RequiredPackages>
|
||||
<Units Count="14">
|
||||
<Unit0>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="wiki2html"/>
|
||||
<CursorPos X="37" Y="56"/>
|
||||
<TopLine Value="40"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="23"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/packages/regexpr/src/regexpr.pp"/>
|
||||
<UnitName Value="RegExpr"/>
|
||||
<CursorPos X="3" Y="97"/>
|
||||
<TopLine Value="75"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/packages/regexpr/src/old/regexpr.pp"/>
|
||||
<UnitName Value="regexpr"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="34"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit2>
|
||||
<Unit3>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/packages/regexpr/src/regex.pp"/>
|
||||
<UnitName Value="Regex"/>
|
||||
<CursorPos X="3" Y="1116"/>
|
||||
<TopLine Value="1113"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit3>
|
||||
<Unit4>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/packages/fcl-base/src/custapp.pp"/>
|
||||
<UnitName Value="CustApp"/>
|
||||
<CursorPos X="14" Y="59"/>
|
||||
<TopLine Value="41"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit4>
|
||||
<Unit5>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/rtl/objpas/classes/classesh.inc"/>
|
||||
<CursorPos X="3" Y="77"/>
|
||||
<TopLine Value="51"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit5>
|
||||
<Unit6>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/packages/regexpr/tests/testreg1.pp"/>
|
||||
<UnitName Value="testreg1"/>
|
||||
<CursorPos X="37" Y="726"/>
|
||||
<TopLine Value="692"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit6>
|
||||
<Unit7>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/rtl/objpas/classes/streams.inc"/>
|
||||
<CursorPos X="1" Y="458"/>
|
||||
<TopLine Value="437"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit7>
|
||||
<Unit8>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/rtl/inc/except.inc"/>
|
||||
<CursorPos X="40" Y="194"/>
|
||||
<TopLine Value="172"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit8>
|
||||
<Unit9>
|
||||
<Filename Value="../../general/src/wikitohtml.pas"/>
|
||||
<UnitName Value="wikitohtml"/>
|
||||
<CursorPos X="82" Y="296"/>
|
||||
<TopLine Value="275"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/rtl/objpas/sysutils/finah.inc"/>
|
||||
<CursorPos X="10" Y="23"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit10>
|
||||
<Unit11>
|
||||
<Filename Value="../output/i386-win32/output/AudioX.html"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
<SyntaxHighlighter Value="HTML"/>
|
||||
</Unit11>
|
||||
<Unit12>
|
||||
<Filename Value="../../Programme/lazarus/lcl/fileutil.pas"/>
|
||||
<UnitName Value="FileUtil"/>
|
||||
<CursorPos X="10" Y="88"/>
|
||||
<TopLine Value="67"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit12>
|
||||
<Unit13>
|
||||
<Filename Value="../../general/src/Utils.pas"/>
|
||||
<UnitName Value="Utils"/>
|
||||
<CursorPos X="3" Y="494"/>
|
||||
<TopLine Value="471"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit13>
|
||||
</Units>
|
||||
<JumpHistory Count="29" HistoryIndex="28">
|
||||
<Position1>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="44" Column="1" TopLine="32"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="46" Column="1" TopLine="34"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="50" Column="1" TopLine="38"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="52" Column="1" TopLine="40"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="53" Column="1" TopLine="41"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="54" Column="1" TopLine="42"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="55" Column="1" TopLine="43"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="56" Column="1" TopLine="44"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="57" Column="1" TopLine="45"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="58" Column="1" TopLine="46"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="59" Column="5" TopLine="47"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="44" Column="1" TopLine="32"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="59" Column="103" TopLine="48"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="44" Column="1" TopLine="32"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="59" Column="116" TopLine="47"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="44" Column="1" TopLine="32"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="46" Column="1" TopLine="34"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="50" Column="1" TopLine="38"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="52" Column="1" TopLine="40"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="53" Column="1" TopLine="41"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="54" Column="1" TopLine="42"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="55" Column="1" TopLine="43"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="56" Column="1" TopLine="44"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="57" Column="1" TopLine="45"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="58" Column="1" TopLine="46"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="59" Column="116" TopLine="47"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="44" Column="1" TopLine="32"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="59" Column="1" TopLine="47"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<Caret Line="56" Column="37" TopLine="40"/>
|
||||
</Position29>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="8"/>
|
||||
<SearchPaths>
|
||||
<UnitOutputDirectory Value="../output/$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
<SyntaxOptions>
|
||||
<CStyleOperator Value="False"/>
|
||||
</SyntaxOptions>
|
||||
</Parsing>
|
||||
<Other>
|
||||
<CompilerPath Value="$(CompPath)"/>
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<BreakPoints Count="1">
|
||||
<Item1>
|
||||
<Source Value="../LKomponenten/tdbf/dbf_common.pas"/>
|
||||
<Line Value="375"/>
|
||||
</Item1>
|
||||
</BreakPoints>
|
||||
</Debugging>
|
||||
</CONFIG>
|
109
applications/wikihelp/src/wiki2html.lpr
Normal file
109
applications/wikihelp/src/wiki2html.lpr
Normal file
@ -0,0 +1,109 @@
|
||||
program wiki2html;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
uses
|
||||
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
||||
cthreads,
|
||||
{$ENDIF}{$ENDIF}
|
||||
Classes, SysUtils, CustApp
|
||||
{ you can add units after this }, regex, regexpr, wikitohtml,Fileutil;
|
||||
|
||||
type
|
||||
|
||||
{ TWiki2HTML }
|
||||
|
||||
TWiki2HTML = class(TCustomApplication)
|
||||
protected
|
||||
procedure DoRun; override;
|
||||
public
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
procedure WriteHelp; virtual;
|
||||
end;
|
||||
|
||||
{ TWiki2HTML }
|
||||
|
||||
procedure TWiki2HTML.DoRun;
|
||||
var
|
||||
ErrorMsg: String;
|
||||
fs: TFileStream;
|
||||
ss: TStringStream;
|
||||
r: TRegexEngine;
|
||||
index: longint;
|
||||
len: longint;
|
||||
tmp: ansistring;
|
||||
Info: TSearchRec;
|
||||
begin
|
||||
// parse parameters
|
||||
if HasOption('h','help') then begin
|
||||
WriteHelp;
|
||||
Halt;
|
||||
end;
|
||||
{ add your program here }
|
||||
if DirectoryExists(CleanAndExpandDirectory(GetParams(1))) then
|
||||
begin
|
||||
if FindFirst (CleanAndExpandDirectory(GetParams(1))+DirectorySeparator+'*.txt',faAnyFile,Info)=0 then
|
||||
repeat
|
||||
with Info do
|
||||
begin
|
||||
if not ((Attr and faDirectory) = faDirectory) then
|
||||
begin
|
||||
fs := TFilestream.Create(CleanAndExpandDirectory(GetParams(1))+Info.Name,fmOpenRead);
|
||||
ss := TStringStream.Create('');
|
||||
ss.CopyFrom(fs,fs.Size);
|
||||
fs.free;
|
||||
tmp := wikitext2html(GetParams(1),ss.DataString);
|
||||
ss.free;
|
||||
ss := TStringStream.Create(tmp);
|
||||
fs := TFileStream.Create(ChangeFileExt(CleanAndExpandDirectory(GetParams(1))+lowercase(Info.Name),'.html'),fmCreate);
|
||||
fs.CopyFrom(ss,ss.Size);
|
||||
fs.Free;
|
||||
end;
|
||||
end;
|
||||
until FindNext(info)<>0;
|
||||
FindClose(Info);
|
||||
end
|
||||
else
|
||||
begin
|
||||
fs := TFilestream.Create(GetParams(1),fmOpenRead);
|
||||
ss := TStringStream.Create('');
|
||||
ss.CopyFrom(fs,fs.Size);
|
||||
fs.free;
|
||||
tmp := wikitext2html(GetParams(1),ss.DataString);
|
||||
ss.free;
|
||||
ss := TStringStream.Create(tmp);
|
||||
fs := TFileStream.Create(ChangeFileExt(GetParams(1),'.html'),fmCreate);
|
||||
fs.CopyFrom(ss,ss.Size);
|
||||
fs.Free;
|
||||
end;
|
||||
// stop program loop
|
||||
Terminate;
|
||||
end;
|
||||
|
||||
constructor TWiki2HTML.Create(TheOwner: TComponent);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
StopOnException:=True;
|
||||
end;
|
||||
|
||||
destructor TWiki2HTML.Destroy;
|
||||
begin
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TWiki2HTML.WriteHelp;
|
||||
begin
|
||||
{ add your help code here }
|
||||
writeln('Usage: ',ExeName,' filename.txt');
|
||||
end;
|
||||
|
||||
var
|
||||
Application: TWiki2HTML;
|
||||
begin
|
||||
Application:=TWiki2HTML.Create(nil);
|
||||
Application.Title:='Wiki2HTML';
|
||||
Application.Run;
|
||||
Application.Free;
|
||||
end.
|
||||
|
277
applications/wikihelp/src/wikidownload.lpi
Normal file
277
applications/wikihelp/src/wikidownload.lpi
Normal file
@ -0,0 +1,277 @@
|
||||
<?xml version="1.0"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<PathDelim Value="/"/>
|
||||
<Version Value="6"/>
|
||||
<General>
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value="./"/>
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<ActiveEditorIndexAtStart Value="0"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
<Language Value=""/>
|
||||
<CharSet Value=""/>
|
||||
</VersionInfo>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
<IgnoreBinaries Value="False"/>
|
||||
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<local>
|
||||
<FormatVersion Value="1"/>
|
||||
<CommandLineParams Value="--allpages="http://www.ullihome.de/index.php/Spezial:Allpages" --exportpage="http://www.ullihome.de/index.php/Spezial:Export" --imagedir="http://www.ullihome.de/images/" --output="output""/>
|
||||
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="1">
|
||||
<Item1>
|
||||
<PackageName Value="synapse"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="12">
|
||||
<Unit0>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="wikidownload"/>
|
||||
<CursorPos X="111" Y="145"/>
|
||||
<TopLine Value="134"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="22"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/packages/fcl-base/src/custapp.pp"/>
|
||||
<UnitName Value="CustApp"/>
|
||||
<CursorPos X="13" Y="20"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
<Filename Value="../wikihelp/src/umain.pas"/>
|
||||
<ComponentName Value="fWikiHelp"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="uMain"/>
|
||||
<CursorPos X="49" Y="9"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit2>
|
||||
<Unit3>
|
||||
<Filename Value="../wikihelp/defs/deutsch.xml"/>
|
||||
<CursorPos X="54" Y="4"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
<SyntaxHighlighter Value="XML"/>
|
||||
</Unit3>
|
||||
<Unit4>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/rtl/objpas/classes/streams.inc"/>
|
||||
<CursorPos X="45" Y="457"/>
|
||||
<TopLine Value="436"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit4>
|
||||
<Unit5>
|
||||
<Filename Value="../general/src/Utils.pas"/>
|
||||
<UnitName Value="Utils"/>
|
||||
<CursorPos X="1" Y="619"/>
|
||||
<TopLine Value="605"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit5>
|
||||
<Unit6>
|
||||
<Filename Value="AudioX.xml"/>
|
||||
<CursorPos X="44" Y="23"/>
|
||||
<TopLine Value="28"/>
|
||||
<UsageCount Value="10"/>
|
||||
<SyntaxHighlighter Value="XML"/>
|
||||
</Unit6>
|
||||
<Unit7>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/rtl/inc/system.inc"/>
|
||||
<CursorPos X="38" Y="862"/>
|
||||
<TopLine Value="838"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit7>
|
||||
<Unit8>
|
||||
<Filename Value="wiki2html.lpr"/>
|
||||
<UnitName Value="wiki2html"/>
|
||||
<CursorPos X="63" Y="10"/>
|
||||
<TopLine Value="13"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit8>
|
||||
<Unit9>
|
||||
<Filename Value="../../general/src/wikitohtml.pas"/>
|
||||
<UnitName Value="wikitohtml"/>
|
||||
<CursorPos X="1" Y="77"/>
|
||||
<TopLine Value="40"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="../../Programme/lazarus/fpc/2.2.3/source/rtl/inc/objpas.inc"/>
|
||||
<CursorPos X="36" Y="151"/>
|
||||
<TopLine Value="131"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit10>
|
||||
<Unit11>
|
||||
<Filename Value="../output/i386-win32/output/NetMonitorde.txt"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="8"/>
|
||||
<UsageCount Value="10"/>
|
||||
<SyntaxHighlighter Value="None"/>
|
||||
</Unit11>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="181" Column="1" TopLine="169"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="182" Column="1" TopLine="170"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="183" Column="1" TopLine="171"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="184" Column="1" TopLine="172"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="185" Column="1" TopLine="173"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="186" Column="1" TopLine="174"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="187" Column="1" TopLine="175"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="188" Column="1" TopLine="176"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="190" Column="1" TopLine="178"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="191" Column="1" TopLine="179"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="211" Column="137" TopLine="199"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="81" Column="24" TopLine="81"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="77" Column="1" TopLine="65"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="173" Column="1" TopLine="161"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="174" Column="1" TopLine="162"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="175" Column="1" TopLine="163"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="176" Column="1" TopLine="164"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="177" Column="1" TopLine="165"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="179" Column="1" TopLine="167"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="180" Column="1" TopLine="168"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="181" Column="1" TopLine="169"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="182" Column="1" TopLine="170"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="183" Column="1" TopLine="171"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="184" Column="1" TopLine="172"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="185" Column="1" TopLine="173"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="186" Column="1" TopLine="174"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="187" Column="1" TopLine="175"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="188" Column="1" TopLine="176"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="190" Column="1" TopLine="178"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="wikidownload.lpr"/>
|
||||
<Caret Line="191" Column="1" TopLine="179"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="8"/>
|
||||
<SearchPaths>
|
||||
<UnitOutputDirectory Value="../output/$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
<SyntaxOptions>
|
||||
<CStyleOperator Value="False"/>
|
||||
</SyntaxOptions>
|
||||
</Parsing>
|
||||
<Other>
|
||||
<CompilerPath Value="$(CompPath)"/>
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<BreakPoints Count="2">
|
||||
<Item1>
|
||||
<Source Value="../LKomponenten/tdbf/dbf_common.pas"/>
|
||||
<Line Value="375"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Source Value="wikidownload.lpr"/>
|
||||
<Line Value="77"/>
|
||||
</Item2>
|
||||
</BreakPoints>
|
||||
</Debugging>
|
||||
</CONFIG>
|
226
applications/wikihelp/src/wikidownload.lpr
Normal file
226
applications/wikihelp/src/wikidownload.lpr
Normal file
@ -0,0 +1,226 @@
|
||||
program wikidownload;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
uses
|
||||
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
||||
cthreads,
|
||||
{$ENDIF}{$ENDIF}
|
||||
Classes, SysUtils, CustApp
|
||||
{ you can add units after this }, synapse, httpsend,xmlread,dom;
|
||||
|
||||
type
|
||||
|
||||
{ TWikiDownload }
|
||||
|
||||
TWikiDownload = class(TCustomApplication)
|
||||
protected
|
||||
procedure DoRun; override;
|
||||
public
|
||||
pages : TStringList;
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
procedure WriteHelp; virtual;
|
||||
procedure ExportPage(pagename : string);
|
||||
end;
|
||||
|
||||
{ TWikiDownload }
|
||||
|
||||
procedure TWikiDownload.DoRun;
|
||||
var
|
||||
ErrorMsg: String;
|
||||
ss: TStringStream;
|
||||
http: THTTPSend;
|
||||
s: String;
|
||||
tmp: String;
|
||||
i: Integer;
|
||||
begin
|
||||
// parse parameters
|
||||
if HasOption('h','help') then begin
|
||||
WriteHelp;
|
||||
Halt;
|
||||
end;
|
||||
|
||||
{ add your program here }
|
||||
|
||||
ss := TStringStream.Create('');
|
||||
http := THttpSend.Create;
|
||||
http.UserAgent := 'Mozilla/4.0 (compatible; WikiHelp)';
|
||||
http.HTTPMethod('GET',GetOptionValue('a','allpages'));
|
||||
http.Document.SaveToStream(ss);
|
||||
http.Free;
|
||||
s := ss.DataString;
|
||||
s := copy(s,pos('<table style="background: inherit;" border="0" width="100%"><tr><td>',s),length(s));
|
||||
s := copy(s,0,pos('</td></tr></table><div class="printfooter">',s));
|
||||
if s = '' then
|
||||
begin
|
||||
writeln('Special Page not found !');
|
||||
exit;
|
||||
end;
|
||||
ss.Free;
|
||||
pages := TStringList.Create;
|
||||
while pos('<a href="',s) > 0 do
|
||||
begin
|
||||
s := copy(s,pos('<a href="',s)+10,length(s));
|
||||
tmp := copy(s,0,pos('"',s)-1);
|
||||
if pos('.php/',tmp) > 0 then
|
||||
tmp := copy(tmp,pos('.php/',tmp)+5,length(tmp));
|
||||
if copy(tmp,0,length(GetOptionValue('o','pageoffset'))) = GetOptionValue('o','pageoffset') then
|
||||
pages.Add(tmp);
|
||||
s := copy(s,pos('"',s)+1,length(s));
|
||||
end;
|
||||
if HasOption('r','recurse') then
|
||||
begin
|
||||
end
|
||||
else
|
||||
for i := 0 to pages.Count-1 do
|
||||
ExportPage(pages[i]);
|
||||
pages.free;
|
||||
// stop program loop
|
||||
Terminate;
|
||||
end;
|
||||
|
||||
constructor TWikiDownload.Create(TheOwner: TComponent);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
StopOnException:=True;
|
||||
end;
|
||||
|
||||
destructor TWikiDownload.Destroy;
|
||||
begin
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TWikiDownload.WriteHelp;
|
||||
begin
|
||||
{ add your help code here }
|
||||
writeln('Usage: ',ExeName,' -h');
|
||||
end;
|
||||
|
||||
function ValidateFileName(old : string) : string;
|
||||
begin
|
||||
Result := StringReplace(old,'\','',[rfReplaceAll]);
|
||||
Result := StringReplace(Result,'/','',[rfReplaceAll]);
|
||||
Result := StringReplace(Result,'@','',[rfReplaceAll]);
|
||||
Result := StringReplace(Result,';','',[rfReplaceAll]);
|
||||
Result := StringReplace(Result,'#','_',[rfReplaceAll]);
|
||||
Result := StringReplace(Result,'>','_',[rfReplaceAll]);
|
||||
Result := StringReplace(Result,'<','_',[rfReplaceAll]);
|
||||
Result := StringReplace(Result,'|','_',[rfReplaceAll]);
|
||||
Result := StringReplace(Result,'"','_',[rfReplaceAll]);
|
||||
Result := StringReplace(Result,':','_',[rfReplaceAll]);
|
||||
Result := StringReplace(Result,'*','_',[rfReplaceAll]);
|
||||
Result := StringReplace(Result,'?','_',[rfReplaceAll]);
|
||||
end;
|
||||
|
||||
procedure TWikiDownload.ExportPage(pagename: string);
|
||||
var
|
||||
http: THTTPSend;
|
||||
xml: TXMLDocument;
|
||||
iNode: TDOMNode;
|
||||
f : TextFile;
|
||||
tmp: WideString;
|
||||
istr: WideString;
|
||||
|
||||
procedure ReplaceImages(ImageTagName : string);
|
||||
begin
|
||||
while pos('[['+ImageTagName+':',istr) > 0 do
|
||||
begin
|
||||
istr := copy(istr,pos('[['+ImageTagName+':',istr)+length(ImageTagname)+3,length(istr));
|
||||
if (pos('|',istr) > 0) and (pos('|',istr) < pos(']]',istr)) then
|
||||
begin
|
||||
http := THttpSend.Create;
|
||||
http.HTTPMethod('GET',GetOptionValue('i','imagedir')+copy(istr,0,pos('|',istr)-1));
|
||||
http.Document.SaveToFile(GetOptionValue('o','output')+DirectorySeparator+ValidateFileName(lowercase(copy(istr,0,pos('|',istr)-1))));
|
||||
http.Free;
|
||||
istr := copy(istr,pos(']]',istr)+2,length(istr));
|
||||
end
|
||||
else
|
||||
begin
|
||||
{ aWikiStart := eWikiPage.Text;
|
||||
if pos('index.php',aWikiStart) > 0 then
|
||||
aWikiStart := copy(aWikiStart,0,pos('index.php',aWikiStart)-1);}
|
||||
http := THttpSend.Create;
|
||||
http.HTTPMethod('GET',GetOptionValue('i','imagedir')+copy(istr,0,pos(']]',istr)-1));
|
||||
http.Document.SaveToFile(StringReplace(trim(GetOptionValue('o','output')),#13,'',[rfReplaceAll])+DirectorySeparator+ValidateFileName(lowercase(copy(istr,0,pos(']]',istr)-1))));
|
||||
http.Free;
|
||||
istr := copy(istr,pos(']]',istr)+2,length(istr));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure AddLinksFromPage;
|
||||
var
|
||||
linkcontent: String;
|
||||
begin
|
||||
while pos('[[',istr) > 0 do
|
||||
begin
|
||||
istr := copy(istr,pos('[[',istr)+2,length(istr));
|
||||
if (pos('|',istr) > 0) and (pos('|',istr) < pos(']]',istr)) then
|
||||
begin
|
||||
linkcontent := copy(istr,0,pos('|',istr)-1);
|
||||
if pages.IndexOf(linkcontent) = -1 then
|
||||
pages.Add(linkcontent);
|
||||
end
|
||||
else
|
||||
begin
|
||||
linkcontent := copy(istr,0,pos(']]',istr)-1);
|
||||
if pages.IndexOf(linkcontent) = -1 then
|
||||
pages.Add(linkcontent);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
begin
|
||||
http := THttpSend.Create;
|
||||
http.UserAgent := 'Mozilla/4.0 (compatible; WikiHelp)';
|
||||
http.HTTPMethod('POST',GetOptionValue('e','exportpage')+'?action=submit&pages='+pagename+'&curonly=true');
|
||||
if http.ResultCode = 200 then
|
||||
begin
|
||||
xml := TXMLDocument.Create;
|
||||
try
|
||||
ReadXMLFile(xml,http.Document);
|
||||
http.Free;
|
||||
iNode := xml.DocumentElement.FindNode('page');
|
||||
if Assigned(iNode) then
|
||||
iNode := iNode.FindNode('revision');
|
||||
if Assigned(iNode) then
|
||||
iNode := iNode.FindNode('text');
|
||||
if Assigned(iNode) then
|
||||
begin
|
||||
AssignFile(f,StringReplace(trim(GetOptionValue('o','output')),#13,'',[rfReplaceAll])+DirectorySeparator+ValidateFilename(pagename)+'.txt');
|
||||
rewrite(f);
|
||||
if Assigned(iNode.FirstChild) then
|
||||
tmp := iNode.FirstChild.NodeValue
|
||||
else
|
||||
tmp := iNode.NodeValue;
|
||||
writeln(f,tmp);
|
||||
Closefile(f);
|
||||
istr := tmp;
|
||||
ReplaceImages('Bild');
|
||||
istr := tmp;
|
||||
ReplaceImages('Image');
|
||||
istr := tmp;
|
||||
if hasoption('r','recursive') then
|
||||
AddLinksFromPage;
|
||||
end
|
||||
else
|
||||
writeln('Page Node for: '+pagename+' not found !');
|
||||
xml.Free;
|
||||
except
|
||||
on e : Exception do
|
||||
writeln('Error Processing :'+pagename+':'+e.Message+' ('+StringReplace(trim(GetOptionValue('o','output')),#13,'',[rfReplaceAll])+DirectorySeparator+ValidateFilename(pagename)+'.txt)');
|
||||
end;
|
||||
end
|
||||
else
|
||||
writeln('Page: '+pagename+' not found !');
|
||||
end;
|
||||
|
||||
var
|
||||
Application: TWikiDownload;
|
||||
begin
|
||||
Application:=TWikiDownload.Create(nil);
|
||||
Application.Title:='Wiki Download';
|
||||
Application.Run;
|
||||
Application.Free;
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user