twitter_friendly 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01532d5c3cc176a719499e7680cb7df3127c45a4f745ece3f05d703158aa4dcc
4
- data.tar.gz: 04cc82c2474a4d7e63d232f13750aeed2a2da072654605fb90c3ab2fc43ed6c4
3
+ metadata.gz: 5611cd772b52ea39a00bb73218c52495d4934d3994fb5f471e37f8f9dc81cccc
4
+ data.tar.gz: 9e6a9094fe7f541d30de5281fa812fb273956645044acd69b755963f4235fe95
5
5
  SHA512:
6
- metadata.gz: e8f28b5369b73869cdf39cc6165550b8a75d7fe5acff766ee0f1cfd9e6d965acb15c9bd00281cc3b1a1d3424a829e1ad6c005b2befcb55e4944faaa2d7e7ed95
7
- data.tar.gz: e905e22b816779c8ce367e1c3ed5028a957289b15b1ba7b44d42d4bfe67457f1cbafa7febb1b0c00b99b20029d1b81d44af11310329d939c0f50ac642a57c6e8
6
+ metadata.gz: aa33d8279f915b94f5e43e96f2ce09ec32d0b019e18fbe214f207f403bbfcde773b45627d546f6177b7735a6f234954eb616f45f79b808f7322e0de775dad196
7
+ data.tar.gz: 848f0e69305824b7cf7d3fbe219fbd278957c9968ad619ec7e648ed641d60174f3475294a20b185a877de35de80dcfee6cf3c186bae6ff8e839e9f54d9f0ec2c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- twitter_friendly (1.0.0)
4
+ twitter_friendly (1.1.0)
5
5
  activesupport (>= 4.2, < 6.0)
6
6
  oj (~> 3.7.6)
7
7
  parallel (~> 1.12.1)
@@ -11,7 +11,6 @@ require 'twitter_friendly/rest/tweets'
11
11
 
12
12
  # 後方互換性のために残した
13
13
  require 'twitter_friendly/rest/extension/clusters'
14
- require 'twitter_friendly/rest/extension/timelines'
15
14
 
16
15
  module TwitterFriendly
17
16
  module REST
@@ -28,7 +27,6 @@ module TwitterFriendly
28
27
  include TwitterFriendly::REST::Tweets
29
28
 
30
29
  include TwitterFriendly::REST::Extension::Clusters
31
- include TwitterFriendly::REST::Extension::Timelines
32
30
  end
33
31
  end
34
32
  end
@@ -1,3 +1,3 @@
1
1
  module TwitterFriendly
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitter_friendly
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ts-3156
@@ -189,7 +189,6 @@ files:
189
189
  - lib/twitter_friendly/rest/api.rb
190
190
  - lib/twitter_friendly/rest/collector.rb
191
191
  - lib/twitter_friendly/rest/extension/clusters.rb
192
- - lib/twitter_friendly/rest/extension/timelines.rb
193
192
  - lib/twitter_friendly/rest/favorites.rb
194
193
  - lib/twitter_friendly/rest/friends_and_followers.rb
195
194
  - lib/twitter_friendly/rest/lists.rb
