Streams from sample Twitter API and analyzes tweets and gathers stats.
Uses http4s
client and server, and fs2
with cats-effect
Perform a sbt run to start program
sbt run
Refresh the following link to get up to date stats
http://localhost:8080/stats
{
"allCount":3860,
"tweetCount":3451,
"deleteCount":409,
"parseErrors":0,
"elapsedSeconds":90,
"ratePerSecond":42.89,
"ratePerMinute":2573.33,
"ratePerHour":154400,
"percentWithEmojis":17.73,
"percentWithUrls":21.12,
"percentWithPhotos":19.94,
"percentDeletes":10.6,
"topHashTags":[
{
"name":"BTS",
"count":9
},
{
"name":"18YrsOfTorchBearerNTR",
"count":7
},
{
"name":"ThursdayThoughts",
"count":6
},
{
"name":"GOT7",
"count":5
},
{
"name":"방탄소년단",
"count":5
},
{
"name":"갓세븐",
"count":5
},
{
"name":"MAMAVOTE",
"count":4
},
{
"name":"北上双葉",
"count":4
},
{
"name":"ALDUB40thMonthsary",
"count":4
},
{
"name":"私を布教して",
"count":4
}
],
"topEmojis":[
{
"name":"😂",
"count":251
},
{
"name":"😍",
"count":50
},
{
"name":"❤",
"count":48
},
{
"name":"🔥",
"count":43
},
{
"name":"🌗",
"count":43
},
{
"name":"🌘",
"count":42
},
{
"name":"🌑",
"count":42
},
{
"name":"🌒",
"count":42
},
{
"name":"🌖",
"count":42
},
{
"name":"🌕",
"count":42
}
],
"topDomains":[
{
"name":"twitter.com",
"count":386
},
{
"name":"bit.ly",
"count":38
},
{
"name":"du3a.org",
"count":35
},
{
"name":"youtu.be",
"count":29
},
{
"name":"www.facebook.com",
"count":28
},
{
"name":"www.instagram.com",
"count":12
},
{
"name":"curiouscat.me",
"count":9
},
{
"name":"goo.gl",
"count":9
},
{
"name":"dlvr.it",
"count":8
},
{
"name":"www.youtube.com",
"count":6
}
]
}