Not logged inClonkspot Forum
Forum Home Help Search Register Login
Up Topic Deutsch / Miniblogs / Sulphur
1 2 Previous Next  
Parent - By DMan (More than 200 posts.) Date 13.12.2014 16:20
Bitte, nicht so viel auf einmal.. Bitte langsam weil ich sonst garnichts verstehe..
- - By DMan (More than 200 posts.) Date 20.12.2014 14:05 Edited 20.12.2014 14:30
Wenn ich statt der Haupt-Adresse meine Adresse verwende, dann wird mir angezeigt, dass genau 0 Spiele laufen. Mein Server inkludiert den Haupt-Server aber es wird immer als Zahl 0 ausgegeben, auch wenn etwas auf meinem Server gehostet wird.

Außerdem wird nicht angezeigt, wenn etwas offen ist / oder etwas läuft.

Bsp:
0 games are currently running.
Ein Clonk is now open!


Anbei ein paar Fehler im Log, die nur dann auftauchen, wenn mein Server im Response steht.
[Sat Dec 20 13:49:07 2014] [error] PHP Notice:  Undefined variable: result in /var/www/vendor/beheh/sulphur/src/FilterableList.php on line 36
[Sat Dec 20 13:49:07 2014] [error] PHP Notice:  Undefined variable: result in /var/www/vendor/beheh/sulphur/src/FilterableList.php on line 36
[Sat Dec 20 13:49:07 2014] [error] PHP Fatal error:  Uncaught exception 'InvalidArgumentException' with message 'Passed variable is not an array or object, using empty array instead' in /var/www/vendor/beheh/sulphur/src/FilterableList.php:50\nStack trace:\n#0 /var/www/vendor/beheh/sulphur/src/FilterableList.php(50): ArrayIterator->__construct(NULL)\n#1 /var/www/clonkserver.php(10): Sulphur\\FilterableList->getIterator()\n#2 {main}\n  thrown in /var/www/vendor/beheh/sulphur/src/FilterableList.php on line 50


Und wenn ich schon da bin, Umlaute werden trotz UTF-8 als Kästchen angezeigt und Spiele mit Umlauten werden auch nicht richtig dargestellt. Kann ich das irgendwie ändern? Luchs hat das doch auch in der Liga geschafft, wie? :D
Parent - - By B_E (More than 200 posts.) Date 21.01.2015 19:09
Ich habe deinen Post eben erst gesehen, die Fehler sollten in der Version 2.0.0 (die ich wahrscheinlich noch heute releasen werde) behoben sein. Falls es immer noch Fehler gibt hilft es, wenn du den Fehler direkt auf GitHub meldest (dann bekomme ich eine Mail), und deinen Code dazu postest. Aber wie gesagt, mit der neuen Version sollte das nochmal deutlich besser laufen (die Initialisierung ändert sich ein wenig, daher die große neue Versionsnummer).

Umlaute sind ein Featurewunsch, die werde ich demnächst konvertieren.
Parent - - By DMan (More than 200 posts.) Date 21.01.2015 19:35
Naja, immer noch pünktlicher als die Deutsche Bahn. ^^

