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

Main.scala (2632B)


      1 import com.danielasfregola.twitter4s.entities.enums.AccessType
      2 import com.danielasfregola.twitter4s.entities.enums.AccessType.AccessType
      3 import com.danielasfregola.twitter4s.entities.{AccessToken, ConsumerToken}
      4 import com.danielasfregola.twitter4s.{TwitterAuthenticationClient, TwitterRestClient, TwitterStreamingClient}
      5 import com.typesafe.config.{Config, ConfigFactory}
      6 import com.typesafe.scalalogging.StrictLogging
      7 import twitterCrawler.RestAPISingleton
      8 
      9 import scala.concurrent.ExecutionContext.Implicits.global
     10 import scala.concurrent.duration.DurationInt
     11 import scala.concurrent.{Await, Future}
     12 import scala.util.{Failure, Success}
     13 
     14 /**
     15   * @author MTRNord <freifunknews@nordgedanken.blog>
     16   * @todo rework to make this more generic
     17   * @version 0.1.0
     18   *
     19   */
     20 object Main extends App with StrictLogging {
     21   val conf: Config = ConfigFactory.load
     22   val consumerToken =
     23     ConsumerToken(key = conf.getString("twitter.consumer.key"), secret = conf.getString("twitter.consumer.secret"))
     24   val TwitterAuthClient = new TwitterAuthenticationClient(consumerToken)
     25 
     26   val write_access: AccessType = AccessType.Write
     27 
     28   val reqToken =
     29     TwitterAuthClient.requestToken(x_auth_access_type = Some(write_access))
     30 
     31   reqToken onComplete {
     32     case Success(token) =>
     33       println(
     34         TwitterAuthClient
     35           .authenticateUrl(token = token.token, force_login = false)
     36       )
     37 
     38       val pin = scala.io.StdIn.readLine("Insert Pin: ")
     39 
     40       val AccessTokenResp =
     41         Await.result(
     42           TwitterAuthClient.accessToken(token.token, pin),
     43           10 seconds
     44         )
     45 
     46       val accessToken = AccessToken(
     47         key = AccessTokenResp.accessToken.key,
     48         secret = AccessTokenResp.accessToken.secret
     49       )
     50 
     51       val streamingClient =
     52         TwitterStreamingClient.apply(
     53           accessToken = accessToken,
     54           consumerToken = consumerToken
     55         )
     56       val restClient = TwitterRestClient.apply(
     57         accessToken = accessToken,
     58         consumerToken = consumerToken
     59       )
     60 
     61       //val sender = new twitterSender.Sender(restClient = restClient)
     62       //sender.sendHelloWorld
     63 
     64       RestAPISingleton.setRestAPI(restClient)
     65 
     66       val stream = new twitterCrawler.StreamingApi(
     67         streamingClient = streamingClient
     68       )
     69       stream.fetchTweets
     70 
     71       /*val test = new GenerateNewsPaper
     72       test.execute(null)*/
     73 
     74       generator.Scheduler.main()
     75     case Failure(err) => logger.error(err.toString)
     76   }
     77 
     78   /**
     79     * Keep alive workaround
     80     */
     81   val waitFunc = Future {
     82     while (true) {
     83       Thread.sleep(1000)
     84     }
     85   }
     86 
     87   Await.result(waitFunc, scala.concurrent.duration.Duration.Inf)
     88 }