views.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:badge 作者: SavandBros 项目源码 文件源码
def service_badge(request, service, action, package, extension):
    gc.collect()

    if extension not in settings.ALLOWED_EXTENSIONS:
        request.setResponseCode(401)
        return "{} is not a valid extension.".format(extension)

    service_reg = service_registry.services.get(service, None)

    if not service_reg:
        request.setResponseCode(401)
        return "{} is not a valid service.".format(service)

    if action not in service_reg['actions']['all']:
        request.setResponseCode(401)
        return "{} is not a valid action.".format(action)

    service_class = service_reg['class']
    service_class = service_class(package, format=extension, extra_context=request.args)
    """:type service_class: service.base.ServiceBase"""
    service_class.pull_package_data()

    if service_class.package_pulling_failed:
        request.setResponseCode(404)
        return "Couldn't pull data from {} for package {}".format(service, package)

    ext = mimetypes.types_map[".{0}".format(extension)]
    request.headers.update({'content-type': ext})

    getattr(service_class, service_reg['actions']['all'][action])()
    img = service_class.draw_badge()

    return img
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号