video_chat_get 0.1.6 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +20 -4
- data/Gemfile.lock +1 -1
- data/lib/site_list/twitcasting_analyze.rb +2 -2
- data/lib/site_list/youtubelive_analyze.rb +36 -14
- data/lib/video_chat_get/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 72c2d47a8f701af1d42780d9261be02ca29d743800971982bf42b9438ee4bdba
|
|
4
|
+
data.tar.gz: 90d62278f6cfee916570aad6ebe63acfb4122d9d19eb2f7dba4ef4b153561090
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 45ed4d022d5b3b40da4ee41103fa589ad4eed996c1ece2afffbfcedfaed0621acac7ffe1555d9b6237d048fe2e5bd5fea06ed128913acedbe665cc1025d6a472
|
|
7
|
+
data.tar.gz: bafe20e7dbc9b3e67ac1f7d41aebebbde6bb43930e5cd5a300ce8b3babbfc79b408db9428834e0d5de9eaa2e62420f10440d83d518fe662d3e3f4a514957ffe9
|
data/.circleci/config.yml
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
version: 2.1
|
|
2
|
+
|
|
3
|
+
orbs:
|
|
4
|
+
slack: circleci/slack@3.3.0
|
|
5
|
+
|
|
2
6
|
executors:
|
|
3
7
|
my-executor:
|
|
4
8
|
docker:
|
|
@@ -27,13 +31,25 @@ jobs:
|
|
|
27
31
|
- run:
|
|
28
32
|
name: bundle exec rake spec
|
|
29
33
|
command: bundle exec rake spec
|
|
34
|
+
|
|
35
|
+
- slack/status:
|
|
36
|
+
success_message: ':circleci-pass: $CIRCLE_BRANCH のテストが完了しました\n:github_octocat: User:$CIRCLE_USERNAME'
|
|
37
|
+
failure_message: ':circleci-fail: $CIRCLE_BRANCH のテストが失敗しました\n:github_octocat: User:$CIRCLE_USERNAME'
|
|
38
|
+
webhook: '${SLACK_WEBHOOK}'
|
|
30
39
|
|
|
31
40
|
workflows:
|
|
32
41
|
version: 2
|
|
33
|
-
test
|
|
42
|
+
test:
|
|
34
43
|
jobs:
|
|
35
|
-
- test
|
|
36
|
-
|
|
44
|
+
- test
|
|
45
|
+
|
|
46
|
+
test_cron:
|
|
47
|
+
triggers:
|
|
48
|
+
- schedule:
|
|
49
|
+
cron: "0 21 * * 0"
|
|
50
|
+
filters:
|
|
37
51
|
branches:
|
|
38
52
|
only:
|
|
39
|
-
- master
|
|
53
|
+
- master
|
|
54
|
+
jobs:
|
|
55
|
+
- test
|
data/Gemfile.lock
CHANGED
|
@@ -56,8 +56,8 @@ class Twitcasting_analyze<Video_analyze
|
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
def chat_page_range()
|
|
59
|
-
size=@chat_request_body.css(".
|
|
60
|
-
range=@chat_request_body.css(".
|
|
59
|
+
size=@chat_request_body.css(".tw-pager").css("a").size()
|
|
60
|
+
range=@chat_request_body.css(".tw-pager").css("a")[size-1].text
|
|
61
61
|
return range.to_i
|
|
62
62
|
end
|
|
63
63
|
|
|
@@ -28,10 +28,24 @@ class Youtubelive_analyze<Video_analyze
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
def videoinfo_get()
|
|
31
|
+
|
|
31
32
|
videoinfo_respons,videoinfo_status=request_html_parse(@video_url,{})
|
|
32
|
-
|
|
33
|
+
|
|
34
|
+
videoinfo_respons.search('script').each do |script|
|
|
35
|
+
|
|
36
|
+
if script.to_s.include?("window[\"ytInitialData\"]") then
|
|
37
|
+
return htmlpage_script_parse(script,method(:videoinfo_script_cleanup)),videoinfo_status
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
if script.to_s.include?("var ytInitialData =") then
|
|
41
|
+
return htmlpage_script_parse(script,method(:videoinfo_script_cleanup_p2)),videoinfo_status
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
return ""
|
|
33
47
|
end
|
|
34
|
-
|
|
48
|
+
|
|
35
49
|
|
|
36
50
|
def videoinfo_extraction()
|
|
37
51
|
|
|
@@ -53,27 +67,35 @@ class Youtubelive_analyze<Video_analyze
|
|
|
53
67
|
end
|
|
54
68
|
|
|
55
69
|
|
|
70
|
+
def videoinfo_script_cleanup_p2(script_date)
|
|
71
|
+
return script_date.split("var ytInitialData =",2)[1].split(";if (window.ytcsi)",2)[0].strip.chomp(";</script>").strip
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
|
|
56
75
|
def chatinfo_script_cleanup(script_date)
|
|
57
|
-
return script_date.split("=
|
|
76
|
+
return script_date.split('window["ytInitialData"] = ',2)[1].strip.chomp("</script>").strip.chomp(";")
|
|
58
77
|
end
|
|
59
78
|
|
|
60
79
|
|
|
61
80
|
def htmlpage_script_parse(respons,callback)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if script.to_s.include?("window[\"ytInitialData\"]") then
|
|
65
|
-
script_body=callback.call(script.to_s)
|
|
66
|
-
script_body=JSON.parse(script_body)
|
|
67
|
-
return script_body
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
return ""
|
|
81
|
+
script_body=callback.call(respons.to_s)
|
|
82
|
+
return JSON.parse(script_body)
|
|
71
83
|
end
|
|
72
84
|
|
|
73
85
|
|
|
74
86
|
def chat_body_get(next_url, opt={'User-Agent' => @USER_AGENT})
|
|
87
|
+
|
|
75
88
|
chat_respons,chat_status=request_html_parse(next_url,opt)
|
|
76
|
-
|
|
89
|
+
|
|
90
|
+
chat_respons.search('script').each do |script|
|
|
91
|
+
|
|
92
|
+
if script.to_s.include?("window[\"ytInitialData\"]") then
|
|
93
|
+
return htmlpage_script_parse(script,method(:chatinfo_script_cleanup))
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
return ""
|
|
77
99
|
end
|
|
78
100
|
|
|
79
101
|
|
|
@@ -108,6 +130,6 @@ class Youtubelive_analyze<Video_analyze
|
|
|
108
130
|
|
|
109
131
|
|
|
110
132
|
public :chat_scrape
|
|
111
|
-
private :videoid_get, :videoinfo_get, :videoinfo_extraction, :htmlpage_script_parse, :videoinfo_script_cleanup, :chatinfo_script_cleanup, :chat_body_get
|
|
133
|
+
private :videoid_get, :videoinfo_get, :videoinfo_extraction, :htmlpage_script_parse, :videoinfo_script_cleanup, :chatinfo_script_cleanup, :chat_body_get, :videoinfo_script_cleanup_p2
|
|
112
134
|
|
|
113
135
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: video_chat_get
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- tf0101
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-02-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|