Für das Update muss ich nur in der composer.json '        "beheh/sulphur": ">1"' auf ">2" ändern, oder?
Parent - By B_E (More than 200 posts.) Date 21.01.2015 20:03
~2.0 wirds dann auch tun.
Parent - - By DMan (More than 200 posts.) Date 03.04.2015 20:55
Gesagt, getan. Aber eine Änderung merke ich nicht wirklich (Umlaute werden falsch angezeigt und du wolltest das ja fixen). Muss ich sonst noch was machen (Server neustarten, etc.)?
Parent - - By Luchs (More than 1000 posts.) Date 03.04.2015 21:20
Hast du auch wieder `composer install` ausgefuehrt? Nur die Aenderung in der Datei hat natuerlich keinen Effekt, es muss ja auch der neue Code runtergeladen werden.
Parent - By DMan (More than 200 posts.) Date 03.04.2015 21:25
Muchas gracias, por favor.
Parent - - By DMan (More than 200 posts.) Date 11.04.2015 20:35
Ich hoffe du meintest composer update, bei install hab ich nur Errors zurückbekommen.
Parent - - By Luchs (More than 1000 posts.) Date 11.04.2015 20:39
Vermutlich. Ich habe composer bisher noch nicht richtig verwendet, kenne das Prinzip aber von npm. Dort sorgt `npm install` generell dafür, dass alle Abhängigkeiten (unabhängig ob sie schon da sind oder nicht) auf die in der package.json angegebenen Versionen gesetzt werden.
Parent - By DMan (More than 200 posts.) Date 11.04.2015 20:45
Achso, okay. ^^
Parent - - By B_E (More than 200 posts.) Date 03.04.2015 22:57
Das Umlaute-dekodieren selbst ist noch nicht drin, aber solange kannst du einfach diese Funktion auf die Ausgabe anwenden (z.B. auf Spielernamen oder Szenariotitel).
Parent - - By Sven2 (More than 500 posts.) Date 04.04.2015 00:22
$title = self::decodeSpecialChars(strip_tags($reference->Title));

Ist das in der Reihenfolge nicht eine Sicherheitsluecke? Man kann HTML-Tags einbauen, indem man sie als special char codiert.
Parent - By B_E (More than 200 posts.) Date 04.04.2015 12:58
Du hast Recht, jedoch wird die Ausgabe "nur" für CSS genutzt. Das Strip-Tags ist auch eigentlich nicht als Schutz gedacht, sondern um Titel mit den HTML-Tags für Clonk zu säubern (z.B. nutzt CMC für jeden Titel <c ffff00>CMC - Atlantic Crisis</c>). Ich sollte jedoch zumindest die single Quotes maskieren, damit mir niemand das CSS zerschießt.
- - By B_E (More than 200 posts.) Date 21.01.2015 22:44
Version 2.0.0 ist nun draußen! Changelog hier.

Durch den Subsection-Access sollte nun endgültig eine Anzeige wie bei CMC nachgebaut werden können. Ich werde mittelfristig noch das alte System auf Sulphur 2.0.0 portieren und dann auf beheh/cmcgames hochladen, falls das jemand für seine Projektseite möchte.
Parent - - By B_E (More than 200 posts.) Date 28.02.2015 20:08
beheh/cmcgames ist nun die Live-Version, die auch auf cmc.clonkforge.net sichtbar ist. Im Prinzip ist es ein Beispielprojekt für die Nutzung von Sulphur.
Parent - - By DMan (More than 200 posts.) Date 31.03.2015 22:30
Wenn ich fragen dürfte, was ist jetzt mit "Live-Version" gemeint? Sulphur ist doch auch live.
Parent - - By B_E (More than 200 posts.) Date 31.03.2015 22:52
Sulphur ist die Bibliothek. CMCGames ist die Applikation, die Sulphur nutzt, um die Referenzen zu parsen. CMCGames ruft im Endeffekt den Masterserver auf, gibt das Ergebnis an Sulphur, und filtert die Rückgabe von Sulphur nach CMC-Spielen.

Mit Live-Version meine ich einfach, davor lieferte eine unabhängige (und unveröffentlichte) Applikation die CMC-Spiele. Inzwischen liefert das wirklich CMCGames, eben mit Sulphur.
Parent - - By DMan (More than 200 posts.) Date 01.04.2015 11:35

>CMCGames ruft im Endeffekt den Masterserver auf, gibt das Ergebnis an Sulphur


