Exemple #1
0
def output_post():
	try:
		data = request.POST['file'].value
		upload_dir = config.get('site','uploads')
		fn = '%s/%s/%s.zip'%( os.getcwd(), upload_dir,hashlib.sha224(data).hexdigest() )
		fd = open( fn, 'wb')
		fd.write( data )
		fd.close()
		new_id = parseZip( fn )
		base_url = config.get('site', 'baseurl' )
		chan = config.get('tasbot', 'report_channel' )
		tasbot.tasclient.say(chan,'new crash report uploaded: http://%s/details?id=%d'%(base_url,new_id))
		return 'success'

	except Exception, m:
		print m
		return env.get_template('error.html').render(err_msg=str(m))
Exemple #2
0
def output():
    try:
        session = db.sessionmaker()
        upload_dir = config.get("site", "uploads")
        records = session.query(Record).all()
        ret = env.get_template("list.html").render(records=records)
        session.close()
        return ret

    except Exception, m:
        return env.get_template("error.html").render(err_msg=str(m))
Exemple #3
0
def output_post():
    try:
        data = request.POST['file'].value
        upload_dir = config.get('site', 'uploads')
        fn_relative = '%s/%s.zip' % (upload_dir,
                                     hashlib.sha224(data).hexdigest())
        fn = fn_relative
        #fn = '%s/%s'%( os.getcwd(), fn_relative )
        fd = open(fn, 'wb')
        fd.write(data)
        fd.close()
        new_id = parseZip(fn)
        base_url = config.get('site', 'baseurl')
        chan = config.get('tasbot', 'report_channel')
        tasbot.tasclient.say(
            chan, 'new crash report uploaded: http://%s%d' %
            (config.get('site', 'detailurl'), new_id))
        return 'success'

    except Exception, m:
        print m
        return env.get_template('error.html').render(err_msg=str(m))
Exemple #4
0
def output_post():
    try:
        data = request.POST["file"].value
        upload_dir = config.get("site", "uploads")
        fn = "%s/%s/%s.zip" % (os.getcwd(), upload_dir, hashlib.sha224(data).hexdigest())
        fd = open(fn, "wb")
        fd.write(data)
        fd.close()
        members = dict()
        zipfile = ZipFile(fn)

        files_of_interest = ["infolog.txt", "ext.txt", "platform.txt", "script.txt", "settings.txt", "unitsync.log"]
        for info in zipfile.infolist():
            if info.filename in files_of_interest and info.file_size < 20e5:
                members[info.filename] = zipfile.read(info.filename)
        new_id = db.parseZipMembers(fn, members)
        base_url = config.get("site", "baseurl")
        chan = config.get("tasbot", "report_channel")
        tasbot.tasclient.say(chan, "new crash report uploaded: http://%s/details?id=%d" % (base_url, new_id))
        return "success"

    except Exception, m:
        print m
        return env.get_template("error.html").render(err_msg=str(m))
Exemple #5
0
def output():
	try:
		session = db.sessionmaker()
		id = getSingleField( 'id', request )
		if not id:
			raise ElementNotFoundException( id )
		record = session.query( Record ).filter( Record.id == id ).one()
		if not record:
			raise ElementNotFoundException( id )
		upload_dir = config.get('site','uploads')
		ret = env.get_template('details.html').render( record=record, upload_dir=upload_dir )
		session.close()
		return ret

	except Exception, m:
		return env.get_template('error.html').render(err_msg=str(m))
Exemple #6
0
def output():
	try:
		session = db.sessionmaker()
		id = getSingleField( 'id', request )
		if not id:
			raise ElementNotFoundException( id )
		crash = session.query( Crash ).filter( Crash.id == id ).one()
		if not crash:
			raise ElementNotFoundException( id )
		upload_dir = config.get('site','uploads')
		ret = env.get_template('details.html').render( crash=crash, \
			upload_dir=upload_dir,settings=dict(filter(lambda i: i[0] in Crash.important_settings, crash.settings.items() ) ) )
		session.close()
		return ret

	except Exception, m:
		return env.get_template('error.html').render(err_msg=str(m))
Exemple #7
0
def output():
	try:
		important_settings = ['Shadows']

		session = db.sessionmaker()
		id = getSingleField( 'id', request )
		if not id:
			raise ElementNotFoundException( id )
		crash = session.query( Crash ).filter( Crash.id == id ).one()
		if not crash:
			raise ElementNotFoundException( id )
		upload_dir = config.get('site','uploads')
		print crash.stacktrace
		ret = env.get_template('details.html').render( crash=crash, upload_dir=upload_dir )
		session.close()
		return ret

	except Exception, m:
		return env.get_template('error.html').render(err_msg=str(m))
