diff --git a/Projects/ScriptManager/project1.lpi b/Projects/ScriptManager/project1.lpi index 4e808df..c4dc757 100644 --- a/Projects/ScriptManager/project1.lpi +++ b/Projects/ScriptManager/project1.lpi @@ -10,8 +10,10 @@ - + + + @@ -29,12 +31,15 @@ - + - + + + + @@ -45,326 +50,280 @@ - - - + + + - - + - - + - + - - - + + + - - + - - - - - - + + + - - - + - - + - - + - - + - - - - + - - - - + + - - - + - - - - + + + + - - - - - + + + + + + + - - - - - + + + - - - - + - - - - + - - - + - - + - - - - + - - - - + - - - - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -373,10 +332,15 @@ - - + + + + + + + @@ -390,6 +354,11 @@ + + + + + diff --git a/Projects/ScriptManager/project1.lpr b/Projects/ScriptManager/project1.lpr index 0ce5d06..7eda75a 100644 --- a/Projects/ScriptManager/project1.lpr +++ b/Projects/ScriptManager/project1.lpr @@ -7,8 +7,7 @@ uses cthreads, cmem, {$ENDIF} Interfaces, // this includes the LCL widgetset - Forms, scriptmanager - { you can add units after this }; + Forms, scriptmanager; {$R *.res} diff --git a/Projects/ScriptManager/project1.manifest b/Projects/ScriptManager/project1.manifest new file mode 100644 index 0000000..07fb624 --- /dev/null +++ b/Projects/ScriptManager/project1.manifest @@ -0,0 +1,17 @@ + + + + Your application description here. + + + + + + + + + + + + + \ No newline at end of file diff --git a/Projects/ScriptManager/project1.rc b/Projects/ScriptManager/project1.rc new file mode 100644 index 0000000..1c963f2 --- /dev/null +++ b/Projects/ScriptManager/project1.rc @@ -0,0 +1,6 @@ +#define RT_MANIFEST 24 +#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1 +#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2 +#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3 + +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "project1.manifest" diff --git a/Projects/ScriptManager/scriptmanager.lfm b/Projects/ScriptManager/scriptmanager.lfm index 4199955..8affe30 100644 --- a/Projects/ScriptManager/scriptmanager.lfm +++ b/Projects/ScriptManager/scriptmanager.lfm @@ -1,5 +1,5 @@ object Form1: TForm1 - Left = 466 + Left = 515 Height = 434 Top = 179 Width = 702 @@ -32,9 +32,9 @@ object Form1: TForm1 TabOrder = 1 object Memo1: TMemo Left = 14 - Height = 280 - Top = 8 - Width = 376 + Height = 288 + Top = 15 + Width = 384 BorderStyle = bsNone Color = clBtnFace ReadOnly = True diff --git a/Projects/ScriptManager/scriptmanager.pas b/Projects/ScriptManager/scriptmanager.pas index fd6fa8e..6e99827 100644 --- a/Projects/ScriptManager/scriptmanager.pas +++ b/Projects/ScriptManager/scriptmanager.pas @@ -51,7 +51,8 @@ type Name, Version, Author, Description, URL: String; Tags, Files: TStringList; LocalScript : TSimbaScript; - property Installed : boolean read IsInstalled; +// property Installed : boolean read IsInstalled; + Installed : boolean; procedure Dbg; constructor Create; destructor Destroy; override; @@ -76,16 +77,16 @@ type private FMaindir: string; FRScripts : TList; //Array of the online scripts - FLScripts: TList; //Array of the local scripts + FLScripts : TList; //Array of the local scripts FRVersion : String; FUpdating : boolean; function GetLScriptCount: integer; function GetMainDir: string; function GetScript(index : integer): TSimbaScript; function GetRScriptCount: integer; - procedure MatchLocalOnline; function GetLScriptByName(name: string): TLSimbaScript; function isNewerVersion(ver1, ver2: string): boolean; + procedure AppendRemoteDB(url: string); public function FindRScriptByName(name : string) : Integer; function FindLScriptByName(name : string) : Integer; @@ -126,8 +127,6 @@ type end; - - var Form1: TForm1; @@ -156,7 +155,7 @@ begin Memo1.Lines.add('Name: ' + Script.Name); Memo1.lines.add('Author: ' + Script.Author); Memo1.Lines.add('Version: ' + Script.Version); - Memo1.Lines.add('Installed: '+ BoolToStr(Script.Installed,true)); + Memo1.Lines.add('Installed: '+ BoolToStr(Script.IsInstalled, true)); Memo1.Lines.add('Description: ' + Script.Description); end; end; @@ -212,10 +211,17 @@ begin if (ListView1.Selected <> nil) and (ListView1.Selected.Data <> nil) then begin Script := TSimbaScript(ListView1.Selected.Data); -// if Script.IsInstalled then -// Mng.UpdateLScript(mng.FindRScriptByName(Script.Name)) -// else + if Script.IsInstalled then + begin +// ShowMessage('Updating Script "' + Script.Name + '"'); + Mng.UpdateLScript(mng.FindRScriptByName(Script.Name)); + ShowMessage('Finished Updating Script "' + Script.Name + '"'); + end else + begin +// ShowMessage('Installing Script "' + Script.Name + '"'); Mng.InstallNewRScript(mng.FindRScriptByName(Script.Name)); + ShowMessage('Finished Installing Script "' + Script.Name + '"'); + end; end; end; @@ -223,7 +229,7 @@ end; function TSimbaScript.IsInstalled: boolean; begin - Result := (LocalScript <> nil); + Result := Self.Installed; end; procedure TSimbaScript.LoadFromNode(Script: TDOMNode); @@ -289,6 +295,7 @@ end; constructor TSimbaScript.Create; begin inherited; + Installed := False; {stuff here} end; @@ -358,26 +365,35 @@ begin result := FRScripts.Count; end; -procedure TScriptManager.MatchLocalOnline; +procedure TScriptManager.RUpdate; var - Scrpt : TLSimbaScript; - I,II : integer; + Databs : TStringList; + X : integer; begin - for ii := 0 to LScriptCount - 1 do + Databs := TStringList.Create; + Databs.Add('http://tootoot222.hopto.org:8080/~mcteo/scriptman/scripts.xml'); + Databs.Add('http://tootoot222.hopto.org:8080/~mcteo/scriptman2/scripts.xml'); + Databs.Add('http://tootoot222.hopto.org:8080/~mcteo/secretrepo/scripts.cgi?user=user&pass=pass'); + + //TODO: Load list of repositories + +// ShowMessage(SettingsForm.Settings.GetKeyValueDefLoad('Settings/SourceEditor/DefScriptPath', ,SimbaSettingsFile)); +// ShowMessage(LoadSettingDef('Settings/SourceEditor/DefScriptPath', ExpandFileName(MainDir+DS+'default.simba'))); + FRScripts.Clear(); + Form1.Memo1.Clear; + Form1.Memo1.Lines.Add('Updating from Repos'); + for X := 0 to Databs.Count-1 do begin - Scrpt := TLSimbaScript(FLScripts[ii]); - if Scrpt.OnlineScript = nil then - for i := 0 to RScriptCount-1 do - if TSimbaScript(FRScripts[i]).Name = Scrpt.Name then - begin - Scrpt.OnlineScript := TSimbaScript(FRScripts[i]); - Break; - end; - Scrpt.OnlineScript.LocalScript := Scrpt; + Form1.Memo1.Lines.Add('Updating from Repos ' + inttostr(X+1) + + '/' + inttostr(Databs.Count)); + AppendRemoteDB(Databs[X]); end; + Databs.Free; + Form1.Memo1.Lines.Add('Finished updating from Repos'); end; -procedure TScriptManager.RUpdate; +{ Downloads online scripts.xml and parses it, populating FRScripts } +procedure TScriptManager.AppendRemoteDB(url: string); var XMLFile : string; Stream : TStringStream; @@ -393,7 +409,8 @@ begin exit; FUpdating := True; // Down := TDownloadThread.Create('http://old.villavu.com/sm',@XMLFile); - Down := TDownloadThread.Create('http://tootoot222.hopto.org:8080/~mcteo/scriptman/scripts.xml',@XMLFile); + Down := TDownloadThread.Create(url, @XMLFile); +// Down := TDownloadThread.Create('http://tootoot222.hopto.org:8080/~mcteo/scriptman/scripts.xml',@XMLFile); down.Execute; while down.Done = false do begin @@ -410,11 +427,11 @@ begin if node <> nil then begin script := Node.FirstChild; + WriteLn('loading remote script from online db'); while Script <> nil do begin SScript := TSimbaScript.Create; SScript.LoadFromNode(Script); - SScript.Dbg; i := FindRScriptByName(SScript.Name); if (i = -1) then // if no remote scripts with same name begin @@ -429,7 +446,8 @@ begin begin if isNewerVersion(SScript.Version, LScr.Version) then // if local script is older begin - FRScripts.Add(SScript); // add version of script + SScript.Installed := True; + FRScripts.Add(SScript); // add newer version of script end; end; end; @@ -440,12 +458,14 @@ begin end; Script := Script.NextSibling; end; + WriteLn('finished loading remote script from online db'); end; XMLDoc.Free; FUpdating := false; // MatchLocalOnline; end; +{ Opens local scripts.xml and parses it, populating FLScripts } procedure TScriptManager.LUpdate; var XMLDoc : TXMLDocument; @@ -457,14 +477,17 @@ var begin if DirectoryExists(MainDir) = false then exit; + WriteLn('Reading XML Config file from "' + maindir + 'General' + DirectorySeparator+ 'scripts.xml"'); if FileExists(maindir + 'General' + DirectorySeparator+ 'scripts.xml') then begin ReadXMLFile(XMLDoc,maindir + 'General' + DirectorySeparator+ 'scripts.xml'); - Node := XMLDoc.FirstChild.FindNode('ScriptList'); -// Node := XMLDoc.FindNode('ScriptList'); +// Node := XMLDoc.FirstChild.FindNode('ScriptList'); + Node := XMLDoc.FindNode('ScriptList'); if node <> nil then begin + FLScripts.Clear(); script := Node.FirstChild; + WriteLn('loading local script from local db'); while script <> nil do begin SScript := TLSimbaScript.Create; @@ -473,7 +496,6 @@ begin begin SScript.LoadFromName(Trim(tmpNode.TextContent), maindir); i := FindLScriptByName(SScript.Name); -// SScript.Dbg; if (i = -1) then begin FLScripts.Add(SScript); @@ -486,12 +508,13 @@ begin end; script := script.NextSibling; end; + WriteLn('finished loading local scripts from local db'); end; XMLDoc.Free; end; -// MatchLocalOnline; end; +{ Compares versions and returns true if ver1 > ver2 } function TScriptManager.isNewerVersion(ver1, ver2: string): boolean; var v1, v2: Extended; @@ -503,11 +526,12 @@ end; function TScriptManager.NewVersion(Script: integer): boolean; begin - MatchLocalOnline; +// MatchLocalOnline; with TLSimbaScript(FLScripts[Script]) do result := OnlineScript.Version <> Version; end; +{ Sets up some vars/dirs and hands installation to update script func } procedure TScriptManager.InstallNewRScript(Script: integer); var Scrpt : TSimbaScript; @@ -519,7 +543,6 @@ begin FUpdating := true; Scrpt := TSimbaScript(FRScripts[Script]); LScrpt := TLSimbaScript.create; - FLScripts.Add(LScrpt); LScrpt.Name:= Scrpt.Name; LScrpt.OnlineScript := Scrpt; Dir := MainDir + LScrpt.Name + DirectorySeparator; @@ -527,9 +550,12 @@ begin Writeln('Directory already exists, yet continue?'); if not CreateDir(Dir) then Writeln('Failed to create dir..'); - UpdateLScript(FLScripts.Count - 1,true); + FLScripts.Add(LScrpt); + UpdateLScript(FLScripts.Count - 1, true); end; +{ Downloads script files and puts them in their own directory, + then triggers updating of local scripts.xml to match FLScripts } function TScriptManager.UpdateLScript(Script: integer; ignoreupdating : boolean = false) : boolean; var LScrpt : TLSimbaScript; @@ -569,6 +595,7 @@ begin FUPdating := false; end; +{ Updates local scripts.xml to match FLScripts } procedure TScriptManager.LSave; var XMLDoc : TXMLDocument; @@ -590,9 +617,12 @@ begin Node := XMLDoc.CreateElement('ScriptList'); XMLDoc.AppendChild(node); for i := 0 to FLScripts.Count - 1 do + begin + TLSimbaScript(FLScripts[i]).Dbg; ChildNode := XMLDoc.CreateElement('Script'); AddTextElement(childnode,'Name', TLSimbaScript(FLScripts[i]).Name); Node.AppendChild(ChildNode); + end; WriteXMLFile(XMLDoc,maindir + 'General' + DirectorySeparator+ 'scripts.xml'); XMLDoc.Free; end; diff --git a/Projects/Simba/simbaunit.lfm b/Projects/Simba/simbaunit.lfm index f396c98..ddd772c 100644 --- a/Projects/Simba/simbaunit.lfm +++ b/Projects/Simba/simbaunit.lfm @@ -1,8 +1,9 @@ object SimbaForm: TSimbaForm - Left = 531 + Left = 423 Height = 623 - Top = 290 + Top = 179 Width = 660 + ActiveControl = ScriptPanel AllowDropFiles = True Caption = 'THA FUKING Simba' ClientHeight = 603 @@ -15,7 +16,7 @@ object SimbaForm: TSimbaForm OnDropFiles = FormDropFiles OnHide = doOnHide OnShortCut = FormShortCuts - LCLVersion = '0.9.31' + LCLVersion = '0.9.28.2' Visible = True object ToolBar1: TToolBar Left = 0 @@ -305,6 +306,7 @@ object SimbaForm: TSimbaForm Height = 19 Top = 7 Width = 16 + Color = clBtnFace Flat = True Glyph.Data = { 36090000424D3609000000000000360000002800000018000000180000000100 @@ -395,10 +397,17 @@ object SimbaForm: TSimbaForm EditLabel.AnchorSideTop.Side = asrCenter EditLabel.AnchorSideRight.Control = LabeledEditSearch EditLabel.AnchorSideBottom.Control = LabeledEditSearch +<<<<<<< HEAD + EditLabel.Left = 64 + EditLabel.Height = 18 + EditLabel.Top = 10 + EditLabel.Width = 37 +======= EditLabel.Left = 71 EditLabel.Height = 16 EditLabel.Top = 9 EditLabel.Width = 30 +>>>>>>> upstream/master EditLabel.Caption = 'Find: ' EditLabel.ParentColor = False LabelPosition = lpLeft @@ -411,9 +420,13 @@ object SimbaForm: TSimbaForm end object CheckBoxMatchCase: TCheckBox Left = 320 - Height = 19 + Height = 24 Top = 7 +<<<<<<< HEAD + Width = 101 +======= Width = 80 +>>>>>>> upstream/master Caption = 'Match case' OnClick = CheckBoxMatchCaseClick TabOrder = 1 @@ -434,6 +447,10 @@ object SimbaForm: TSimbaForm ClientWidth = 150 OnEndDock = nil TabOrder = 3 + inherited FunctionListLabel: TLabel + Height = 18 + Width = 146 + end inherited FunctionList: TTreeView Height = 319 Top = 20 @@ -451,10 +468,13 @@ object SimbaForm: TSimbaForm OnKeyDown = editSearchListKeyDown OnKeyPress = editSearchListKeyPress end +<<<<<<< HEAD +======= inherited FunctionListLabel: TLabel Height = 16 Width = 146 end +>>>>>>> upstream/master end end object MainMenu: TMainMenu @@ -1119,6 +1139,7 @@ object SimbaForm: TSimbaForm end object MenuItemGoto: TMenuItem Action = ActionGoto + OnClick = ActionGotoExecute end end object MenuItemScript: TMenuItem @@ -1260,14 +1281,17 @@ object SimbaForm: TSimbaForm object MenuItemPascalScript: TMenuItem Action = ActionPascalScript RadioItem = True + OnClick = ActionPascalScriptExecute end object MenuItemRUTIS: TMenuItem Action = ActionRUTIS RadioItem = True + OnClick = ActionRUTISExecute end object MenuItemCPascal: TMenuItem Action = ActionCPascal RadioItem = True + OnClick = ActionCPascalExecute end end end @@ -1287,6 +1311,7 @@ object SimbaForm: TSimbaForm end object MenuItemExtensions: TMenuItem Action = ActionExtensions + OnClick = ActionExtensionsExecute end end object MenuTools: TMenuItem @@ -3332,21 +3357,10 @@ object SimbaForm: TSimbaForm end object SCARHighlighter: TSynPasSyn Enabled = False - AsmAttri.FrameEdges = sfeAround CommentAttri.Foreground = clGreen - CommentAttri.FrameEdges = sfeAround CommentAttri.Style = [] - IDEDirectiveAttri.FrameEdges = sfeAround - IdentifierAttri.FrameEdges = sfeAround - KeyAttri.FrameEdges = sfeAround NumberAttri.Foreground = clNavy - NumberAttri.FrameEdges = sfeAround - SpaceAttri.FrameEdges = sfeAround StringAttri.Foreground = clFuchsia - StringAttri.FrameEdges = sfeAround - SymbolAttri.FrameEdges = sfeAround - CaseLabelAttri.FrameEdges = sfeAround - DirectiveAttri.FrameEdges = sfeAround CompilerMode = pcmObjFPC NestedComments = False left = 568 @@ -3354,25 +3368,13 @@ object SimbaForm: TSimbaForm end object LazHighlighter: TSynPasSyn Enabled = False - AsmAttri.FrameEdges = sfeAround CommentAttri.Foreground = clBlue - CommentAttri.FrameEdges = sfeAround CommentAttri.Style = [fsBold] - IDEDirectiveAttri.FrameEdges = sfeAround IdentifierAttri.Foreground = clDefault - IdentifierAttri.FrameEdges = sfeAround - KeyAttri.FrameEdges = sfeAround NumberAttri.Foreground = clNavy - NumberAttri.FrameEdges = sfeAround - SpaceAttri.FrameEdges = sfeAround StringAttri.Foreground = clBlue - StringAttri.FrameEdges = sfeAround SymbolAttri.Foreground = clRed - SymbolAttri.FrameEdges = sfeAround - CaseLabelAttri.FrameEdges = sfeAround - CaseLabelAttri.Style = [fsItalic] DirectiveAttri.Foreground = clRed - DirectiveAttri.FrameEdges = sfeAround DirectiveAttri.Style = [fsBold] CompilerMode = pcmObjFPC NestedComments = False diff --git a/Projects/Simba/updateform.lfm b/Projects/Simba/updateform.lfm index 6b8fada..3535947 100644 --- a/Projects/Simba/updateform.lfm +++ b/Projects/Simba/updateform.lfm @@ -1,5 +1,5 @@ object SimbaUpdateForm: TSimbaUpdateForm - Left = 262 + Left = 276 Height = 331 Top = 219 Width = 473 @@ -9,7 +9,7 @@ object SimbaUpdateForm: TSimbaUpdateForm ClientWidth = 473 OnCreate = FormCreate OnShow = CleanUpdateForm - LCLVersion = '0.9.29' + LCLVersion = '0.9.30.1' object DownloadProgress: TProgressBar Left = 8 Height = 29 @@ -49,9 +49,9 @@ object SimbaUpdateForm: TSimbaUpdateForm end object DownloadSpeed: TLabel Left = 96 - Height = 14 - Top = 306 - Width = 78 + Height = 18 + Top = 302 + Width = 111 Anchors = [akLeft, akBottom] Caption = 'DownloadSpeed' ParentColor = False