I view the /_ah/ prefix as reserved for google apis, but nothing is stopping people from using it for their handlers too.
Also /_ah/* does not look very nice to end users in their browser's location url. The idea of making an _ah app was to show this could be done without global routes.py. Robin On Sep 26, 6:32 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > Nice Robin, > why split it over two apps (init and _ah)? > > On Sep 26, 6:17 pm, Robin B <robi...@gmail.com> wrote: > > > how about something like this: > > > To send: > > applications/init/controllers/default.py: > > > def send(): > > from google.appengine.api import xmpp > > user_address = '....@gmail.com' > > xmpp.send_invite(user_address) > > msg = "Someone has sent you a gift on Example.com. To > > view:http://example.com/gifts/" > > status_code = xmpp.send_message(user_address, msg) > > return dict(status_code=status_code) > > > To receive: > > applications/_ah/controllers/xmpp.py: > > > def message(): > > if request.args[0] == 'chat' and request.method == 'POST': > > import logging > > message = request.vars > > logging.debug(str(message)) > > return message > > > Add this to app.yaml: > > > inbound_services: > > - xmpp_message > > > Check your logs to see incoming XMPP messages, only works on GAE > > production servers. > > > Robin > > > On Sep 26, 5:47 pm, murray3 <ch...@murraypost.net> wrote: > > > > Any chance of a basic skeleton app for this to get us started? > > > chrism > > > > On Sep 24, 5:44 am, Robin B <robi...@gmail.com> wrote: > > > > > If you port it to web2py, then you don't need to wrap their handler, > > > > unless I am misunderstanding. > > > > > All that has to built a web2py controller function that can receive > > > > POST requests at: > > > > > /_ah/xmpp/message/chat/ > > > > > The POST data is this: > > > > * from, the address of the sender of the message > > > > * to, the address of the recipient as described by the sender (see > > > > below) > > > > * body, the body of the message > > > > * stanza, the full XMPP message in its original XML form > > > > > The IMProperty does not need to used, and it can just be a string. > > > > > Once XMPP is enabled, Google will POST messages to web2py at /_ah/xmpp/ > > > > message/chat/. > > > > > Google's xmpp_handlers.CommandHandler is not needed for web2py, but > > > > some of the XML parser could be reused. > > > > > Robin > > > > > On Sep 23, 4:11 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > > I agree. Most of what the rest of the code does should be easy to port > > > > > to web2py. But I need to understand how to wrap the handler so that I > > > > > can be called from a controller function. We could make a wsgi_adaptor > > > > > inside the controller but there has to be a better way. > > > > > > On Sep 23, 3:57 pm, Robin B <robi...@gmail.com> wrote: > > > > > > > Yes, > > > > > > > I believe the url ('/_ah/xmpp/message/chat/') is significant > > > > > > > what about: > > > > > > > app='_ah' > > > > > > controller='xmpp' > > > > > > action='message' > > > > > > > then handle the rest as args and call other controller functions? > > > > > > > Robin > > > > > > > On Sep 23, 2:57 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > > > > Then it should be possible to rewrite the entire example as a > > > > > > > web2py > > > > > > > application. Is there specific significance it the URL names > > > > > > > ('/_ah/ > > > > > > > xmpp/message/chat/') used in the example? Because preserving those > > > > > > > would require roots. > > > > > > > > Massimo > > > > > > > > On Sep 23, 2:25 pm, Robin B <robi...@gmail.com> wrote: > > > > > > > > > looks like a string property that validates as an instant > > > > > > > > messaging > > > > > > > > handle. > > > > > > > > >http://ru.ly/Nb > > > > > > > > > class IM(object): > > > > > > > > """An instant messaging handle. Includes both an address and > > > > > > > > its > > > > > > > > protocol. > > > > > > > > The protocol value is either a standard IM scheme or a URL > > > > > > > > identifying the > > > > > > > > IM network for the protocol. Possible values include: > > > > > > > > > Value Description > > > > > > > > sip SIP/SIMPLE > > > > > > > > unknown Unknown or unspecified > > > > > > > > xmpp XMPP/Jabber > > > > > > > > http://aim.com/ AIM > > > > > > > > http://icq.com/ ICQ > > > > > > > > http://talk.google.com/ Google Talk > > > > > > > > http://messenger.msn.com/ MSN Messenger > > > > > > > > http://messenger.yahoo.com/ Yahoo Messenger > > > > > > > > http://sametime.com/ Lotus Sametime > > > > > > > > http://gadu-gadu.pl/ Gadu-Gadu > > > > > > > > > This is the gd:im element. In XML output, the address and > > > > > > > > protocol > > > > > > > > are > > > > > > > > provided as the address and protocol attributes, > > > > > > > > respectively. See: > > > > > > > > http://code.google.com/apis/gdata/common-elements.html#gdIm > > > > > > > > > Serializes to '<protocol> <address>'. Raises BadValueError if > > > > > > > > tag is > > > > > > > > not a > > > > > > > > standard IM scheme or a URL. > > > > > > > > """ > > > > > > > > > Robin > > > > > > > > > On Sep 23, 8:01 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > > > > > > What's a IM field? > > > > > > > > > > On Sep 22, 10:13 pm, Robin B <robi...@gmail.com> wrote: > > > > > > > > > > > You can edit app.yaml to dispatch requests to those xmpp > > > > > > > > > > handlers > > > > > > > > > > based on prefix (/_ah/*), and let web2py handle everything > > > > > > > > > > that's left > > > > > > > > > > (/*) > > > > > > > > > > > Or you can rewrite those handlers as web2py > > > > > > > > > > controller/functions and > > > > > > > > > > use routes.py to map the specific urls to > > > > > > > > > > app/controller/function > > > > > > > > > > > Robin > > > > > > > > > > > On Sep 22, 5:44 pm, murray3 <ch...@murraypost.net> wrote: > > > > > > > > > > > > I am interested in the way we can convert GAE sample web > > > > > > > > > > > apps to > > > > > > > > > > > web2py, in particular the xmpp tutorial > > > > > > > > > > > :http://code.google.com/appengine/articles/using_xmpp.html > > > > > > > > > > > > Seems straight forward to import the modules etc. > > > > > > > > > > > > How should the following be ported to web2py to handle > > > > > > > > > > > the xmpp stuff? > > > > > > > > > > > def main(): > > > > > > > > > > > app = webapp.WSGIApplication([ > > > > > > > > > > > ('/', LatestHandler), > > > > > > > > > > > ('/_ah/xmpp/message/chat/', XmppHandler), > > > > > > > > > > > ], debug=True) > > > > > > > > > > > wsgiref.handlers.CGIHandler().run(app) > > > > > > > > > > > > the tutorial states the following: > > > > > > > > > > > > " There's one last thing we need to do to get this all > > > > > > > > > > > working, of > > > > > > > > > > > course - hook it up to the serving infrastructure so it > > > > > > > > > > > can serve > > > > > > > > > > > requests. Fortunately, a CommandHandler is a standard > > > > > > > > > > > webapp > > > > > > > > > > > RequestHandler subclass, so we can set it up as we would > > > > > > > > > > > any other > > > > > > > > > > > handler. Modify the lines where the application variable > > > > > > > > > > > is defined to > > > > > > > > > > > read like this: > > > > > > > > > > > > application = webapp.WSGIApplication([ > > > > > > > > > > > ('/_ah/xmpp/message/chat/', XmppHandler)], debug=True) > > > > > > > > > > > > The URL path here - /_ah/xmpp/message/chat - is a > > > > > > > > > > > 'reserved' one that > > > > > > > > > > > all XMPP messages get sent to. " > > > > > > > > > > > > any pointers to get me started. > > > > > > > > > > > regards > > > > > > > > > > > chrism --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---