Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
mycard
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
syntax_j
mycard
Commits
07b9e520
Commit
07b9e520
authored
Oct 21, 2016
by
神楽坂玲奈
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
news
parent
46a685a2
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
276 additions
and
454 deletions
+276
-454
app/app-detail.component.css
app/app-detail.component.css
+3
-0
app/app-detail.component.html
app/app-detail.component.html
+33
-9
app/apps.service.ts
app/apps.service.ts
+1
-0
app/ygopro.component.html
app/ygopro.component.html
+162
-2
app/ygopro.component.ts
app/ygopro.component.ts
+39
-4
apps.json
apps.json
+38
-439
No files found.
app/app-detail.component.css
View file @
07b9e520
...
@@ -20,3 +20,6 @@ progress {
...
@@ -20,3 +20,6 @@ progress {
margin-top
:
2px
;
margin-top
:
2px
;
}
}
.carousel-inner
img
{
width
:
100%
;
}
\ No newline at end of file
app/app-detail.component.html
View file @
07b9e520
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
<div
*ngIf=
"!appsService.getDownloadInfo(routingService.app)"
>
<div
*ngIf=
"!appsService.getDownloadInfo(routingService.app)"
>
<button
type=
"button"
class=
"btn btn-primary"
data-toggle=
"modal"
data-target=
"#install-modal"
>
安装
</button>
<button
type=
"button"
class=
"btn btn-primary"
data-toggle=
"modal"
data-target=
"#install-modal"
>
安装
</button>
<button
type=
"button"
class=
"btn btn-secondary"
>
导入
</button>
<button
type=
"button"
class=
"btn btn-secondary"
>
导入
</button>
<
button
type=
"button"
class=
"btn btn-secondary"
>
正版代购
</button
>
<
!--<button type="button" class="btn btn-secondary">正版代购</button>--
>
</div>
</div>
<div
*ngIf=
"appsService.getDownloadInfo(routingService.app)"
>
<div
*ngIf=
"appsService.getDownloadInfo(routingService.app)"
>
<div
*ngIf=
"appsService.getDownloadInfo(routingService.app).status === 'install'"
>
正在安装...
</div>
<div
*ngIf=
"appsService.getDownloadInfo(routingService.app).status === 'install'"
>
正在安装...
</div>
...
@@ -18,23 +18,45 @@
...
@@ -18,23 +18,45 @@
<div
*ngIf=
"isInstalled && (routingService.app != 'ygopro')"
>
<div
*ngIf=
"isInstalled && (routingService.app != 'ygopro')"
>
<button
(click)=
"startApp(routingService.app)"
type=
"button"
class=
"btn btn-primary"
>
运行
</button>
<button
(click)=
"startApp(routingService.app)"
type=
"button"
class=
"btn btn-primary"
>
运行
</button>
<button
type=
"button"
data-toggle=
"modal"
data-target=
"#settings-modal"
class=
"btn btn-secondary"
>
设置
</button>
<button
type=
"button"
data-toggle=
"modal"
data-target=
"#settings-modal"
class=
"btn btn-secondary"
>
设置
</button>
<
button
(click)=
"appsService.browse(routingService.app)"
type=
"button"
class=
"btn btn-secondary"
>
游览本地文件
</button
>
<
!--<button (click)="appsService.browse(routingService.app)" type="button" class="btn btn-secondary">游览本地文件</button>--
>
<button
type=
"button"
class=
"btn btn-secondary"
>
联机
</button>
<button
type=
"button"
class=
"btn btn-secondary"
>
联机
</button>
</div>
</div>
<ygopro
*ngIf=
"isInstalled && (routingService.app == 'ygopro')"
></ygopro>
<ygopro
*ngIf=
"isInstalled && (routingService.app == 'ygopro')"
></ygopro>
<br>
<br>
<h2>
新闻
</h2>
<h2
*ngIf=
"news"
>
新闻
</h2>
<p
*ngIf=
"!news"
>
没有新闻
</p>
<!--<div *ngIf="news">
<div
*ngIf=
"news"
>
<div class="list-group">
<div class="list-group">
<a *ngFor="let item of news" href="{{item.url}}" class="list-group-item">{{item.title}}</a>
<a *ngFor="let item of news" href="{{item.url}}" class="list-group-item">{{item.title}}</a>
</div>
</div>
</div>-->
<div
id=
"carousel-example-generic"
class=
"carousel slide"
data-ride=
"carousel"
>
<ol
class=
"carousel-indicators"
>
<li
*ngFor=
"let item of news; let index = index;"
data-target=
"#carousel-example-generic"
[data-slide-to]=
"index"
[class.active]=
"index == 0"
></li>
</ol>
<div
class=
"carousel-inner"
role=
"listbox"
>
<div
*ngFor=
"let item of news; let index = index;"
class=
"carousel-item"
[class.active]=
"index == 0"
>
<img
[src]=
"item.image"
[alt]=
"item.title"
>
<div
class=
"carousel-caption"
>
<h3>
{{item.title}}
</h3>
<p>
{{item.text}}
</p>
</div>
</div>
</div>
<a
class=
"left carousel-control"
href=
"#carousel-example-generic"
role=
"button"
data-slide=
"prev"
>
<span
class=
"icon-prev"
aria-hidden=
"true"
></span>
<span
class=
"sr-only"
>
Previous
</span>
</a>
<a
class=
"right carousel-control"
href=
"#carousel-example-generic"
role=
"button"
data-slide=
"next"
>
<span
class=
"icon-next"
aria-hidden=
"true"
></span>
<span
class=
"sr-only"
>
Next
</span>
</a>
</div>
</div>
<br>
<br>
<div
*ngIf=
"friends"
>
<div
*ngIf=
"friends"
>
...
@@ -88,7 +110,12 @@
...
@@ -88,7 +110,12 @@
</table>
</table>
</div>
</div>
<button
(click)=
"appsService.doTar()"
>
DOTAR
</button>
<div
*ngIf=
"isInstalled"
>
<h2>
本地文件
</h2>
<button
(click)=
"appsService.browse(routingService.app)"
type=
"button"
class=
"btn btn-secondary"
>
浏览本地文件
</button>
<button
(click)=
"uninstall()"
type=
"button"
class=
"btn btn-secondary"
>
{{'uninstall'|translate}}
</button>
</div>
<div
class=
"modal fade"
id=
"settings-modal"
tabindex=
"-1"
>
<div
class=
"modal fade"
id=
"settings-modal"
tabindex=
"-1"
>
<div
class=
"modal-dialog"
role=
"document"
>
<div
class=
"modal-dialog"
role=
"document"
>
<div
class=
"modal-content"
>
<div
class=
"modal-content"
>
...
@@ -187,10 +214,7 @@
...
@@ -187,10 +214,7 @@
<div
class=
"modal-footer"
>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-secondary"
data-dismiss=
"modal"
>
取消
</button>
<button
type=
"button"
class=
"btn btn-secondary"
data-dismiss=
"modal"
>
取消
</button>
<button
id=
"submit"
type=
"submit"
[disabled]=
"!theForm.form.valid"
class=
"btn btn-primary"
>
安装
</button>
<button
id=
"submit"
type=
"submit"
[disabled]=
"!theForm.form.valid"
class=
"btn btn-primary"
>
安装
</button>
</div>
</div>
<!--
-->
</form>
</form>
</div>
</div>
</div>
</div>
...
...
app/apps.service.ts
View file @
07b9e520
...
@@ -229,6 +229,7 @@ export class AppsService {
...
@@ -229,6 +229,7 @@ export class AppsService {
deleteFile
(
path
:
string
):
Promise
<
string
>
{
deleteFile
(
path
:
string
):
Promise
<
string
>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
fs
.
lstat
(
path
,
(
err
,
stats
)
=>
{
fs
.
lstat
(
path
,
(
err
,
stats
)
=>
{
if
(
err
)
return
resolve
(
path
);
if
(
stats
.
isDirectory
())
{
if
(
stats
.
isDirectory
())
{
fs
.
rmdir
(
path
,
(
err
)
=>
{
fs
.
rmdir
(
path
,
(
err
)
=>
{
resolve
(
path
);
resolve
(
path
);
...
...
app/ygopro.component.html
View file @
07b9e520
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
</select>
</select>
</div>
</div>
<button
type=
"submit"
class=
"btn btn-secondary"
(click)=
"edit_deck(current_deck)"
>
编辑
</button>
<button
type=
"submit"
class=
"btn btn-secondary"
(click)=
"edit_deck(current_deck)"
>
编辑
</button>
<button
type=
"submit"
class=
"btn btn-secondary"
>
删除
</button>
<button
type=
"submit"
(click)=
"delete_deck(current_deck)"
class=
"btn btn-secondary"
>
删除
</button>
<button
type=
"submit"
(click)=
"refresh()"
class=
"btn btn-secondary"
>
刷新
</button>
<button
type=
"submit"
(click)=
"refresh()"
class=
"btn btn-secondary"
>
刷新
</button>
</form>
</form>
...
@@ -16,5 +16,165 @@
...
@@ -16,5 +16,165 @@
<button
type=
"button"
class=
"btn btn-secondary"
data-toggle=
"modal"
data-target=
"#game-create-modal"
>
创建房间
</button>
<button
type=
"button"
class=
"btn btn-secondary"
data-toggle=
"modal"
data-target=
"#game-create-modal"
>
创建房间
</button>
<button
type=
"button"
class=
"btn btn-secondary"
data-toggle=
"modal"
data-target=
"#game-list-modal"
>
房间列表
</button>
<button
type=
"button"
class=
"btn btn-secondary"
data-toggle=
"modal"
data-target=
"#game-list-modal"
>
房间列表
</button>
<button
type=
"button"
class=
"btn btn-secondary"
data-toggle=
"modal"
data-target=
"#game-create-windbot"
>
单人模式
</button>
<button
type=
"button"
class=
"btn btn-secondary"
data-toggle=
"modal"
data-target=
"#game-create-windbot"
>
单人模式
</button>
<button
(click)=
"appsService.browse(routingService.app)"
type=
"button"
class=
"btn btn-secondary"
>
浏览本地文件
</button>
<!--<button (click)="appsService.browse(routingService.app)" type="button" class="btn btn-secondary">浏览本地文件</button>-->
</div>
<div
class=
"modal fade"
id=
"game-create-windbot"
tabindex=
"-1"
role=
"dialog"
aria-labelledby=
"myModalLabel"
aria-hidden=
"true"
>
<div
class=
"modal-dialog"
role=
"document"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
>
<span
aria-hidden=
"true"
>
×
</span>
</button>
<h4
class=
"modal-title"
id=
"myModalLabel1"
>
单人模式
</h4>
</div>
<div
class=
"modal-body"
>
<label>
选择对手
</label>
<div
id=
"windbot"
class=
"list-group"
>
<a
*ngFor=
"let name of windbot"
href=
"#"
class=
"list-group-item"
onclick=
"join_windbot(name)"
>
{{name}}
</a>
</div>
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-secondary"
data-dismiss=
"modal"
>
取消
</button>
</div>
</div>
</div>
</div>
<div
class=
"modal fade"
id=
"game-create-modal"
tabindex=
"-1"
role=
"dialog"
aria-labelledby=
"myModalLabel"
aria-hidden=
"true"
>
<div
class=
"modal-dialog"
role=
"document"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
>
<span
aria-hidden=
"true"
>
×
</span>
</button>
<h4
class=
"modal-title"
id=
"myModalLabel"
>
创建房间
</h4>
</div>
<form
id=
"game-create"
>
<div
class=
"modal-body"
>
<div
class=
"form-group row"
>
<label
for=
"game-create-title"
class=
"col-sm-2 form-control-label"
>
游戏标题
</label>
<div
class=
"col-sm-10"
>
<input
type=
"text"
class=
"form-control"
id=
"game-create-title"
name=
"title"
>
</div>
</div>
<div
class=
"form-group row"
>
<label
for=
"game-create-rule"
class=
"col-sm-2 form-control-label"
>
卡片允许
</label>
<div
class=
"col-sm-10"
>
<select
class=
"form-control"
id=
"game-create-rule"
name=
"rule"
>
<option
value=
"0"
selected
>
OCG
</option>
<option
value=
"1"
>
TCG
</option>
<option
value=
"2"
>
OCG
&
TCG
</option>
<option
value=
"3"
>
专有卡禁止
</option>
</select>
</div>
</div>
<div
class=
"form-group row"
>
<label
for=
"game-create-mode"
class=
"col-sm-2 form-control-label"
>
决斗模式
</label>
<div
class=
"col-sm-10"
>
<select
class=
"form-control"
id=
"game-create-mode"
name=
"mode"
>
<option
value=
"0"
>
单局模式
</option>
<option
value=
"1"
selected
>
比赛模式
</option>
<option
value=
"2"
>
TAG
</option>
</select>
</div>
</div>
<div
class=
"form-group row"
>
<label
class=
"col-sm-2 form-control-label"
>
额外选项
</label>
<div
class=
"col-sm-4"
>
<div
class=
"row"
>
<label
for=
"game-create-start-lp"
class=
"col-sm-6 form-control-label"
>
初始 LP
</label>
<div
class=
"col-sm-6"
>
<input
name=
"start_lp"
type=
"number"
value=
"8000"
min=
"1"
max=
"65536"
class=
"form-control form-control-sm game-create-extra"
id=
"game-create-start-lp"
>
</div>
</div>
<div
class=
"row"
>
<label
for=
"game-create-start-hand"
class=
"col-sm-6 form-control-label"
>
初始手牌数
</label>
<div
class=
"col-sm-6"
>
<input
name=
"start_hand"
type=
"number"
value=
"5"
min=
"0"
max=
"16"
class=
"form-control form-control-sm game-create-extra"
id=
"game-create-start-hand"
>
</div>
</div>
<div
class=
"row"
>
<label
for=
"game-create-draw-count"
class=
"col-sm-6 form-control-label"
>
每回合抽卡
</label>
<div
class=
"col-sm-6"
>
<input
name=
"draw_count"
type=
"number"
value=
"1"
min=
"0"
max=
"16"
class=
"form-control form-control-sm game-create-extra"
id=
"game-create-draw-count"
>
</div>
</div>
</div>
<div
class=
"col-sm-6"
>
<div
class=
"checkbox"
>
<label>
<input
name=
"enable_priority"
type=
"checkbox"
>
允许启动效果优先权
</label>
</div>
<div
class=
"checkbox"
>
<label>
<input
name=
"no_check_deck"
type=
"checkbox"
>
不检查卡组
</label>
</div>
<div
class=
"checkbox"
>
<label>
<input
name=
"no_shuffle_deck"
type=
"checkbox"
>
开局不洗卡组
</label>
</div>
</div>
</div>
<div
class=
"form-group row"
>
<label
class=
"col-sm-2"
>
私密房间
</label>
<div
class=
"col-sm-10"
>
<div
class=
"checkbox"
>
<label>
<input
name=
"private"
type=
"checkbox"
>
不在房间列表中显示 (约战功能还没做好,不要勾
</label>
</div>
</div>
</div>
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-secondary float-left"
data-dismiss=
"modal"
data-toggle=
"modal"
data-target=
"#game-list-modal"
>
查看房间
</button>
<button
type=
"button"
class=
"btn btn-secondary"
data-dismiss=
"modal"
>
取消
</button>
<button
type=
"submit"
class=
"btn btn-primary"
>
创建
</button>
</div>
</form>
</div>
</div>
</div>
<!-- Modal -->
<div
class=
"modal fade"
id=
"game-list-modal"
tabindex=
"-1"
role=
"dialog"
aria-labelledby=
"myModalLabel"
aria-hidden=
"true"
>
<div
class=
"modal-dialog"
role=
"document"
>
<div
class=
"modal-content"
>
<table
class=
"table table-striped table-hover"
>
<thead
class=
"modal-header"
>
<tr>
<th
class=
"title"
>
游戏标题
</th>
<th
class=
"users"
>
玩家
</th>
<th
class=
"mode"
>
决斗模式
</th>
<th
class=
"extra"
>
额外选项
</th>
</tr>
</thead>
<tbody
class=
"modal-body"
></tbody>
</table>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
>
<span
aria-hidden=
"true"
>
×
</span>
</button>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-secondary float-left"
data-dismiss=
"modal"
data-toggle=
"modal"
data-target=
"#game-create-modal"
>
创建房间
</button>
<button
type=
"button"
class=
"btn btn-secondary"
data-dismiss=
"modal"
>
取消
</button>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
app/ygopro.component.ts
View file @
07b9e520
...
@@ -12,6 +12,7 @@ const path = System._nodeRequire('path');
...
@@ -12,6 +12,7 @@ const path = System._nodeRequire('path');
const
child_process
=
System
.
_nodeRequire
(
'
child_process
'
);
const
child_process
=
System
.
_nodeRequire
(
'
child_process
'
);
//const Promise = System._nodeRequire('bluebird');
//const Promise = System._nodeRequire('bluebird');
const
ini
=
System
.
_nodeRequire
(
'
ini
'
);
const
ini
=
System
.
_nodeRequire
(
'
ini
'
);
const
electron
=
System
.
_nodeRequire
(
'
electron
'
);
@
Component
({
@
Component
({
selector
:
'
ygopro
'
,
selector
:
'
ygopro
'
,
...
@@ -27,18 +28,22 @@ export class YGOProComponent {
...
@@ -27,18 +28,22 @@ export class YGOProComponent {
numfont
=
{
'
darwin
'
:
[
'
/System/Library/Fonts/PingFang.ttc
'
]};
numfont
=
{
'
darwin
'
:
[
'
/System/Library/Fonts/PingFang.ttc
'
]};
textfont
=
{
'
darwin
'
:
[
'
/System/Library/Fonts/PingFang.ttc
'
]};
textfont
=
{
'
darwin
'
:
[
'
/System/Library/Fonts/PingFang.ttc
'
]};
windbot
=
[
"
琪露诺
"
,
"
谜之剑士LV4
"
,
"
复制植物
"
,
"
尼亚
"
];
servers
=
[{
address
:
"
112.124.105.11
"
,
port
:
7911
}];
constructor
(
private
appsService
:
AppsService
,
private
routingService
:
RoutingService
)
{
constructor
(
private
appsService
:
AppsService
,
private
routingService
:
RoutingService
)
{
this
.
refresh
()
this
.
refresh
()
}
}
refresh
()
{
refresh
=
()
=>
{
this
.
get_decks
().
then
((
decks
)
=>
{
this
.
get_decks
().
then
((
decks
)
=>
{
this
.
decks
=
decks
;
this
.
decks
=
decks
;
if
(
!
(
this
.
current_deck
in
this
.
decks
))
{
if
(
!
(
this
.
current_deck
in
this
.
decks
))
{
this
.
current_deck
=
decks
[
0
];
this
.
current_deck
=
decks
[
0
];
}
}
})
})
}
}
;
get_decks
():
Promise
<
[
string
]
>
{
get_decks
():
Promise
<
[
string
]
>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
...
@@ -77,6 +82,12 @@ export class YGOProComponent {
...
@@ -77,6 +82,12 @@ export class YGOProComponent {
.
catch
(
reason
=>
console
.
log
(
reason
))
.
catch
(
reason
=>
console
.
log
(
reason
))
}
}
delete_deck
(
deck
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
fs
.
unlink
(
path
.
join
(
this
.
app
.
local
.
path
,
'
deck
'
,
deck
+
'
.ydk
'
),
resolve
)
}).
then
(
this
.
refresh
)
}
fix_fonts
=
(
data
)
=>
{
fix_fonts
=
(
data
)
=>
{
return
this
.
get_font
([
data
.
numfont
])
return
this
.
get_font
([
data
.
numfont
])
.
catch
(()
=>
this
.
get_font
(
this
.
numfont
[
process
.
platform
]).
then
(
font
=>
data
[
'
numfont
'
]
=
font
))
.
catch
(()
=>
this
.
get_font
(
this
.
numfont
[
process
.
platform
]).
then
(
font
=>
data
[
'
numfont
'
]
=
font
))
...
@@ -105,15 +116,39 @@ export class YGOProComponent {
...
@@ -105,15 +116,39 @@ export class YGOProComponent {
})
})
};
};
join
(
name
,
server
)
{
this
.
load_system_conf
()
.
then
(
this
.
fix_fonts
)
.
then
(
data
=>
{
data
[
'
lastdeck
'
]
=
this
.
current_deck
;
data
[
'
lastip
'
]
=
server
.
address
;
data
[
'
lastport
'
]
=
server
.
port
;
data
[
'
roompass
'
]
=
name
;
return
data
})
.
then
(
this
.
save_system_conf
)
.
then
(()
=>
[
'
-j
'
])
.
then
(
this
.
start_game
)
.
catch
(
reason
=>
console
.
log
(
reason
))
};
join_windbot
(
name
)
{
this
.
join
(
name
,
this
.
servers
[
0
])
}
start_game
=
(
args
)
=>
{
start_game
=
(
args
)
=>
{
let
win
=
electron
.
remote
.
getCurrentWindow
();
win
.
minimize
();
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
child
=
child_process
.
spawn
(
path
.
join
(
this
.
app
.
local
.
path
,
this
.
app
.
actions
[
process
.
platform
][
'
main
'
][
'
execute
'
]),
args
,
{
cwd
:
this
.
app
.
local
.
path
});
let
child
=
child_process
.
spawn
(
path
.
join
(
this
.
app
.
local
.
path
,
this
.
app
.
actions
[
process
.
platform
][
'
main
'
][
'
execute
'
]),
args
,
{
cwd
:
this
.
app
.
local
.
path
});
child
.
on
(
'
error
'
,
(
error
)
=>
{
child
.
on
(
'
error
'
,
(
error
)
=>
{
reject
(
error
)
reject
(
error
);
win
.
restore
()
});
});
child
.
on
(
'
exit
'
,
(
code
,
signal
)
=>
{
child
.
on
(
'
exit
'
,
(
code
,
signal
)
=>
{
// error 触发之后还可能会触发exit,但是Promise只承认首次状态转移,因此这里无需重复判断是否已经error过。
// error 触发之后还可能会触发exit,但是Promise只承认首次状态转移,因此这里无需重复判断是否已经error过。
resolve
(
code
)
resolve
(
code
);
win
.
restore
()
})
})
})
})
};
};
...
...
apps.json
View file @
07b9e520
...
@@ -97,20 +97,7 @@
...
@@ -97,20 +97,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th06.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th06.meta4"
,
...
@@ -172,20 +159,7 @@
...
@@ -172,20 +159,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th075-lang-zh-TW.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th075-lang-zh-TW.meta4"
,
...
@@ -247,20 +221,7 @@
...
@@ -247,20 +221,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th075.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th075.meta4"
,
...
@@ -322,20 +283,7 @@
...
@@ -322,20 +283,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th07-lang-zh-TW.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th07-lang-zh-TW.meta4"
,
...
@@ -397,20 +345,7 @@
...
@@ -397,20 +345,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th07.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th07.meta4"
,
...
@@ -472,20 +407,7 @@
...
@@ -472,20 +407,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th08-lang-zh-CN.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th08-lang-zh-CN.meta4"
,
...
@@ -547,20 +469,7 @@
...
@@ -547,20 +469,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th08.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th08.meta4"
,
...
@@ -622,20 +531,7 @@
...
@@ -622,20 +531,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th095-lang-zh-TW.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th095-lang-zh-TW.meta4"
,
...
@@ -697,20 +593,7 @@
...
@@ -697,20 +593,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th095.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th095.meta4"
,
...
@@ -772,20 +655,7 @@
...
@@ -772,20 +655,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th09-langzh-TW.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th09-langzh-TW.meta4"
,
...
@@ -847,20 +717,7 @@
...
@@ -847,20 +717,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th09.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th09.meta4"
,
...
@@ -922,20 +779,7 @@
...
@@ -922,20 +779,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th105-lang-zh-CN.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th105-lang-zh-CN.meta4"
,
...
@@ -997,20 +841,7 @@
...
@@ -997,20 +841,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th105.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th105.meta4"
,
...
@@ -1072,20 +903,7 @@
...
@@ -1072,20 +903,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th10-lang-zh-CN-zh-TW.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th10-lang-zh-CN-zh-TW.meta4"
,
...
@@ -1147,20 +965,7 @@
...
@@ -1147,20 +965,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th10.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th10.meta4"
,
...
@@ -1222,20 +1027,7 @@
...
@@ -1222,20 +1027,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th11-lang-zh-TW.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th11-lang-zh-TW.meta4"
,
...
@@ -1297,20 +1089,7 @@
...
@@ -1297,20 +1089,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th11.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th11.meta4"
,
...
@@ -1372,20 +1151,7 @@
...
@@ -1372,20 +1151,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th123-lang-zh-CN.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th123-lang-zh-CN.meta4"
,
...
@@ -1447,20 +1213,7 @@
...
@@ -1447,20 +1213,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th123.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th123.meta4"
,
...
@@ -1522,20 +1275,7 @@
...
@@ -1522,20 +1275,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th12-lang-zh-TW.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th12-lang-zh-TW.meta4"
,
...
@@ -1597,20 +1337,7 @@
...
@@ -1597,20 +1337,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th12.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th12.meta4"
,
...
@@ -1672,20 +1399,7 @@
...
@@ -1672,20 +1399,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th1-lang-zh-TW.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th1-lang-zh-TW.meta4"
,
...
@@ -1747,20 +1461,7 @@
...
@@ -1747,20 +1461,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th1.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th1.meta4"
,
...
@@ -1822,20 +1523,7 @@
...
@@ -1822,20 +1523,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th2-lang-zh-TW.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th2-lang-zh-TW.meta4"
,
...
@@ -1897,20 +1585,7 @@
...
@@ -1897,20 +1585,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th2.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th2.meta4"
,
...
@@ -1972,20 +1647,7 @@
...
@@ -1972,20 +1647,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th3-lang-zh-TW.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th3-lang-zh-TW.meta4"
,
...
@@ -2047,20 +1709,7 @@
...
@@ -2047,20 +1709,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th3.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th3.meta4"
,
...
@@ -2122,20 +1771,7 @@
...
@@ -2122,20 +1771,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th4-lang-zh_TW.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th4-lang-zh_TW.meta4"
,
...
@@ -2197,20 +1833,7 @@
...
@@ -2197,20 +1833,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th4.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th4.meta4"
,
...
@@ -2272,20 +1895,7 @@
...
@@ -2272,20 +1895,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th5-lang-zh_TW.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th5-lang-zh_TW.meta4"
,
...
@@ -2347,20 +1957,7 @@
...
@@ -2347,20 +1957,7 @@
},
},
"references"
:
{
"references"
:
{
"win32"
:
[],
"win32"
:
[],
"darwin"
:
[
"darwin"
:
[]
{
"type"
:
"emulator"
,
"id"
:
"th06"
},
{
"type"
:
"language"
,
"id"
:
"th12_mod1"
},
{
"type"
:
"emulator"
,
"id"
:
"wine"
}
]
},
},
"download"
:
{
"download"
:
{
"win32"
:
"http://thief.mycard.moe/metalinks/th5.meta4"
,
"win32"
:
"http://thief.mycard.moe/metalinks/th5.meta4"
,
...
@@ -2434,13 +2031,15 @@
...
@@ -2434,13 +2031,15 @@
"news"
:
[
"news"
:
[
{
{
"url"
:
"#"
,
"url"
:
"#"
,
"image"
:
"http://www.myacg.cc/wp-content/uploads/2000/01/newBanner51.jpg"
,
"image"
:
"http://pic.4j4j.cn/upload/pic/20140327/af650cf463.jpg"
,
"title"
:
"News Title"
"title"
:
"News Title"
,
"text"
:
"喵喵喵喵"
},
},
{
{
"url"
:
"#"
,
"url"
:
"https://ygobbs.com/t/7%E6%9C%8825%E6%97%A5-MyCard%E5%B7%B2%E6%9B%B4%E6%96%B0INOV910%E7%AD%89%E6%96%B0%E5%8D%A1%EF%BC%8C1033A%E7%A8%8B%E5%BA%8F%E3%80%82%E5%86%85%E5%B8%A6%E6%89%8B%E5%8A%A8%E6%9B%B4%E6%96%B0%E4%BB%A5%E5%8F%8A%E6%8A%A5%E9%94%99%E8%A7%A3%E5%86%B3%E3%80%82/80143"
,
"image"
:
"http://www.myacg.cc/wp-content/uploads/2000/01/newBanner51.jpg"
,
"image"
:
"http://image.tianjimedia.com/uploadImages/2012/159/1EF112986273.jpg"
,
"title"
:
"News Title"
"title"
:
"News Title2"
,
"text"
:
"聚集的祈愿将成为新生的闪耀之星,化作光芒闪耀的道路吧!"
}
}
]
]
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment