예제 #1
0
파일: next.py 프로젝트: ConsciousCode/u413
def next_func(args,u413):
	context=u413.user.context.split(' ')
	if context[0]=='BOARD':
		if context[1]=='ALL':
			context[1]=0
			pages=int(db.query("SELECT COUNT(*) FROM posts WHERE topic=TRUE AND parent IN (SELECT id FROM boards WHERE onall=TRUE);")[0]["COUNT(*)"])
			if pages==0:
				pages=1
			else:
				pages=math.ceil(pages/10.0)
			page=1
			if len(context)>2:
				page=int(context[2])
			if page<pages:
				page+=1
			command.respond(context[0]+' '+str(context[1])+' '+str(page),u413)
			return
	if context[0] in ['BOARD','TOPIC']:
		pages=int(db.query("SELECT COUNT(*) FROM posts WHERE parent=%i;"%int(context[1]))[0]["COUNT(*)"])
		if pages==0:
			pages=1
		else:
			pages=math.ceil(pages/10.0)
		page=1
		if len(context)>2:
			page=int(context[2])
		if page<pages:
			page+=1
		command.respond(context[0]+' '+str(context[1])+' '+str(page),u413)
	else:
		u413.type('"NEXT" is not a valid command or is not available in the current context.')
예제 #2
0
파일: prev.py 프로젝트: ConsciousCode/u413
def prev_func(args,u413):
	context=u413.user.context.split(' ')
	if context[0]=='BOARD':
		if context[1]=='ALL':
			context[1]=0
	if context[0] in ['BOARD','TOPIC']:
		page=1
		if len(context)>2:
			page=int(context[2])
			if page>1:
				page-=1
		command.respond(context[0]+' '+str(context[1])+' '+str(page),u413)
	else:
		u413.type('"PREV" is not a valid command or is not available in the current context.')
예제 #3
0
def prev_func(args, u413):
    context = u413.user.context.split(' ')
    if context[0] == 'BOARD':
        if context[1] == 'ALL':
            context[1] = 0
    if context[0] in ['BOARD', 'TOPIC']:
        page = 1
        if len(context) > 2:
            page = int(context[2])
            if page > 1:
                page -= 1
        command.respond(context[0] + ' ' + str(context[1]) + ' ' + str(page),
                        u413)
    else:
        u413.type(
            '"PREV" is not a valid command or is not available in the current context.'
        )
예제 #4
0
def next_func(args, u413):
    context = u413.user.context.split(' ')
    if context[0] == 'BOARD':
        if context[1] == 'ALL':
            context[1] = 0
            pages = int(
                db.query(
                    "SELECT COUNT(*) FROM posts WHERE topic=TRUE AND parent IN (SELECT id FROM boards WHERE onall=TRUE);"
                )[0]["COUNT(*)"])
            if pages == 0:
                pages = 1
            else:
                pages = math.ceil(pages / 10.0)
            page = 1
            if len(context) > 2:
                page = int(context[2])
            if page < pages:
                page += 1
            command.respond(
                context[0] + ' ' + str(context[1]) + ' ' + str(page), u413)
            return
    if context[0] in ['BOARD', 'TOPIC']:
        pages = int(
            db.query("SELECT COUNT(*) FROM posts WHERE parent=%i;" %
                     int(context[1]))[0]["COUNT(*)"])
        if pages == 0:
            pages = 1
        else:
            pages = math.ceil(pages / 10.0)
        page = 1
        if len(context) > 2:
            page = int(context[2])
        if page < pages:
            page += 1
        command.respond(context[0] + ' ' + str(context[1]) + ' ' + str(page),
                        u413)
    else:
        u413.type(
            '"NEXT" is not a valid command or is not available in the current context.'
        )
