unclekryon 0.4.10 → 0.4.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +6 -19
- data/Gemfile.lock +19 -23
- data/README.md +3 -2
- data/Rakefile +11 -30
- data/bin/unclekryon +4 -15
- data/hax/kryon.yaml +28 -0
- data/hax/kryon_aums_2002-2005.yaml +460 -0
- data/hax/kryon_aums_2006.yaml +601 -0
- data/hax/kryon_aums_2007.yaml +1024 -0
- data/hax/kryon_aums_2008.yaml +950 -0
- data/hax/kryon_aums_2009.yaml +496 -0
- data/hax/kryon_aums_2010.yaml +1443 -0
- data/hax/kryon_aums_2011.yaml +1458 -0
- data/hax/kryon_aums_2012.yaml +2123 -0
- data/hax/kryon_aums_2013.yaml +1647 -0
- data/hax/kryon_aums_2014.yaml +2478 -0
- data/hax/kryon_aums_2015.yaml +3386 -0
- data/hax/kryon_aums_2016.yaml +3476 -0
- data/hax/kryon_aums_2017.yaml +3712 -0
- data/hax/kryon_aums_2018.yaml +3654 -0
- data/lib/unclekryon.rb +165 -165
- data/lib/unclekryon/data/album_data.rb +74 -82
- data/lib/unclekryon/data/artist_data.rb +24 -36
- data/lib/unclekryon/data/artist_data_data.rb +29 -41
- data/lib/unclekryon/data/aum_data.rb +20 -32
- data/lib/unclekryon/data/base_data.rb +27 -39
- data/lib/unclekryon/data/pic_data.rb +25 -37
- data/lib/unclekryon/data/release_data.rb +14 -26
- data/lib/unclekryon/data/social_data.rb +6 -18
- data/lib/unclekryon/data/timespan_data.rb +16 -28
- data/lib/unclekryon/dev_opts.rb +7 -19
- data/lib/unclekryon/hacker.rb +119 -133
- data/lib/unclekryon/iso.rb +128 -138
- data/lib/unclekryon/iso/base_iso.rb +69 -81
- data/lib/unclekryon/iso/can_prov_terr.rb +34 -47
- data/lib/unclekryon/iso/country.rb +36 -49
- data/lib/unclekryon/iso/language.rb +86 -96
- data/lib/unclekryon/iso/region.rb +11 -25
- data/lib/unclekryon/iso/subregion.rb +11 -25
- data/lib/unclekryon/iso/usa_state.rb +28 -41
- data/lib/unclekryon/jsoner.rb +31 -50
- data/lib/unclekryon/log.rb +34 -46
- data/lib/unclekryon/parsers/kryon_aum_year_album_parser.rb +163 -167
- data/lib/unclekryon/parsers/kryon_aum_year_parser.rb +122 -127
- data/lib/unclekryon/server.rb +8 -17
- data/lib/unclekryon/trainer.rb +69 -83
- data/lib/unclekryon/uploader.rb +8 -17
- data/lib/unclekryon/util.rb +80 -92
- data/lib/unclekryon/version.rb +4 -16
- data/train/kryon.yaml +6077 -0
- data/unclekryon.gemspec +44 -42
- metadata +59 -16
@@ -1,23 +1,11 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
# frozen_string_literal: true
|
4
3
|
|
5
4
|
#--
|
6
5
|
# This file is part of UncleKryon-server.
|
7
|
-
# Copyright (c) 2017-
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# it under the terms of the GNU General Public License as published by
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
12
|
-
# (at your option) any later version.
|
13
|
-
#
|
14
|
-
# UncleKryon-server is distributed in the hope that it will be useful,
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# GNU General Public License for more details.
|
18
|
-
#
|
19
|
-
# You should have received a copy of the GNU General Public License
|
20
|
-
# along with UncleKryon-server. If not, see <https://www.gnu.org/licenses/>.
|
6
|
+
# Copyright (c) 2017-2021 Jonathan Bradley Whited
|
7
|
+
#
|
8
|
+
# SPDX-License-Identifier: GPL-3.0-or-later
|
21
9
|
#++
|
22
10
|
|
23
11
|
|
@@ -31,37 +19,37 @@ module UncleKryon
|
|
31
19
|
attr_accessor :timespan
|
32
20
|
attr_accessor :filesize
|
33
21
|
attr_accessor :filename
|
34
|
-
|
22
|
+
|
35
23
|
attr_accessor :url
|
36
24
|
attr_accessor :mirrors
|
37
|
-
|
38
|
-
def initialize
|
25
|
+
|
26
|
+
def initialize
|
39
27
|
super()
|
40
|
-
|
28
|
+
|
41
29
|
@title = ''
|
42
30
|
@subtitle = ''
|
43
31
|
@languages = []
|
44
32
|
@timespan = ''
|
45
33
|
@filesize = ''
|
46
34
|
@filename = ''
|
47
|
-
|
35
|
+
|
48
36
|
@url = ''
|
49
37
|
@mirrors = {}
|
50
38
|
end
|
51
|
-
|
39
|
+
|
52
40
|
# Excludes @updated_on
|
53
|
-
def ==(
|
54
|
-
return @title ==
|
55
|
-
@subtitle ==
|
56
|
-
@languages ==
|
57
|
-
@timespan ==
|
58
|
-
@filesize ==
|
59
|
-
@filename ==
|
60
|
-
@url ==
|
61
|
-
@mirrors ==
|
41
|
+
def ==(other)
|
42
|
+
return @title == other.title &&
|
43
|
+
@subtitle == other.subtitle &&
|
44
|
+
@languages == other.languages &&
|
45
|
+
@timespan == other.timespan &&
|
46
|
+
@filesize == other.filesize &&
|
47
|
+
@filename == other.filename &&
|
48
|
+
@url == other.url &&
|
49
|
+
@mirrors == other.mirrors
|
62
50
|
end
|
63
|
-
|
64
|
-
def to_s
|
51
|
+
|
52
|
+
def to_s
|
65
53
|
s = ''
|
66
54
|
s << ('%-40s' % [@title])
|
67
55
|
s << (' | %30s' % [@subtitle])
|
@@ -1,23 +1,11 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
# frozen_string_literal: true
|
4
3
|
|
5
4
|
#--
|
6
5
|
# This file is part of UncleKryon-server.
|
7
|
-
# Copyright (c) 2018-
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# it under the terms of the GNU General Public License as published by
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
12
|
-
# (at your option) any later version.
|
13
|
-
#
|
14
|
-
# UncleKryon-server is distributed in the hope that it will be useful,
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# GNU General Public License for more details.
|
18
|
-
#
|
19
|
-
# You should have received a copy of the GNU General Public License
|
20
|
-
# along with UncleKryon-server. If not, see <https://www.gnu.org/licenses/>.
|
6
|
+
# Copyright (c) 2018-2021 Jonathan Bradley Whited
|
7
|
+
#
|
8
|
+
# SPDX-License-Identifier: GPL-3.0-or-later
|
21
9
|
#++
|
22
10
|
|
23
11
|
|
@@ -28,50 +16,50 @@ require 'unclekryon/util'
|
|
28
16
|
module UncleKryon
|
29
17
|
class BaseData
|
30
18
|
attr_accessor :updated_on
|
31
|
-
|
32
|
-
def initialize
|
33
|
-
update
|
19
|
+
|
20
|
+
def initialize
|
21
|
+
update
|
34
22
|
end
|
35
|
-
|
23
|
+
|
36
24
|
def initialize_copy(original)
|
37
25
|
super(original)
|
38
|
-
|
39
|
-
@updated_on = @updated_on.clone
|
26
|
+
|
27
|
+
@updated_on = @updated_on.clone
|
40
28
|
end
|
41
|
-
|
42
|
-
def update
|
43
|
-
@updated_on = Util.format_datetime(DateTime.now
|
29
|
+
|
30
|
+
def update
|
31
|
+
@updated_on = Util.format_datetime(DateTime.now)
|
44
32
|
return @updated_on
|
45
33
|
end
|
46
|
-
|
47
|
-
def max_updated_on
|
34
|
+
|
35
|
+
def max_updated_on
|
48
36
|
max = nil
|
49
|
-
|
37
|
+
|
50
38
|
instance_variables.each do |iv|
|
51
|
-
vuo = Util.parse_datetime_s(instance_variable_get(iv)) if iv.to_s
|
52
|
-
max = vuo if max.nil?
|
39
|
+
vuo = Util.parse_datetime_s(instance_variable_get(iv)) if iv.to_s =~ /\A@updated_.+_on\z/
|
40
|
+
max = vuo if max.nil? || vuo > max
|
53
41
|
end
|
54
|
-
|
42
|
+
|
55
43
|
return max
|
56
44
|
end
|
57
|
-
|
45
|
+
|
58
46
|
def self.max_updated_on(data)
|
59
47
|
max = nil
|
60
|
-
|
48
|
+
|
61
49
|
if data.is_a?(Hash)
|
62
|
-
data.each
|
50
|
+
data.each do |k,v|
|
63
51
|
vuo = Util.parse_datetime_s(v.updated_on)
|
64
|
-
max = vuo if max.nil?
|
52
|
+
max = vuo if max.nil? || vuo > max
|
65
53
|
end
|
66
54
|
end
|
67
|
-
|
55
|
+
|
68
56
|
return max
|
69
57
|
end
|
70
|
-
|
71
|
-
def max_updated_on_s
|
72
|
-
return Util.format_datetime(max_updated_on
|
58
|
+
|
59
|
+
def max_updated_on_s
|
60
|
+
return Util.format_datetime(max_updated_on)
|
73
61
|
end
|
74
|
-
|
62
|
+
|
75
63
|
def self.max_updated_on_s(data)
|
76
64
|
return Util.format_datetime(max_updated_on(data))
|
77
65
|
end
|
@@ -1,23 +1,11 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
# frozen_string_literal: true
|
4
3
|
|
5
4
|
#--
|
6
5
|
# This file is part of UncleKryon-server.
|
7
|
-
# Copyright (c) 2017-
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# it under the terms of the GNU General Public License as published by
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
12
|
-
# (at your option) any later version.
|
13
|
-
#
|
14
|
-
# UncleKryon-server is distributed in the hope that it will be useful,
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# GNU General Public License for more details.
|
18
|
-
#
|
19
|
-
# You should have received a copy of the GNU General Public License
|
20
|
-
# along with UncleKryon-server. If not, see <https://www.gnu.org/licenses/>.
|
6
|
+
# Copyright (c) 2017-2021 Jonathan Bradley Whited
|
7
|
+
#
|
8
|
+
# SPDX-License-Identifier: GPL-3.0-or-later
|
21
9
|
#++
|
22
10
|
|
23
11
|
|
@@ -27,49 +15,49 @@ module UncleKryon
|
|
27
15
|
class PicData < BaseData
|
28
16
|
attr_accessor :name
|
29
17
|
attr_accessor :filename
|
30
|
-
|
18
|
+
|
31
19
|
attr_accessor :alt
|
32
20
|
attr_accessor :caption
|
33
|
-
|
21
|
+
|
34
22
|
attr_accessor :url
|
35
23
|
attr_accessor :mirrors
|
36
|
-
|
37
|
-
def initialize
|
24
|
+
|
25
|
+
def initialize
|
38
26
|
super()
|
39
|
-
|
27
|
+
|
40
28
|
@name = ''
|
41
29
|
@filename = ''
|
42
|
-
|
30
|
+
|
43
31
|
@alt = ''
|
44
32
|
@caption = ''
|
45
|
-
|
33
|
+
|
46
34
|
@url = ''
|
47
35
|
@mirrors = {}
|
48
36
|
end
|
49
|
-
|
37
|
+
|
50
38
|
# Excludes @updated_on
|
51
|
-
def ==(
|
52
|
-
return @name ==
|
53
|
-
@filename ==
|
54
|
-
@alt ==
|
55
|
-
@caption ==
|
56
|
-
@url ==
|
57
|
-
@mirrors ==
|
39
|
+
def ==(other)
|
40
|
+
return @name == other.name &&
|
41
|
+
@filename == other.filename &&
|
42
|
+
@alt == other.alt &&
|
43
|
+
@caption == other.caption &&
|
44
|
+
@url == other.url &&
|
45
|
+
@mirrors == other.mirrors
|
58
46
|
end
|
59
|
-
|
60
|
-
def to_s
|
61
|
-
s = ''.dup
|
62
|
-
|
63
|
-
if @name.empty?
|
47
|
+
|
48
|
+
def to_s
|
49
|
+
s = ''.dup
|
50
|
+
|
51
|
+
if @name.empty? || @name.strip.empty?
|
64
52
|
s << ('%-100s' % [@url])
|
65
53
|
else
|
66
54
|
s << ('%-30s' % [@name])
|
67
55
|
s << (' | %30s' % [@filename]) unless @name == @filename
|
68
|
-
|
56
|
+
|
69
57
|
s << (' | %30s' % [@alt]) unless @name == @alt
|
70
58
|
s << (' | %60s' % [@caption])
|
71
59
|
end
|
72
|
-
|
60
|
+
|
73
61
|
return s
|
74
62
|
end
|
75
63
|
end
|
@@ -1,23 +1,11 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
# frozen_string_literal: true
|
4
3
|
|
5
4
|
#--
|
6
5
|
# This file is part of UncleKryon-server.
|
7
|
-
# Copyright (c) 2017-
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# it under the terms of the GNU General Public License as published by
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
12
|
-
# (at your option) any later version.
|
13
|
-
#
|
14
|
-
# UncleKryon-server is distributed in the hope that it will be useful,
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# GNU General Public License for more details.
|
18
|
-
#
|
19
|
-
# You should have received a copy of the GNU General Public License
|
20
|
-
# along with UncleKryon-server. If not, see <https://www.gnu.org/licenses/>.
|
6
|
+
# Copyright (c) 2017-2021 Jonathan Bradley Whited
|
7
|
+
#
|
8
|
+
# SPDX-License-Identifier: GPL-3.0-or-later
|
21
9
|
#++
|
22
10
|
|
23
11
|
|
@@ -26,31 +14,31 @@ require 'unclekryon/data/base_data'
|
|
26
14
|
module UncleKryon
|
27
15
|
class ReleaseData < BaseData
|
28
16
|
attr_accessor :title
|
29
|
-
|
17
|
+
|
30
18
|
attr_accessor :url
|
31
19
|
attr_accessor :mirrors
|
32
|
-
|
20
|
+
|
33
21
|
attr_accessor :albums
|
34
|
-
|
35
|
-
def initialize
|
22
|
+
|
23
|
+
def initialize
|
36
24
|
super()
|
37
|
-
|
25
|
+
|
38
26
|
@title = ''
|
39
|
-
|
27
|
+
|
40
28
|
@url = ''
|
41
29
|
@mirrors = {}
|
42
|
-
|
30
|
+
|
43
31
|
@albums = []
|
44
32
|
end
|
45
|
-
|
46
|
-
def to_mini_s
|
33
|
+
|
34
|
+
def to_mini_s
|
47
35
|
return to_s(true)
|
48
36
|
end
|
49
|
-
|
37
|
+
|
50
38
|
def to_s(mini=false)
|
51
39
|
s = ''
|
52
40
|
s << ('%-10s' % [@title])
|
53
|
-
s << (mini ? (' | %3d' % [@albums.length
|
41
|
+
s << (mini ? (' | %3d' % [@albums.length]) : ("\n- " << @albums.join("\n- ")))
|
54
42
|
return s
|
55
43
|
end
|
56
44
|
end
|
@@ -1,23 +1,11 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
# frozen_string_literal: true
|
4
3
|
|
5
4
|
#--
|
6
5
|
# This file is part of UncleKryon-server.
|
7
|
-
# Copyright (c) 2018-
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# it under the terms of the GNU General Public License as published by
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
12
|
-
# (at your option) any later version.
|
13
|
-
#
|
14
|
-
# UncleKryon-server is distributed in the hope that it will be useful,
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# GNU General Public License for more details.
|
18
|
-
#
|
19
|
-
# You should have received a copy of the GNU General Public License
|
20
|
-
# along with UncleKryon-server. If not, see <https://www.gnu.org/licenses/>.
|
6
|
+
# Copyright (c) 2018-2021 Jonathan Bradley Whited
|
7
|
+
#
|
8
|
+
# SPDX-License-Identifier: GPL-3.0-or-later
|
21
9
|
#++
|
22
10
|
|
23
11
|
|
@@ -28,10 +16,10 @@ module UncleKryon
|
|
28
16
|
class SocialData
|
29
17
|
attr_accessor :username
|
30
18
|
attr_accessor :url
|
31
|
-
|
32
|
-
def initialize
|
19
|
+
|
20
|
+
def initialize
|
33
21
|
super()
|
34
|
-
|
22
|
+
|
35
23
|
@username = ''
|
36
24
|
@url = ''
|
37
25
|
end
|
@@ -1,23 +1,11 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
1
|
# encoding: UTF-8
|
3
2
|
# frozen_string_literal: true
|
4
3
|
|
5
4
|
#--
|
6
5
|
# This file is part of UncleKryon-server.
|
7
|
-
# Copyright (c) 2017-
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# it under the terms of the GNU General Public License as published by
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
12
|
-
# (at your option) any later version.
|
13
|
-
#
|
14
|
-
# UncleKryon-server is distributed in the hope that it will be useful,
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
-
# GNU General Public License for more details.
|
18
|
-
#
|
19
|
-
# You should have received a copy of the GNU General Public License
|
20
|
-
# along with UncleKryon-server. If not, see <https://www.gnu.org/licenses/>.
|
6
|
+
# Copyright (c) 2017-2021 Jonathan Bradley Whited
|
7
|
+
#
|
8
|
+
# SPDX-License-Identifier: GPL-3.0-or-later
|
21
9
|
#++
|
22
10
|
|
23
11
|
|
@@ -30,28 +18,28 @@ module UncleKryon
|
|
30
18
|
attr_accessor :hours
|
31
19
|
attr_accessor :mins
|
32
20
|
attr_accessor :secs
|
33
|
-
|
21
|
+
|
34
22
|
def initialize(time=nil)
|
35
23
|
@hours = 0
|
36
24
|
@mins = 0
|
37
25
|
@secs = 0
|
38
|
-
|
39
|
-
if !time.nil?
|
26
|
+
|
27
|
+
if !time.nil? && !(time = time.strip).empty?
|
40
28
|
time = time.gsub(/\A[^\(]+\(/,'') # "One hour 6 minutes - (66 minutes)"
|
41
29
|
time = time.gsub(/[^[[:digit:]]\:\.]+/,'')
|
42
30
|
a = time.split(/[\:\.]/)
|
43
|
-
|
31
|
+
|
44
32
|
if a.length == 1
|
45
|
-
@mins = a[0].to_i
|
33
|
+
@mins = a[0].to_i
|
46
34
|
elsif a.length == 2
|
47
|
-
@mins = a[0].to_i
|
48
|
-
@secs = a[1].to_i
|
35
|
+
@mins = a[0].to_i
|
36
|
+
@secs = a[1].to_i
|
49
37
|
elsif a.length >= 3
|
50
|
-
@hours = a[0].to_i
|
51
|
-
@mins = a[1].to_i
|
52
|
-
@secs = a[2].to_i
|
38
|
+
@hours = a[0].to_i
|
39
|
+
@mins = a[1].to_i
|
40
|
+
@secs = a[2].to_i
|
53
41
|
end
|
54
|
-
|
42
|
+
|
55
43
|
if @secs >= 60
|
56
44
|
@mins += (@secs / 60)
|
57
45
|
@secs = @secs % 60
|
@@ -62,8 +50,8 @@ module UncleKryon
|
|
62
50
|
end
|
63
51
|
end
|
64
52
|
end
|
65
|
-
|
66
|
-
def to_s
|
53
|
+
|
54
|
+
def to_s
|
67
55
|
return "#{@hours}:#{@mins}:#{@secs}"
|
68
56
|
end
|
69
57
|
end
|