Commit 12ca1d90 authored by 神楽坂玲奈's avatar 神楽坂玲奈

deckbuilder

parent dd59fcb6
......@@ -9,19 +9,19 @@ class Card extends Spine.Model
@extend Spine.Model.Local
@extend Spine.Events
@hasMany 'card_usages', CardUsage
@url: "https://api.mongolab.com/api/1/databases/mycard/collections/cards?apiKey=508e5726e4b0c54ca4492ead"
@locale_url: "https://api.mongolab.com/api/1/databases/mycard/collections/lang_#{locale}?apiKey=508e5726e4b0c54ca4492ead"
@url: "http://my-card.in/cards"
@locale_url: "http://my-card.in/cards_#{locale}"
image_url: ->
"http://my-card.in/images/cards/ygocore/#{@id}.jpg"
image_thumbnail_url: ->
"http://my-card.in/images/cards/ygocore/thumbnail/#{@id}.jpg"
@fetch_by_name: (name, callback)->
$.getJSON "#{@locale_url}&q=#{JSON.stringify {name: {$regex: name.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1'), $options: 'i'}}}", (langs) =>
$.getJSON "#{@locale_url}?q=#{JSON.stringify {name: {$regex: name.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1'), $options: 'i'}}}", (langs) =>
alert langs
@query: (q, callback)->
$.getJSON "#{@url}&q=#{JSON.stringify(q)}", (cards) =>
$.getJSON "#{@url}?q=#{JSON.stringify(q)}", (cards) =>
cards_id = (card._id for card in cards)
$.getJSON "#{@locale_url}&q=#{JSON.stringify({_id:{ $in: cards_id}})}", (langs) =>
$.getJSON "#{@locale_url}?q=#{JSON.stringify({_id:{ $in: cards_id}})}", (langs) =>
cards = (for lang in langs
for card in cards
if card._id == lang._id
......@@ -84,14 +84,15 @@ class Deck extends Spine.Controller
count = decoded >> 27 & 0x3
{card_id: card_id, side: side, count: count}
@refresh card_usages
refresh: (card_usages)->
refresh: (card_usages, set_history = true)->
cards_need_load = (card_usage.card_id for card_usage in card_usages when !Card.exists(card_usage.card_id))
if cards_need_load.length
Card.query {_id: { $in: cards_need_load}}, =>
CardUsage.refresh card_usages, clear: true
@set_history() if set_history
else
CardUsage.refresh card_usages, clear: true
@set_history() if set_history
render: =>
@main = []
@side = []
......@@ -124,8 +125,13 @@ class Deck extends Spine.Controller
$('#search_card').html $('#search_card_template').tmpl({test: 'test'})
$('#deck_url_ydk').attr 'download', @deck_name + '.ydk'
$('#deck_url_ydk').attr 'href', 'data:application/octet-stream,' + ((card_usage.card_id for i in [0...card_usage.count]).join("%0a") for card_usage in @main).concat(((card_usage.card_id for i in [0...card_usage.count]).join("%0a") for card_usage in @extra), ["!side"], ((card_usage.card_id for i in [0...card_usage.count]).join("%0a") for card_usage in @side)).join("%0a")
#$('#deck_url_ydk').attr 'href', 'data:application/octet-stream;headers=' + encodeURIComponent('Content-Disposition: attachment; filename=' + @deck_name + '.ydk') + ',' + (card_usage.card_id for i in [0...card_usage.count] for card_usage in @main).concat((card_usage.card_id for i in [0...card_usage.count] for card_usage in @extra), ["!side"], (card_usage.card_id for i in [0...card_usage.count] for card_usage in @side)).join("%0a")
$('#deck_url_ydk').attr 'href', 'data:application/x-ygopro-deck,' + encodeURI ["#generated by mycard/web"].concat(
(card_usage.card_id for i in [0...card_usage.count]).join("\r\n") for card_usage in @main,
(card_usage.card_id for i in [0...card_usage.count]).join("\r\n") for card_usage in @extra,
["!side"],
(card_usage.card_id for i in [0...card_usage.count]).join("\r\n") for card_usage in @side
).join("\r\n")
$( ".deck_part" ).sortable(
connectWith: ".deck_part"
stop: =>
......@@ -251,6 +257,7 @@ $(document).ready ->
else if line.substr(0,5) == '!side'
result.push {card_id: last_id, side: side, count: count} if last_id
side = true
last_id = null
else
card_id = parseInt(line)
if card_id
......
......@@ -34,9 +34,9 @@
Card.hasMany('card_usages', CardUsage);
Card.url = "https://api.mongolab.com/api/1/databases/mycard/collections/cards?apiKey=508e5726e4b0c54ca4492ead";
Card.url = "http://my-card.in/cards";
Card.locale_url = "https://api.mongolab.com/api/1/databases/mycard/collections/lang_" + locale + "?apiKey=508e5726e4b0c54ca4492ead";
Card.locale_url = "http://my-card.in/cards_" + locale;
Card.prototype.image_url = function() {
return "http://my-card.in/images/cards/ygocore/" + this.id + ".jpg";
......@@ -48,7 +48,7 @@
Card.fetch_by_name = function(name, callback) {
var _this = this;
return $.getJSON("" + this.locale_url + "&q=" + (JSON.stringify({
return $.getJSON("" + this.locale_url + "?q=" + (JSON.stringify({
name: {
$regex: name.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1'),
$options: 'i'
......@@ -60,7 +60,7 @@
Card.query = function(q, callback) {
var _this = this;
return $.getJSON("" + this.url + "&q=" + (JSON.stringify(q)), function(cards) {
return $.getJSON("" + this.url + "?q=" + (JSON.stringify(q)), function(cards) {
var card, cards_id;
cards_id = (function() {
var _i, _len, _results;
......@@ -71,7 +71,7 @@
}
return _results;
})();
return $.getJSON("" + _this.locale_url + "&q=" + (JSON.stringify({
return $.getJSON("" + _this.locale_url + "?q=" + (JSON.stringify({
_id: {
$in: cards_id
}
......@@ -213,9 +213,12 @@
return this.refresh(card_usages);
};
Deck.prototype.refresh = function(card_usages) {
Deck.prototype.refresh = function(card_usages, set_history) {
var card_usage, cards_need_load,
_this = this;
if (set_history == null) {
set_history = true;
}
cards_need_load = (function() {
var _i, _len, _results;
_results = [];
......@@ -233,14 +236,20 @@
$in: cards_need_load
}
}, function() {
return CardUsage.refresh(card_usages, {
CardUsage.refresh(card_usages, {
clear: true
});
if (set_history) {
return _this.set_history();
}
});
} else {
return CardUsage.refresh(card_usages, {
CardUsage.refresh(card_usages, {
clear: true
});
if (set_history) {
return this.set_history();
}
}
};
......@@ -314,7 +323,7 @@
test: 'test'
}));
$('#deck_url_ydk').attr('download', this.deck_name + '.ydk');
$('#deck_url_ydk').attr('href', 'data:application/octet-stream,' + ((function() {
$('#deck_url_ydk').attr('href', 'data:application/x-ygopro-deck,' + encodeURI(["#generated by mycard/web"].concat((function() {
var _j, _len1, _ref1, _results;
_ref1 = this.main;
_results = [];
......@@ -327,10 +336,10 @@
_results1.push(card_usage.card_id);
}
return _results1;
})()).join("%0a"));
})()).join("\r\n"));
}
return _results;
}).call(this)).concat((function() {
}).call(this), (function() {
var _j, _len1, _ref1, _results;
_ref1 = this.extra;
_results = [];
......@@ -343,7 +352,7 @@
_results1.push(card_usage.card_id);
}
return _results1;
})()).join("%0a"));
})()).join("\r\n"));
}
return _results;
}).call(this), ["!side"], (function() {
......@@ -359,10 +368,10 @@
_results1.push(card_usage.card_id);
}
return _results1;
})()).join("%0a"));
})()).join("\r\n"));
}
return _results;
}).call(this)).join("%0a"));
}).call(this)).join("\r\n")));
$(".deck_part").sortable({
connectWith: ".deck_part",
stop: function() {
......@@ -572,6 +581,7 @@
});
}
side = true;
last_id = null;
} else {
card_id = parseInt(line);
if (card_id) {
......
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