rebasing
This commit is contained in:
106
runner/js/facebook_data.js
Normal file
106
runner/js/facebook_data.js
Normal file
@@ -0,0 +1,106 @@
|
||||
() => {
|
||||
|
||||
function getTimeStamp(time_string) {
|
||||
let d = new Date();
|
||||
if (time_string.includes("Yesterday")) {
|
||||
return (new Date(d.setDate(d.getDate() - 1)))
|
||||
} else if (time_string.includes("AM") || time_string.includes("PM")) {
|
||||
var date_strings = time_string.split(" ")
|
||||
if (date_strings.length === 5) {
|
||||
var month_string = date_strings[0]
|
||||
var month = 0
|
||||
switch (month_string) {
|
||||
case "January":
|
||||
month = 1
|
||||
break
|
||||
case "February":
|
||||
month = 2
|
||||
break
|
||||
case "March":
|
||||
month = 3
|
||||
break
|
||||
case "April":
|
||||
month = 4
|
||||
break
|
||||
case "May":
|
||||
month = 5
|
||||
break
|
||||
case "June":
|
||||
month = 6
|
||||
break
|
||||
case "July":
|
||||
month = 7
|
||||
break
|
||||
case "August":
|
||||
month = 8
|
||||
break
|
||||
case "September":
|
||||
month = 9
|
||||
break
|
||||
case "October":
|
||||
month = 10
|
||||
break
|
||||
case "November":
|
||||
month = 11
|
||||
break
|
||||
case "December":
|
||||
month = 12
|
||||
break
|
||||
}
|
||||
var day = parseInt(date_strings[1])
|
||||
var year = d.getFullYear()
|
||||
if (month === 12 && d.getMonth() !== month) {
|
||||
year += 1
|
||||
}
|
||||
var hours = parseInt(date_strings[3].split(":")[0])
|
||||
if (hours < 12 && date_strings[4] === "PM") {
|
||||
hours += 12
|
||||
}
|
||||
var minutes = parseInt(date_strings[3].split(":")[1])
|
||||
return new Date(year, month - 1, day, hours, minutes)
|
||||
}
|
||||
} else {
|
||||
return (new Date())
|
||||
}
|
||||
}
|
||||
|
||||
function getURL(elm) {
|
||||
res = elm.getElementsByTagName("a")
|
||||
for (let i = 0; i < res.length; i++) {
|
||||
if (res[i].href.includes("story.php?") && res[i].getAttribute("aria-label") == "Open story") {
|
||||
return res[i].href
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getEngagement(elm) {
|
||||
res = elm.getElementsByTagName("footer")[0]
|
||||
engage_reg = /\d+/g
|
||||
total = 0
|
||||
try {
|
||||
res.innerText.match(engage_reg).forEach(match => {
|
||||
total += parseInt(match)
|
||||
})
|
||||
} catch (e) { return 0 }
|
||||
|
||||
return total
|
||||
}
|
||||
|
||||
//Followers
|
||||
followers = parseInt(document.getElementsByName("description")[0].getAttribute("content").replace(/,/g, '').match(/\d+/g)[0])
|
||||
|
||||
arts = document.getElementsByTagName("article")
|
||||
posts = []
|
||||
for (var i = 0; i < arts.length; i++) {
|
||||
var timestamp = getTimeStamp(arts[i].getElementsByTagName("abbr")[0].innerText)
|
||||
//Not accurate
|
||||
var body = arts[i].innerText
|
||||
var url = getURL(arts[i])
|
||||
var engagement = getEngagement(arts[i])
|
||||
if(url){
|
||||
posts.push({ timestamp: timestamp.toISOString(), body: body, engagement: engagement, url: url })
|
||||
}
|
||||
}
|
||||
|
||||
return { followers: followers, posts: posts }
|
||||
}
|
||||
24
runner/js/instagram_followers_urls.js
Normal file
24
runner/js/instagram_followers_urls.js
Normal file
@@ -0,0 +1,24 @@
|
||||
() => {
|
||||
|
||||
follower_data = document.getElementsByTagName("span")
|
||||
followers = 0
|
||||
for (i = 0; i < follower_data.length; i++) {
|
||||
if (!isNaN(parseInt(follower_data[i].title.replace(/,/g, "")))) {
|
||||
followers = parseInt(follower_data[i].title.replace(/,/g, ""))
|
||||
}
|
||||
}
|
||||
|
||||
//Urls
|
||||
res = document.getElementsByTagName("a")
|
||||
insta_urls = []
|
||||
for (let i = 0; i < res.length; i++) {
|
||||
if (res[i].getAttribute("href").length == 15 && res[i].getAttribute("href").search("/p/") == 0) {
|
||||
insta_urls.push(res[i].getAttribute("href"))
|
||||
}
|
||||
}
|
||||
|
||||
window["data"] = {
|
||||
urls: insta_urls,
|
||||
followers: followers
|
||||
}
|
||||
}
|
||||
3
runner/js/instagram_liked_by.js
Normal file
3
runner/js/instagram_liked_by.js
Normal file
@@ -0,0 +1,3 @@
|
||||
() => {
|
||||
return document.getElementsByTagName("main")[0].innerText.split("Follow\n").length
|
||||
}
|
||||
10
runner/js/instagram_liked_by_url.js
Normal file
10
runner/js/instagram_liked_by_url.js
Normal file
@@ -0,0 +1,10 @@
|
||||
() => {
|
||||
res = document.getElementsByTagName("a")
|
||||
for (i = 0; i < res.length; i++) {
|
||||
if (res[i].href) {
|
||||
if (res[i].href.includes("liked_by")) {
|
||||
return res[i]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
37
runner/js/instagram_post_data.js
Normal file
37
runner/js/instagram_post_data.js
Normal file
@@ -0,0 +1,37 @@
|
||||
() => {
|
||||
//TimeStamp
|
||||
res = document.getElementsByTagName("time")
|
||||
timestamp = res[0].getAttribute("datetime")
|
||||
|
||||
//Engage
|
||||
res = document.getElementsByTagName("article")
|
||||
like_reg = /\d+ likes/
|
||||
comment_reg = /\d+ comments/
|
||||
view_reg = /\d+ views/
|
||||
comma_reg = /,/g
|
||||
engagement = 0
|
||||
comments = 0
|
||||
likes = 0
|
||||
views = 0
|
||||
try {
|
||||
engagement += parseInt(res[0].innerText.replace(comma_reg, "").match(like_reg)[0])
|
||||
likes += parseInt(res[0].innerText.replace(comma_reg, "").match(like_reg)[0])
|
||||
} catch (e) { }
|
||||
try {
|
||||
engagement += parseInt(res[0].innerText.replace(comma_reg, "").match(comment_reg)[0])
|
||||
comments += parseInt(res[0].innerText.replace(comma_reg, "").match(comment_reg)[0])
|
||||
} catch (e) { }
|
||||
try {
|
||||
engagement += parseInt(res[0].innerText.replace(comma_reg, "").match(view_reg)[0])
|
||||
views += parseInt(res[0].innerText.replace(comma_reg, "").match(view_reg)[0])
|
||||
} catch (e) { }
|
||||
|
||||
//Text Content
|
||||
start = res[0].innerText.search(like_reg)
|
||||
finish = res[0].innerText.search(comment_reg)
|
||||
body = res[0].innerText.substr(start, (finish - start)).split("\n")[1]
|
||||
|
||||
return {
|
||||
timestamp: timestamp, body: body, engagement: engagement, likes: likes, comments: comments, views: views
|
||||
}
|
||||
}
|
||||
26
runner/js/scroll.js
Normal file
26
runner/js/scroll.js
Normal file
@@ -0,0 +1,26 @@
|
||||
async (limit,timeout) => {
|
||||
const getScrollHeight = (element) => {
|
||||
if (!element) return 0
|
||||
|
||||
const { scrollHeight, offsetHeight, clientHeight } = element
|
||||
return Math.max(scrollHeight, offsetHeight, clientHeight)
|
||||
}
|
||||
|
||||
const position = await new Promise((resolve) => {
|
||||
let count = 0
|
||||
let limit_counter = 0
|
||||
const intervalId = setInterval(() => {
|
||||
const { body } = document
|
||||
const availableScrollHeight = getScrollHeight(body)
|
||||
|
||||
window.scrollBy(0, 250)
|
||||
count += 250
|
||||
limit_counter += 1
|
||||
if (count >= availableScrollHeight || limit_counter > limit) {
|
||||
clearInterval(intervalId)
|
||||
resolve(count)
|
||||
}
|
||||
}, timeout)
|
||||
})
|
||||
return position
|
||||
}
|
||||
Reference in New Issue
Block a user