예제 #5
0
파일: u413.py 프로젝트: U413/defunct-u413
def index(req):
    import user
    import command

    cli = req.form.get("cli", None)
    if cli != None:
        cli = cli.value
    session = req.form.get("session", None)
    if session != None:
        session = session.value
    #no session
    if session == None:
        jar = Cookie.get_cookies(req)
        if "session" in jar:
            session = jar.get("session", None)
            if session != None:
                session = session.value
            currentuser = user.User(session)
            if cli == None:
                cli = "LOGIN"
        else:
            currentuser = user.User()
            if cli == None:
                cli = "INITIALIZE"
    else:
        currentuser = user.User(session)
        if cli == None:
            cli = "LOGIN"

    cmdarg = cli.split(' ', 1)
    cmd = cmdarg[0]
    args = ""
    if len(cmdarg) > 1:
        args = cmdarg[1]

    callback = req.form.get("callback", None)

    class u413(object):
        def __init__(self, u):
            self.j = {
                "Command": "",
                "ContextText": u.context,
                "CurrentUser": u.name,
                "EditText": None,
                "SessionId": u.session,
                "TerminalTitle": "Terminal - " + u.name,
                "ClearScreen": False,
                "Exit": False,
                "PasswordField": False,
                "ScrollToBottom": True,
                "DisplayItems": [],
                "Notification": None
            }
            self.cmds = command.cmds
            self.user = u
            self.cont = False
            self.cookies = []
            self.cmddata = u.cmddata
            self.mute = u.mute

        def type(self, text, mute=None):
            if mute == None:
                mute = self.mute
            self.j["DisplayItems"].append({
                "Text": text,
                "DontType": False,
                "Mute": mute
            })

        def donttype(self, text, mute=None):
            if mute == None:
                mute = self.mute
            self.j["DisplayItems"].append({
                "Text": text,
                "DontType": True,
                "Mute": mute
            })

        def set_context(self, context):
            self.j["ContextText"] = context
            self.user.context = context

        def set_title(self, title):
            self.j["TerminalTitle"] = title

        def edit_text(self, text):
            self.j["EditText"] = text

        def clear_screen(self):
            self.j["ClearScreen"] = True

        def scroll_down(self):
            self.j["ScrollToBottom"] = True

        def use_password(self):
            self.j["PasswordField"] = True

        def continue_cmd(self):
            self.cont = True
            self.user.cmd = self.j["Command"]

        def set_cookie(self, cookie, value):
            self.cookies.append({"name": cookie, "value": value})

        def exit(self):
            self.j["Exit"] = True

        def notify(self, notification):
            self.j["Notification"] = notification

        def exec_js(self, start, cleanup=''):
            out = ''
            if cleanup != '':
                out += '<div id="mark"></div>'
            out += '<script type="text/javascript">' + start
            if cleanup != '':
                out += '$("#mark").data("cleanup",function(){%s});' % cleanup
            out += '</script>'
            self.donttype(out)

    u = u413(currentuser)

    try:
        import database as db
        import time

        import initialize
        import echo
        import ping
        import login
        import logout
        import register
        import who
        import desu
        import clear
        import boards
        import wall
        import nsfwall
        import history
        import whois
        import users
        import mute
        import alias

        import topic
        import reply
        import newtopic
        import board
        import edit
        import delete
        import move

        import first
        import last
        import prev
        import next
        import refresh

        import help

        import messages
        import message
        import newmessage

        import chat

        import sql

        import pi
        import pirates
        import b
        import turkey
        import cosmos
        import do
        import rude

        command.respond(cli, u)

        if u.cont:
            u.j["Command"] = currentuser.cmd

            if currentuser.cmd != '':
                cmd = currentuser.cmd
            db.query(
                "UPDATE sessions SET expire=DATE_ADD(NOW(),INTERVAL 6 HOUR),cmd='%s',cmddata='%s',context='%s' WHERE id='%s';"
                % (cmd, db.escape(repr(
                    u.cmddata)), currentuser.context, currentuser.session))
        else:
            db.query(
                "UPDATE sessions SET expire=DATE_ADD(NOW(),INTERVAL 6 HOUR),cmd='',cmddata='{}',context='%s' WHERE id='%s';"
                % (currentuser.context, currentuser.session))

        if callback == None:
            req.content_type = 'application/json'
        else:
            req.content_type = 'application/javascript'

        for cookie in u.cookies:
            Cookie.add_cookie(req,
                              Cookie.Cookie(cookie["name"], cookie["value"]))
        session = Cookie.Cookie('session', currentuser.session)
        session.expires = time.time() + 6 * 60 * 60
        Cookie.add_cookie(req, session)

        msgs = int(
            db.query(
                "SELECT COUNT(*) FROM messages WHERE receiver=%i AND seen=FALSE;"
                % currentuser.userid)[0]["COUNT(*)"])
        if msgs > 0:
            u.notify("You have %i new messages in your inbox." % msgs)

        if callback == None:
            return json.dumps(u.j)
        else:
            return callback + '(' + json.dumps(u.j) + ')'
    except Exception as e:
        import traceback
        u.donttype('<span class="error">' + traceback.format_exc().replace(
            '&', '&amp;').replace('<', '&lt;').replace('>', '&gt;').replace(
                '\n', '<br/>').replace(' ' * 4, '<span class="tab"></tab>') +
                   '</span>')

        req.content_type = "application/json"
        session = Cookie.Cookie('session', currentuser.session)
        session.expires = time.time() + 6 * 60 * 60
        if callback == None:
            return json.dumps(u.j)
        else:
            return callback + '(' + json.dumps(u.j) + ')'
