Autoit Script Sharing

  • Nachdem sich meine Softwareverteilung Hephaistos , nach einer längeren Testphase, nun kurz vor dem Release befindet habe ich mir überlegt was ich als nächstes machen könnte. Die UDF-Database von Jautois, die ich übrigens echt klasse finde und hoffe das da bald noch einige UDFs mehr rein kommen, hat mich dabei auf eine Idee gebracht. In wie weit diese Idee nun nötig oder unnötig ist sei dahingestellt.

    Es gibt doch viele Leute die sich die Mühe machen kleine oder auch große Skripte zu schreiben und diese unter anderem auch hier im Forum zu veröffentlichen. Was ich nun schade finde ist das diese Skripte doch recht schnell wieder in Vergessenheit geraten. Wenn man dann ein bestimmtes Skript braucht erinnert man sich meistens zwar noch, dass es so eines gibt aber nichtmehr wo. Oder noch schlimmer man weiß wo das Skript ist aber die Seite existiert nichtmehr und das Skript ist verloren.

    Von daher werde ich mit Projekt „Autoit Script Sharing“ beginnen.

    Das ganze wird im Peer to Peer Verfahren ablaufen. Mit Peer to Peer Verfahren ist gemeint das die Daten sich nicht auf einem zentralen Rechner befinden sondern sich die Clients untereinander austauschen. Ein Server ist in diesem Verfahren nur noch dazu da zu Listen welche Skripte verfügbar sind und von welchem Client diese zurzeit verfügbar sind.

    Der Vorteil ist der, dass man nicht auf einen einzigen Server angewiesen ist. Man kann auch seinen eigenen Server aufmachen und z.b. nur Skripte unter seinen Freunden tauschen. Auch der Ausfall des Servers ist kein großes Problem da man schlicht auf einen anderen dann ausweichen kann.

    Funktion des Servers:

    - Listet Skripte die schon einmal im Netzwerk verteilt wurden mit einem eindeutigen MD5 Hash.
    - Listet welche Clients, die aktuell online sind, welche Skripte verteilen
    - Gibt eine Liste aller bekannten Skripte an Clients aus
    - Gibt eine Liste der verfügbaren Quellen für an Skript an Clients weiter

    Funktion Client

    - Verteilen von Skripten im Netzwerk mit Generierung von eindeutigem MD5 Hash
    - Generiert einmaligen public + privat key
    - Gibt public-key an anfragenden Client aus
    - Verhandelt mit anderem Client einen Session-Key über RSA aus.
    - Durchsuchen der im Netzwerk bekannten Skripte

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (15. Januar 2010 um 12:26)

  • Hört sich gut an!

    Aber wie willst du das Umsetzen, also ich meine ob du den Torrent-Clienten selber Coden willst?? Mit AU3?!? Könnt vielleicht etwas Langsam sein, oder was meinst du?

    Fragen über Fragen :D

  • Da ich das gleiche im Grunde für mein Softwaretool gemacht habe, nur halt Netzintern, ist das kein Problem in Autoit und auch keineswegs langsam.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hab ja nichts von Torrentprotokoll geschrieben ;). Ich habe gesagt Torrentverfahren, das ist ein großer Unterschied. Vor allem wäre das Bittorrentprotokoll hier eher störend, da dieses auf großes Datenmengen ausgelegt ist und bei kleinen wie z.b. einem Autoitscript mehr bremst als beschleunigt. Macht ja auch wenig Sinn solch kleine Dateien nochmal in Pakete zu splitten.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    • Offizieller Beitrag

    Ich denke, du solltest es "Peer To Peer"-Verfahren nennen ;).
    Wenn im Namen Torrent auftaucht, rechnet man auch mit dem speziellen Protokoll, das aber hier ja wahrscheinlich nicht gemeint und auch schwer mit AutoIt möglich ist.
    Ansonsten ist das Projekt als externes Backup eine gute Idee :D.

    Johannes

  • Klingt wirklich gut :thumbup: Zum Thema langsam... Da AutoIt-Scripte ja nicht sooo groß sind dürfte das eigentlich ja kein Problem sein.

  • Denkt ihr eine Option wäre nützlich, mit der man einfach alles was grade so im Sharenetz rumliegt sich holen kann?

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • hi
    erstmal super idee

    meist du mit "grade so im Sharenetz rumliegt" quasi alles runterladen?, also alle (source/exe)dateien?
    dann wird man sozusagen als masterserver *g*

    Lach genau so hab ich das gemeint *g*. Soll ja Leute geben die gerne eine rießen Scriptarchiv auf ihrem Rechner haben wollen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Gute Idee, würde auf jeden Fall mitmachen.
    Soll es sozusagen einen Sharing-Ordner geben? Weil ich ja nicht umbedingt alle meine Skripte mit euch teilen möchte :P

    Jein, du kannst deinen ganz normalen Scriptordner angeben, solange dein Script noch nicht von dir oder sonstwem "angemeledet" wurde (dazu muss man die Datei besitzen da ein Hash der Datei generiert wird) wird diese auch nicht verteilt und keiner kann sie bekommen. Grund für diesen Weg ist einfach der, dass ich es selber immer recht umständlich finde noch lange dann Dateien von dem Share-Ordner in der Main und umgekehrt zu schieben. Durch den Weg der Anmeldung eines Scriptes kann man erstens sicher gehen das wirklich nur Scripte von dem eigenen Rechner verteilt werden die eh schon kursieren und zweiten hat man keine "Arbeit" mit rumkopieren.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hast bisschen zu schnell geantwortet hehe, hab meine Post grade nochmal editiert gehabt und etwas ausführlicher beschrieben das ganze.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Naja, man müsste dann das Script vor dem "verschicken" auslesen, und alle mit FileInstall includede Datein mit schicken...
    Es gibt ja Scripte mit Zusatzdatein...oder?

  • Dann gibts einfach den Ordner an in dem alles drin ist :). Wird dann automatisch in eine Datei zusammen gepackt und am Ziel wieder entpackt. Wobei wenn eine .exe dabei sein sollte wird der Empfänger vorher gefragt ob es wirklich entpackt werden soll. (.exe werden denken ich generell gepackt werden, rein zur Sicherheit)

    P.s. das Script wird übrigens beim neuen erstellen eh ausgelesen, um im Formular bereits, sich im Header befindliche, Information vorher auszufüllen damit man nur noch ergänzen/korrigieren braucht.

    Also z.b.:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.4.0
    Author: chip

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Ein Script halt

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit]

    Hierbei würde im Formular zum Eintragen bereits die Autoitversion, der Autor und die Scriptbeschreibung erkannt und eingetragen werden. Da natürlich es einige Wege gibt wie man seinen Header gestallten kann gib es bei einem nicht erkennen der Headerinformationen die Möglichkeit das Script "einzureichen" damit diese Header dann nach dem nächsten Update auch erkannt werden.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    3 Mal editiert, zuletzt von chip (19. Januar 2010 um 17:33)

  • Super....gute Ideen....
    hoffentlich funktioniert das alles so wie du dir das gedacht hast...
    freue mich schon :thumbup: