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

deckbuilder

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