本文整理汇总了Python中model.Plugin类的典型用法代码示例。如果您正苦于以下问题:Python Plugin类的具体用法?Python Plugin怎么用?Python Plugin使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Plugin类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: directory_html
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})
示例2: aggregate_download_counts
def aggregate_download_counts():
names = set()
for plugin in Plugin.query(Plugin.approved == False):
names.add(plugin.name)
for name in names:
plugins = list(Plugin.query(Plugin.name == name))
total = sum([plugin.downloads for plugin in plugins])
any_approved = len([p for p in plugins if p.approved]) > 0
if any_approved:
for p in plugins:
p.downloads = total if p.approved else 0
p.put()
示例3: get
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)}))
示例4: get
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}))
示例5: directory_html
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})
示例6: post
def post(self):
plugins_by_version = json.loads(self.request.body)
if len(plugins_by_version.keys()) > 0:
plugins = Plugin.query(Plugin.name.IN(plugins_by_version.keys())).fetch()
needs_update = [p.name for p in plugins if p.version and p.version > plugins_by_version[p.name]]
else:
needs_update = []
self.response.write(json.dumps({"plugins": needs_update}))
示例7: directory_html
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,
},
)
示例8: remove_duplicates
def remove_duplicates():
plugins = list(Plugin.query().fetch())
versions_to_keep = {}
for plugin in plugins:
if plugin.approved:
if plugin.name not in versions_to_keep or plugin.added > versions_to_keep[plugin.name].added:
versions_to_keep[plugin.name] = plugin
for plugin in plugins:
if plugin.approved and plugin.name in versions_to_keep and plugin != versions_to_keep[plugin.name]:
plugin.approved = False
plugin.put()
示例9: get
def get(self):
category = self.request.get('category')
languages = self.request.get('languages', '').split(',') + ['en']
plugins = []
for p in Plugin.query(Plugin.categories == category, Plugin.approved == True):
plugin = json.loads(p.info_json)
plugin['displayName'] = get_localized_key(plugin, "displayName", languages, "")
plugin['description'] = get_localized_key(plugin, "description", languages, "")
plugin['examples'] = get_localized_key(plugin, "examples", languages, [])
plugin['model'] = p
plugin['install_url'] = 'install://_?' + urllib.urlencode([("zip_url", p.zip_url), ("name", p.name.encode('utf8'))])
plugins.append(plugin)
self.response.write(template("directory.html", {"plugins": plugins}))
示例10: compute_categories
def compute_categories():
categories = set()
for p in Plugin.query(Plugin.approved is True):
for c in p.categories:
categories.add(c)
return categories
示例11: post
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}))
示例12: compute_categories
def compute_categories():
categories = set()
for p in Plugin.query(Plugin.approved == True, projection=[Plugin.categories]):
for c in p.categories:
categories.add(c)
return categories
示例13: ensure_documents_indexed
def ensure_documents_indexed():
for plugin in Plugin.query(Plugin.approved == True):
search.ensure_plugin_indexed(plugin)
示例14: compute_categories
def compute_categories():
categories = set()
for p in Plugin.query():
for c in p.categories:
categories.add(c)
return categories