Dies ist eine Information für all jene, die Automaten-Tipps per Script abgeben wollen. Bald gibt es hier auch eine vollständige deutsche Beschreibung und ein kleines Update 😉
Bevor ihr euch die alte / neue Version durchlest: Wir haben ein sehr einfaches Python-Tool entwickelt, um automatische Abgaben zu realisieren. Ihr findet es hier direkt zum Download (autosubmit.py / version 0.2-1) oder auf github.
Achtung: https!
Im November 2018 haben wir von http zu https gewechselt auf www.wetterturnier.de. Das machte kleine Anpassungen in der Autosubmit-Routine notwendig! Wenn ihr den „alten“ wget Befehl nutzt, bitte achtet darauf, dass bei wget der Flag
1 |
wget --no-check-certificate |
gesetzt ist. Wenn ihr das autosubmit.py Skript nutzt, sollte eure URL wie folgt aussehen:
1 |
url = https://wetterturnier.de/autosubmit/ |
Danke und viel Spaß beim Tippen!
Alte Version der URL
Für unsere MOS/Statistik Experten haben wir eine erweiterte Version des „autosubmit“ Skripts entwickelt. Auf dem alten System sah die URL so oder so ähnlich aus:
1 2 3 4 5 |
wget "http://prognose.met.fu-berlin.de/fehler/form.php" --post-data "stadt=b&aa=USERNAME&bb=PASSWORD&cc=8&dd=6&ww=4&xx=17&ee=250&ff=260&... #optionales Argument: td=YYYY-mm-dd #nur für Admins/MOSe, Turnierdatum in der Vergangenheit für verspätete Abgabe |
wobei „aa“, „bb“, „cc“ die Parameter waren. Nicht sehr intuitiv aber diese „Syntax“ funktioniert immer noch, wenn man die Haupt-URL ändert:
1 |
wget --no-check-certificate "https://wetterturnier.de/fehler/form.php" --post-data "stadt=b&aa=USERNAME&bb=PASSWORD&cc=8&dd=6&ww=4&xx=17&ee=250&ff=260&... |
Neue Version der URLs
Au Gründen der besseren Lesbarkeit und Flexibilität wurde eine neue Syntax entwickelt. URLs schauen nun so aus:
1 2 3 4 |
wget --no-check-certificate "https://wetterturnier.de/autosubmit/" --post-data "city=IBK&user=USERNAME&password=PASSWORD&RR_1=3.2&N_1=8.0&N_2=5.0&RR_2=2.4&... #optionales Argument: tdate=YYYY-mm-dd |
Unterschiede:
- URL zu www.wetterturnier.de/autosubmit geändert
- Städte umbenannt: „i“ or „w“ gibt es nicht mehr. Stattdessen jetzt „IBK“=“Innsbruck“, „VIE“=“Vienna“, „BER“=Berlin usw.
- Parameter sind jetzt lesbarer (und bei Bedarf auch erweiterbar). Die Struktur ist immer <NAME>_<DAY> wobei <NAME> den Wetterturnier-Parameter darstellt (z.B., „N“, „TTm“, oder „Wv“) und <DAY> den vorhergesagten Tag. Wenn das Turnier an einem Freitag stattfindet, dann bedeutet „1“ Samstag und „2“ Sonntag.
- bessere Server-Rückmeldung. Achtet auf den Output von wget! Der Server „sagt euch“, ob etwas schief läuft (z.B. Login falsch, Parameter falsch geschrieben, Turnier geschlossen oder fehlende Berechtigung).
###Übersetzung ENDE###
BUT there is a new very easy and intuitively to use tool now!
However, a lot of stuff can go wrong with the URL’s as they are not as easy to read at all. Therefore I wrote a small python script which does the submission for you. The only thing needed is a small ASCII-text file. The python code also returns error codes fetched from either wget or the server side autosubmit script on wetterturnier.de (e.g., if login was incorrect).
Script Usage:
1 |
python autosubmit.py -f MyFile.txt |
Here is an example of such a file (note that the template contains some more comments and help descriptions, this is the short form):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# ----------------------------------------------- # General # ----------------------------------------------- [general settings] url = https://wetterturnier.de/autosubmit/ logfile = autosubmit_%city%_%user%_%tdate%.txt user = USERNAME password = PASSWORD city = BER #tdate = YYYY-mm-dd # ----------------------------------------------- # Parameter settings. # ----------------------------------------------- [parameters] RR_1 = 3.2 RR_2 = 2.4 fx_1 = 0 fx_2 = 25 N_1 = 8 N_2 = 5 |
NEW: the optional „tdate“ setting can be given e.g. to send a belated automaton/MOS submission. This is only allowed for „Wetterturnier Admin“ users (all MOSes have this capability)! The privileges get checked during the procedure and if the user sending the data is no admin, AUTOSUBMIT ERRORCODE 403 (like „FORBIDDEN„) is returned.
Additionally, if your „tdate“ was no valid tournament day, e.g. if you had a typo in it, AUTOSUBMIT ERRORCODE 404 (like „NOT FOUND„) is returned.
The python script can be found here (version 0.2-1) or on sferics‘ github including the template as shown above (autosubmit_example.txt). It has been developed for „python 2.7.6“ using base packages „optparse„, „ConfigParser„, „subprocess„, and „re„.
There are a few extra options, please call with option „–help“ to get the (minimalistic) usage of the script.
1 |
python autosubmit.py --help |
What happens if a parameter is missing
The script automatically checks if (for a given city) a parameter was not set. You’ll get a warning message and the script will stop – the data wont be stored in the database at all as we can’t judge bets where one or more forecasts are missing.
1 2 3 4 5 6 |
PARSING POST PARAMETERS ======================= Parsing parameters. Found city Innsbruck (IBK,ID 4) for input IBK [!] Parameter "FF" missing for forecast day "1". If not all parameters are sent we cannot store your forecast/bet! AUTOSUBMIT ERRORCODE 15 |
What happens if a day is missing
Here the same holds as for „a parameter is missing“. The script won’t store any data as we can’t judge bets with missing forecasts at all.
1 2 3 4 5 6 |
PARSING POST PARAMETERS ======================= Parsing parameters. Found city Innsbruck (IBK,ID 4) for input IBK [!] While checking parameters: The wetterturnier expects to get data for the next 2 days. Day "2" seems not to be delivered! Stop! AUTOSUBMIT ERRORCODE 15 |
What if my script sends more data than expected?
Well, that’s no problem at all. The idea is that the wetterturnier takes what it needs. if you are delivering more data or more forecast days these days will be dropped. This gives you a note, but the necessary forecast values will be stored.
Additional parameter:
1 2 3 4 |
IGNORED PARAMETERS ------------------ Ignored: day_1 ZZ: Forecast parameter ZZ for day 1 ignored. This was not requested for this city. Everything fine. This is just a note that you are sending more data than necessary. Ignored: day_2 YY: Forecast parameter YY for day 2 ignored. This was not requested for this city. Everything fine. This is just a note that you are sending more data than necessary. |
Additional day:
1 2 3 |
IGNORED PARAMETERS ------------------ Ignored: day_3: Forecasts for day 3 ignored. They were not requested. Everything fine. This is just a note that you are sending more data than necessary. |