acme-smileage 4.0.0 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +17 -17
  3. data/.travis.yml +3 -3
  4. data/Gemfile +4 -4
  5. data/LICENSE.txt +22 -22
  6. data/README.md +215 -215
  7. data/Rakefile +9 -9
  8. data/acme-smileage.gemspec +29 -29
  9. data/bin/smileage +3 -3
  10. data/lib/acme/smileage.rb +55 -55
  11. data/lib/acme/smileage/blog/ameblo.rb +49 -49
  12. data/lib/acme/smileage/blog/ameblo_downloader.rb +171 -171
  13. data/lib/acme/smileage/blog/entry.rb +51 -51
  14. data/lib/acme/smileage/commands.rb +16 -16
  15. data/lib/acme/smileage/commands/base.rb +10 -10
  16. data/lib/acme/smileage/commands/oricon.rb +47 -47
  17. data/lib/acme/smileage/commands/soundscan.rb +18 -18
  18. data/lib/acme/smileage/discography.rb +101 -101
  19. data/lib/acme/smileage/discography/albums.rb +28 -28
  20. data/lib/acme/smileage/discography/albums/2009/I001_amanojaku.rb +35 -35
  21. data/lib/acme/smileage/discography/albums/2009/I002_asuha_date_nanoni_imasugu_koe_ga_kikitai.rb +35 -35
  22. data/lib/acme/smileage/discography/albums/2009/I003_sukichan.rb +35 -35
  23. data/lib/acme/smileage/discography/albums/2010/A001_waru_gaki_(1).rb +50 -50
  24. data/lib/acme/smileage/discography/albums/2010/D001_yumemiru_15sai_(pax_japonica_groove_remix).rb +35 -35
  25. data/lib/acme/smileage/discography/albums/2010/D002_gambaranakutemo_eenende_(topnude_remix_version_01).rb +35 -35
  26. data/lib/acme/smileage/discography/albums/2010/D003_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama_(remix_type1).rb +35 -35
  27. data/lib/acme/smileage/discography/albums/2010/I004_otona_ni_narutte_muzukashii.rb +35 -35
  28. data/lib/acme/smileage/discography/albums/2010/S001_yumemiru_15sai.rb +42 -42
  29. data/lib/acme/smileage/discography/albums/2010/S002_gambaranakutemo_eenende.rb +47 -47
  30. data/lib/acme/smileage/discography/albums/2010/S003_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama.rb +46 -46
  31. data/lib/acme/smileage/discography/albums/2011/D004_shortcut_(remixver).rb +35 -35
  32. data/lib/acme/smileage/discography/albums/2011/D005_uchouten_love_rocketman_mix.rb +35 -35
  33. data/lib/acme/smileage/discography/albums/2011/S004_shortcut.rb +51 -51
  34. data/lib/acme/smileage/discography/albums/2011/S005_koi_ni_booing_boo.rb +51 -51
  35. data/lib/acme/smileage/discography/albums/2011/S006_uchouten_love.rb +51 -51
  36. data/lib/acme/smileage/discography/albums/2011/S007_tachiagirl.rb +56 -56
  37. data/lib/acme/smileage/discography/albums/2011/S008_please_minisuka_post_woman.rb +52 -52
  38. data/lib/acme/smileage/discography/albums/2012/A002_smleage_best_album_complete_(1).rb +54 -54
  39. data/lib/acme/smileage/discography/albums/2012/S009_choto_mate_kudasai.rb +52 -52
  40. data/lib/acme/smileage/discography/albums/2012/S010_dotbikini.rb +51 -51
  41. data/lib/acme/smileage/discography/albums/2012/S011_sukiyo_junjou_hankouki.rb +50 -50
  42. data/lib/acme/smileage/discography/albums/2012/S012_samuine.rb +50 -50
  43. data/lib/acme/smileage/discography/albums/2013/A003_(2)_smile_sensation.rb +48 -48
  44. data/lib/acme/smileage/discography/albums/2013/S013_tabidachi_no_haru_ga_kita.rb +50 -50
  45. data/lib/acme/smileage/discography/albums/2013/S014_atarashii_watashini_nare_yattaruchan.rb +50 -50
  46. data/lib/acme/smileage/discography/albums/2013/S015_eeka_iiyatsu.rb +50 -50
  47. data/lib/acme/smileage/discography/albums/2014/S016_mystery_night_eighteen_emotion.rb +56 -54
  48. data/lib/acme/smileage/discography/albums/base.rb +37 -37
  49. data/lib/acme/smileage/discography/hello_project_music_award.rb +22 -22
  50. data/lib/acme/smileage/discography/lyrics_downloader.rb +48 -48
  51. data/lib/acme/smileage/discography/sales.rb +43 -43
  52. data/lib/acme/smileage/discography/tracks.rb +65 -65
  53. data/lib/acme/smileage/discography/tracks/2009/001_amanojaku.rb +57 -57
  54. data/lib/acme/smileage/discography/tracks/2009/002_asuha_date_nanoni_imasugu_koe_ga_kikitai.rb +57 -57
  55. data/lib/acme/smileage/discography/tracks/2009/003_sukichan.rb +57 -57
  56. data/lib/acme/smileage/discography/tracks/2010/004_otona_ni_narutte_muzukashii.rb +57 -57
  57. data/lib/acme/smileage/discography/tracks/2010/005_yumemiru_15sai.rb +77 -77
  58. data/lib/acme/smileage/discography/tracks/2010/006_thank_you_creme_brulee_no_yuujou.rb +37 -37
  59. data/lib/acme/smileage/discography/tracks/2010/007_yumemiru_15sai_(pax_japonica_groove_remix).rb +38 -38
  60. data/lib/acme/smileage/discography/tracks/2010/008_gambaranakutemo_eenende.rb +85 -85
  61. data/lib/acme/smileage/discography/tracks/2010/009_gambaranakutemo_iindayo.rb +44 -44
  62. data/lib/acme/smileage/discography/tracks/2010/010_smile_bijin.rb +36 -36
  63. data/lib/acme/smileage/discography/tracks/2010/011_gambaranakutemo_eenende_(topnude_remix_version_01).rb +38 -38
  64. data/lib/acme/smileage/discography/tracks/2010/012_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama.rb +85 -85
  65. data/lib/acme/smileage/discography/tracks/2010/013_chokotto_love.rb +38 -38
  66. data/lib/acme/smileage/discography/tracks/2010/014_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama_(remix_type1).rb +38 -38
  67. data/lib/acme/smileage/discography/tracks/2010/015_odorouyo.rb +36 -36
  68. data/lib/acme/smileage/discography/tracks/2010/016_onna_bakari_no_nichiyoubi.rb +36 -36
  69. data/lib/acme/smileage/discography/tracks/2010/017_shooting_star.rb +36 -36
  70. data/lib/acme/smileage/discography/tracks/2010/018_gakkyuu_iinchou.rb +36 -36
  71. data/lib/acme/smileage/discography/tracks/2010/019_shikkari_shiteyo_mou.rb +36 -36
  72. data/lib/acme/smileage/discography/tracks/2011/020_shortcut.rb +69 -69
  73. data/lib/acme/smileage/discography/tracks/2011/021_panyasan_no_arbeit.rb +36 -36
  74. data/lib/acme/smileage/discography/tracks/2011/022_otome_pasta_ni_kandou.rb +38 -38
  75. data/lib/acme/smileage/discography/tracks/2011/023_koi_ni_booing_boo.rb +69 -69
  76. data/lib/acme/smileage/discography/tracks/2011/024_hatukoi_no_anatahe.rb +36 -36
  77. data/lib/acme/smileage/discography/tracks/2011/025_koi_wo_shichaimashita.rb +38 -38
  78. data/lib/acme/smileage/discography/tracks/2011/026_uchouten_love.rb +77 -77
  79. data/lib/acme/smileage/discography/tracks/2011/027_jitensha_chiririn.rb +36 -36
  80. data/lib/acme/smileage/discography/tracks/2011/028_chu_natsu_party.rb +38 -38
  81. data/lib/acme/smileage/discography/tracks/2011/029_shortcut_(remixver).rb +37 -37
  82. data/lib/acme/smileage/discography/tracks/2011/030_uchouten_love_rocketman_mix.rb +38 -38
  83. data/lib/acme/smileage/discography/tracks/2011/031_tachiagirl.rb +73 -73
  84. data/lib/acme/smileage/discography/tracks/2011/032_smile_ondon.rb +35 -35
  85. data/lib/acme/smileage/discography/tracks/2011/033_boogie_train11.rb +38 -38
  86. data/lib/acme/smileage/discography/tracks/2011/034_smileage_singles_gekimoe_remix.rb +35 -35
  87. data/lib/acme/smileage/discography/tracks/2011/035_please_minisuka_post_woman.rb +45 -45
  88. data/lib/acme/smileage/discography/tracks/2011/036_konnichiwa_konbanwa.rb +36 -36
  89. data/lib/acme/smileage/discography/tracks/2011/037_smileage_singles_gekiyaba_remix.rb +35 -35
  90. data/lib/acme/smileage/discography/tracks/2011/038_tewo_nigitte_arukitai.rb +38 -38
  91. data/lib/acme/smileage/discography/tracks/2012/039_choto_mate_kudasai.rb +45 -45
  92. data/lib/acme/smileage/discography/tracks/2012/040_chance_tourai.rb +36 -36
  93. data/lib/acme/smileage/discography/tracks/2012/041_smileage_singles_gekiatsu_remix.rb +35 -35
  94. data/lib/acme/smileage/discography/tracks/2012/042_namida_girl.rb +38 -38
  95. data/lib/acme/smileage/discography/tracks/2012/043_dotbikini.rb +45 -45
  96. data/lib/acme/smileage/discography/tracks/2012/044_smile_blues.rb +36 -36
  97. data/lib/acme/smileage/discography/tracks/2012/045_koibito_ha_kokoro_no_ouendan.rb +38 -38
  98. data/lib/acme/smileage/discography/tracks/2012/046_kiiroi_jitensha_to_sandwich.rb +36 -36
  99. data/lib/acme/smileage/discography/tracks/2012/047_sukiyo_junjou_hankouki.rb +45 -45
  100. data/lib/acme/smileage/discography/tracks/2012/048_kimi_ha_jitensha_watasi_ha_densya_de_kitaku.rb +38 -38
  101. data/lib/acme/smileage/discography/tracks/2012/049_samuine.rb +49 -49
  102. data/lib/acme/smileage/discography/tracks/2012/050_watashi_choito_kawaii_urabancho.rb +36 -36
  103. data/lib/acme/smileage/discography/tracks/2013/051_tabidachi_no_haru_ga_kita.rb +45 -45
  104. data/lib/acme/smileage/discography/tracks/2013/052_doushiyou.rb +36 -36
  105. data/lib/acme/smileage/discography/tracks/2013/053_shin_nihon_no_susume.rb +36 -36
  106. data/lib/acme/smileage/discography/tracks/2013/054_otona_no_tochuu.rb +36 -36
  107. data/lib/acme/smileage/discography/tracks/2013/055_tenshin_ramman.rb +36 -36
  108. data/lib/acme/smileage/discography/tracks/2013/056_watashi_no_kokoro.rb +36 -36
  109. data/lib/acme/smileage/discography/tracks/2013/057_yuugure_koi_no_jikan.rb +36 -36
  110. data/lib/acme/smileage/discography/tracks/2013/058_nee_sempai.rb +36 -36
  111. data/lib/acme/smileage/discography/tracks/2013/059_sayonara_sayonara_sayonara.rb +36 -36
  112. data/lib/acme/smileage/discography/tracks/2013/060_atarashii_watashini_nare.rb +45 -45
  113. data/lib/acme/smileage/discography/tracks/2013/061_yattaruchan.rb +45 -45
  114. data/lib/acme/smileage/discography/tracks/2013/062_eeka.rb +44 -44
  115. data/lib/acme/smileage/discography/tracks/2013/063_iiyatsu.rb +44 -44
  116. data/lib/acme/smileage/discography/tracks/2014/064_mystery_night.rb +44 -44
  117. data/lib/acme/smileage/discography/tracks/2014/065_eighteen_emotion.rb +44 -44
  118. data/lib/acme/smileage/discography/tracks/base.rb +39 -39
  119. data/lib/acme/smileage/members.rb +40 -40
  120. data/lib/acme/smileage/members/base.rb +56 -56
  121. data/lib/acme/smileage/members/fukuda_kanon.rb +29 -29
  122. data/lib/acme/smileage/members/katsuta_rina.rb +29 -29
  123. data/lib/acme/smileage/members/kosuga_fuyuka.rb +29 -29
  124. data/lib/acme/smileage/members/maeda_yuuka.rb +29 -29
  125. data/lib/acme/smileage/members/nakanishi_kana.rb +29 -29
  126. data/lib/acme/smileage/members/ogawa_saki.rb +29 -29
  127. data/lib/acme/smileage/members/takeuchi_akari.rb +29 -29
  128. data/lib/acme/smileage/members/tamura_meimi.rb +29 -29
  129. data/lib/acme/smileage/members/wada_ayaka.rb +29 -29
  130. data/lib/acme/smileage/utils/base_downloader.rb +38 -38
  131. data/lib/acme/smileage/utils/matcher.rb +64 -64
  132. data/lib/acme/smileage/version.rb +5 -5
  133. data/lib/acme/smileage/version.rb~ +5 -5
  134. data/test/acme/test_album.rb +204 -204
  135. data/test/acme/test_member.rb +45 -45
  136. data/test/acme/test_smileage.rb +144 -144
  137. data/test/acme/test_track.rb +57 -57
  138. data/test/minitest_helper.rb +5 -5
  139. metadata +20 -20