@@ -1,129 +0,0 @@
1
- module TwitterFriendly
2
- module REST
3
- module Extension
4
- module Timelines
5
-
6
- EVERY_DAY = (0..6)
7
- WDAY_COUNT = EVERY_DAY.map { |n| [n, 0] }.to_h
8
- WDAY_NIL_COUNT = EVERY_DAY.map { |n| [n, nil] }.to_h
9
-
10
- EVERY_HOUR = (0..23)
11
- HOUR_COUNT = EVERY_HOUR.map { |n| [n, 0] }.to_h
12
- HOUR_NIL_COUNT = EVERY_HOUR.map { |n| [n, nil] }.to_h
13
-
14
- def count_wday(times)
15
- times.each_with_object(WDAY_COUNT.dup) { |time, memo| memo[time.wday] += 1 }
16
- end
17
-
18
- def count_hour(times)
19
- times.each_with_object(HOUR_COUNT.dup) { |time, memo| memo[time.hour] += 1 }
20
- end
21
-
22
- # [
23
- # {:name=>"Sun", :y=>111, :drilldown=>"Sun"},
24
- # {:name=>"Mon", :y=>95, :drilldown=>"Mon"},
25
- # {:name=>"Tue", :y=>72, :drilldown=>"Tue"},
26
- # {:name=>"Wed", :y=>70, :drilldown=>"Wed"},
27
- # {:name=>"Thu", :y=>73, :drilldown=>"Thu"},
28
- # {:name=>"Fri", :y=>81, :drilldown=>"Fri"},
29
- # {:name=>"Sat", :y=>90, :drilldown=>"Sat"}
30
- # ]
31
- def usage_stats_wday_series_data(times, day_names:)
32
- count_wday(times).map do |wday, count|
33
- {name: day_names[wday], y: count, drilldown: day_names[wday]}
34
- end
35
- end
36
-
37
- # [
38
- # {
39
- # :name=>"Sun",
40
- # :id=>"Sun",
41
- # :data=> [ ["0", 7], ["1", 12], ... , ["22", 10], ["23", 12] ]
42
- # },
43
- # ...
44
- # {
45
- # :name=>"Mon",
46
- # :id=>"Mon",
47
- # :data=> [ ["0", 22], ["1", 11], ... , ["22", 9], ["23", 14] ]
48
- # }
49
- def usage_stats_wday_drilldown_series(times, day_names:)
50
- counts =
51
- EVERY_DAY.each_with_object(WDAY_NIL_COUNT.dup) do |wday, memo|
52
- memo[wday] = count_hour(times.select { |t| t.wday == wday })
53
- end
54
-
55
- counts.map { |wday, hour_count| [day_names[wday], hour_count] }.map do |wday, hour_count|
56
- {name: wday, id: wday, data: hour_count.map { |hour, count| [hour.to_s, count] }}
57
- end
58
- end
59
-
60
- # [
61
- # {:name=>"0", :y=>66, :drilldown=>"0"},
62
- # {:name=>"1", :y=>47, :drilldown=>"1"},
63
- # ...
64
- # {:name=>"22", :y=>73, :drilldown=>"22"},
65
- # {:name=>"23", :y=>87, :drilldown=>"23"}
66
- # ]
67
- def usage_stats_hour_series_data(times)
68
- count_hour(times).map do |hour, count|
69
- {name: hour.to_s, y: count, drilldown: hour.to_s}
70
- end
71
- end
72
-
73
- # [
74
- # {:name=>"0", :id=>"0", :data=>[["Sun", 7], ["Mon", 22], ["Tue", 8], ["Wed", 9], ["Thu", 9], ["Fri", 6], ["Sat", 5]]},
75
- # {:name=>"1", :id=>"1", :data=>[["Sun", 12], ["Mon", 11], ["Tue", 5], ["Wed", 5], ["Thu", 0], ["Fri", 8], ["Sat", 6]]},
76
- # ...
77
- # ]
78
- def usage_stats_hour_drilldown_series(times, day_names:)
79
- counts =
80
- EVERY_HOUR.each_with_object(HOUR_NIL_COUNT.dup) do |hour, memo|
81
- memo[hour] = count_wday(times.select { |t| t.hour == hour })
82
- end
83
-
84
- counts.map do |hour, wday_count|
85
- {name: hour.to_s, id: hour.to_s, data: wday_count.map { |wday, count| [day_names[wday], count] }}
86
- end
87
- end
88
-
89
- # [
90
- # {:name=>"Sun", :y=>14.778310502283107},
91
- # {:name=>"Mon", :y=>12.273439878234399},
92
- # {:name=>"Tue", :y=>10.110578386605784},
93
- # {:name=>"Wed", :y=>9.843683409436835},
94
- # {:name=>"Thu", :y=>10.547945205479452},
95
- # {:name=>"Fri", :y=>10.61773211567732},
96
- # {:name=>"Sat", :y=>12.115753424657534}
97
- # ]
98
- def twitter_addiction_series(times, day_names:)
99
- max_duration = 5.minutes
100
- wday_count =
101
- EVERY_DAY.each_with_object(WDAY_NIL_COUNT.dup) do |wday, memo|
102
- target_times = times.select { |t| t.wday == wday }
103
- memo[wday] =
104
- if target_times.empty?
105
- nil
106
- else
107
- target_times.each_cons(2).map { |newer, older| (newer - older) < max_duration ? newer - older : max_duration }.sum
108
- end
109
- end
110
- days = times.map { |t| t.to_date.to_s(:long) }.uniq.size
111
- weeks = [days / 7.0, 1.0].max
112
- wday_count.map do |wday, seconds|
113
- {name: day_names[wday], y: (seconds.nil? ? nil : seconds / weeks / 60)}
114
- end
115
- end
116
-
117
- def usage_stats(tweet_times, day_names: %w(Sun Mon Tue Wed Thu Fri Sat))
118
- [
119
- usage_stats_wday_series_data(tweet_times, day_names: day_names),
120
- usage_stats_wday_drilldown_series(tweet_times, day_names: day_names),
121
- usage_stats_hour_series_data(tweet_times),
122
- usage_stats_hour_drilldown_series(tweet_times, day_names: day_names),
123
- twitter_addiction_series(tweet_times, day_names: day_names)
124
- ]
125
- end
126
- end
127
- end
128
- end
129
- end