-
Notifications
You must be signed in to change notification settings - Fork 0
/
content.js
54 lines (50 loc) · 1.67 KB
/
content.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
'use strict'
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
let userNames = []
let getUserNames = function () {
// meetsでユーザーがリスト表示されているクラス
let users = document.getElementsByClassName('zWGUib')
for (let index = 0; index < users.length; index++) {
const user = users[index]
let userName = user.textContent
userName = userName.replace('さん', '')
userName = userName.replace('(', '(')
userName = userName.split(' (')[0]
userNames.push(userName)
}
}
let isOpend = false
const iconElements = $('.P9KVBf .JsuyRc[aria-pressed="true"] .Mwv9k')
if (iconElements.length) {
isOpend = iconElements[0].innerHTML == "people_alt"
}
if (!isOpend) {
// ユーザーリストが開かれていなければ、開く
document.getElementsByClassName('VfPpkd-Bz112c-LgbsSe yHy1rc eT1oJ JsuyRc boDUxc')[1].click()
}
const scrollSelection = '.ggUFBf.Ze1Fpc' // スペース禁止
// スクロールトップに移動しておく
$(scrollSelection).scrollTop(0)
// 200人くらい取れる?
const move = 400
let index = 0
let userNum = 0
let ended = 0
let id = setInterval(function () {
userNum = userNames.length
getUserNames()
// 重複削除
userNames = Array.from(new Set(userNames))
if (userNum === userNames.length) {
// 4回連続でuserNamesが変わらなかったら終了
ended++
}
if (index >= 30 || ended === 4) {
clearInterval(id) //idをclearIntervalで指定している
sendResponse(userNames)
}
$(scrollSelection).scrollTop(move * index)
index++
}, 100)
return true
})