webgo/documentation/development/README_DEVEL

54 lines
No EOL
2.3 KiB
Text

------------------------------------------
developers only! this game is currently not playable!
main.py is the main script. call this from a browser.
the init_webgo.main() in main.py reinitializes the whole database on each call, so
comment the line out if you do not want that. init_webgo also creates two test users,
gast and gast2. password = username. you can use those to log in.
------------------------------------------
want to create your own goban images? Simple: just replace the images in
imgsource/ with the desired ones. then run generate_goban_images.py and
the new images get written to img/.
------------------------------------------
overview of the files:
main.py - the main script. Essentially a wrapper that prints the
traceback if something went wrong.
login.py - this file contains functions for login and game
selection/modification.
goban.py - code for displaying a goban as a html page.
psql.py - all functions directly accessing the database.
init_webgo.py - re-initialize the whole game. deletes everything and
sets some defaults.
helper.py - small functions for string manipulation etc.
generate_goban_images.py
- recreate the goban images. just run from console.
------------------------------------------
coding guidelines
tab == 4 whitespaces.
function names are lowercase with _ as a seperator.
------------------------------------------
some code snippets for reference:
How to make the goban clickable:
data += '<form method="post">'
data += '<input type=image src="img/bottomrightline.png" name="untenrechts">'
#insert rest of goban here
data += '</form>'
print data
How to extract the data from this POST with the cgi module:
import cgi
#get instance of fieldstorage
form = cgi.FieldStorage()
#if form == empty (which means if page is displayed for the first time):
if form.keys() != []:
#cut out the name of the clicked button
print string.split(form.keys()[0],".x")[0]
------------------------------------------
known bugs:
"DatabaseError: error 'ERROR: current transaction is aborted, commands ignored until end of transaction block"
seems to be a problem with mod_python and a cached database connection. /etc/init.d/apache2 restart helps.