socialnetworknews

This will basicly get a paper.li OpenSource clone at some point - DEPRECATED NOT USED ANYMORE
git clone git://archive.git.mtrnord.blog/SocialNetworkNews/socialnetworknews.git
Log | Files | Refs | README | LICENSE

GenerateNewsPaper.scala (2054B)


      1 package generator
      2 
      3 import java.io.File
      4 import java.text.SimpleDateFormat
      5 import java.util.Date
      6 
      7 import com.github.tototoshi.csv.CSVReader
      8 import com.typesafe.scalalogging.StrictLogging
      9 import org.quartz.{Job, JobExecutionContext}
     10 import twitterCrawler.RestAPISingleton
     11 
     12 import scala.concurrent.Await
     13 
     14 class GenerateNewsPaper extends Job with StrictLogging {
     15   def execute(context: JobExecutionContext): Unit = {
     16     //TODO parse CSV from yesterday and generate Feed
     17     println("=============")
     18     val reader = this.getReader
     19     val api = RestAPISingleton.getRestAPI
     20     reader.foreach(line => {
     21       val tweetID: Long = line.head.toLong
     22       println("--------------")
     23       //Get Tweet from id
     24       val tweets = Await.result(api.getTweet(id = tweetID), scala.concurrent.duration.Duration.Inf)
     25       val tweet = tweets.data
     26       tweet.in_reply_to_status_id_str match {
     27         case Some(value) => logger.info(s"inReplyTo: $value")
     28         case None => logger.info("inReplyTo: None")
     29       }
     30       val df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss")
     31       val created_at = df.format(tweet.created_at)
     32       val retweet_count = tweet.retweet_count
     33       val retweeted = tweet.retweeted
     34       val favorite_count = tweet.favorite_count
     35       logger.info(s"Created at: $created_at")
     36       logger.info(s"ID: $tweetID")
     37       logger.info(s"RetweetCount: $retweet_count")
     38       logger.info(s"RetweetStatus: $retweeted")
     39       logger.info(s"FavoriteCount: $favorite_count")
     40       println("--------------")
     41     })
     42     println("=============")
     43   }
     44 
     45   private def getReader: CSVReader = {
     46     var reader: CSVReader = null
     47     val yesterdayDate = this.yesterday
     48     val yesterday = new SimpleDateFormat("dd_MM_yyyy").format(yesterdayDate)
     49     val yesterdaysTweets = new File(s"data/tweets.$yesterday")
     50     if (yesterdaysTweets.exists()) {
     51       reader = CSVReader.open(yesterdaysTweets)
     52     }
     53     reader
     54   }
     55 
     56   import java.util.Calendar
     57 
     58   private def yesterday: Date = {
     59     val cal = Calendar.getInstance
     60     cal.add(Calendar.DATE, -1)
     61     cal.getTime
     62   }
     63 }