Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/websdk/webpy.py
diff options
context:
space:
mode:
Diffstat (limited to 'websdk/webpy.py')
-rw-r--r--websdk/webpy.py174
1 files changed, 0 insertions, 174 deletions
diff --git a/websdk/webpy.py b/websdk/webpy.py
deleted file mode 100644
index 428df6f..0000000
--- a/websdk/webpy.py
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/bin/env python
-# -*- coding: UTF-8 -*-
-# this file is deprecated in favor of studio.py
-# left to implement couple of details to remove
-
-import os
-import os.path
-import sys
-try:
- import cherrypy
-except ImportError:
- import cherrypy_local as cherrypy
-from genshi.template import TemplateLoader
-
-class Root(object):
-
- def __init__(self, data):
- self.data = data
- try:
- self.bundle_dir = data['bundle_dir']
- except KeyError:
- self.bundle_dir = os.curdir
- self.loader = TemplateLoader(
- os.path.join(self.bundle_dir, 'templates'),
- auto_reload=True)
-
- @cherrypy.expose
- def index(self):
- port = cherrypy.config['server.socket_port']
- return '''Server is running on port %s. <br/>
- Try pointing a browser at
- <a href="http://localhost:%s/www/index.html">http://localhost:%s/www/index.html</a>''' % (port, port, port)
-
- @cherrypy.expose
- def debug(self):
- port = cherrypy.config['server.socket_port']
- return '''Try right clicking on any element on the main canvas and choosing "Inspect Element".
- <br /><a href="http://localhost:%s/www/index.html">Return to main</a>''' % (port)
-
- @cherrypy.expose
- def candy(self):
- return '''Not yet implemented.
- <br /><a href="http://localhost:%s/www/index.html">Return to main</a>''' % (port)
-
- @cherrypy.expose
- def journal(self):
- port = cherrypy.config['server.socket_port']
- return '''Not yet implemented.
- <br /><a href="http://localhost:%s/www/index.html">Return to main</a>''' % (port)
-
- @cherrypy.expose
- def collaboration(self):
- port = cherrypy.config['server.socket_port']
- return '''Not yet implemented.
- <br /><a href="http://localhost:%s/www/index.html">Return to main</a>''' % (port)
-
- def list_files(self, directory):
- files=os.listdir(directory)
- print "showing %s" % directory
- return files
-
- @cherrypy.expose
- def browse(self, directory="."):
- filelist = self.list_files(directory)
- files = []
- if not os.path.abspath(directory)==os.path.abspath("."):
- files.append( { 'name': '..',
- 'icon': 'folder.svg',
- 'href': 'browse?directory=%s' % os.path.join(directory,"..") })
- for filename in sorted(filelist):
- fullname = os.path.join(directory,filename)
- icon = 'document-generic.svg'
- href = 'edit?filename=%s&directory=%s' % (fullname,directory)
- if filename.endswith('.py'):
- icon = 'text-x-python.svg'
- if filename.endswith('.html'):
- icon = 'text-uri-list.svg'
- if filename.endswith('.css'):
- icon = 'text-uri-list.svg'
- if filename.endswith('.js'):
- icon = 'text-uri-list.svg'
- if os.path.isdir(fullname):
- icon = 'folder.svg'
- href = 'browse?directory=%s' % fullname
- if filename.endswith('.xo'):
- href = '#'
- if filename.startswith('.'):
- continue
- if filename.endswith('.pyc'):
- continue
- files.append( { 'name': filename,
- 'icon': icon,
- 'href': href } )
-
- tmpl = self.loader.load('filer.html')
- return tmpl.generate(files=files, absdir=os.path.normpath(directory)
- ).render('html', doctype='html')
- @cherrypy.expose
- def vsplit(self, frame1="/browse", frame2="/browse"):
- tmpl = self.loader.load('split-view.html')
- return tmpl.generate(frame1=frame1, frame2=frame2
- ).render('html', doctype='html')
-
-
- @cherrypy.expose
- def edit(self, directory=".", filename="activity.py", editor="ace"):
- icon = 'document-generic.svg'
- mode = ''
- if filename.endswith('.py'):
- icon = 'text-x-python.svg'
- mode = 'python'
- if filename.endswith('.html'):
- icon = 'text-uri-list.svg'
- mode = 'html'
- if filename.endswith('.css'):
- icon = 'text-uri-list.svg'
- mode = 'css'
- if filename.endswith('.js'):
- icon = 'text-uri-list.svg'
- mode = 'javascript'
- content = open(filename).read().decode('utf-8')
- if editor=="wysiwyg":
- tmpl = self.loader.load('wysiwyg-editor.html')
- else:
- tmpl = self.loader.load('editor.html')
- return tmpl.generate(content=content, icon=icon,basename=os.path.basename(filename),
- filename=filename, directory=directory, absdir=os.path.normpath(directory),
- mode=mode).render('html', doctype='html', encoding='utf-8')
-
- @cherrypy.expose
- def save(self, filename, content, directory):
- f=open(filename,"wb")
- content = content.replace('\r\n', '\n').replace('\r', '\n') # HACK
- f.write(content)
- print "saving content: %s" % filename
- f.close()
- href = "/browse?directory=%s" % directory
- cherrypy.tools.redirect.callable(url=href, internal=False)
- return "content saved: %s" % content
-
- @cherrypy.expose
- def delete(self, filename):
- os.unlink(filename)
- cherrypy.tools.redirect.callable(url='/browse', internal=True)
-
-def start(root, port):
- root = os.path.abspath(root)
- print "root is %s" % root
- data = {}
- # Some global configuration; note that this could be moved into a
- # configuration file
- cherrypy.config.update({
- 'server.socket_port': port,
- 'tools.encode.on': True, 'tools.encode.encoding': 'utf-8',
- 'tools.decode.on': True,
- 'tools.trailing_slash.on': True,
- 'tools.staticdir.root': root,
- })
-
- cherrypy.quickstart(Root(data), '/', {
- '/www': {
- 'tools.staticdir.on': True,
- 'tools.staticdir.dir': 'www'
- }
- })
- #cherrypy.tree.mount(Root({}), '/', {
- # '/www': {
- # 'tools.staticdir.on': True,
- # 'tools.staticdir.dir': 'www'
- #})
- #cherrypy.engine.start()
-
-if __name__ == '__main__':
- start(os.path.abspath(os.curdir), int(sys.argv[1]))