cockatrice_feeder 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cockatrice_feeder.rb +32 -39
  3. metadata +5 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b8351da4a5eff2051048c3b0c0610167361f97ee
4
- data.tar.gz: 56f2632308cd7bd822a9daab16741d247fbbd274
3
+ metadata.gz: b5240773a3d354704315fc39c1849dca7b5b340e
4
+ data.tar.gz: 841cec3ad20d2ccea73ef3034f03fbf7aca2e8a4
5
5
  SHA512:
6
- metadata.gz: dd03bf14ebbdf4731c7acb48147dd786c87668737e06f867d1048ff2241a79b39a34deb14f806ed1abb283a0c2d479a62d176f6f5124f90e6558ff5ad3688cb9
7
- data.tar.gz: 4777f537c2a521625396116ee1b6bb9860f62d482c6e9e61815b39cdf5996fd2df7e43979656040250435e481ab791c3616dcf45df7a94853df6b450c64f698d
6
+ metadata.gz: c3e20b320975dc4cb933ff8999b40dd82dc008123e6b03ef99d47e4146947bd9c2322ad42cc73e846f106aaf3ee147bfc24608441419ce64786a331277c3f519
7
+ data.tar.gz: e7b518285b7fd5e7441d0a269fd693aac5b49909e49d6ca61fad3b1b1095507f9b42f5c2ec0de13cb6aabc0d4ed20fc263345e5e817995930ecc71241c4b62c0
@@ -2,7 +2,6 @@ module CockatriceFeeder
2
2
  require 'httparty'
3
3
  require 'nokogiri'
4
4
  require 'fileutils'
5
- require 'descriptive_statistics'
6
5
 
7
6
  @@app_dir = Dir.pwd+"/"
8
7
  @@deck_dir = @@app_dir+"decks/"
@@ -168,6 +167,17 @@ module CockatriceFeeder
168
167
  JSON.parse(File.read(@@meta_dir+"tiers.json"))
169
168
  end
170
169
 
170
+ def self.deck_obj(link = "", name = "", commanders = [], date = nil, price = nil)
171
+ {
172
+ link: link,
173
+ name: name,
174
+ commanders: commanders,
175
+ date: nil,
176
+ price: nil,
177
+ cardlist: []
178
+ }
179
+ end
180
+
171
181
  def self.output_cod(deck, subfolder)
