Regenerationsskript umgestellt
Nachdem ich die Tage dann endgueltig entschieden habe das die BackEnd-Skripte in Python entstehen sollen, habe ich mich nun daran gemacht das erste umzustellen. Das Regenerationsskript, wachstum.php ist fortan nicht mehr notwendig. Die Aufgaben uebernimmt nun wachstum.py.
Zugegeben, das ganze sieht noch etwas holprig aus und laesst sich bestimmt noch sauberer schreiben, aber was sollst. Mein erstes Pythonskript mit Postgresanbindung. Um genau zu sein, ich empfinde den Quellcode derzeit noch stark als unsauber. Aber das kommt mir der Praxis von alleine. Erste Erkenntnisse: es laefut schneller. Dabei habe ich bereits die Optionen romod1 bis romod4 mit enthalten, was das bisherige PHP-Skript noch nicht konnte. Weiterhin werde ich mir definitiv etwas basteln muessen um die Abfragen auszufuehren. Der rohe Code wirkt doch etwas viel und somit unuebersichtlicht.
Nun steht noch der Einbau der Phasenoptionen an und dann ists endgueltig fertig.
Wie auch immer. Es geht vorran. Und warum funktioniert wp_codebox nicht mehr?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | #! /usr/local/bin/python ## # Copyright (c) 2009, Jan H. Krueger # All rights reserved. # # The contents of this file are subject to the GNU Lesser General Public # License (the "License"); you may not use this file except in # compliance with the License. You may obtain a copy of the License at # http://www.gnu.org/licenses/lgpl.html # # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. # # # File: wachstum.py # Authors: Jan H. Krueger (game.insulae@googlemail.com) # Created: (07/01/2009) # Last Updated: (08/01/2009) # Version: 1.0 # Package: Insulae # Category: Insulae-Backend # Todos: use the phasing options # # # Let the land grow and produce new ressources at the farmable places. # import psycopg2 import psycopg2.extensions import datetime import time import sys E = sys.exit ### Connect to the postgresql database. con = psycopg2.connect( database = "insulae", host = "localhost", user = "", password = "" ) varskriptname = 'wachstum.py' ### open cursor cu=con.cursor() ### log the start of wachstum.py try: varstatus = 'beginn' zeit = time.mktime(time.localtime(time.time())) vartime = str(zeit)[0:-2] sql = """insert into daten.skriptlog (skriptname, zeitstempel, verarbeitungsstatus) values (%s, %s, %s) """ cu.execute(sql, (varskriptname, vartime, varstatus)) con.commit() except psycopg2.ProgrammingError, errval: print errval E(8) ### den romod_1 auslesen try: sql = """select wert from optionen.einstellungen where einstellung = 'romod_1' """ cu.execute(sql) romod1 = cu.fetchone() except psycopg2.ProgrammingError, errval: print errval E(8) ### den romod_2 auslesen try: sql = """select wert from optionen.einstellungen where einstellung = 'romod_2' """ cu.execute(sql) romod2 = cu.fetchone() except psycopg2.ProgrammingError, errval: print errval E(8) ### den romod_3 auslesen try: sql = """select wert from optionen.einstellungen where einstellung = 'romod_3' """ cu.execute(sql) romod3 = cu.fetchone() except psycopg2.ProgrammingError, errval: print errval E(8) ### den romod_4 auslesen try: sql = """select wert from optionen.einstellungen where einstellung = 'romod_4' """ cu.execute(sql) romod4 = cu.fetchone() except psycopg2.ProgrammingError, errval: print errval E(8) # TODO: read the modificators for the phases ### build and execute the update try: sql = """update welt.karte_phase set karte_rohstoff1 = (karte_rohstoff1+karte_landwert)*%s, karte_rohstoff2 = (karte_rohstoff2+karte_landwert)*%s, karte_rohstoff3 = (karte_rohstoff3+(karte_landwert / 2))*%s, karte_rohstoff4 = (karte_rohstoff4+(karte_landwert / 2))*%s """ cu.execute(sql, (romod1, romod2, romod3, romod4 )) con.commit() except psycopg2.ProgrammingError, errval: print errval E(8) # Generate an entry in the history table to show the players try: zeit = time.mktime(time.localtime(time.time())) vartime = str(zeit)[0:-2] histart = 1000000001 histeintrag = 'Das Land regeneriert sich.' histprivat = 'n' histphase = 1000000000 sql = """insert into sonstiges.historie (historie_datum, historie_art, historie_eintrag, historie_privat, historie_phase) values (%s, %s, %s, %s, %s) """ cu.execute(sql, (vartime, histart, histeintrag, histprivat, histphase)) con.commit() except psycopg2.ProgrammingError, errval: print errval E(8) # Log the ending of wachstum.py. try: varstatus = 'ende' zeit = time.mktime(time.localtime(time.time())) vartime = str(zeit)[0:-2] sql = """insert into daten.skriptlog (skriptname, zeitstempel, verarbeitungsstatus) values (%s, %s, %s)""" cu.execute(sql, (varskriptname, vartime, varstatus)) con.commit() except psycopg2.ProgrammingError, errval: print errval E(8) # Close the cursor and connection, end the script. cu.close() con.close() E(0) |