109 lines
3.6 KiB
JavaScript
109 lines
3.6 KiB
JavaScript
() => {
|
|
|
|
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)
|
|
console.log(timestamp)
|
|
//Not accurate
|
|
var body = arts[i].innerText
|
|
var url = getURL(arts[i])
|
|
var engagement = getEngagement(arts[i])
|
|
if(url){
|
|
try {
|
|
posts.push({ timestamp: timestamp.toISOString(), body: body, engagement: engagement, url: url })
|
|
} catch(e) {}
|
|
}
|
|
}
|
|
|
|
return { followers: followers, posts: posts }
|
|
} |