Exemple #8
0
def output():
    try:
        important_settings = ['Shadows']

        session = db.sessionmaker()
        id = getSingleField('id', request)
        if not id:
            raise ElementNotFoundException(id)
        crash = session.query(Crash).filter(Crash.id == id).one()
        if not crash:
            raise ElementNotFoundException(id)
        upload_dir = config.get('site', 'uploads')
        print crash.stacktrace
        ret = env.get_template('details.html').render(crash=crash,
                                                      upload_dir=upload_dir)
        session.close()
        return ret

    except Exception, m:
        return env.get_template('error.html').render(err_msg=str(m))
Exemple #9
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bottle import route, run, debug, PasteServer, send_file, redirect, abort, request, default_app
import os, index, upload, recordlist, details
from siteglobals import config
from tw.api import make_middleware

@route('/images/:filename')
def image_file(filename):
	return send_file( filename, root=os.getcwd()+'/images/' )

@route('/static/:filename')
def static_file(filename):
	return send_file( filename, root=os.getcwd()+'/static/' )

uploads = '/%s/' % config.get('site','uploads')
@route(uploads + ':filename')
def log_file(filename):
	return send_file( filename, root=os.getcwd()+ uploads )

@route('/favicon.ico')
def favi():
	return send_file( 'favicon.ico', root=os.getcwd()+'/images/' )

if __name__=="__main__":
	port = config.getint('site','port')
	is_debug = config.getboolean('site','debug')
	app = default_app()
	application = make_middleware(app, {
		'toscawidgets.framework.default_view': 'jinja2',
		'toscawidgets.middleware.inject_resources': True,
Exemple #10
0
    print filename
    return send_file(filename, root=os.getcwd() + "/images/")


@route("/images/:filename/:f")  # make this not so silly
def image_file2(filename, f):
    print filename
    return send_file(filename + "/" + f, root=os.getcwd() + "/images/")


@route("/static/:filename")
def static_file(filename):
    return send_file(filename, root=os.getcwd() + "/static/")


uploads = "/%s/" % config.get("site", "uploads")


@route(uploads + ":filename")
def log_file(filename):
    return send_file(filename, root=os.getcwd() + uploads)


@route("/favicon.ico")
def favi():
    return send_file("favicon.ico", root=os.getcwd() + "/images/")


if __name__ == "__main__":
    port = config.getint("site", "port")
    host = config.get("site", "host")
Exemple #11
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bottle import route, run, debug, PasteServer, send_file, redirect, abort, request, default_app
import os, index, upload, recordlist, details
from siteglobals import config,is_debug
from tw.api import make_middleware

@route('/images/:filename')
def image_file(filename):
	return send_file( filename, root=os.getcwd()+'/images/' )

@route('/static/:filename')
def static_file(filename):
	return send_file( filename, root=os.getcwd()+'/static/' )

uploads = '/%s/' % config.get('site','uploads')
@route(uploads + ':filename')
def log_file(filename):
	return send_file( filename, root=os.getcwd()+ uploads )

@route('/favicon.ico')
def favi():
	return send_file( 'favicon.ico', root=os.getcwd()+'/images/' )

if __name__=="__main__":
	port = config.getint('site','port')
	host = config.get('site','host')
	app = default_app()
	application = make_middleware(app, {
		'toscawidgets.framework.default_view': 'jinja2',
		'toscawidgets.middleware.inject_resources': True,
Exemple #12
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from siteglobals import db, config
from backend import *
from upload import parseZip
import os

db.Connect()

print 'DB: Rebuild init'
tables = [
    Crash, RecordsData, Status, Settings, SettingsData, Stacktrace,
    StacktraceData, StacktraceTranslated, DbConfig
]
for table in tables:
    table.__table__.drop()
    table.__table__.create()
print 'DB: Rebuild completed'

print 'Upload: parseing init'
fn = os.getcwd() + "/" + config.get('site', 'uploads') + "/"
for filename in os.listdir(fn):
    if filename[-4:] == '.zip':
        try:
            parseZip(config.get('site', 'uploads') + "/" + filename)
        except:
            print 'Upload: FAILED for ' + config.get(
                'site', 'uploads') + "/" + filename
print 'Upload: parseing completed'
Exemple #13
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from siteglobals import db, config
from backend import *
from upload import parseZip
import os
db.Connect()

print 'DB: Rebuild init'
tables = [ Crash, RecordsData, Status, Settings, SettingsData, Stacktrace, StacktraceData, StacktraceTranslated, DbConfig ]
for table in tables:
	table.__table__.drop()
	table.__table__.create()
print 'DB: Rebuild completed'

print 'Upload: parseing init'
fn = os.getcwd() + "/" + config.get('site','uploads') + "/"
for filename in os.listdir(fn): 
	if filename[-4:] == '.zip':
		try:
			parseZip (config.get('site','uploads') + "/" + filename)
		except:
			print 'Upload: FAILED for ' + config.get('site','uploads') + "/" + filename
print 'Upload: parseing completed'