Commit 6c7dbe8c authored by nano's avatar nano

test

parent 1077e608
......@@ -6,7 +6,9 @@
<component name="ChangeListManager">
<list default="true" id="f0cbce64-0ebc-4f60-8c2d-2fe9e214a8c0" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/migrate.ts" afterPath="$PROJECT_DIR$/migrate.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/config.ts" afterPath="$PROJECT_DIR$/config.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/routes/package.ts" afterPath="$PROJECT_DIR$/src/routes/package.ts" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/test.ts" afterPath="$PROJECT_DIR$/test.ts" />
</list>
<ignored path="mycard-console-backend.iws" />
<ignored path=".idea/workspace.xml" />
......@@ -29,11 +31,11 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="migrate.ts" pinned="false" current-in-tab="true">
<file leaf-file-name="migrate.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/migrate.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="130">
<caret line="118" column="64" lean-forward="false" selection-start-line="118" selection-start-column="64" selection-end-line="118" selection-end-column="64" />
<state relative-caret-position="269">
<caret line="120" column="9" lean-forward="false" selection-start-line="120" selection-start-column="9" selection-end-line="120" selection-end-column="9" />
<folding>
<element signature="e#0#26#0" expanded="true" />
</folding>
......@@ -41,44 +43,27 @@
</provider>
</entry>
</file>
<file leaf-file-name="server.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/server.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="436">
<caret line="73" column="0" lean-forward="true" selection-start-line="73" selection-start-column="0" selection-end-line="73" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="utils.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/package/utils.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1473">
<caret line="12" column="15" lean-forward="true" selection-start-line="12" selection-start-column="15" selection-end-line="12" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="upload.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/routes/upload.ts">
<file leaf-file-name="package.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/routes/package.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-69">
<caret line="207" column="31" lean-forward="false" selection-start-line="207" selection-start-column="31" selection-end-line="207" selection-end-column="31" />
<state relative-caret-position="229">
<caret line="59" column="3" lean-forward="false" selection-start-line="59" selection-start-column="3" selection-end-line="59" selection-end-column="3" />
<folding>
<element signature="e#0#28#0" expanded="true" />
<element signature="e#39#74#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="utils.ts" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/utils.ts">
<file leaf-file-name="test.ts" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/test.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="291">
<caret line="32" column="7" lean-forward="true" selection-start-line="32" selection-start-column="7" selection-end-line="32" selection-end-column="7" />
<folding />
<state relative-caret-position="691">
<caret line="53" column="1" lean-forward="true" selection-start-line="53" selection-start-column="1" selection-end-line="53" selection-end-column="1" />
<folding>
<element signature="n#!!doc" expanded="true" />
<element signature="e#44#86#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
......@@ -96,8 +81,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>tags</find>
<find>tag</find>
<find>old</find>
<find>metalink</find>
<find>old_meta</find>
......@@ -126,6 +109,8 @@
<find>ctx</find>
<find>console.log</find>
<find>dist_path</find>
<find>try</find>
<find>map</find>
</findStrings>
</component>
<component name="Git.Settings">
......@@ -158,21 +143,21 @@
<option value="$PROJECT_DIR$/Dockerfile" />
<option value="$PROJECT_DIR$/entrypoint.sh" />
<option value="$PROJECT_DIR$/server.ts" />
<option value="$PROJECT_DIR$/views/update.hbs" />
<option value="$PROJECT_DIR$/package.json" />
<option value="$PROJECT_DIR$/src/routes/package.ts" />
<option value="$PROJECT_DIR$/src/dot.ts" />
<option value="$PROJECT_DIR$/test.ts" />
<option value="$PROJECT_DIR$/src/routes/app.ts" />
<option value="$PROJECT_DIR$/src/models/App.ts" />
<option value="$PROJECT_DIR$/package/utils.ts" />
<option value="$PROJECT_DIR$/aria2.conf" />
<option value="$PROJECT_DIR$/src/utils.ts" />
<option value="$PROJECT_DIR$/src/serives/download.ts" />
<option value="$PROJECT_DIR$/config.ts" />
<option value="$PROJECT_DIR$/package/main.ts" />
<option value="$PROJECT_DIR$/src/routes/upload.ts" />
<option value="$PROJECT_DIR$/migrate.ts" />
<option value="$PROJECT_DIR$/src/routes/package.ts" />
<option value="$PROJECT_DIR$/config.ts" />
<option value="$PROJECT_DIR$/views/update.hbs" />
<option value="$PROJECT_DIR$/src/utils.ts" />
<option value="$PROJECT_DIR$/test.ts" />
</list>
</option>
</component>
......@@ -243,24 +228,6 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="moecube-console" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="moecube-console" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="src" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="routes" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="moecube-console" />
......@@ -450,12 +417,12 @@
<workItem from="1493198225466" duration="47067000" />
<workItem from="1493371982129" duration="6000" />
<workItem from="1493372010655" duration="3472000" />
<workItem from="1493692283332" duration="25203000" />
<workItem from="1493692283332" duration="32521000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="226974000" />
<option name="totallyTimeSpent" value="234292000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
......@@ -468,6 +435,7 @@
</component>
<component name="ToolWindowManager">
<frame x="55" y="23" width="1377" height="872" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="DB Browser" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
......@@ -475,7 +443,7 @@
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.43941605" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32975295" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.31794873" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.36153847" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="TypeScript" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32820514" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.14011799" sideWeight="0.49384886" order="0" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32846716" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
......@@ -558,7 +526,15 @@
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="1" />
<breakpoints>
<line-breakpoint enabled="true" type="javascript">
<url>file://$PROJECT_DIR$/src/routes/package.ts</url>
<line>16</line>
<properties />
<option name="timeStamp" value="1" />
</line-breakpoint>
</breakpoints>
<option name="time" value="2" />
</breakpoint-manager>
<watches-manager />
</component>
......@@ -688,7 +664,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/views/update.hbs" />
<entry file="file://$PROJECT_DIR$/node_modules/axios/index.d.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
......@@ -782,17 +757,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1023">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="2" selection-end-column="3" />
<folding>
<element signature="n#!!doc" expanded="false" />
<element signature="e#44#86#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/entrypoint.sh">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
......@@ -817,80 +781,103 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package/utils.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1420">
<caret line="12" column="15" lean-forward="true" selection-start-line="12" selection-start-column="15" selection-end-line="12" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216">
<caret line="12" column="51" lean-forward="true" selection-start-line="12" selection-start-column="51" selection-end-line="12" selection-end-column="51" />
<state relative-caret-position="234">
<caret line="13" column="72" lean-forward="false" selection-start-line="13" selection-start-column="72" selection-end-line="13" selection-end-column="72" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/app.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="402">
<state relative-caret-position="1530">
<caret line="90" column="25" lean-forward="false" selection-start-line="90" selection-start-column="25" selection-end-line="90" selection-end-column="25" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package/main.ts">
<entry file="file://$PROJECT_DIR$/migrate.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="337">
<caret line="83" column="10" lean-forward="true" selection-start-line="83" selection-start-column="10" selection-end-line="83" selection-end-column="10" />
<state relative-caret-position="269">
<caret line="120" column="9" lean-forward="false" selection-start-line="120" selection-start-column="9" selection-end-line="120" selection-end-column="9" />
<folding>
<element signature="e#0#29#0" expanded="true" />
<element signature="e#0#26#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/server.ts">
<entry file="file://$PROJECT_DIR$/views/update.hbs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="436">
<caret line="73" column="0" lean-forward="true" selection-start-line="73" selection-start-column="0" selection-end-line="73" selection-end-column="0" />
<state relative-caret-position="90">
<caret line="5" column="42" lean-forward="true" selection-start-line="5" selection-start-column="42" selection-end-line="5" selection-end-column="42" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/utils.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="23" column="56" lean-forward="true" selection-start-line="23" selection-start-column="56" selection-end-line="23" selection-end-column="56" />
<folding>
<element signature="e#0#24#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/upload.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-69">
<caret line="207" column="31" lean-forward="false" selection-start-line="207" selection-start-column="31" selection-end-line="207" selection-end-column="31" />
<state relative-caret-position="624">
<caret line="204" column="42" lean-forward="true" selection-start-line="204" selection-start-column="42" selection-end-line="204" selection-end-column="42" />
<folding>
<element signature="e#0#28#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/utils.ts">
<entry file="file://$PROJECT_DIR$/server.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="291">
<caret line="32" column="7" lean-forward="true" selection-start-line="32" selection-start-column="7" selection-end-line="32" selection-end-column="7" />
<state relative-caret-position="436">
<caret line="73" column="0" lean-forward="false" selection-start-line="73" selection-start-column="0" selection-end-line="73" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package/utils.ts">
<entry file="file://$PROJECT_DIR$/src/routes/package.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1473">
<caret line="12" column="15" lean-forward="true" selection-start-line="12" selection-start-column="15" selection-end-line="12" selection-end-column="15" />
<folding />
<state relative-caret-position="229">
<caret line="59" column="3" lean-forward="false" selection-start-line="59" selection-start-column="3" selection-end-line="59" selection-end-column="3" />
<folding>
<element signature="e#39#74#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routes/package.ts">
<entry file="file://$PROJECT_DIR$/package/main.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1887">
<caret line="209" column="36" lean-forward="false" selection-start-line="209" selection-start-column="36" selection-end-line="209" selection-end-column="36" />
<folding />
<state relative-caret-position="310">
<caret line="43" column="23" lean-forward="true" selection-start-line="43" selection-start-column="23" selection-end-line="43" selection-end-column="23" />
<folding>
<element signature="e#0#29#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/migrate.ts">
<entry file="file://$PROJECT_DIR$/test.ts">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="130">
<caret line="118" column="64" lean-forward="false" selection-start-line="118" selection-start-column="64" selection-end-line="118" selection-end-column="64" />
<state relative-caret-position="691">
<caret line="53" column="1" lean-forward="true" selection-start-line="53" selection-start-column="1" selection-end-line="53" selection-end-column="1" />
<folding>
<element signature="e#0#26#0" expanded="true" />
<element signature="n#!!doc" expanded="true" />
<element signature="e#44#86#0" expanded="true" />
</folding>
</state>
</provider>
......
......@@ -12,7 +12,7 @@ export default {
new_package: `${baseUrl}/v1/package/`,
new_app: (appId) => `${baseUrl}/v1/app/${appId}`,
old_metalinks: (package_id) => `https://cdn01.moecube.com/release/metalinks/${package_id}.meta4`,
new_metalinks: (package_id) => `${baseUrl}/${package_id}/meta`,
new_metalinks: (package_id) => `${baseUrl}/v2/package-legacy/${package_id}/meta`,
old_checksums: (package_id) => `https://cdn01.moecube.com/release/checksums/${package_id}`,
new_checksums: (package_id) => `${baseUrl}/${package_id}/checksum`,
new_checksums: (package_id) => `${baseUrl}/v2/package-legacy/${package_id}/checksum`,
};
......@@ -2,7 +2,6 @@ import Router = require('koa-router');
import {toObjectID} from 'iridium';
import {mongodb} from '../models/Iridium';
import {Context} from 'koa';
import config from '../../config';
import {Archive, Package} from '../models/Package';
import {renderChecksum} from '../utils';
const router = new Router();
......@@ -15,7 +14,16 @@ router.get('/v2/packages', async (ctx: Context, next) => {
appId: ctx.request.query.appId,
status: 'uploaded'
}).toArray();
ctx.body = packs
ctx.body = packs;
});
router.get('/v2/package-legacy/:id/checksum', async (ctx: Context, next) => {
let pack = await mongodb.Packages.findOne({appId: ctx.params.id, status: 'uploaded'});
if (!pack) {
return ctx.throw(400, 'pack error');
}
ctx.body = renderChecksum(pack.files);
});
......@@ -44,6 +52,22 @@ router.get('/v2/package/:id/meta', async (ctx: Context, next) => {
});
});
router.get('/v2/package-legacy/:id/meta', async (ctx: Context, next) => {
let pack = await mongodb.Packages.findOne({appId: ctx.params.id, status: 'uploaded'});
if (!pack) {
return ctx.throw(400, 'pack error');
}
await ctx['render']('update', {
files: {
name: pack.id,
size: pack.fullSize,
hash: pack.fullHash
}
});
});
router.post('/v2/package/:id/update', async (ctx: Context, next) => {
const package_id = ctx.params.id;
const request_overhead = 1024 * 1024;
......
......@@ -11,15 +11,24 @@ async function test_checksums() {
const apps: any[] = (await (await fetch(config.new_apps_json)).json())
.filter(i => !['ygopro', 'desmume'].includes(i.id)); // 排除 ygopro 和 desmume
for (let app of _.sampleSize(apps, 5)) {
let oldMaps = new Set();
for (let app of apps) {
console.log(`正在测试 ${app.id} 的 checksum`);
const old_checksum = await (await fetch(config.old_checksums(app.id))).text();
const new_checksum = await (await fetch(config.new_checksums(app.id))).text();
if (old_checksum !== new_checksum) {
old_checksum.split('\n').forEach(line => {
oldMaps.add(line);
});
new_checksum.split('\n').forEach(line => {
if (!oldMaps.has(line)) {
console.log('', old_checksum);
console.log('', new_checksum);
throw `应用 ${app.id} 的 checksum 不一致`;
}
});
}
}
async function test_download() {
......@@ -71,9 +80,14 @@ async function test_apps_json() {
async function main() {
// await test_apps_json();
try {
await test_checksums();
await test_download();
await test_update();
} catch (e) {
console.log(e);
}
console.log('ok');
}
......
<?xml version="1.0" encoding="UTF-8"?>
<metalink xmlns="urn:ietf:params:xml:ns:metalink">
{{#files}}
<file name="{{name}}">
<size>{{size}}</size>
<hash type="sha-256">{{hash}}</hash>
<url priority="1">https://cdn01.moecube.com/test-release/{{hash}}.tar.gz</url>
<url priority="1">https://cdn01.moecube.com/test-release/{{hash}}.tar.gz</url>
</file>
{{/files}}
</metalink>
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