KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: Will einen Updater mit Lua proggen, aber wie?
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hey Liebe Com,
Ich würde gerne eine Update-Funktion meinem Homebrew Blackballs hinzufügen. So muss man es nicht mehr via PC/Shell etc. machen. Nun brauche ich aber hilfe bei einigen Dingen:

1). Der Befehl um den Browser zu öffnen (Oder auch ohne wenn es geht) und die Dateien per URL runterladen
2). Der Befehl, um die Dateien in einen bestimmten Pfad zu Installieren.

Liebe Grüße SIM sk
Ich hab sowas zwar selbst noch nie gemacht, aber ich hab so ne ungefähre vorstellung, wie das geht:

Man muss in einer weiteren lua datei den update code benutzen. Z.B. update.lua. Diese Datei verbindet sich mit dem Internet, lädt neue Datein herunter, z.B. Blackballs.zip, entpackt das Verzeichniss und speichert den Inhalt am richtiegen Ort ab.

Zuerst WLAN initialiesieren:

Code:
Wlan.init()


Initialisiert das WLAN-Modul. Dieser Befehl wird immer vor Gebrauch weiterer WLAN-Befehle benötigt.

Dann musst du, um dich mit dem Internet zu verbinden, die richtiege Verbindung auswählen lassen. Dazu muss man ein kleines Menü schreiben.

Code:
Wlan.getConnectionConfigs()


Ermittelt alle verfügbaren Wifi-Verbindungskonfigurationen der PSP und speichert sie in einer table ab.

Menü

Spoiler: (anzeigen)

So, bis jetzt wär nur die verbindung ausgewählt und der PSP mitgeteilt, sie soll sich mit dem Router verbinden. Jetzt müssen wir prüfen, ob die PSP auch verbunden ist:

Code:
if not Wlan.getIPAddress() then
System.sleep(100)
end


Dieser if-Block kommt nur dann in Funktion, falls der Luaplayer die IP-adresse nicht ermitteln kann. Eventuell sollte man diesen code nch ergänzen, aber ich mache hier ja nur ein Beispiel.

So, jetzt müssen wir uns mit der entsprechenden Seite verbinden, von der man die datei laden möchte. Hierzu müsste die Datei dann auf Webspace liegen und nicht bei seiten wie megaupload oder rapidshare hinterlegt sein:

Code:
neuersocket = Socket.connect("http://www.BlackBalls.de", 80)


Dann muss man schauen, ob man mit der Seite verbunden ist:

Code:
if neuersocket:isConnected() == false then
System.sleep(100)
end


Auch hier wäre es ratsam, den code weiter zu modifizieren, ich mache das jetzt nicht, wei ich nicht ewig zeit habe.

Code:
neuersocket:send("GET /Blackballs.zip HTTP/1.0\r\n")
data = neuersocket:recv()


Das ist jetzt ziehmlich vereinfacht dargestellt, aber du kannst das auch bestimmt alleine in seine entgültige Form bringen, wenn du möchtest. Smile


Also, jetzt haben wir (zumindest theoretisch) das BlackBals.zip verzeichnis im Arbeitsspeicher, aber im stringformat, sodass wir es (theoretisch) mit einem einfachen code speichern können:

Code:
datei = io.open("BlackBalls.zip","w")
datei:write(data)
datei:close()


dabei gibts nur 1 großes Problem. Im selben Verzeichniss wie die upadte.lua müsste die BlackBalls.zip bereits existieren (auch ohne inhalt).

dann nurnoch unpacken:

Code:
ZIP.extract("ms0:\PSP\Game\BlackBalls.zip","ms0:\PSP\Game\","")


ABER WICHTIG: Die Codefunktionen hab ich auf ca. 5 verschiedenen Webseiten gefunden und nicht getesten! Ich hab keine Ahnung, ob das alles klappt oder ich vielleicht (wahrscheihnlich) irgendwo einen Riesenfehler gemacht hab, sodass das nicht so klappt.


Wenn du einen neueren luaplayer ab luaplayer 8 benutzt, kannst du das herunteraden hiermit machen:


Code:
System.webbrowser(Pfad zur webbrowser.pbp,URL)


Wahrscheihnlich hab ich hier zu über 50% schrott geschrieben, aber wenns dir trotzdem hilf, ist auch gut Smile

vielen dank, dass du dir die Mühe gemacht hast Smile
Vielleicht sollte ich nen neuen luaplayer benutzen, letzteres sieht einfacher aus ^^

weißt du vllt ob ich die einzelnen dateien an verschiedene orte verschieben kann?

lg
Referenz-URLs