Beispiel #1
0
 def handleDelete(self):
     from google.appengine.api import users
     from model import File
     name = self.request.get('name')
     current_user = users.get_current_user()
     query = File.gql("where name=:1 and author=:2", name, current_user)
     if query.count() > 0:
         file_obj = query.fetch(1)[0]
         file_obj.delete()
         return True
     else:
         return False
Beispiel #2
0
 def handleRunFile(self):
     from google.appengine.api import users
     current_user = users.get_current_user()
     name = self.request.get('name')
     from model import File
     query = File.gql("where name=:1 and author=:2", name, current_user)
     if query.count() <= 0:
         self.response.out.write(u'无法找到此文件或没有权限: %s' %name)
     else:
         file_obj = query.fetch(1)[0]
         code = file_obj.content
         results = self.runCode(code)
         self.response.out.write(results)
Beispiel #3
0
 def get(self):
     from google.appengine.api import users
     from google.appengine.ext.webapp import template
     from model import File
     current_user = users.get_current_user()
     template_values = {}
     query = File.gql('where author=:1 order by name', current_user)
     filelist = query.fetch(1000)
     for file in filelist:
         file.size = len(file.content)
     template_values['filelist'] = filelist
     template_values['logout_url'] = users.create_logout_url("")
     template_values['change_user_url'] = users.create_logout_url("list")
     template_values['nickname'] = users.get_current_user().nickname()
     self.response.out.write(template.render('templates/list.html', template_values))
Beispiel #4
0
 def get(self):
     from google.appengine.api import users
     from model import File
     import urllib
     current_user = users.get_current_user()
     name = self.request.get('name')
     query = File.gql("where name=:1 and author=:2", name, current_user)
     if query.count() > 0:
         file_obj = query.fetch(1)[0]
         self.response.headers['Content-Type'] = 'application/octet-stream'
         self.response.headers['Content-Disposition'] = 'attachment; filename=%s' %urllib.quote(file_obj.name.encode('utf-8'))
         self.response.out.write(file_obj.content)
         return
     else:
         self.response.out.write("文件不存在或没有权限.")
Beispiel #5
0
 def post(self):
     from google.appengine.api import users
     from model import File
     code = self.request.get('code')
     name = self.request.get('name')
     current_user = users.get_current_user()
     query = File.gql("where name=:1 and author=:2", name, current_user)
     if query.count() > 0:
         file_obj = query.fetch(1)[0]
     else:
         from model import File
         file_obj = File(name=name, author = current_user)
     file_obj.content = code
     file_obj.put()
     self.response.out.write('保存成功')
Beispiel #6
0
 def get(self):
     from google.appengine.ext.webapp import template
     from model import File
     template_values = {}
     name = self.request.get('name')
     if not name:
         new_file = True
         import time
         template_values['defaultname'] = time.strftime("%Y%m%d%H%M%S.py")
     else:
         template_values['name'] = name
         query = File.gql('where name=:1', name)
         if query.count() > 0:
             new_file = False
             file_obj = query.fetch(1)[0]
             template_values['code'] = file_obj.content
         else:
             new_file = True
     if new_file:
         template_values['new_file'] = True
         with open('extra/script.tpl.py') as fp: template_values['code'] = fp.read()
     self.response.out.write(template.render('templates/edit.html', template_values))