clear out leo comments + cruft
This commit is contained in:
parent
5d61e939aa
commit
e0abeabb0c
8
ansi.py
8
ansi.py
|
@ -1,13 +1,5 @@
|
|||
#@+leo-ver=4-thin
|
||||
#@+node:jpenner.20091215224421.2:@thin ansi.py
|
||||
import config
|
||||
if config.USE_CYTHON:
|
||||
from ansi_cython import *
|
||||
else:
|
||||
from ansi_python import *
|
||||
|
||||
#@+others
|
||||
#@-others
|
||||
#@nonl
|
||||
#@-node:jpenner.20091215224421.2:@thin ansi.py
|
||||
#@-leo
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
#@+leo-ver=4-thin
|
||||
#@+node:jpenner.20091212133112.2:@thin ansi_cython.pyx
|
||||
#@@language python
|
||||
import config
|
||||
|
||||
cdef extern from "stdio.h":
|
||||
|
@ -15,8 +12,6 @@ cdef extern from "stdlib.h":
|
|||
size_t strlen(char *s)
|
||||
char *strcpy(char *dest, char *src)
|
||||
|
||||
#@+others
|
||||
#@+node:jpenner.20091212133112.3:Codes
|
||||
esc = '%s['%chr(27)
|
||||
reset = '%s0m'%esc
|
||||
cls = '%s2j'%esc
|
||||
|
@ -62,10 +57,6 @@ def Ctrl(ch):
|
|||
|
||||
def FEnter(key):
|
||||
return key == "\n" or key == "\r"
|
||||
#@nonl
|
||||
#@-node:jpenner.20091212133112.3:Codes
|
||||
#@+node:jpenner.20091212133112.4:Ach
|
||||
# ANSI Character - contains prop and character
|
||||
|
||||
cdef struct SAch:
|
||||
unsigned char ch
|
||||
|
@ -162,8 +153,6 @@ cdef inline AstFromAch(int ach, int achPrev = achInvdI):
|
|||
assert csgr >= 0 and csgr <= 4, "more sgr possibilities, please handle"
|
||||
return ast
|
||||
|
||||
#@-node:jpenner.20091212133112.4:Ach
|
||||
#@+node:jpenner.20091212133112.5:HTML
|
||||
mpch_entity = [0, 9786, 9787, 9829, 9830, 9827, 9824, 8226, 9688, 9675, 9689, 9794, 9792, 9834, 9835, 9788, 9658, 9668, 8597, 8252,
|
||||
182, 167, 9644, 8616, 8593, 8595, 8594, 8592, 8735, 8596, 9650, 9660, 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,
|
||||
|
@ -202,8 +191,6 @@ cdef HstFromAch(int ach, int achPrev = achInvdI):
|
|||
rgst.append("&#" + str(entity) + ";")
|
||||
return ''.join(rgst)
|
||||
|
||||
#@-node:jpenner.20091212133112.5:HTML
|
||||
#@+node:jpenner.20091212133112.6:Pos
|
||||
class Pos(object):
|
||||
def __init__(self, int w=config.W, int h=config.H, int x=1, int y=1):
|
||||
self.i = PosI(w, h, x, y)
|
||||
|
@ -271,9 +258,6 @@ cdef class PosI(object):
|
|||
return True
|
||||
cdef ToPos(self):
|
||||
return Pos(self.w, self.h, self.X(), self.Y())
|
||||
#@nonl
|
||||
#@-node:jpenner.20091212133112.6:Pos
|
||||
#@+node:jpenner.20100105170222.1:Ascr
|
||||
|
||||
class Ascr(object):
|
||||
def __init__(self, int w=config.W, int h=config.H, int achFill = achBlankI):
|
||||
|
@ -313,8 +297,6 @@ class Ascr(object):
|
|||
cdef AscrI ascrI = self.i
|
||||
return ascrI.ZPos(xz, yz)
|
||||
|
||||
#@ @+others
|
||||
#@+node:jpenner.20100105170222.2:Put
|
||||
def PutAch(self, int ach, int x, int y):
|
||||
cdef AscrI ascrI = self.i
|
||||
ascrI.PutAch(ach, x, y)
|
||||
|
@ -338,9 +320,7 @@ class Ascr(object):
|
|||
def PutAscr(self, ascr, int x=1, int y=1):
|
||||
cdef AscrI ascrI = self.i
|
||||
ascrI.PutAscr(ascr.i, x, y)
|
||||
#@nonl
|
||||
#@-node:jpenner.20100105170222.2:Put
|
||||
#@+node:jpenner.20100105170222.3:Diff
|
||||
|
||||
def AstDiff(self, ascr):
|
||||
cdef AscrI ascrI = self.i
|
||||
return ascrI.AstDiff(ascr.i)
|
||||
|
@ -348,15 +328,9 @@ class Ascr(object):
|
|||
def Hst(self):
|
||||
cdef AscrI ascrI = self.i
|
||||
return ascrI.Hst()
|
||||
#@-node:jpenner.20100105170222.3:Diff
|
||||
#@+node:jpenner.20091212133112.10:Ast
|
||||
|
||||
def Ast(self):
|
||||
return Ascr(self.W(), self.H(), achInvdI).AstDiff(self) #stupid implementation
|
||||
#@nonl
|
||||
#@-node:jpenner.20091212133112.10:Ast
|
||||
#@-others
|
||||
#@-node:jpenner.20100105170222.1:Ascr
|
||||
#@+node:jpenner.20091212133112.7:AscrI
|
||||
|
||||
# ANSI Screen
|
||||
cdef class AscrI(object):
|
||||
|
@ -376,8 +350,6 @@ cdef class AscrI(object):
|
|||
cdef Zpos(self, int xz, int yz):
|
||||
return Pos(self.w, self.h, xz + 1, yz + 1)
|
||||
|
||||
#@ @+others
|
||||
#@+node:jpenner.20091212133112.8:Put
|
||||
cdef inline IAch(self, int xz, int yz):
|
||||
return xz + (self.w * yz)
|
||||
|
||||
|
@ -461,8 +433,7 @@ cdef class AscrI(object):
|
|||
iach = iach + 1
|
||||
iachOther = iachOther + 1
|
||||
yzOther = yzOther + 1
|
||||
#@-node:jpenner.20091212133112.8:Put
|
||||
#@+node:jpenner.20091212133112.9:AstDiff
|
||||
|
||||
cdef AstDiff(self, AscrI ascr):
|
||||
assert self.w == ascr.w and self.h == ascr.h
|
||||
cdef int xz = 0
|
||||
|
@ -508,8 +479,7 @@ cdef class AscrI(object):
|
|||
xzPred = -1
|
||||
yz = yz + 1
|
||||
return "".join(rgast)
|
||||
#@-node:jpenner.20091212133112.9:AstDiff
|
||||
#@+node:jpenner.20091212133112.11:Hst
|
||||
|
||||
cdef Hst(self):
|
||||
rgst = ["<pre style='font-family:\"Courier New\", Courier, System, monospace'>"]
|
||||
cdef int achPrev = achInvdI
|
||||
|
@ -526,15 +496,6 @@ cdef class AscrI(object):
|
|||
|
||||
rgst.append("</span></pre>")
|
||||
return ''.join(rgst)
|
||||
#@-node:jpenner.20091212133112.11:Hst
|
||||
#@-others
|
||||
#@-node:jpenner.20091212133112.7:AscrI
|
||||
#@+node:jpenner.20091212133112.12:FKeyPrintable
|
||||
|
||||
def FKeyPrintable(key):
|
||||
return type(key) == str and (ord(key) >= 32 and ord(key) <= 126)
|
||||
|
||||
#@-node:jpenner.20091212133112.12:FKeyPrintable
|
||||
#@-others
|
||||
#@nonl
|
||||
#@-node:jpenner.20091212133112.2:@thin ansi_cython.pyx
|
||||
#@-leo
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
#@+leo-ver=4-thin
|
||||
#@+node:jpenner.20090510085557.4:@thin ansi_python.py
|
||||
#@@language python
|
||||
import config
|
||||
import numpy
|
||||
|
||||
#@+others
|
||||
#@+node:jpenner.20091212133112.3:Codes
|
||||
esc = '%s['%chr(27)
|
||||
reset = '%s0m'%esc
|
||||
cls = '%s2j'%esc
|
||||
|
@ -51,9 +46,7 @@ def Ctrl(ch):
|
|||
|
||||
def FEnter(key):
|
||||
return key == "\n" or key == "\r"
|
||||
#@nonl
|
||||
#@-node:jpenner.20091212133112.3:Codes
|
||||
#@+node:jpenner.20090510085557.6:Ach
|
||||
|
||||
# ANSI Character - contains prop and character
|
||||
class Ach(object):
|
||||
def __init__(self, ch, fgcol=WHITE, bgcol=BLACK):
|
||||
|
@ -99,8 +92,6 @@ def AstFromAch(ach, achPrev = None):
|
|||
|
||||
dtAch = numpy.dtype(object)
|
||||
|
||||
#@-node:jpenner.20090510085557.6:Ach
|
||||
#@+node:jpenner.20091016050502.2:HTML
|
||||
mpch_entity = [0, 9786, 9787, 9829, 9830, 9827, 9824, 8226, 9688, 9675, 9689, 9794, 9792, 9834, 9835, 9788, 9658, 9668, 8597, 8252,
|
||||
182, 167, 9644, 8616, 8593, 8595, 8594, 8592, 8735, 8596, 9650, 9660, 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,
|
||||
|
@ -133,9 +124,7 @@ def HstFromAch(ach, achPrev = None):
|
|||
else:
|
||||
rgst.append("&#" + str(mpch_entity[ord(ach.ch)]) + ";")
|
||||
return ''.join(rgst)
|
||||
#@nonl
|
||||
#@-node:jpenner.20091016050502.2:HTML
|
||||
#@+node:jpenner.20090510085557.7:Pos
|
||||
|
||||
class Pos(object):
|
||||
def __init__(self, w=config.W, h=config.H, x=1, y=1):
|
||||
self.w = w
|
||||
|
@ -166,8 +155,7 @@ class Pos(object):
|
|||
def Right(self):
|
||||
if self.xz < self.w - 1:
|
||||
self.xz = self.xz + 1
|
||||
#@-node:jpenner.20090510085557.7:Pos
|
||||
#@+node:jpenner.20090510085557.8:Ascr
|
||||
|
||||
# ANSI Screen
|
||||
class Ascr(object):
|
||||
def __init__(self, w=config.W, h=config.H, achFill = None):
|
||||
|
@ -182,8 +170,6 @@ class Ascr(object):
|
|||
def W(self): return self.w
|
||||
def H(self): return self.h
|
||||
|
||||
#@ @+others
|
||||
#@+node:jpenner.20090526105844.8:Put
|
||||
def PutAch(self, ach, x, y):
|
||||
if not (x < 1 or y < 1 or x > self.w or y > self.h): #clip
|
||||
self.mpyzxz_ach[y-1][x-1] = ach
|
||||
|
@ -226,8 +212,7 @@ class Ascr(object):
|
|||
if iachPut >= 0:
|
||||
self.PutRgach(rgachRow[iachPut:], x + iachPut, y + irow)
|
||||
iachPut = -1
|
||||
#@-node:jpenner.20090526105844.8:Put
|
||||
#@+node:jpenner.20090527144214.3:Diff
|
||||
|
||||
def AstDiff(self, ascr):
|
||||
assert self.w == ascr.w and self.h == ascr.h
|
||||
rgast = []
|
||||
|
@ -261,14 +246,10 @@ class Ascr(object):
|
|||
xz = xz + 1
|
||||
yz = yz + 1
|
||||
return "".join(rgast)
|
||||
#@nonl
|
||||
#@-node:jpenner.20090527144214.3:Diff
|
||||
#@+node:jpenner.20090529173104.26:Ast
|
||||
|
||||
def Ast(self):
|
||||
return Ascr(self.w, self.h, achInvd).AstDiff(self) #stupid implementation
|
||||
#@nonl
|
||||
#@-node:jpenner.20090529173104.26:Ast
|
||||
#@+node:jpenner.20091016050502.3:Hst
|
||||
|
||||
def Hst(self):
|
||||
rgst = ["<pre>"]
|
||||
achPrev = None
|
||||
|
@ -279,16 +260,6 @@ class Ascr(object):
|
|||
rgst.append("<br>")
|
||||
rgst.append("</span></pre>")
|
||||
return ''.join(rgst)
|
||||
#@nonl
|
||||
#@-node:jpenner.20091016050502.3:Hst
|
||||
#@-others
|
||||
#@-node:jpenner.20090510085557.8:Ascr
|
||||
#@+node:jpenner.20090521203229.341:FKeyPrintable
|
||||
|
||||
def FKeyPrintable(key):
|
||||
return type(key) == str and (ord(key) >= 32 and ord(key) <= 126)
|
||||
|
||||
#@-node:jpenner.20090521203229.341:FKeyPrintable
|
||||
#@-others
|
||||
#@nonl
|
||||
#@-node:jpenner.20090510085557.4:@thin ansi_python.py
|
||||
#@-leo
|
||||
|
|
5
auth.py
5
auth.py
|
@ -1,5 +1,3 @@
|
|||
#@+leo-ver=4-thin
|
||||
#@+node:jpenner.20090607135901.1:@thin auth.py
|
||||
import MySQLdb
|
||||
import hashlib
|
||||
import config
|
||||
|
@ -22,6 +20,3 @@ class DrupalAuth(object):
|
|||
return False
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
#@-node:jpenner.20090607135901.1:@thin auth.py
|
||||
#@-leo
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
#@+leo-ver=4-thin
|
||||
#@+node:jpenner.20091016050502.1:@thin build_entity.py
|
||||
import re
|
||||
|
||||
reEnt = re.compile(r"^.*&#(\d+);.*$");
|
||||
|
@ -11,6 +9,3 @@ with open("cp437_html.txt") as fp:
|
|||
mpch_entity.append(int(ent))
|
||||
|
||||
print "mpch_entity = ", mpch_entity
|
||||
#@nonl
|
||||
#@-node:jpenner.20091016050502.1:@thin build_entity.py
|
||||
#@-leo
|
||||
|
|
14
haxor.py
14
haxor.py
|
@ -1,14 +1,8 @@
|
|||
#@+leo-ver=4-thin
|
||||
#@+node:jpenner.20090526212048.3:@thin haxor.py
|
||||
from engine import *
|
||||
from basetoken import *
|
||||
import telnet
|
||||
|
||||
#@<<IntroTerm>>
|
||||
#@+node:jpenner.20090526212048.6:<<IntroTerm>>
|
||||
class IntroTerm(Terminal):
|
||||
#@ @+others
|
||||
#@+node:jpenner.20090526212048.5:run
|
||||
def run(self):
|
||||
self.newLine(3, 300)
|
||||
self.type("Logon Please: ")
|
||||
|
@ -50,11 +44,6 @@ class IntroTerm(Terminal):
|
|||
self.printSt("NO CARRIER")
|
||||
self.newLine()
|
||||
self.client.quit()
|
||||
#@-node:jpenner.20090526212048.5:run
|
||||
#@-others
|
||||
#@nonl
|
||||
#@-node:jpenner.20090526212048.6:<<IntroTerm>>
|
||||
#@nl
|
||||
|
||||
class Haxor(object):
|
||||
def __init__(self):
|
||||
|
@ -66,6 +55,3 @@ class Haxor(object):
|
|||
|
||||
if __name__ == "__main__":
|
||||
Haxor().RunServer()
|
||||
#@nonl
|
||||
#@-node:jpenner.20090526212048.3:@thin haxor.py
|
||||
#@-leo
|
||||
|
|
51
telnet.py
51
telnet.py
|
@ -1,6 +1,3 @@
|
|||
#@+leo-ver=4-thin
|
||||
#@+node:jpenner.20090510085557.10:@thin telnet.py
|
||||
#@@language python
|
||||
from twisted.protocols import basic
|
||||
from twisted.conch import telnet
|
||||
from twisted.internet.protocol import Factory,ServerFactory
|
||||
|
@ -12,8 +9,6 @@ import engine
|
|||
import sys
|
||||
import config
|
||||
|
||||
#@<<Server>>
|
||||
#@+node:jpenner.20090513213413.1:<<Server>>
|
||||
class AnsiTelnet(protocol.Protocol):
|
||||
implements(telnet.ITelnetProtocol)
|
||||
|
||||
|
@ -58,8 +53,6 @@ class AnsiTelnet(protocol.Protocol):
|
|||
print "end: ", len(rgdefr)
|
||||
self.Hello()
|
||||
|
||||
#@ <<Options>>
|
||||
#@+node:jpenner.20090514181656.118:<<Options>>
|
||||
def enableLocal(self, option):
|
||||
print "enableLocal", ord(option)
|
||||
return option in self.rgoptLocal
|
||||
|
@ -73,9 +66,6 @@ class AnsiTelnet(protocol.Protocol):
|
|||
def disableRemote(self, option):
|
||||
print "disableRemote", option
|
||||
pass
|
||||
#@nonl
|
||||
#@-node:jpenner.20090514181656.118:<<Options>>
|
||||
#@nl
|
||||
|
||||
def dataReceived(self, data):
|
||||
if self.ast != None:
|
||||
|
@ -113,8 +103,6 @@ class AnsiTelnet(protocol.Protocol):
|
|||
if ichSplit < ich:
|
||||
self.RcvText(data[ichSplit:ich])
|
||||
|
||||
#@ @+others
|
||||
#@+node:jpenner.20090526105844.6:Hello
|
||||
def Hello(self):
|
||||
print "negotiated!"
|
||||
self.transport.write(ansi.esc + "2J") #cls
|
||||
|
@ -122,9 +110,7 @@ class AnsiTelnet(protocol.Protocol):
|
|||
self.client.dgJoinGame = self.CreateEvents
|
||||
self.client.addDgQuit(self.transport.loseConnection)
|
||||
self.client.go(self.factory.fnRun, self)
|
||||
#@nonl
|
||||
#@-node:jpenner.20090526105844.6:Hello
|
||||
#@+node:jpenner.20090526212048.1:Keys
|
||||
|
||||
def RcvText(self, text):
|
||||
if self.client.evKey:
|
||||
for ch in text:
|
||||
|
@ -142,9 +128,7 @@ class AnsiTelnet(protocol.Protocol):
|
|||
|
||||
def CreateEvents(self, client, game):
|
||||
client.evKey = engine.Event(game)
|
||||
#@nonl
|
||||
#@-node:jpenner.20090526212048.1:Keys
|
||||
#@+node:jpenner.20090527144214.1:Draw
|
||||
|
||||
def Draw(self, ascr):
|
||||
self.transport.write(self.ascr.AstDiff(ascr))
|
||||
self.transport.write(ansi.esc + "H") #cursor stays in top-left corner? ascr should contain a cursor pos?
|
||||
|
@ -152,21 +136,12 @@ class AnsiTelnet(protocol.Protocol):
|
|||
|
||||
def Refresh(self):
|
||||
self.ascr = ansi.Ascr(config.W, config.H, ansi.achInvd)
|
||||
#@nonl
|
||||
#@-node:jpenner.20090527144214.1:Draw
|
||||
#@+node:jpenner.20090529173104.4:connectionLost
|
||||
|
||||
def connectionLost(self, reason):
|
||||
print "lost connection"
|
||||
self.client.removeDgQuit(self.transport.loseConnection)
|
||||
self.client.quit()
|
||||
#@nonl
|
||||
#@-node:jpenner.20090529173104.4:connectionLost
|
||||
#@-others
|
||||
#@nonl
|
||||
#@-node:jpenner.20090513213413.1:<<Server>>
|
||||
#@nl
|
||||
#@<<factory>>
|
||||
#@+node:jpenner.20090515161650.1:<<factory>>
|
||||
|
||||
class AnsiFactory(ServerFactory):
|
||||
def __init__(self, fnRun):
|
||||
self.fnRun = fnRun
|
||||
|
@ -175,21 +150,14 @@ class AnsiFactory(ServerFactory):
|
|||
p.factory = self
|
||||
print "built protocol for ", addr
|
||||
return p
|
||||
#@-node:jpenner.20090515161650.1:<<factory>>
|
||||
#@nl
|
||||
|
||||
#@<<Flash Policy>>
|
||||
#@+node:jpenner.20090518103251.118:<<Flash Policy>>
|
||||
class FlashPolicy(basic.LineReceiver):
|
||||
delimiter = '\0'
|
||||
|
||||
def lineReceived(self,line):
|
||||
if line == "<policy-file-request/>":
|
||||
self.sendLine("<?xml version=\"1.0\"?><cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"" + str(config.PORT_TELNET) + "\" /></cross-domain-policy>")
|
||||
#@-node:jpenner.20090518103251.118:<<Flash Policy>>
|
||||
#@nl
|
||||
#@<<Command server>>
|
||||
#@+node:jpenner.20090914034457.2:<<Command server>>
|
||||
|
||||
class CmdProtocol(basic.LineReceiver):
|
||||
def connectionMade(self):
|
||||
if self.transport.getHost().host != "127.0.0.1":
|
||||
|
@ -207,11 +175,7 @@ class CmdFactory(ServerFactory):
|
|||
p.factory = self
|
||||
print "built cmd protocol for ", addr
|
||||
return p
|
||||
#@-node:jpenner.20090914034457.2:<<Command server>>
|
||||
#@nl
|
||||
|
||||
#@<<runner>>
|
||||
#@+node:jpenner.20090513213413.2:<<runner>>
|
||||
def RunServer(fnRun):
|
||||
log.startLogging(sys.stdout)
|
||||
|
||||
|
@ -226,8 +190,3 @@ def RunServer(fnRun):
|
|||
def RunCmdServer(fnCmd):
|
||||
if config.PORT_CMDSERVER:
|
||||
reactor.listenTCP(config.PORT_CMDSERVER, CmdFactory(fnCmd), 50, "localhost")
|
||||
#@nonl
|
||||
#@-node:jpenner.20090513213413.2:<<runner>>
|
||||
#@nl
|
||||
#@-node:jpenner.20090510085557.10:@thin telnet.py
|
||||
#@-leo
|
||||
|
|
103
tpers_old.py
103
tpers_old.py
|
@ -1,103 +0,0 @@
|
|||
#@+leo-ver=4-thin
|
||||
#@+node:jpenner.20090714203921.6:@thin tpers_old.py
|
||||
import ZODB
|
||||
import persistent
|
||||
|
||||
#@+others
|
||||
#@+node:jpenner.20090714203921.7:def MkTransparent
|
||||
def MkTransparent(value):
|
||||
if type(value) == list:
|
||||
return TPL(value)
|
||||
elif type(value) == dict:
|
||||
return TPM(value)
|
||||
elif type(value) == set:
|
||||
return TPS(value)
|
||||
elif type(value) == tuple:
|
||||
return TPT(value)
|
||||
else:
|
||||
return value
|
||||
#@-node:jpenner.20090714203921.7:def MkTransparent
|
||||
#@+node:jpenner.20090714203921.10:def RgTransparent
|
||||
def RgTransparent(rg):
|
||||
if rg == None: return []
|
||||
return [MkTransparent(x) for x in rg]
|
||||
#@-node:jpenner.20090714203921.10:def RgTransparent
|
||||
#@+node:jpenner.20090714203921.11:def MpTransparent
|
||||
def MpTransparent(mp):
|
||||
if isinstance(mp, TPM): return mp
|
||||
mpNew = {}
|
||||
if mp != None:
|
||||
for k,v in mp.iteritems():
|
||||
mpNew[k] = MkTransparent(v)
|
||||
return mpNew
|
||||
#@-node:jpenner.20090714203921.11:def MpTransparent
|
||||
#@+node:jpenner.20090714203921.8:class TPrs
|
||||
class TPrs(persistent.Persistent):
|
||||
__prs_setattr = persistent.Persistent.__setattr__
|
||||
|
||||
def __setattr__(self, name, value):
|
||||
self.__prs_setattr(name, MkTransparent(value))
|
||||
#@-node:jpenner.20090714203921.8:class TPrs
|
||||
#@+node:jpenner.20090714203921.9:class TPL
|
||||
class TPL(clsList):
|
||||
__pl_setitem = clsList.__setitem__
|
||||
__pl_setslice = clsList.__setslice__
|
||||
__pl_iadd = clsList.__iadd__
|
||||
__pl_append = clsList.append
|
||||
__pl_insert = clsList.insert
|
||||
__pl_extend = clsList.extend
|
||||
|
||||
def __init__(self, rg = None):
|
||||
clsList.__init__(self, RgTransparent(rg))
|
||||
|
||||
def __setitem__(self, i, item):
|
||||
return self.__pl_setitem(i, MkTransparent(item))
|
||||
|
||||
def __setslice__(self, i, j, other):
|
||||
return self.__pl_setslice(i, j, RgTransparent(other))
|
||||
|
||||
def __iadd__(self, other):
|
||||
return self.__pl_iadd(RgTransparent(other))
|
||||
|
||||
def append(self, item):
|
||||
return self.__pl_append(MkTransparent(item))
|
||||
|
||||
def insert(self, i, item):
|
||||
return self.__pl_insert(i, MkTransparent(item))
|
||||
|
||||
def extend(self, other):
|
||||
return self.__pl_extend(RgTransparent(other))
|
||||
|
||||
def __reduce__(self):
|
||||
return (MkTransparent, ([MkPersistable(x) for x in self],))
|
||||
|
||||
# Strip weak references rather than replacing them with None
|
||||
class TPLS(TPL):
|
||||
def __reduce__(self):
|
||||
return (MkTransparent, ([x for x in self if FPersist(x)],))
|
||||
#@-node:jpenner.20090714203921.9:class TPL
|
||||
#@+node:jpenner.20090714203921.12:class TPM
|
||||
class TPM(clsDict):
|
||||
__pm_setitem = clsDict.__setitem__
|
||||
__pm_update = clsDict.update
|
||||
|
||||
def __init__(self, *rgarg, **kwarg):
|
||||
clsDict.__init__(self, MpTransparent(dict(*rgarg, **kwarg)))
|
||||
|
||||
def __setitem__(self, k, v):
|
||||
return self.__pm_setitem(k, MkTransparent(v))
|
||||
|
||||
def update(self, other, **kwargs):
|
||||
return self.__pm_update(MpTransparent(other), **MpTransparent(kwargs))
|
||||
|
||||
def __reduce__(self):
|
||||
mp = {}
|
||||
for k, v in self.iteritems():
|
||||
if FPersist(k):
|
||||
mp[k] = MkPersistable(v)
|
||||
return (MkTransparent, (mp,))
|
||||
|
||||
#@-node:jpenner.20090714203921.12:class TPM
|
||||
#@-others
|
||||
#@-node:jpenner.20090714203921.6:@thin tpers_old.py
|
||||
#@-leo
|
|
@ -1,5 +1,3 @@
|
|||
#@+leo-ver=4-thin
|
||||
#@+node:jpenner.20090528201601.6:@thin whiteboard.py
|
||||
from engine import *
|
||||
from basetoken import *
|
||||
from tpers import *
|
||||
|
@ -10,8 +8,6 @@ import time
|
|||
import login
|
||||
import weakref
|
||||
|
||||
#@<<Whiteboard>>
|
||||
#@+node:jpenner.20090528201601.9:<<Whiteboard>>
|
||||
class Layer(TPrs):
|
||||
def InitPersistent(self, ascr, stName):
|
||||
self.ascr = ascr
|
||||
|
@ -82,8 +78,7 @@ class Board(Ownable):
|
|||
def draw(self, ascr):
|
||||
for layer in reversed(self.rglayer):
|
||||
layer.Draw(ascr)
|
||||
#@ @+others
|
||||
#@+node:jpenner.20090602154503.5:Save
|
||||
|
||||
def Save(self):
|
||||
fn = config.DIR_ANSI + "/" + "_".join([str(x) for x in time.localtime()])
|
||||
ascr = ansi.Ascr(self.W(), self.H())
|
||||
|
@ -94,9 +89,7 @@ class Board(Ownable):
|
|||
fl.write("</center></body></html>")
|
||||
with open(fn + ".ans", "w") as fl:
|
||||
fl.write(ascr.Ast())
|
||||
#@nonl
|
||||
#@-node:jpenner.20090602154503.5:Save
|
||||
#@-others
|
||||
|
||||
def UpgradeFrom(self, versionOld):
|
||||
if versionOld < 2:
|
||||
gameWB = [gameWB for gameWB in self.owner.rggameWB if gameWB.rgtoken("whiteboard")[0].board == self][0]
|
||||
|
@ -127,10 +120,10 @@ class Whiteboard(Token):
|
|||
del self.rglayer
|
||||
if versionOld < 5:
|
||||
self.board = Board(self.game.gameLobby, self.game.stName, self.game.user, rglayer, dt)
|
||||
#@-node:jpenner.20090528201601.9:<<Whiteboard>>
|
||||
#@nl
|
||||
#@<<Chat>>
|
||||
#@+node:jpenner.20090918200439.1:<<Chat>>
|
||||
|
||||
|
||||
|
||||
|
||||
class Chl(object):
|
||||
def __init__(self, client, st):
|
||||
self.user = client.cld.user
|
||||
|
@ -215,10 +208,7 @@ class Chat(TPrs):
|
|||
while yDraw < y + h:
|
||||
ascr.PutSt("{0:{1}}".format("", w), x, yDraw, ansi.WHITE, colBg)
|
||||
yDraw = yDraw + 1
|
||||
#@-node:jpenner.20090918200439.1:<<Chat>>
|
||||
#@nl
|
||||
#@<<Cursor>>
|
||||
#@+node:jpenner.20090528201601.10:<<Cursor>>
|
||||
|
||||
class Cursor(TokenClient):
|
||||
def InitPersistent(self, game, client):
|
||||
TokenClient.InitPersistent(self, game, client, "drawable", "cursor")
|
||||
|
@ -413,12 +403,7 @@ class CursorBlinker(Token):
|
|||
def BlinkAllCursors(self, fBlink):
|
||||
for tok in self.game.rgtoken("cursor"):
|
||||
tok.blinkCursor(fBlink)
|
||||
#@-node:jpenner.20090528201601.10:<<Cursor>>
|
||||
#@nl
|
||||
#@<<Overlay>>
|
||||
#@+node:jpenner.20090614150414.1:<<Overlay>>
|
||||
#@+others
|
||||
#@+node:jpenner.20090529173104.19:MiColour
|
||||
|
||||
class MiColour(MiList):
|
||||
def InitPersistent(self, stName, rgcolor, col):
|
||||
self.rgcolor = rgcolor
|
||||
|
@ -432,8 +417,7 @@ class MiColour(MiList):
|
|||
for icol in range(len(self.rgcolor)):
|
||||
col = self.rgcolor[icol]
|
||||
ascr.PutAch(ansi.MkAch(chr(219) if icol != self.ival else chr(254), col, ansi.BLACK if col != ansi.BLACK else ansi.WHITE), x + icol, y)
|
||||
#@-node:jpenner.20090529173104.19:MiColour
|
||||
#@+node:jpenner.20090529173104.20:MiChars
|
||||
|
||||
class MiChars(MiList):
|
||||
def InitPersistent(self, rgchar, miFg, miBg):
|
||||
MiList.InitPersistent(self, rgchar)
|
||||
|
@ -456,9 +440,7 @@ def IchFromCh(ch):
|
|||
if ch == '0':
|
||||
return 9
|
||||
return int(ch) - 1
|
||||
#@nonl
|
||||
#@-node:jpenner.20090529173104.20:MiChars
|
||||
#@+node:jpenner.20090926091308.1:MiChat
|
||||
|
||||
class MiChat(Mi):
|
||||
KWNDMSG = 0
|
||||
KWNDUSERS = 1
|
||||
|
@ -528,13 +510,7 @@ class MiChat(Mi):
|
|||
ascr.PutAch(ansi.MkAch("A", ansi.RED, ansi.WHITE), xBar, yBar)
|
||||
ascr.PutAch(ansi.MkAch(chr(186), ansi.RED, ansi.WHITE), xBar, yBar + 1)
|
||||
ascr.PutAch(ansi.MkAch("Z", ansi.RED, ansi.WHITE), xBar, yBar + 2)
|
||||
#@-node:jpenner.20090926091308.1:MiChat
|
||||
#@-others
|
||||
#@nonl
|
||||
#@-node:jpenner.20090614150414.1:<<Overlay>>
|
||||
#@nl
|
||||
#@<<Joiner>>
|
||||
#@+node:jpenner.20090529173104.3:<<Joiner>>
|
||||
|
||||
class Joiner(Token):
|
||||
def InitPersistent(self, owner):
|
||||
Token.InitPersistent(self, owner)
|
||||
|
@ -560,11 +536,6 @@ class Joiner(Token):
|
|||
while True:
|
||||
with self.game.evJoin.oob(self, self.OnJoin):
|
||||
self.OnLeave(self.game.evLeave.receive(self))
|
||||
#@-node:jpenner.20090529173104.3:<<Joiner>>
|
||||
#@nl
|
||||
|
||||
#@+others
|
||||
#@+node:jpenner.20091003162445.1:Lobby
|
||||
|
||||
class Lobby(TokenClient):
|
||||
def InitPersistent(self, owner, client):
|
||||
|
@ -586,8 +557,7 @@ class Lobby(TokenClient):
|
|||
|
||||
def Goto(self, board):
|
||||
self.client.leaveGame(board)
|
||||
#@-node:jpenner.20091003162445.1:Lobby
|
||||
#@+node:jpenner.20090529173104.25:Runner
|
||||
|
||||
class RunnerWB(Runner):
|
||||
def InitPersistent(self):
|
||||
self.gameLobby = GameLobby()
|
||||
|
|
Loading…
Reference in a new issue