perf: pkg download

perf: resource download

perf: resource download
pull/13864/head
ibuler 2024-07-30 15:42:53 +08:00 committed by Bryan
parent 99ce82a6a0
commit a77ebc5fee
2 changed files with 52 additions and 22 deletions

View File

@ -12,6 +12,7 @@ from django.views.decorators.csrf import csrf_exempt
from django.views.generic import View, TemplateView from django.views.generic import View, TemplateView
from rest_framework.views import APIView from rest_framework.views import APIView
from common.utils import lazyproperty
from common.views.http import HttpResponseTemporaryRedirect from common.views.http import HttpResponseTemporaryRedirect
__all__ = [ __all__ = [
@ -94,6 +95,34 @@ class KokoView(View):
class ResourceDownload(TemplateView): class ResourceDownload(TemplateView):
template_name = 'resource_download.html' template_name = 'resource_download.html'
@lazyproperty
def versions_content(self):
return """
MRD_VERSION=10.6.7
OPENSSH_VERSION=v9.4.0.0
TINKER_VERSION=v0.1.6
VIDEO_PLAYER_VERSION=0.1.9
CLIENT_VERSION=v2.1.3
"""
def get_meta_json(self):
content = self.versions_content
lines = content.splitlines()
meta = {}
for line in lines:
line = line.strip()
if not line or line.startswith('#') or '=' not in line:
continue
key, value = line.split('=')
meta[key] = value
return meta
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
meta = self.get_meta_json()
context.update(meta)
return context
def csrf_failure(request, reason=""): def csrf_failure(request, reason=""):
from django.shortcuts import reverse from django.shortcuts import reverse

View File

@ -1,31 +1,33 @@
{% extends '_without_nav_base.html' %} {% extends '_without_nav_base.html' %}
{% load i18n %} {% load i18n %}
{% block body %} {% block body %}
<style> <style>
li { li {
list-style: disc; list-style: disc;
} }
ul { ul {
padding-left: 30px; padding-left: 30px;
padding-top: 10px; padding-top: 10px;
} }
p { p {
padding-top: 10px; padding-top: 10px;
} }
</style> </style>
<div style="margin: 0 200px"> <div style="margin: 0 200px">
<div class="group"> <div class="group">
<h2>JumpServer {% trans 'Client' %} v2.1.3</h2> <h2>JumpServer {% trans 'Client' %} {{ CLIENT_VERSION }}</h2>
<p> <p>
{% trans 'JumpServer Client, currently used to launch the client, now only support launch RDP SSH client, The Telnet client will next' %} {% trans 'JumpServer Client, currently used to launch the client, now only support launch RDP SSH client, The Telnet client will next' %}
</p> </p>
<ul> <ul>
<li> <a href="/download/public/JumpServer-Client-Installer-x86_64.msi">jumpserver-client-windows-x86_64.msi</a></li> <li> <a href="/download/public/JumpServer-Client-Installer-win-{{ CLIENT_VERSION }}-x64.msi">jumpserver-client-windows-x86_64.msi</a></li>
<li> <a href="/download/public/JumpServer-Client-Installer-x86_64.exe">jumpserver-client-windows-x86_64.exe</a></li> <li> <a href="/download/public/JumpServer-Client-Installer-win-{{ CLIENT_VERSION }}-x64.exe">jumpserver-client-windows-x86_64.exe</a></li>
<li> <a href="/download/public/JumpServer-Client-Installer-amd64.dmg">jumpserver-client-darwin.dmg(Intel)</a></li> <li> <a href="/download/public/JumpServer-Client-Installer-mac-{{ CLIENT_VERSION }}-x64.dmg">jumpserver-client-darwin.dmg(Intel)</a></li>
<li> <a href="/download/public/JumpServer-Client-Installer-arm64.dmg">jumpserver-client-darwin.dmg(Apple Silicon)</a></li> <li> <a href="/download/public/JumpServer-Client-Installer-mac-{{ CLIENT_VERSION }}-arm64.dmg">jumpserver-client-darwin.dmg(Apple Silicon)</a></li>
<li> <a href="/download/public/JumpServer-Client-Installer-amd64.deb">jumpserver-client-linux-amd64.deb</a></li> <li> <a href="/download/public/JumpServer-Client-Installer-linux-{{ CLIENT_VERSION }}-amd64.deb">jumpserver-client-linux-amd64.deb</a></li>
<li> <a href="/download/public/JumpServer-Client-Installer-arm64.deb">jumpserver-client-linux-arm64.deb</a></li> <li> <a href="/download/public/JumpServer-Client-Installer-linux-{{ CLIENT_VERSION }}-arm64.deb">jumpserver-client-linux-arm64.deb</a></li>
</ul> </ul>
</div> </div>
@ -35,33 +37,32 @@ p {
{% trans 'macOS needs to download the client to connect RDP asset, which comes with Windows' %} {% trans 'macOS needs to download the client to connect RDP asset, which comes with Windows' %}
</p> </p>
<ul> <ul>
<li><a href="/download/public/Microsoft_Remote_Desktop_10.6.7_installer.pkg">microsoft-remote-desktop-installer.pkg</a></li> <li><a href="/download/public/Microsoft_Remote_Desktop_{{ MRD_VERSION }}_installer.pkg">microsoft-remote-desktop-installer.pkg</a></li>
</ul> </ul>
</div> </div>
<div class="group"> <div class="group">
<h2>{% trans 'Windows Remote application publisher tools' %}</h2> <h2>{% trans 'Windows Remote application publisher tools' %}</h2>
<p>{% trans 'OpenSSH is a program used to connect remote applications in the Windows Remote Application Publisher' %}</p> <p>{% trans 'OpenSSH is a program used to connect remote applications in the Windows Remote Application Publisher' %}</p>
<ul> <ul>
<li><a href="/download/public/OpenSSH-Win64.msi">openSSH-win64.msi</a></li> <li><a href="/download/public/OpenSSH-Win64-{{ OPENSSH_VERSION }}.msi">openSSH-win64.msi</a></li>
</ul> </ul>
</div> </div>
<div class="group"> <div class="group">
<h2>JumpServer {% trans 'Offline video player' %} v0.1.9</h2> <h2>JumpServer {% trans 'Offline video player' %} v0.1.9</h2>
<ul> <ul>
<li><a href="/download/public/JumpServer-Video-Player.dmg">jumpserver-video-player.dmg</a></li> <li><a href="/download/public/JumpServer-Video-Player-{{ VIDEO_PLAYER_VERSION }}.dmg">jumpserver-video-player.dmg</a></li>
<li><a href="/download/public/JumpServer-Video-Player.exe">jumpserver-video-player.exe</a></li> <li><a href="/download/public/JumpServer-Video-Player.Setup.{{ VIDEO_PLAYER_VERSION }}.exe">jumpserver-video-player.exe</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<style> <style>
ul { ul {
list-style-type: disc; list-style-type: disc;
} }
li a { li a {
color: blue; color: blue;
} }