172
182
  comments = [
173
183
  deck[:name],
@@ -227,14 +237,7 @@ module CockatriceFeeder
227
237
  doc.css(".deck-wide-header a").each do |a|
228
238
  link = a.attribute("href").value
229
239
  if link.include?("/mtg-decks/")
230
- decks << {
231
- name: link.split("/").last,
232
- commanders: [],
233
- link: "https://tappedout.net"+link,
234
- date: nil,
235
- price: nil,
236
- cardlist: []
237
- }
240
+ decks << deck_obj("https://tappedout.net"+link, link.split("/").last)
238
241
  end
239
242
  end
240
243
  end
@@ -279,14 +282,7 @@ module CockatriceFeeder
279
282
 
280
283
  def self.edhrecavg_decklist
281
284
  commanders.map{|c| c["link"]}.map do |c|
282
- {
283
- name: c,
284
- commanders: [c],
285
- link: "https://edhrec-json.s3.amazonaws.com/en/decks/#{c}.json",
286
- price: nil,
287
- date: nil,
288
- cardlist: []
289
- }
285
+ deck_obj("https://edhrec-json.s3.amazonaws.com/en/decks/#{c}.json", c, [c])
290
286
  end
291
287
  end
292
288
 
@@ -300,7 +296,7 @@ module CockatriceFeeder
300
296
 
301
297
  #order ["views,desc", "price,desc", "likes,desc", "updated,desc"]
302
298
  #commander should be a name attribute from the commanders array of objects
303
- def self.deckstats_decklist(commander = "nil", pages = (1..1), order = "likes,desc", price_min = "", price_max = "")
299
+ def self.deckstats_decklist(commander = "", pages = (1..1), order_by = "likes,desc", price_min = "", price_max = "")
304
300
  decklist = []
305
301
  pages.each do |page|
306
302
  url = [
@@ -317,7 +313,7 @@ module CockatriceFeeder
317
313
  "&search_number_cards_sideboard=",
318
314
  "&search_cards%5B%5D=",
319
315
  "&search_tags=",
320
- "&search_order=#{URI.encode_www_form_component(order)}",
316
+ "&search_order=#{URI.encode_www_form_component(order_by)}",
321
317
  "&utf8=%E2%9C%94",
322
318
  "&page=#{page}"
323
319
  ].join("")
@@ -326,14 +322,7 @@ module CockatriceFeeder
326
322
 
327
323
  doc.css(".deck_row").each do |dr|
328
324
  link = dr.css("td")[1].css("a").first.attribute("href").value
329
- decklist << {
330
- link: link,
331
- name: link.split("/")[-2],
332
- commanders: [commander].reject(&:empty?),
333
- price: nil,
334
- date: nil,
335
- cardlist: []
336
- }
325
+ decklist << deck_obj(link,link.split("/")[-2],[commander].reject(&:empty?))
337
326
  end
338
327
  end
339
328
 
@@ -357,7 +346,11 @@ module CockatriceFeeder
357
346
  sec["cards"].map{|c| "#{c["amount"]} #{c["name"]}"}
358
347
  end.flatten
359
348
 
360
- deck[:price] = doc.css(".deck_overview_price").first.content.gsub("$","").strip.split(".").first
349
+ deck[:price] = (
350
+ !doc.css(".deck_overview_price").first.nil? ?
351
+ doc.css(".deck_overview_price").first.content.gsub("$","").strip.split(".").first
352
+ : nil
353
+ )
361
354
 
362
355
  output_cod(deck,'deckstats')
363
356
  end
@@ -370,16 +363,16 @@ module CockatriceFeeder
370
363
  doc = Nokogiri::HTML(HTTParty.get("https://mtgdecks.net/Commander/decklists/page:#{page}").body)
371
364
  doc.css(".decks tr.previewable").each do |r|
372
365
  if r.css("td")[0].css(".label-danger").length == 0
373
- decks << {
374
- name: "", # r.css("td")[1].css("a")[0].content,
366
+ date = r.css("td")[6].css("strong")[0].content.
367
+ gsub("<span class=\"hidden-xs\">","").
368
+ gsub("</span>","").gsub(/\s+/, "")
369
+ price = r.css("td")[7].css("span.paper")[0].content.gsub("$","").gsub(/\s+/, "")
370
+
371
+ decks << deck_objs(
375
372
  link: "https://mtgdecks.net"+r.css("td")[1].css("a")[0].attribute("href").value,
376
- date: r.css("td")[6].css("strong")[0].content.
377
- gsub("<span class=\"hidden-xs\">","").
378
- gsub("</span>","").gsub(/\s+/, ""),
379
- price: r.css("td")[7].css("span.paper")[0].content.gsub("$","").gsub(/\s+/, ""),
380
- commanders: [],
381
- cardlist: []
382
- }
373
+ date: date,
374
+ price: price
375
+ )
383
376
  end
384
377
  end
385
378
  end
@@ -435,7 +428,7 @@ module CockatriceFeeder
435
428
  puts "#{decks.length} decks found."
436
429
  decks.each {|d|
437
430
  CockatriceFeeder.mtgdecks_deck(d)
438
- if d[:cardlist].length < 0
431
+ if d[:cardlist].length > 0
439
432
  total_decks += 1
440
433
  end
441
434
  }
@@ -445,7 +438,7 @@ module CockatriceFeeder
445
438
  puts "#{decks.length} decks found."
446
439
  decks.each {|d|
447
440
  CockatriceFeeder.deckstats_deck(d)
448
- if d[:cardlist].length < 0
441
+ if d[:cardlist].length > 0
449
442
  total_decks += 1
450
443
  end
451
444
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cockatrice_feeder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Steinwachs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-10 00:00:00.000000000 Z
11
+ date: 2020-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -38,22 +38,8 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.18'
41
- - !ruby/object:Gem::Dependency
42
- name: descriptive_statistics
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '2.5'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '2.5'
55
- description: A tool to scrape MTG decks from the internet along with some meta information
56
- and create Cockatrice compatible deck files.
41
+ description: A tool to scrape MTG EDH decks from the internet along with some meta
42
+ information and create Cockatrice compatible deck files.
57
43
  email: matt.steinwachs@gmail.com
58
44
  executables:
59
45
  - gobble
@@ -85,5 +71,5 @@ rubyforge_project:
85
71
  rubygems_version: 2.6.14
86
72
  signing_key:
87
73
  specification_version: 4
88
- summary: Scrape and generate decks for cockatrice
74
+ summary: Scrape and generate MTG EDH decks for cockatrice
89
75
  test_files: []