예제 #6
0
파일: u413.py 프로젝트: mwgamera/u413
	import next
	import refresh

	import help
	
	import messages
	import message
	import newmessage
	
	import pi
	import pirates
	import b
	import turkey
	import cosmos

	command.respond(cli,u)

	if u.cont:
		u.j["Command"]=currentuser.cmd

	if callback==None:
		print "Content-type: application/json"
	else:
		print "Content-type: application/javascript"

	for cookie in u.cookies:
		print "Set-Cookie: "+cookie["name"]+"="+cookie["value"]
	print 'Set-Cookie: session='+currentuser.session+'; Max-Age: 21600'

	print
예제 #7
0
def refresh_func(args,u413):
	if u413.user.context.split(' ',1)[0] in ['BOARD','TOPIC','WALL']:
		command.respond(u413.user.context,u413)
	else:
		u413.clear_screen()
예제 #8
0
파일: u413.py 프로젝트: ConsciousCode/u413
def index(req):
	import user
	import command

	cli=req.form.get("cli",None)
	if cli!=None:
		cli=cli.value
	session=req.form.get("session",None)
	if session!=None:
		session=session.value
	#no session
	if session==None:
		jar=Cookie.get_cookies(req)
		if "session" in jar:
			session=jar.get("session",None)
			if session!=None:
				session=session.value
			currentuser=user.User(session)
			if cli==None:
				cli="LOGIN"
		else:
			currentuser=user.User()
			if cli==None:
				cli="INITIALIZE"
	else:
		currentuser=user.User(session)
		if cli==None:
			cli="LOGIN"

	cmdarg=cli.split(' ',1)
	cmd=cmdarg[0]
	args=""
	if len(cmdarg)>1:
		args=cmdarg[1]

	callback=req.form.get("callback",None)

	class u413(object):
		def __init__(self,u):
			self.j={
				"Command":"",
				"ContextText":u.context,
				"CurrentUser":u.name,
				"EditText":None,
				"SessionId":u.session,
				"TerminalTitle":"Terminal - "+u.name,
				"ClearScreen":False,
				"Exit":False,
				"PasswordField":False,
				"ScrollToBottom":True,
				"DisplayItems":[],
				"Notification":None
			}
			self.cmds=command.cmds
			self.user=u
			self.cont=False
			self.cookies=[]
			self.cmddata=u.cmddata
			self.mute=u.mute

		def type(self,text,mute=None):
			if mute==None:
				mute=self.mute
			self.j["DisplayItems"].append({"Text":text,"DontType":False,"Mute":mute})

		def donttype(self,text,mute=None):
			if mute==None:
				mute=self.mute
			self.j["DisplayItems"].append({"Text":text,"DontType":True,"Mute":mute})

		def set_context(self,context):
			self.j["ContextText"]=context
			self.user.context=context

		def set_title(self,title):
			self.j["TerminalTitle"]=title

		def edit_text(self,text):
			self.j["EditText"]=text

		def clear_screen(self):
			self.j["ClearScreen"]=True

		def scroll_down(self):
			self.j["ScrollToBottom"]=True

		def use_password(self):
			self.j["PasswordField"]=True

		def continue_cmd(self):
			self.cont=True
			self.user.cmd=self.j["Command"]

		def set_cookie(self,cookie,value):
			self.cookies.append({"name":cookie,"value":value})

		def exit(self):
			self.j["Exit"]=True
		
		def notify(self,notification):
			self.j["Notification"]=notification
	
		def exec_js(self,start,cleanup=''):
			out=''
			if cleanup!='':
				out+='<div id="mark"></div>'
			out+='<script type="text/javascript">'+start
			if cleanup!='':
				out+='$("#mark").data("cleanup",function(){%s});'%cleanup
			out+='</script>'
			self.donttype(out)

	u=u413(currentuser)

	try:
		import database as db
		import time

		import initialize
		import echo
		import ping
		import login
		import logout
		import register
		import who
		import desu
		import clear
		import boards
		import wall
		import nsfwall
		import history
		import whois
		import users
		import mute
		import alias

		import topic
		import reply
		import newtopic
		import board
		import edit
		import delete
		import move

		import first
		import last
		import prev
		import next
		import refresh

		import help
	
		import messages
		import message
		import newmessage
		
		import chat
	
		import sql
	
		import pi
		import pirates
		import b
		import turkey
		import cosmos
		import do
		import rude

		command.respond(cli,u)

		if u.cont:
			u.j["Command"]=currentuser.cmd
			
			if currentuser.cmd!='':
				cmd=currentuser.cmd
			db.query("UPDATE sessions SET expire=DATE_ADD(NOW(),INTERVAL 6 HOUR),cmd='%s',cmddata='%s',context='%s' WHERE id='%s';"%(cmd,db.escape(repr(u.cmddata)),currentuser.context,currentuser.session))
		else:
			db.query("UPDATE sessions SET expire=DATE_ADD(NOW(),INTERVAL 6 HOUR),cmd='',cmddata='{}',context='%s' WHERE id='%s';"%(currentuser.context,currentuser.session))
			
		if callback==None:
			req.content_type='application/json'
		else:
			req.content_type='application/javascript'

		for cookie in u.cookies:
			Cookie.add_cookie(req,Cookie.Cookie(cookie["name"],cookie["value"]))
		session=Cookie.Cookie('session',currentuser.session)
		session.expires=time.time()+6*60*60
		Cookie.add_cookie(req,session)
		
		msgs=int(db.query("SELECT COUNT(*) FROM messages WHERE receiver=%i AND seen=FALSE;"%currentuser.userid)[0]["COUNT(*)"])
		if msgs>0:
			u.notify("You have %i new messages in your inbox."%msgs);

		if callback==None:
			return json.dumps(u.j)
		else:
			return callback+'('+json.dumps(u.j)+')'
	except Exception as e:
		import traceback
		u.donttype('<span class="error">'+traceback.format_exc().replace('&','&amp;').replace('<','&lt;').replace('>','&gt;').replace('\n','<br/>').replace(' '*4,'<span class="tab"></tab>')+'</span>')

		req.content_type="application/json"
		session=Cookie.Cookie('session',currentuser.session)
		session.expires=time.time()+6*60*60
		if callback==None:
			return json.dumps(u.j)
		else:
			return callback+'('+json.dumps(u.j)+')'