Beiträge von Ragnos

Ich habe einen Blog Artikel verfasst - Wie benutze ich die Suche richtig - Bitte diesen beachten und auch umsetzen bevor Ihr ein Neues Thema eröffnet!

    Ziemlich offtopic, aber was solls:


    Vorab: Hier geht es um Server Dinge. Wenn du dir nur bei einem Provider wie bplaced, Hetzner, Netcup oder wie sie alle heißen einen Webspace geklickt hast und sonst keinerlei Berührung mit einem Linux Server hast, ist dass hier nicht für dich. Dienste wie cron-job.org werden dir da weiterhin gute Dienste leisten. Wer hier allerdings noch was lernen will kann sich gerne daheim eine kleine Linux VM aufsetzen und das ganze mal ausprobieren.


    Wenn man von Cronjob spricht ist zumeist eine zeitgeplante Ausführung eines Programms gemeint. Cronjobs sind fester Bestandteil der Administration eines Unix basierten Systems. Hier empfehle ich die einschlägige Dokumentation der Linux Distribution deiner Wahl.


    https://wiki.ubuntuusers.de/Cron/

    https://wiki.archlinux.de/title/Cron


    Erstmal stellen wir fest, welches Programm bzw. welchen Befehl wir aufrufen wollen.

    Das Ziel ist, die liveresults.php des Tippspiels aufzurufen. Das Werkzeug dazu heist "curl", ein extrem kleines aber mächtiges Programm welches http aufrufe tätigt.


    Der Aufruf des Programms sieht also so aus:


    curl -sS "https://tippspiel.ragnos.de/extern/liveresults.php?pw=REDACTED"


    Wer wissen will was "-sS" macht schlägt das bitte in der Dokumentation von curl nach. Ohne Hausaufgaben gehts nunmal nicht.


    Als nächstes brauchen wir einen Zeitraum.

    - Bundesliga findet zwischen August und Mai statt.

    - Bundesliga findet Freitags bis Sonntags statt.

    - Anstoßzeiten: Freitag 20:30; Samstag 15:30, 18:30, Sonntag 15:30, 17:30, 19:30

    - Spieldauer: 2x 45 Minuten, 15 Minuten Halbzeitpause, weitere 30 Minuten als Reserve für Nachspielzeiten, Unterbrechungen usw. ergibt 135 Minuten bzw 2 Stunden 15 Minuten.


    Falls hier jemand Sorge hat, ich würde mit dem langen Reservezeitraum den Server von xcript über gebühr belasten: Es werden nur Anfragen zu Spielen verschickt, dessen Startdatum in der Vergangenheit liegt und der Status nicht "beendet" ist. Wenn der Sonntag also nur für 15:30 und 17:30 Spiele bereit hält (der Normalfall also), dann wird anschließend kein einziger Request verschickt, auch wenn im Hintergrund immer wieder die liveresults.php aufgerufen wird. Der nächste Request geht folgerichtig erst am darauf folgenden Freitag um 20:30 raus.


    Leider ist cron nicht in der Lage, einfach ein Von-Bis Zeitfenster zu akzeptieren. Man muss also mehrere Cron-Einträge verfassen, die dann in Summe den gewünschten Zeitraum abdecken.



    Hausaufgabe: Dem geneigten Leser fällt auf dass ich die Anstoßzeiten in der englischen Woche Di. & Mi. weggelassen habe. Sollte nicht zu schwierig sein. Für 2. Bundesliga, 3. Liga, usw. passt das so natürlich auch nicht.


    Als Bonus hier noch die systemd-Version des ganzen als Timer. Wenn dir das nichts sagt hast du auch nichts verpasst. Nur soviel: Cron gibt es seit 1975, das hier ist der etwas modernere Ansatz.


    Code: /lib/systemd/system/bulitipp.service
    1. [Unit]
    2. Description=Tippspiel Ergebnisse aktualisieren
    3. [Service]
    4. ExecStart=curl -sS "https://tippspiel.ragnos.de/extern/liveresults.php?pw=REDACTED" 1> /dev/null
    5. [Install]
    6. WantedBy=default.target

    Ich hatte mal Nutzer angefragt, die keine Ergebnisprobleme haben, welche Cronjobanbieter sie nutzen. Eine Antwort darauf kam eigentlich nie.

    Ich mache meine eigenen Cronjobs. liveresult.php von Anpfiff bis 135 Minuten danach (90 Minuten plus 15 Minuten Halbzeitpause plus 30 Minuten um auch Nachspielzeiten und Reaktionszeiten vom Ergebnissdienst abzufangen).


    Von wo der Cronjob ausgeführt wird spielt aber wenn man darüber nachdenkt garkeine Rolle. Der Code wird vom Tippspiel ausgeführt, von wo der HTTP-Request reingeflogen kommt ist egal.


    Ich könnte mir denken das die Spiele als nicht mehr Live markiert sind. Sobald ich die auf Live setze und Ergebnisse laden klicke kommen die richtigen Ergebnisse.

    Bulitipp fragt nur nach Spielen die laut eigener Datenbank live sind. Die Anweisung das Live rauszunehmen kommt dann über die results.php. (liveresults.php leitet 105 Minuten nach Anpfiff auf results.php um). Diese Anweisung bzw. der ganze Datensatz inkl. Spielstand der da verschickt wird ist insofern fehlerhaft als dass er schon als beendet makiert ist, obwohl in der XDS Datenbank das Spiel noch läuft.

    "Zu früh" sollte es da auf gar keinen Fall geben, die liveresults.php ist ja genau dafür gedacht während des Spiels mehrfach aufgerufen zu werden. Davon ab: Ein Spiel kann jederzeit abgebrochen werden. Ein Spiel kann stark verzögert werden, bspw. zuletzt bei Lok Leipzig gegen die Eintracht. Das Spiel heute hatte 7 Minuten Zusatzvereinbarung, das wird es diese Saison verstärkt geben.

    Ich bin mir ziemlich sicher dass wurde hier schon einmal besprochen, kann es aber nicht mehr finden.


    Ich habe das Eröffnungsspiel vorhin verfolgt und gleichzeitig geschaut was Bulitipp aus der ganzen Sache macht, soweit klappt alles wie gewohnt.


    Allerdings wurde vom XDS das Spiel schon als beendet zurückgemeldet, obwohl es in der Eingabe eindeutig noch als laufend deklariert war. Aufgefallen ist mir das ganze kurz vor dem Treffer zum 0:4. Also musste ich händisch das Spiel in meinem Bulitipp korrigieren. Ohne manuellen Eingriff wäre das Spiel auf 0:3 stehen geblieben, denn beendete Spiele werden auch bei erneutem lauf der results.php nicht mehr korrigiert.


    Ich kann nicht sagen ob xtipp davon auch betroffen sein kann, aber solange Bulitipp noch nicht abgelöst werden kann sollte da vielleicht nochmal nach geschaut werden.

    woher weiß man welche Vereine frei sind, wenn die Tabelle nicht gepflegt wird.

    xfire09 war halt erst seit dem 19. Juli eingetragen, das ist natürlich viel zu kurzfristig um das rechtzeitig zu sehen...


    Davon abgesehen ist es natürlich vollkommen legitim wenn man Kader, die nicht aktuell sind entsprechend pflegt, auch ohne vorherige Anmeldung. Elversberg und Osnabrück haben das allerdings genau so nötig wie Bayern und Dortmund.


    Sagte er nach wochenlanger Inaktivität. Ich werde mich da kommende Woche mal reinbeißen, vorher war mir die neue Badewanne tatsächlich wichtiger. Der Sicherungskasten wartet dann bis Ende des Transferfensters.


    Die Tabelle ist auf Stand.

    Aufgrund der Dubleten-Problematik bei der Kaderpflege möchte ich vorschlagen die Spielersuche in der Kaderbearbeitung derart zu ergänzen, dass die beim Spieler hinterlegte Homepage berücksichtigt wird.


    Der große Vorteil an der Stelle wäre, dass man nach entsprechender Pflege der Spielerdaten einen Spieler oder Trainer anhand seiner persönlichen Transfermarkt.de-URL identifizieren kann. Das vereinfacht das nachhalten von Transfers immens, zumindest ich orientiere mich sehr stark bei Transfermarkt.de, und bei konsequenter Pflege des Homepage-Feldes wird langfristig das Risiko von Dubleten zumindest minimiert.


    Natürlich ist Transfermarkt.de eine kommerzielle Seite, aber IMHO erheblich zuverlässiger und schneller als dfb.de und auch international brauchbar. Schon jetzt trage ich bei allen Neuanlagen konsequent die Transfermarkt.de-URL und wenn vorhanden den Wikipedia-Artikel ein.

    Manche beantragen eine Lizenz mit https, wenn ich die Domain anschaue ist kein Zertifikat zugewiesen, ist auch bei McFly so.

    So ist eure Domain nicht erreichbar und wird auch nichts passieren.


    Tut euch bitte schnellstmöglich den Gefallen:

    1. Ändert die Bezeichnung von "Domain" auf "URL".
    2. Baut eine InputValidation/Regex in das nun URL lautende Feld:
    Code: http(s)-regex
    1. /^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$/

    1. Error 500 Server Error. Stacktrace aus laravel.log:



    2. xTipp regulär installiert. Backup aus BuliTipp als .sql.gz hochgeladen, Prefix gemäß Konfiguration aus BuliTipp angegeben ("bulitipp_").

    3. 1.0.0

    4. Alte Tippspieldaten sollten importiert werden.


    Zusatzinfos:


    Der Fehler tritt auch auf wenn ich das Backup unkomprimiert als .sql hochlade.

    Das Backup stammt aus der eingebauten Backupfunktion von Bulitipp, nicht extern über pma, mysqldump, HeidiSQL oder ähnliches.

    PHP8.2, Apache2.4.57, MariaDB 10.5.19

    Ich ziehe den Bugreport zurück. Hab gerade nochmal von vorne angefangen und diesmal wurde ich richtig weitergeleitet. Keine Ahnung was das jetzt war. Sorry.