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 }
|
||||
}
|
||||
Reference in New Issue
Block a user