Hide keyboard shortcuts

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) 

7 

8# Local 

9from webapp.helpers import api_publisher_session 

10from webapp.decorators import login_required 

11from webapp.store.logic import filter_screenshots 

12 

13store_api = SnapStore(api_publisher_session) 

14publisher_api = SnapPublisher(api_publisher_session) 

15 

16 

17@login_required 

18def get_publicise(snap_name): 

19 snap_details = publisher_api.get_snap_info(snap_name, flask.session) 

20 

21 is_released = len(snap_details["channel_maps_list"]) > 0 

22 

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 } 

42 

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 } 

53 

54 return flask.render_template( 

55 "publisher/publicise/store_buttons.html", **context 

56 ) 

57 

58 

59@login_required 

60def get_publicise_badges(snap_name): 

61 snap_details = publisher_api.get_snap_info(snap_name, flask.session) 

62 

63 if snap_details["private"]: 

64 return flask.abort(404, "No snap named {}".format(snap_name)) 

65 

66 snap_public_details = store_api.get_item_details(snap_name, api_version=2) 

67 

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 } 

75 

76 return flask.render_template( 

77 "publisher/publicise/github_badges.html", **context 

78 ) 

79 

80 

81@login_required 

82def get_publicise_cards(snap_name): 

83 snap_details = publisher_api.get_snap_info(snap_name, flask.session) 

84 

85 if snap_details["private"]: 

86 return flask.abort(404, "No snap named {}".format(snap_name)) 

87 

88 screenshots = filter_screenshots(snap_details["media"]) 

89 has_screenshot = True if screenshots else False 

90 

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 } 

98 

99 return flask.render_template( 

100 "publisher/publicise/embedded_cards.html", **context 

101 )