Sry dass ich so blöd frage, aber kann dann Sulphur nicht mehr alleine den Masterserver aufrufen?
Parent - - By B_E (More than 200 posts.) Date 01.04.2015 22:59
Ja. Ich habe das in Version 2 entfernt, aber das sind im aufrufenden Code nur zwei Zeilen ([siehe ersten Punkt im Changelog Version v2.0.0](https://github.com/beheh/sulphur/blob/stable/CHANGELOG.md))
Parent - - By DMan (More than 200 posts.) Date 01.04.2015 23:05
Kann ich Sulphur also alleine nicht mehr benutzen sondern muss mir quasi CMCgames mitinstallieren und an meine Wünsche anpassen?
Parent - By Luchs (More than 1000 posts.) Date 01.04.2015 23:32
Nein, du kopierst einfach die zwei Zeilen.
Parent - - By B_E (More than 200 posts.) Date 01.04.2015 23:40
Ich glaube da ist noch etwas Verwirrung was Sulphur genau ist/macht, und was CMCGames ist/macht.

Also, nochmal von vorn:
* Der Masterserver ist die Instanz, bei der sich alle Onlinespiele anmelden, damit andere Spieler sie finden können. Er ist für die Ingame-Spieleliste, die Clonkspot-Liste und die Liga verantwortlich. Im Hintergrund passiert da viel Datenaustausch, aber das Wichtigste: der Masterserver gibt die Ingameliste in einem speziellen Format (das sieht so aus). Da alle Spieler den gleichen Masterserver nutzen, sehen auch alle die gleichen Spiele.
* Sulphur ist eine PHP-Bibliothek (d.h. sie macht alleine erst mal nichts). Sie versteht das Format des Masterservers und kann deiner PHP-Anwendung sagen, welche Spiele gerade laufen (nachdem du Sulphur mit der Antwort des Masterservers gefüttert hast), welche Spieler gerade spielen oder alles was dir mit den Daten einfällt. Im Endeffekt ist Sulphur aber auch "nur" ein Parser.
* CMCGames ist eine Beispiel-Anwendung (in PHP), die Sulphur benutzt (das muss daher mitinstalliert werden). Sie weiß nur, wie man an die Masterserver-Antwort kommt, aber nicht, wie man sie ausliest (dadurch ist das aktuelle CMCGames sehr viel kürzer als vorherige Versionen). Da das aber ja für die Spieleliste irgendwie aus der Masterserver-Antwort herausgelesen muss gibt CMCGames die Antwort an Sulphur ab. CMCGames interagiert dann etwas mit Sulphur, um am Ende die Ausgabe zu zaubern, die die CMC-Spieleliste betreibt. Konkret erzeugt CMCGames dazu CSS, das dann auf der Projektseite eingebunden wird.

Die Frage ist nun, was möchtest du tun? Du kannst:
* CMCGames für andere Projekte abwandeln (& Sulphur im Hintergrund lassen wie es ist) - z.B. alle Runden deines Packs auf einer Projektseite anzeigen
* Sulphur in komplett andere Dinge einbinden - vielleicht auf deiner Homepage eine Anzeige ob du gerade in einem Spiel bist, oder was dein Server gerade hostet.

In allen Fällen brauchst du Composer, um Sulphur zu installieren und zu nutzen. Wie das alles funktioniert siehe PHP: Der richtige Weg (übersetzt PHP: The Right Way)
Parent - By DMan (More than 200 posts.) Date 01.04.2015 23:45
Ja, okay, ich denke es ist jetzt alles klar. Hab irgendwie gedacht, dass Sulphur jetzt alleine nicht mehr funktioniert. Aber jetzt ist ja alles klar. Vielen Dank. ^^
Parent - By DMan (More than 200 posts.) Date 11.04.2015 20:40
Hab jetzt mal das Update installiert und den Code angepasst.

<?php require("vendor/autoload.php");
// fetch masterserver response
/\* $response = Sulphur\ResponseFactory::fromUrl('league.clonkspot.org:80'); \*/
$parser = new Sulphur\Parser();
$response = $parser->parse(file_get_contents('league.clonkspot.org:80'));
[...]


Hab einfach die alte Zeile auskommentiert und die zwei Zeilen, die du gemeint hast, eingefügt und angepasst, den Rest hab ich so gelassen. Dennoch bekomme ich immer 0 beim Zählen und keine Titel (wie bisher) mehr zurück. Muss ich den restlichen Code noch anpassen oder warum funktioniert das nicht mehr? Ich meine, die Variablen heißen gleich und die Datei hat alle Rechte.
Parent - By DMan (More than 200 posts.) Date 14.05.2015 12:45
Still don't know how to handle.
Up Topic Deutsch / Miniblogs / Sulphur
1 2 Previous Next  

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill