Coverage for webapp/publisher/snaps/publicise_views.py : 100%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# Packages
2import flask
3from canonicalwebteam.store_api.stores.snapstore import (
4 SnapStore,
5 SnapPublisher,
6)
8# Local
9from webapp.helpers import api_publisher_session
10from webapp.decorators import login_required
11from webapp.store.logic import filter_screenshots
13store_api = SnapStore(api_publisher_session)
14publisher_api = SnapPublisher(api_publisher_session)
17@login_required
18def get_publicise(snap_name):
19 snap_details = publisher_api.get_snap_info(snap_name, flask.session)
21 is_released = len(snap_details["channel_maps_list"]) > 0
23 available_languages = {
24 "ar": {"title": "العربية", "text": "احصل عليه من Snap Store"},
25 "bg": {"title": "български", "text": "Инсталирайте го от Snap Store"},
26 "bn": {"title": "বাংলা", "text": "থেকে ইনস্টল করুন"},
27 "de": {"title": "Deutsch", "text": "Installieren vom Snap Store"},
28 "en": {"title": "English", "text": "Get it from the Snap Store"},
29 "es": {"title": "Español", "text": "Instalar desde Snap Store"},
30 "fr": {
31 "title": "Français",
32 "text": "Installer à partir du Snap Store",
33 },
34 "it": {"title": "Italiano", "text": "Scarica dallo Snap Store"},
35 "jp": {"title": "日本語", "text": "Snap Store から入手ください"},
36 "pl": {"title": "Polski", "text": "Pobierz w Snap Store"},
37 "pt": {"title": "Português", "text": "Disponível na Snap Store"},
38 "ro": {"title": "Română", "text": "Instalează din Snap Store"},
39 "ru": {"title": "русский язык", "text": "Загрузите из Snap Store"},
40 "tw": {"title": "中文(台灣)", "text": "安裝軟體敬請移駕 Snap Store"},
41 }
43 context = {
44 "private": snap_details["private"],
45 "snap_name": snap_details["snap_name"],
46 "snap_title": snap_details["title"],
47 "publisher_name": snap_details["publisher"]["display-name"],
48 "snap_id": snap_details["snap_id"],
49 "is_release": is_released,
50 "available": available_languages,
51 "download_version": "v1.4.2",
52 }
54 return flask.render_template(
55 "publisher/publicise/store_buttons.html", **context
56 )
59@login_required
60def get_publicise_badges(snap_name):
61 snap_details = publisher_api.get_snap_info(snap_name, flask.session)
63 if snap_details["private"]:
64 return flask.abort(404, "No snap named {}".format(snap_name))
66 snap_public_details = store_api.get_item_details(snap_name, api_version=2)
68 context = {
69 "snap_name": snap_details["snap_name"],
70 "snap_title": snap_details["title"],
71 "publisher_name": snap_details["publisher"]["display-name"],
72 "snap_id": snap_details["snap_id"],
73 "trending": snap_public_details["snap"]["trending"],
74 }
76 return flask.render_template(
77 "publisher/publicise/github_badges.html", **context
78 )
81@login_required
82def get_publicise_cards(snap_name):
83 snap_details = publisher_api.get_snap_info(snap_name, flask.session)
85 if snap_details["private"]:
86 return flask.abort(404, "No snap named {}".format(snap_name))
88 screenshots = filter_screenshots(snap_details["media"])
89 has_screenshot = True if screenshots else False
91 context = {
92 "has_screenshot": has_screenshot,
93 "snap_name": snap_details["snap_name"],
94 "snap_title": snap_details["title"],
95 "publisher_name": snap_details["publisher"]["display-name"],
96 "snap_id": snap_details["snap_id"],
97 }
99 return flask.render_template(
100 "publisher/publicise/embedded_cards.html", **context
101 )