@@ -1,29 +1,29 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- require "acme/smileage/members/base"
4
-
5
- module Acme
6
- class Smileage
7
- class Members
8
- class WadaAyaka < Base
9
- def initialize
10
- @family_name_ja = "和田"
11
- @first_name_ja = "彩花"
12
- @family_name_en = "Wada"
13
- @first_name_en = "Ayaka"
14
- @birthday = Date.new(1994, 8, 1)
15
- @blood_type = "A"
16
- @hometown = "群馬"
17
- @emoticon = "川 ´‘ _‘||"
18
- @nicknames = ["あやちょ", "DAWA"]
19
- @member_color = "Blue"
20
- @generation = 1
21
- @join_date = Date.new(2009, 4, 4)
22
- @graduate_date = nil
23
- @blog_link = "http://ameblo.jp/wadaayaka/"
24
- @twitter_accounts = ["@ayakawada", "@smileage_715"]
25
- end
26
- end
27
- end
28
- end
29
- end
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require "acme/smileage/members/base"
4
+
5
+ module Acme
6
+ class Smileage
7
+ class Members
8
+ class WadaAyaka < Base
9
+ def initialize
10
+ @family_name_ja = "和田"
11
+ @first_name_ja = "彩花"
12
+ @family_name_en = "Wada"
13
+ @first_name_en = "Ayaka"
14
+ @birthday = Date.new(1994, 8, 1)
15
+ @blood_type = "A"
16
+ @hometown = "群馬"
17
+ @emoticon = "川 ´‘ _‘||"
18
+ @nicknames = ["あやちょ", "DAWA"]
19
+ @member_color = "Blue"
20
+ @generation = 1
21
+ @join_date = Date.new(2009, 4, 4)
22
+ @graduate_date = nil
23
+ @blog_link = "http://ameblo.jp/wadaayaka/"
24
+ @twitter_accounts = ["@ayakawada", "@smileage_715"]
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,38 +1,38 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- require "open-uri"
4
- require "uri"
5
-
6
- require "nokogiri"
7
-
8
- module Acme
9
- class Smileage
10
- module Utils
11
- class BaseDownloader
12
- DEFAULT_USER_AGENT = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
13
-
14
- private
15
-
16
- def with_nokogiri(baseuri, path = nil)
17
- uri = make_uri(baseuri, path)
18
- open(uri, "User-Agent" => DEFAULT_USER_AGENT) do |f|
19
- yield Nokogiri::HTML(f), uri
20
- end
21
- end
22
-
23
- def http_get(baseuri, path = nil)
24
- open(make_uri(baseuri, path), "User-Agent" => DEFAULT_USER_AGENT) {|f| f.read }
25
- end
26
-
27
- def make_uri(baseuri, path = nil)
28
- r = URI(baseuri)
29
- if path
30
- r + path
31
- else
32
- r
33
- end
34
- end
35
- end
36
- end
37
- end
38
- end
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require "open-uri"
4
+ require "uri"
5
+
6
+ require "nokogiri"
7
+
8
+ module Acme
9
+ class Smileage
10
+ module Utils
11
+ class BaseDownloader
12
+ DEFAULT_USER_AGENT = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
13
+
14
+ private
15
+
16
+ def with_nokogiri(baseuri, path = nil)
17
+ uri = make_uri(baseuri, path)
18
+ open(uri, "User-Agent" => DEFAULT_USER_AGENT) do |f|
19
+ yield Nokogiri::HTML(f), uri
20
+ end
21
+ end
22
+
23
+ def http_get(baseuri, path = nil)
24
+ open(make_uri(baseuri, path), "User-Agent" => DEFAULT_USER_AGENT) {|f| f.read }
25
+ end
26
+
27
+ def make_uri(baseuri, path = nil)
28
+ r = URI(baseuri)
29
+ if path
30
+ r + path
31
+ else
32
+ r
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,64 +1,64 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- require "amatch"
4
- require "moji"
5
-
6
- module Acme
7
- class Smileage
8
- module Utils
9
- class Matcher
10
- attr_accessor :max_score
11
-
12
- def initialize(str)
13
- @str = str
14
- @max_score = 5
15
- end
16
-
17
- def match(targets)
18
- # 完全一致検索
19
- if r = targets.find {|e| e == @str }
20
- return r
21
- end
22
-
23
- # 正規化
24
- nstr = normalize(@str)
25
- ntargets = targets.map {|e| normalize(e) }
26
-
27
- # 大文字小文字を無視して完全一致検索
28
- if i = ntargets.index {|e| e == nstr }
29
- return targets[i]
30
- end
31
-
32
- # 大文字小文字を無視して前方一致検索 (最低でも 2 文字は必要)
33
- if nstr.length > 1 and i = ntargets.index {|e| e.start_with?(nstr) }
34
- return targets[i]
35
- end
36
-
37
- # 編集距離であいまい検索
38
- if i = index_by_amatch(@str, targets)
39
- return targets[i]
40
- end
41
-
42
- # 大文字小文字を無視して編集距離であいまい検索
43
- if i = index_by_amatch(nstr, ntargets)
44
- return targets[i]
45
- end
46
-
47
- nil
48
- end
49
-
50
- def index_by_amatch(str, targets)
51
- matcher = Amatch::Sellers.new(str)
52
- if r = targets.map.with_index {|e,i| [i, matcher.match(e)] }.sort_by {|e| e[1] }[0]
53
- return r[0] if r[1] < self.max_score # score があまりにも大きかったら無視
54
- end
55
- end
56
-
57
- def normalize(str)
58
- return nil unless str
59
- Moji.hira_to_kata(Moji.normalize_zen_han(str)).downcase.gsub(/\s+/, "")
60
- end
61
- end
62
- end
63
- end
64
- end
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require "amatch"
4
+ require "moji"
5
+
6
+ module Acme
7
+ class Smileage
8
+ module Utils
9
+ class Matcher
10
+ attr_accessor :max_score
11
+
12
+ def initialize(str)
13
+ @str = str
14
+ @max_score = 5
15
+ end
16
+
17
+ def match(targets)
18
+ # 完全一致検索
19
+ if r = targets.find {|e| e == @str }
20
+ return r
21
+ end
22
+
23
+ # 正規化
24
+ nstr = normalize(@str)
25
+ ntargets = targets.map {|e| normalize(e) }
26
+
27
+ # 大文字小文字を無視して完全一致検索
28
+ if i = ntargets.index {|e| e == nstr }
29
+ return targets[i]
30
+ end
31
+
32
+ # 大文字小文字を無視して前方一致検索 (最低でも 2 文字は必要)
33
+ if nstr.length > 1 and i = ntargets.index {|e| e.start_with?(nstr) }
34
+ return targets[i]
35
+ end
36
+
37
+ # 編集距離であいまい検索
38
+ if i = index_by_amatch(@str, targets)
39
+ return targets[i]
40
+ end
41
+
42
+ # 大文字小文字を無視して編集距離であいまい検索
43
+ if i = index_by_amatch(nstr, ntargets)
44
+ return targets[i]
45
+ end
46
+
47
+ nil
48
+ end
49
+
50
+ def index_by_amatch(str, targets)
51
+ matcher = Amatch::Sellers.new(str)
52
+ if r = targets.map.with_index {|e,i| [i, matcher.match(e)] }.sort_by {|e| e[1] }[0]
53
+ return r[0] if r[1] < self.max_score # score があまりにも大きかったら無視
54
+ end
55
+ end
56
+
57
+ def normalize(str)
58
+ return nil unless str
59
+ Moji.hira_to_kata(Moji.normalize_zen_han(str)).downcase.gsub(/\s+/, "")
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -1,5 +1,5 @@
1
- module Acme
2
- class Smileage
3
- VERSION = "4.0.0"
4
- end
5
- end
1
+ module Acme
2
+ class Smileage
3
+ VERSION = "4.0.1"
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
- module Acme
2
- class Smileage
3
- VERSION = "0.0.1"
4
- end
5
- end
1
+ module Acme
2
+ class Smileage
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -1,204 +1,204 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- require "date"
4
-
5
- require "minitest_helper"
6
-
7
- class Acme::TestAlbum < Minitest::Test
8
- def test_single
9
- s = ::Acme::Smileage.new
10
-
11
- a = s.discography.find {|e| e.name =~ /夢見る/ }
12
- assert_equal "夢見る 15歳", a.name
13
- assert_equal "yumemiru 15sai", a.name_romaji
14
- assert_equal Date.new(2010, 5, 26), a.release_date
15
- assert_equal 2010, a.release_year
16
- assert_equal [20438, 24936, 5, 4], a.oricon.to_a
17
- assert_equal [8494, 8494, 17, 1], a.soundscan.to_a
18
-
19
- artwork_links = [
20
- {
21
- :title => "夢見る 15歳 【通常盤】",
22
- :link => "http://s-mileage.jp/discography/obj/img/000/009/100517-1512_01l.jpg",
23
- },
24
- {
25
- :title => "夢見る 15歳 【初回生産限定盤A】",
26
- :link => "http://s-mileage.jp/discography/obj/img/000/009/100517-1512_02l.jpg",
27
- },
28
- {
29
- :title => "夢見る 15歳 【初回生産限定盤B】",
30
- :link => "http://s-mileage.jp/discography/obj/img/000/009/100517-1512_03l.jpg",
31
- },
32
- ]
33
- assert_equal artwork_links, a.artwork_links
34
-
35
- tracks = []
36
- tracks << Acme::Smileage::Discography::Tracks::Yumemiru15sai.instance
37
- tracks << Acme::Smileage::Discography::Tracks::ThankYouCremeBruleeNoYuujou.instance
38
- assert_equal tracks, a.tracks
39
-
40
- assert_equal true, a.single?
41
- assert_equal false, a.album?
42
- assert_equal false, a.best_album?
43
- assert_equal false, a.original_album?
44
- assert_equal true, a.major?
45
- assert_equal false, a.indies?
46
- assert_equal false, a.download_only?
47
- end
48
-
49
- def test_indies
50
- s = ::Acme::Smileage.new
51
-
52
- a = s.discography.find {|e| e.name =~ /ぁまのじゃく/ }
53
- assert_equal "ぁまのじゃく", a.name
54
- assert_equal "amanojaku", a.name_romaji
55
- assert_equal Date.new(2009, 6, 7), a.release_date
56
- assert_equal 2009, a.release_year
57
- assert_equal [0, 0, 0, 0], a.oricon.to_a
58
- assert_equal [0, 0, 0, 0], a.soundscan.to_a
59
- artwork_links = [
60
- {
61
- :title => "ぁまのじゃく",
62
- :link => "http://s-mileage.jp/discography/obj/img/000/012/100922-1209_01l.jpg",
63
- },
64
- ]
65
- assert_equal artwork_links, a.artwork_links
66
-
67
- tracks = []
68
- tracks << Acme::Smileage::Discography::Tracks::Amanojaku.instance
69
- assert_equal tracks, a.tracks
70
-
71
- assert_equal true, a.single?
72
- assert_equal false, a.album?
73
- assert_equal false, a.best_album?
74
- assert_equal false, a.original_album?
75
- assert_equal false, a.major?
76
- assert_equal true, a.indies?
77
- assert_equal false, a.download_only?
78
- end
79
-
80
- def test_download_only
81
- s = ::Acme::Smileage.new
82
-
83
- a = s.discography.find {|e| e.name =~ /PAX JAPONICA/ }
84
- assert_equal "夢見る 15歳 (PAX JAPONICA GROOVE REMIX)", a.name
85
- assert_equal "yumemiru 15sai (pax japonica groove remix)", a.name_romaji
86
- assert_equal Date.new(2010, 6, 18), a.release_date
87
- assert_equal 2010, a.release_year
88
- artwork_links = [
89
- {
90
- :title => "夢見る 15歳 (PAX JAPONICA GROOVE REMIX)",
91
- :link => "http://s-mileage.jp/discography/obj/img/000/032/100709-1334_01l.jpg",
92
- },
93
- ]
94
- assert_equal artwork_links, a.artwork_links
95
-
96
- tracks = []
97
- tracks << Acme::Smileage::Discography::Tracks::Yumemiru15saiPaxJaponicaGrooveRemix.instance
98
- assert_equal tracks, a.tracks
99
-
100
- assert_equal false, a.single?
101
- assert_equal false, a.album?
102
- assert_equal false, a.best_album?
103
- assert_equal false, a.original_album?
104
- assert_equal true, a.major?
105
- assert_equal false, a.indies?
106
- assert_equal true, a.download_only?
107
- end
108
-
109
- def test_album
110
- s = ::Acme::Smileage.new
111
-
112
- a = s.discography.find {|e| e.name =~ /悪ガキ/ }
113
- assert_equal "悪ガキッ①", a.name
114
- assert_equal "waru gaki (1)", a.name_romaji
115
- assert_equal Date.new(2010, 12, 8), a.release_date
116
- assert_equal 2010, a.release_year
117
- assert_equal [8905, 11848, 18, 5], a.oricon.to_a
118
- assert_equal [0, 0, 0, 0], a.soundscan.to_a
119
-
120
- artwork_links = [
121
- {
122
- :title => "悪ガキッ① 【通常盤】",
123
- :link => "http://s-mileage.jp/discography/obj/img/000/047/101118-1624_01l.jpg",
124
- },
125
- {
126
- :title => "悪ガキッ① 【初回生産限定盤】",
127
- :link => "http://s-mileage.jp/discography/obj/img/000/047/101118-1624_02l.jpg",
128
- },
129
- ]
130
- assert_equal artwork_links, a.artwork_links
131
-
132
- tracks = []
133
- tracks << Acme::Smileage::Discography::Tracks::OnajiJikyuuDeHatarakuTomodachiNoBijinMama.instance
134
- tracks << Acme::Smileage::Discography::Tracks::Odorouyo.instance
135
- tracks << Acme::Smileage::Discography::Tracks::OnnaBakariNoNichiyoubi.instance
136
- tracks << Acme::Smileage::Discography::Tracks::Yumemiru15sai.instance
137
- tracks << Acme::Smileage::Discography::Tracks::ShootingStar.instance
138
- tracks << Acme::Smileage::Discography::Tracks::GambaranakutemoEenende.instance
139
- tracks << Acme::Smileage::Discography::Tracks::Sukichan.instance
140
- tracks << Acme::Smileage::Discography::Tracks::GakkyuuIinchou.instance
141
- tracks << Acme::Smileage::Discography::Tracks::ShikkariShiteyoMou.instance
142
- tracks << Acme::Smileage::Discography::Tracks::OtonaNiNarutteMuzukashii.instance
143
- tracks << Acme::Smileage::Discography::Tracks::AsuhaDateNanoniImasuguKoeGaKikitai.instance
144
- tracks << Acme::Smileage::Discography::Tracks::Amanojaku.instance
145
- assert_equal tracks, a.tracks
146
-
147
- assert_equal false, a.single?
148
- assert_equal true, a.album?
149
- assert_equal false, a.best_album?
150
- assert_equal true, a.original_album?
151
- assert_equal true, a.major?
152
- assert_equal false, a.indies?
153
- assert_equal false, a.download_only?
154
- end
155
-
156
- def test_best_album
157
- s = ::Acme::Smileage.new
158
-
159
- a = s.discography.find {|e| e.name =~ /ベスト/ }
160
- assert_equal "スマイレージ ベストアルバム完全版①", a.name
161
- assert_equal "smleage best album complete (1)", a.name_romaji
162
- assert_equal [], a.nicknames
163
- assert_equal Date.new(2012, 5, 30), a.release_date
164
- assert_equal [6339, 8095, 13, 3], a.oricon.to_a
165
- assert_equal [0, 0, 0, 0], a.soundscan.to_a
166
- artwork_links = [
167
- {
168
- :title => "スマイレージ ベストアルバム完全版① 【通常盤】",
169
- :link => "http://s-mileage.jp/discography/obj/img/000/114/120502-2111_01l.jpg",
170
- },
171
- {
172
- :title => "スマイレージ ベストアルバム完全版① 【初回生産限定盤】",
173
- :link => "http://s-mileage.jp/discography/obj/img/000/114/120502-2111_02l.jpg",
174
- },
175
- ]
176
- assert_equal artwork_links, a.artwork_links
177
-
178
- tracks = []
179
- tracks << Acme::Smileage::Discography::Tracks::Dotbikini.instance
180
- tracks << Acme::Smileage::Discography::Tracks::ChotoMateKudasai.instance
181
- tracks << Acme::Smileage::Discography::Tracks::PleaseMinisukaPostWoman.instance
182
- tracks << Acme::Smileage::Discography::Tracks::Tachiagirl.instance
183
- tracks << Acme::Smileage::Discography::Tracks::UchoutenLove.instance
184
- tracks << Acme::Smileage::Discography::Tracks::KoiNiBooingBoo.instance
185
- tracks << Acme::Smileage::Discography::Tracks::Shortcut.instance
186
- tracks << Acme::Smileage::Discography::Tracks::OnajiJikyuuDeHatarakuTomodachiNoBijinMama.instance
187
- tracks << Acme::Smileage::Discography::Tracks::GambaranakutemoEenende.instance
188
- tracks << Acme::Smileage::Discography::Tracks::Yumemiru15sai.instance
189
- tracks << Acme::Smileage::Discography::Tracks::OtonaNiNarutteMuzukashii.instance
190
- tracks << Acme::Smileage::Discography::Tracks::Sukichan.instance
191
- tracks << Acme::Smileage::Discography::Tracks::AsuhaDateNanoniImasuguKoeGaKikitai.instance
192
- tracks << Acme::Smileage::Discography::Tracks::Amanojaku.instance
193
- tracks << Acme::Smileage::Discography::Tracks::KiiroiJitenshaToSandwich.instance
194
- assert_equal tracks, a.tracks
195
-
196
- assert_equal false, a.single?
197
- assert_equal true, a.album?
198
- assert_equal true, a.best_album?
199
- assert_equal false, a.original_album?
200
- assert_equal true, a.major?
201
- assert_equal false, a.indies?
202
- assert_equal false, a.download_only?
203
- end
204
- end
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require "date"
4
+
5
+ require "minitest_helper"
6
+
7
+ class Acme::TestAlbum < Minitest::Test
8
+ def test_single
9
+ s = ::Acme::Smileage.new
10
+
11
+ a = s.discography.find {|e| e.name =~ /夢見る/ }
12
+ assert_equal "夢見る 15歳", a.name
13
+ assert_equal "yumemiru 15sai", a.name_romaji
14
+ assert_equal Date.new(2010, 5, 26), a.release_date
15
+ assert_equal 2010, a.release_year
16
+ assert_equal [20438, 24936, 5, 4], a.oricon.to_a
17
+ assert_equal [8494, 8494, 17, 1], a.soundscan.to_a
18
+
19
+ artwork_links = [
20
+ {
21
+ :title => "夢見る 15歳 【通常盤】",
22
+ :link => "http://s-mileage.jp/discography/obj/img/000/009/100517-1512_01l.jpg",
23
+ },
24
+ {
25
+ :title => "夢見る 15歳 【初回生産限定盤A】",
26
+ :link => "http://s-mileage.jp/discography/obj/img/000/009/100517-1512_02l.jpg",
27
+ },
28
+ {
29
+ :title => "夢見る 15歳 【初回生産限定盤B】",
30
+ :link => "http://s-mileage.jp/discography/obj/img/000/009/100517-1512_03l.jpg",
31
+ },
32
+ ]
33
+ assert_equal artwork_links, a.artwork_links
34
+
35
+ tracks = []
36
+ tracks << Acme::Smileage::Discography::Tracks::Yumemiru15sai.instance
37
+ tracks << Acme::Smileage::Discography::Tracks::ThankYouCremeBruleeNoYuujou.instance
38
+ assert_equal tracks, a.tracks
39
+
40
+ assert_equal true, a.single?
41
+ assert_equal false, a.album?
42
+ assert_equal false, a.best_album?
43
+ assert_equal false, a.original_album?
44
+ assert_equal true, a.major?
45
+ assert_equal false, a.indies?
46
+ assert_equal false, a.download_only?
47
+ end
48
+
49
+ def test_indies
50
+ s = ::Acme::Smileage.new
51
+
52
+ a = s.discography.find {|e| e.name =~ /ぁまのじゃく/ }
53
+ assert_equal "ぁまのじゃく", a.name
54
+ assert_equal "amanojaku", a.name_romaji
55
+ assert_equal Date.new(2009, 6, 7), a.release_date
56
+ assert_equal 2009, a.release_year
57
+ assert_equal [0, 0, 0, 0], a.oricon.to_a
58
+ assert_equal [0, 0, 0, 0], a.soundscan.to_a
59
+ artwork_links = [
60
+ {
61
+ :title => "ぁまのじゃく",
62
+ :link => "http://s-mileage.jp/discography/obj/img/000/012/100922-1209_01l.jpg",
63
+ },
64
+ ]
65
+ assert_equal artwork_links, a.artwork_links
66
+
67
+ tracks = []
68
+ tracks << Acme::Smileage::Discography::Tracks::Amanojaku.instance
69
+ assert_equal tracks, a.tracks
70
+
71
+ assert_equal true, a.single?
72
+ assert_equal false, a.album?
73
+ assert_equal false, a.best_album?
74
+ assert_equal false, a.original_album?
75
+ assert_equal false, a.major?
76
+ assert_equal true, a.indies?
77
+ assert_equal false, a.download_only?
78
+ end
79
+
80
+ def test_download_only
81
+ s = ::Acme::Smileage.new
82
+
83
+ a = s.discography.find {|e| e.name =~ /PAX JAPONICA/ }
84
+ assert_equal "夢見る 15歳 (PAX JAPONICA GROOVE REMIX)", a.name
85
+ assert_equal "yumemiru 15sai (pax japonica groove remix)", a.name_romaji
86
+ assert_equal Date.new(2010, 6, 18), a.release_date
87
+ assert_equal 2010, a.release_year
88
+ artwork_links = [
89
+ {
90
+ :title => "夢見る 15歳 (PAX JAPONICA GROOVE REMIX)",
91
+ :link => "http://s-mileage.jp/discography/obj/img/000/032/100709-1334_01l.jpg",
92
+ },
93
+ ]
94
+ assert_equal artwork_links, a.artwork_links
95
+
96
+ tracks = []
97
+ tracks << Acme::Smileage::Discography::Tracks::Yumemiru15saiPaxJaponicaGrooveRemix.instance
98
+ assert_equal tracks, a.tracks
99
+
100
+ assert_equal false, a.single?
101
+ assert_equal false, a.album?
102
+ assert_equal false, a.best_album?
103
+ assert_equal false, a.original_album?
104
+ assert_equal true, a.major?
105
+ assert_equal false, a.indies?
106
+ assert_equal true, a.download_only?
107
+ end
108
+
109
+ def test_album
110
+ s = ::Acme::Smileage.new
111
+
112
+ a = s.discography.find {|e| e.name =~ /悪ガキ/ }
113
+ assert_equal "悪ガキッ①", a.name
114
+ assert_equal "waru gaki (1)", a.name_romaji
115
+ assert_equal Date.new(2010, 12, 8), a.release_date
116
+ assert_equal 2010, a.release_year
117
+ assert_equal [8905, 11848, 18, 5], a.oricon.to_a
118
+ assert_equal [0, 0, 0, 0], a.soundscan.to_a
119
+
120
+ artwork_links = [
121
+ {
122
+ :title => "悪ガキッ① 【通常盤】",
123
+ :link => "http://s-mileage.jp/discography/obj/img/000/047/101118-1624_01l.jpg",
124
+ },
125
+ {
126
+ :title => "悪ガキッ① 【初回生産限定盤】",
127
+ :link => "http://s-mileage.jp/discography/obj/img/000/047/101118-1624_02l.jpg",
128
+ },
129
+ ]
130
+ assert_equal artwork_links, a.artwork_links
131
+
132
+ tracks = []
133
+ tracks << Acme::Smileage::Discography::Tracks::OnajiJikyuuDeHatarakuTomodachiNoBijinMama.instance
134
+ tracks << Acme::Smileage::Discography::Tracks::Odorouyo.instance
135
+ tracks << Acme::Smileage::Discography::Tracks::OnnaBakariNoNichiyoubi.instance
136
+ tracks << Acme::Smileage::Discography::Tracks::Yumemiru15sai.instance
137
+ tracks << Acme::Smileage::Discography::Tracks::ShootingStar.instance
138
+ tracks << Acme::Smileage::Discography::Tracks::GambaranakutemoEenende.instance
139
+ tracks << Acme::Smileage::Discography::Tracks::Sukichan.instance
140
+ tracks << Acme::Smileage::Discography::Tracks::GakkyuuIinchou.instance
141
+ tracks << Acme::Smileage::Discography::Tracks::ShikkariShiteyoMou.instance
142
+ tracks << Acme::Smileage::Discography::Tracks::OtonaNiNarutteMuzukashii.instance
143
+ tracks << Acme::Smileage::Discography::Tracks::AsuhaDateNanoniImasuguKoeGaKikitai.instance
144
+ tracks << Acme::Smileage::Discography::Tracks::Amanojaku.instance
145
+ assert_equal tracks, a.tracks
146
+
147
+ assert_equal false, a.single?
148
+ assert_equal true, a.album?
149
+ assert_equal false, a.best_album?
150
+ assert_equal true, a.original_album?
151
+ assert_equal true, a.major?
152
+ assert_equal false, a.indies?
153
+ assert_equal false, a.download_only?
154
+ end
155
+
156
+ def test_best_album
157
+ s = ::Acme::Smileage.new
158
+
159
+ a = s.discography.find {|e| e.name =~ /ベスト/ }
160
+ assert_equal "スマイレージ ベストアルバム完全版①", a.name
161
+ assert_equal "smleage best album complete (1)", a.name_romaji
162
+ assert_equal [], a.nicknames
163
+ assert_equal Date.new(2012, 5, 30), a.release_date
164
+ assert_equal [6339, 8095, 13, 3], a.oricon.to_a
165
+ assert_equal [0, 0, 0, 0], a.soundscan.to_a
166
+ artwork_links = [
167
+ {
168
+ :title => "スマイレージ ベストアルバム完全版① 【通常盤】",
169
+ :link => "http://s-mileage.jp/discography/obj/img/000/114/120502-2111_01l.jpg",
170
+ },
171
+ {
172
+ :title => "スマイレージ ベストアルバム完全版① 【初回生産限定盤】",
173
+ :link => "http://s-mileage.jp/discography/obj/img/000/114/120502-2111_02l.jpg",
174
+ },
175
+ ]
176
+ assert_equal artwork_links, a.artwork_links
177
+
178
+ tracks = []
179
+ tracks << Acme::Smileage::Discography::Tracks::Dotbikini.instance
180
+ tracks << Acme::Smileage::Discography::Tracks::ChotoMateKudasai.instance
181
+ tracks << Acme::Smileage::Discography::Tracks::PleaseMinisukaPostWoman.instance
182
+ tracks << Acme::Smileage::Discography::Tracks::Tachiagirl.instance
183
+ tracks << Acme::Smileage::Discography::Tracks::UchoutenLove.instance
184
+ tracks << Acme::Smileage::Discography::Tracks::KoiNiBooingBoo.instance
185
+ tracks << Acme::Smileage::Discography::Tracks::Shortcut.instance
186
+ tracks << Acme::Smileage::Discography::Tracks::OnajiJikyuuDeHatarakuTomodachiNoBijinMama.instance
187
+ tracks << Acme::Smileage::Discography::Tracks::GambaranakutemoEenende.instance
188
+ tracks << Acme::Smileage::Discography::Tracks::Yumemiru15sai.instance
189
+ tracks << Acme::Smileage::Discography::Tracks::OtonaNiNarutteMuzukashii.instance
190
+ tracks << Acme::Smileage::Discography::Tracks::Sukichan.instance
191
+ tracks << Acme::Smileage::Discography::Tracks::AsuhaDateNanoniImasuguKoeGaKikitai.instance
192
+ tracks << Acme::Smileage::Discography::Tracks::Amanojaku.instance
193
+ tracks << Acme::Smileage::Discography::Tracks::KiiroiJitenshaToSandwich.instance
194
+ assert_equal tracks, a.tracks
195
+
196
+ assert_equal false, a.single?
197
+ assert_equal true, a.album?
198
+ assert_equal true, a.best_album?
199
+ assert_equal false, a.original_album?
200
+ assert_equal true, a.major?
201
+ assert_equal false, a.indies?
202
+ assert_equal false, a.download_only?
203
+ end
204
+ end