Skip to content

Instantly share code, notes, and snippets.

@fedesilva
Last active December 20, 2015 15:09
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fedesilva/6152460 to your computer and use it in GitHub Desktop.
Save fedesilva/6152460 to your computer and use it in GitHub Desktop.
Script to interact with the meetup api sends responses to deadletters.
scala> val rp = pipeline(rq)
rp: scala.concurrent.Future[spray.http.HttpResponse] = scala.concurrent.impl.Promise$DefaultPromise@597aa1d
scala> rp fp2013-08-216 20:18:26.560 INFO akka.actor.DeadLetterActorRef - Message [spray.http.HttpResponse] from Actor[akka://test/user/IO-HTTP/host-connector-0/0#229322353] to Actor[akka://test/deadLetters] was not delivered. [1] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
2013-08-216 20:18:26.561 INFO akka.actor.LocalActorRef - Message [akka.io.Tcp$Write] from Actor[akka://test/user/IO-HTTP/group-0/0#-1483684089] to Actor[akka://test/system/IO-TCP/selectors/$a/0#634853586] was not delivered. [2] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
2013-08-216 20:18:26.561 INFO akka.actor.LocalActorRef - Message [akka.io.Tcp$ConfirmedClose$] from Actor[akka://test/user/IO-HTTP/group-0/0#-1483684089] to Actor[akka://test/system/IO-TCP/selectors/$a/0#634853586] was not delivered. [3] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
2013-08-216 20:18:26.562 INFO akka.actor.LocalActorRef - Message [akka.io.Tcp$Close$] from Actor[akka://test/user/IO-HTTP/group-0/0#-1483684089] to Actor[akka://test/system/IO-TCP/selectors/$a/0#634853586] was not delivered. [4] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
2013-08-216 20:18:26.563 INFO akka.actor.LocalActorRef - Message [akka.io.Tcp$PeerClosed$] from Actor[akka://test/system/IO-TCP/selectors/$a/0#634853586] to Actor[akka://test/user/IO-HTTP/group-0/0#-1483684089] was not delivered. [5] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
2013-08-216 20:18:26.565 INFO akka.actor.LocalActorRef - Message [akka.actor.Terminated] from Actor[akka://test/system/IO-TCP/selectors/$a/0#634853586] to Actor[akka://test/user/IO-HTTP/group-0/0#-1483684089] was not delivered. [6] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
DeadLetter(HttpResponse(200 OK,HttpEntity(application/json; charset=UTF-8,{"results":[{"rsvp_limit":30,"status":"upcoming","visibility":"public","maybe_rsvp_count":0,"venue":{"id":10987832,"lon":-56.161724,"repinned":false,"name":"Pyxis","address_1":"Bulevar España 2565","lat":-34.911495,"country":"uy","city":"Montevideo"},"id":"dhfhqfyrlbtb","utc_offset":-10800000,"time":1376607600000,"waitlist_count":0,"announced":false,"updated":1364164596000,"yes_rsvp_count":4,"created":1363887980000,"event_url":"http:\/\/www.meetup.com\/Scala-Meetup-MVD\/events\/130457392\/","des...),List(Connection: close, Vary: Accept-Encoding,User-Agent, Content-Length: 10047, Content-Type: application/json; charset=UTF-8, X-Accepted-OAuth-Scopes: basic, X-OAuth-Scopes: basic, X-Meetup-server: api3.int.meetup.com, Server: Apache-Coyote/1.1, Date: Sun, 04 Aug 2013 23:18:25 GMT),HTTP/1.1),Actor[akka://test/user/IO-HTTP/host-connector-0/0#229322353],Actor[akka://test/deadLetters])
DeadLetter(Write(ByteString(21, 3, 1, 0, 32, 90, 69, -13, 2, 56, 69, 71, -24, 61, 33, 124, 121, 109, -70, 97, 41, -4, -24, -39, -9, 22, 87, -41, -10, -121, 63, 41, -48, -77, 36, 14, 122),NoAck(null)),Actor[akka://test/user/IO-HTTP/group-0/0#-1483684089],Actor[akka://test/system/IO-TCP/selectors/$a/0#634853586])
DeadLetter(ConfirmedClose,Actor[akka://test/user/IO-HTTP/group-0/0#-1483684089],Actor[akka://test/system/IO-TCP/selectors/$a/0#634853586])
DeadLetter(Close,Actor[akka://test/user/IO-HTTP/group-0/0#-1483684089],Actor[akka://test/system/IO-TCP/selectors/$a/0#634853586])
DeadLetter(PeerClosed,Actor[akka://test/system/IO-TCP/selectors/$a/0#634853586],Actor[akka://test/user/IO-HTTP/group-0/0#-1483684089])
DeadLetter(Terminated(Actor[akka://test/system/IO-TCP/selectors/$a/0#634853586]),Actor[akka://test/system/IO-TCP/selectors/$a/0#634853586],Actor[akka://test/user/IO-HTTP/group-0/0#-1483684089])
DeadLetter(Tick,Actor[akka://test/deadLetters],Actor[akka://test/user/IO-HTTP/group-0/0#-1483684089])
2013-08-216 20:18:26.592 INFO akka.actor.LocalActorRef - Message [spray.io.TickGenerator$Tick$] from Actor[akka://test/deadLetters] to Actor[akka://test/user/IO-HTTP/group-0/0#-1483684089] was not delivered. [7] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
/**
* Created by f on 8/4/13.
*/
import akka.actor._
import akka.pattern._
import akka.io._
import akka.util.Timeout
import scala.concurrent._
import scala.concurrent.duration._
import spray.can.Http
import spray.http._
import spray.json.DefaultJsonProtocol
import spray.httpx.encoding.{Gzip, Deflate}
import spray.httpx.SprayJsonSupport._
import spray.client.pipelining._
case class GroupInfo(
id: String,
key: String,
eventLimit: Int,
photosLimit: Int,
url: String
)
def makeGroup(key:String) =
GroupInfo(
id = "6488382",
key = key,
eventLimit = 10,
photosLimit = 10,
url = "scala-meetup-mv"
)
class Listener extends Actor {
def receive = {
case d: DeadLetter ⇒ println(d)
}
}
implicit val system = ActorSystem("test")
import system.dispatcher
implicit val ts = Timeout( 1 second )
val listener = system.actorOf(Props[Listener])
system.eventStream.subscribe(listener, classOf[DeadLetter])
val futurePipeline =
for (
Http.HostConnectorInfo(connector, _) <-
IO(Http) ? Http.HostConnectorSetup("api.meetup.com", port = 443, sslEncryption = true)
) yield (
addHeader("x-made-by", "scala.meetup.uy" )
//~> encode(Gzip) // this breaks meetup responses. must investigate.
~> sendReceive(connector)
//~> decode(Deflate) // this breaks meetup responses. must investigate.
)
val pipeline = Await.result(futurePipeline, 1 second)
def uri(group: GroupInfo) =
s"/2/events?key=${group.key}&sign=true&page=${group.eventLimit}&group_id=${group.id}"
//val rq = Get(uri(makeGroup("XXXXXXXXXXXXXXXX")))
//val rp = pipeline(rq)
@fedesilva
Copy link
Author

To use the script one must have a api key from meetup.com

http://www.meetup.com/meetup_api/key/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment