def get(self, name): plugin = Plugin.by_name(name) if not plugin: self.error(404) return self.response.write(template("plugin_page.html", {"plugin": info_dict_for_plugin(plugin)}))
def directory_html(category=None, search=None, languages=None, browse=False, name=None): languages_specified = languages != None if not languages_specified: languages = ['en'] if category: plugins = list(Plugin.query(Plugin.categories == category, Plugin.approved == True)) plugins = stable_daily_shuffle(plugins) elif search: plugins = search_plugins(search) elif name: plugin = Plugin.by_name(name) plugins = [plugin] if plugin else [] else: plugins = [] count = len(plugins) plugin_dicts = [] for p in plugins: plugin = info_dict_for_plugin(p, languages) plugin_dicts.append(plugin) groups = group_plugins(plugin_dicts, languages, languages_specified) return template("directory.html", { "groups": groups, "browse": browse, "count": count, "search": search})
def get(self, name): plugin = Plugin.by_name(name) version = plugin.version if plugin else None if not version: version = 0 url = blobstore.create_upload_url('/post_upload') self.response.write(json.dumps({"version": version, "upload_url": url}))
def get(self, name): plugin = Plugin.by_name(name) if not plugin: self.error(404) return localhost = 'Development' in os.environ['SERVER_SOFTWARE'] self.response.write(template("plugin_page.html", {"plugin": info_dict_for_plugin(plugin), "localhost": localhost}))
def get(self, name): plugin = Plugin.by_name(name) if not plugin: self.error(404) return localhost = 'Development' in os.environ['SERVER_SOFTWARE'] self.response.write(template("plugin_page.html", {"plugin": info_dict_for_plugin(plugin), "localhost": localhost}))
def post(self): secret = self.request.get('secret', '') is_update = False if len(secret): plugins = Plugin.query(Plugin.secret == secret).fetch() if len(plugins) == 0: send_upload_form( self, "No plugin could be found that matches that " "secret.") return else: plugin = plugins[0] is_update = True else: plugin = Plugin() plugin.zip_url = 'http://' + os.environ['HTTP_HOST'] + '/serve/' + str( self.get_uploads('zip')[0].key()) zip_data = urllib2.urlopen(plugin.zip_url).read() if not read_plugin_info(plugin, zip_data): send_upload_form( self, "We couldn't find a valid info.json file in your " "zip.") return console_key = self.request.get('console_key', None) plugin.secret = base64.b64encode(os.urandom(128)) plugin.notes = self.request.get('notes', '') admin = users.is_current_user_admin() or \ (console_key and console_key_is_valid(console_key)) if admin: existing = Plugin.by_name(plugin.name) if existing: plugin.downloads += existing.downloads plugin.put() existing.disable() existing.downloads = 0 existing.put() plugin.put() if admin: plugin.enable() if console_key is not None: self.response.write({"success": True}) else: approval_msg = " It'll be public after it's been approved." if not is_update else "" message = "Your plugin was uploaded!" + approval_msg self.response.write( template("uploaded.html", { "message": message, "plugin": plugin }))
def post(self): secret = self.request.get('secret', '') is_update = False if len(secret): plugins = Plugin.query(Plugin.secret == secret).fetch() if len(plugins) == 0: send_upload_form(self, "No plugin could be found that matches that " "secret.") return else: plugin = plugins[0] is_update = True else: plugin = Plugin() plugin.zip_url = 'http://' + os.environ['HTTP_HOST'] + '/serve/' + str( self.get_uploads('zip')[0].key()) zip_data = urllib2.urlopen(plugin.zip_url).read() if not read_plugin_info(plugin, zip_data): send_upload_form(self, "We couldn't find a valid info.json file in your " "zip.") return console_key = self.request.get('console_key', None) plugin.secret = base64.b64encode(os.urandom(128)) plugin.notes = self.request.get('notes', '') plugin.zip_md5 = hashlib.md5(zip_data).hexdigest() admin = users.is_current_user_admin() or \ (console_key and console_key_is_valid(console_key)) if admin: existing = Plugin.by_name(plugin.name) if existing: plugin.downloads += existing.downloads plugin.put() existing.disable() existing.downloads = 0 existing.put() plugin.put() if admin: plugin.enable() if console_key is not None: self.response.write({"success": True}) else: approval_msg = " It'll be public after it's been approved." if not is_update else "" message = "Your plugin was uploaded!" + approval_msg self.response.write(template("uploaded.html", {"message": message, "plugin": plugin}))
def directory_html(category=None, search=None, languages=None, browse=False, name=None, gae=None, deep_links=False): if gae == None: gae = not browse new = category == 'New' if new: category = None languages_specified = languages != None if not languages_specified: languages = ['en'] if category: plugins = list( Plugin.query(Plugin.categories == category, Plugin.approved == True)) plugins = stable_daily_shuffle(plugins) elif search: plugins = search_plugins(search) elif name: plugin = Plugin.by_name(name) plugins = [plugin] if plugin else [] elif new: plugins = Plugin.query( Plugin.approved == True).order(-Plugin.added).fetch(limit=10) else: plugins = [] count = len(plugins) plugin_dicts = [] for p in plugins: plugin = info_dict_for_plugin(p, languages) plugin_dicts.append(plugin) groups = group_plugins(plugin_dicts, languages, languages_specified) return template( "directory.html", { "groups": groups, "browse": browse, "count": count, "search": search, "deep_links": deep_links, "new": new, "gae": gae })
def directory_html(category=None, search=None, languages=['en'], browse=False, name=None): if category: plugins = list(Plugin.query(Plugin.categories == category, Plugin.approved == True)) plugins = stable_daily_shuffle(plugins) elif search: plugins = search_plugins(search) elif name: plugin = Plugin.by_name(name) plugins = [plugin] if plugin else [] else: plugins = [] plugin_dicts = [] for p in plugins: plugin = info_dict_for_plugin(p, languages) plugin_dicts.append(plugin) return template("directory.html", {"plugins": plugin_dicts, "browse": browse, "search": search})
def directory_html(category=None, search=None, languages=None, browse=False, name=None, gae=None, deep_links=False): if gae == None: gae = not browse new = category == "New" if new: category = None languages_specified = languages != None if not languages_specified: languages = ["en"] if category: plugins = list(Plugin.query(Plugin.categories == category, Plugin.approved == True)) plugins = stable_daily_shuffle(plugins) elif search: plugins = search_plugins(search) elif name: plugin = Plugin.by_name(name) plugins = [plugin] if plugin else [] elif new: plugins = Plugin.query(Plugin.approved == True).order(-Plugin.added).fetch(limit=10) else: plugins = [] count = len(plugins) plugin_dicts = [] for p in plugins: plugin = info_dict_for_plugin(p, languages) plugin_dicts.append(plugin) groups = group_plugins(plugin_dicts, languages, languages_specified) return template( "directory.html", { "groups": groups, "browse": browse, "count": count, "search": search, "deep_links": deep_links, "new": new, "gae": gae, }, )
def directory_html(category=None, search=None, languages=['en'], browse=False, name=None): if category: plugins = list(Plugin.query(Plugin.categories == category, Plugin.approved == True)) plugins = stable_daily_shuffle(plugins) elif search: plugins = search_plugins(search) elif name: plugin = Plugin.by_name(name) plugins = [plugin] if plugin else [] else: plugins = [] plugin_dicts = [] for p in plugins: plugin = info_dict_for_plugin(p, languages) plugin_dicts.append(plugin) return template("directory.html", {"plugins": plugin_dicts, "browse": browse, "search": search})
def get(self, name): plugin = Plugin.by_name(name) existing_md5 = plugin.zip_md5 if plugin else None url = blobstore.create_upload_url('/post_upload') self.response.write(json.dumps({"md5": existing_md5, "upload_url": url}))
def get(self, name): plugin = Plugin.by_name(name) if not plugin: self.error(404) return self.redirect(plugin.zip_url.encode('utf-8'))
def get(self, name): plugin = Plugin.by_name(name) if not plugin: self.error(404) return self.redirect(plugin.zip_url.encode('utf-8'))
def get(self, name): plugin = Plugin.by_name(name) existing_md5 = plugin.zip_md5 if plugin else None url = blobstore.create_upload_url('/post_upload') self.response.write(json.dumps({"md5": existing_md5, "upload_url": url}))