Commit e555ea2e authored by 神楽坂玲奈's avatar 神楽坂玲奈

动态下载地址

parent 29bba1f3
FROM node
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app
RUN npm run build:aot
VOLUME /usr/src/app/aot
CMD [ "echo", "mycard-store" ]
......@@ -6,7 +6,6 @@
<a class="navbar-brand" href="#">
<img src="https://mycard.moe/logo_60.png" width="40" height="40" class="d-inline-block align-center" alt=""> MyCard
</a>
<!--<a class="navbar-brand" href="#"></a>-->
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
<ul class="navbar-nav mr-auto">
......@@ -28,12 +27,13 @@
<div class="col-md-5" id="title">
<h1 class="display-3">萌卡<sup class="titileBeta">BETA</sup></h1>
<p>MyCard 同人游戏平台</p>
<p>
<a class="btn btn-primary btn-lg" href="https://wudizhanche.mycard.moe/download?platform=win32" role="button">立即安装</a>
<p *ngIf="latest">
<a class="btn btn-primary btn-lg" [href]="latest.win32.url" role="button">立即安装</a>
</p>
<p>
萌卡平台支持 <a href="https://wudizhanche.mycard.moe/download?platform=win32">Windows</a>
<a href="https://wudizhanche.mycard.moe/download?platform=darwin">Mac</a> 操作系统。</p>
<p *ngIf="latest">
萌卡平台支持 <a [href]="latest.win32.url">Windows</a><a [href]="latest.darwin.url">Mac</a> 操作系统。
</p>
<p *ngIf="!latest">Loading...</p>
</div>
<div class="col">
<img id="pic" src="MyCardProduct.png">
......@@ -114,9 +114,9 @@
<div id="requirements-wrapper">
<div class="container">
<div class="row">
<div id="setup" class="col">
<div id="setup" class="col" *ngIf="latest">
<p>欢迎加入萌卡这个大家庭</p>
<a class="btn btn-primary btn-lg" href="https://wudizhanche.mycard.moe/download?platform=win32" role="button">立即安装</a>
<a class="btn btn-primary btn-lg" [href]="latest.win32.url" role="button">立即安装</a>
</div>
<div id="requirements" class="col">
<p>
......@@ -139,4 +139,3 @@
</footer>
</div>
</div>
import {Component, OnInit} from '@angular/core';
import {Http, URLSearchParams} from '@angular/http';
import 'rxjs/Rx';
import * as yaml from 'js-yaml';
@Component({
moduleId: module.id,
......@@ -9,22 +10,49 @@ import 'rxjs/Rx';
styleUrls: ['store.component.css'],
})
export class StoreComponent implements OnInit {
signups: number;
online: number;
stats: {signups: number; online: number;};
latest: {win32: {version: string, url: string}, darwin: {version: string, url: string}};
constructor (private http: Http) {
}
async ngOnInit () {
this.latest = {
win32: await this.get_latest_win32(),
darwin: await this.get_latest_darwin()
};
this.stats = {
signups: await this.get_stats_signups(),
online: await this.get_stats_online()
};
}
async get_latest_win32 () {
let data = await this.http.get('https://wudizhanche.mycard.moe/downloads/latest.yml').map(response => yaml.safeLoad(response.text())).toPromise();
data.url = 'https://r.my-card.in/downloads/' + data.path;
return data;
}
async get_latest_darwin () {
let data = await this.http.get('https://wudizhanche.mycard.moe/downloads/latest-mac.json').map(response => response.json()).toPromise();
data.url = data.url.replace('-mac.zip', '.dmg').replace('https://wudizhanche.mycard.moe/downloads/', 'https://r.my-card.in/downloads/');
return data;
}
async get_stats_signups () {
let params = new URLSearchParams();
params.set('api_key', 'dc7298a754828b3d26b709f035a0eeceb43e73cbd8c4fa8dec18951f8a95d2bc');
params.set('api_username', 'zh99998');
let data = await this.http.get('https://ygobbs.com/admin/dashboard.json', {search: params})
.map(response => response.json()).toPromise();
this.signups = data.global_reports.find((item: any) => item.type === 'signups').total;
return data.global_reports.find((item: any) => item.type === 'signups').total;
}
async get_stats_online () {
let document = await this.http.get('https://chat.mycard.moe/stats/online')
.map(response => new DOMParser().parseFromString(response.text(), 'text/xml')).toPromise();
this.online = parseInt(document.querySelector('#content > table > tbody > tr:nth-child(2) > td:nth-child(2)').textContent);
return parseInt(document.querySelector('#content > table > tbody > tr:nth-child(2) > td:nth-child(2)').textContent);
}
}
......@@ -29,7 +29,8 @@
'jquery': 'npm:jquery/dist/jquery.min.js',
'tether': 'npm:tether/dist/js/tether.min.js',
'bootstrap': 'npm:bootstrap/dist/js/bootstrap.min.js'
'bootstrap': 'npm:bootstrap/dist/js/bootstrap.min.js',
'js-yaml': 'npm:js-yaml/dist/js-yaml.min.js'
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment