Exemplo n.º 1
0
    def testAddSubscription(self):
        Subscription.add_subscription('user1', 'kw1')
        Subscription.add_subscription('user2', 'kw2')
        Subscription.add_subscription('user1', 'kw2')
        Subscription.add_subscription('user2', 'kw2')

        ret = Subscription.get_active_subscriptions()
        print ret
        self.assertEqual(3, len(ret))
Exemplo n.º 2
0
    def testAddSubscription(self):
        Subscription.add_subscription('user1', 'kw1')
        Subscription.add_subscription('user2', 'kw2')
        Subscription.add_subscription('user1', 'kw2')
        Subscription.add_subscription('user2', 'kw2')

        ret = Subscription.get_active_subscriptions()
        print ret
        self.assertEqual(3, len(ret))
Exemplo n.º 3
0
    def post(self):
        USAGE = u"""使用方法:
* 回复 "1 <关键字>", 接收租房推送;
* 回复 "2", 查询当前订阅的关键字;
* 回复 "3 <编号>", 取消查询结果中编号对应的关键字;
* 回复任意信息,续定推送(微信有规定48小时内没交流就不许我发信息给你了。。。)
"""

        signature = self.request.get('msg_signature')
        timestamp = self.request.get('timestamp')
        nonce     = self.request.get('nonce')
        try:
            wechat.parse_data(self.request.body, signature, timestamp, nonce)
            if isinstance(wechat.message, messages.TextMessage):
                content = wechat.message.content.strip()
                user = wechat.message.source
                resp = ''
                logging.debug('got message (%s) from %s' % (content, user))
                try:
                    if re.match(u'1', content):
                        keyword = content[1:].strip()
                        ret = Subscription.add_subscription(user, keyword)
                        logging.debug(ret)
                        if ret:
                            resp = u'订阅成功!'
                        else:
                            raise Exception('subscription failed')
                    elif re.match(u'3', content):
                        try:
                            idx = int(content[1:].strip())
                            ret = Subscription.get_user_subscriptions(user)
                            if len(ret):
                                if idx < len(ret):
                                    keyword = ret[idx]['keyword']
                                    ret = Subscription.remove_subscription(user, keyword)
                                    if ret:
                                        resp = u'订阅取消成功(%s)!' % keyword
                                    else:
                                        raise Exception('subscription removal failed')

                                else:
                                    resp = u'没有找到编号为%d的订阅诶。。您一共有%d个订阅。' % (idx, len(ret))
                            else:
                                resp = u'您当前没有订阅。'
                        except Exception as e:
                            raise
                    elif re.match(u'2', content):
                        ret = Subscription.get_user_subscriptions(user)
                        if len(ret):
                            resp = u'您的当前订阅:\n%s' % '\n'.join(
                                    ['%d: %s' % (idx, r['keyword']) for idx, r in enumerate(ret)])
                        else:
                            resp = u'您当前没有订阅。'
                    else:
                        # TODO: respond something meaningful
                        resp = USAGE

                except Exception as e:
                    logging.debug(repr(e))
                    resp = USAGE

                logging.debug('replying with (%s)' % resp)
                self.response.write(wechat.response_text(resp))

        except Exception as e:
            logging.warning(repr(e))
            logging.warning(e.message)
            import traceback
            traceback.print_exc()
            self.response.write('')
Exemplo n.º 4
0
    def get(self):
        user    = self.request.get('user')
        keyword = self.request.get('keyword')

        Subscription.add_subscription(user, keyword)
Exemplo n.º 5
0
    def post(self):
        USAGE = u"""使用方法:
* 回复 "1 <关键字>", 接收租房推送;
* 回复 "2", 查询当前订阅的关键字;
* 回复 "3 <编号>", 取消查询结果中编号对应的关键字;
* 回复任意信息,续定推送(微信有规定48小时内没交流就不许我发信息给你了。。。)
"""

        signature = self.request.get('msg_signature')
        timestamp = self.request.get('timestamp')
        nonce = self.request.get('nonce')
        try:
            wechat.parse_data(self.request.body, signature, timestamp, nonce)
            if isinstance(wechat.message, messages.TextMessage):
                content = wechat.message.content.strip()
                user = wechat.message.source
                resp = ''
                logging.debug('got message (%s) from %s' % (content, user))
                try:
                    if re.match(u'1', content):
                        keyword = content[1:].strip()
                        ret = Subscription.add_subscription(user, keyword)
                        logging.debug(ret)
                        if ret:
                            resp = u'订阅成功!'
                        else:
                            raise Exception('subscription failed')
                    elif re.match(u'3', content):
                        try:
                            idx = int(content[1:].strip())
                            ret = Subscription.get_user_subscriptions(user)
                            if len(ret):
                                if idx < len(ret):
                                    keyword = ret[idx]['keyword']
                                    ret = Subscription.remove_subscription(
                                        user, keyword)
                                    if ret:
                                        resp = u'订阅取消成功(%s)!' % keyword
                                    else:
                                        raise Exception(
                                            'subscription removal failed')

                                else:
                                    resp = u'没有找到编号为%d的订阅诶。。您一共有%d个订阅。' % (
                                        idx, len(ret))
                            else:
                                resp = u'您当前没有订阅。'
                        except Exception as e:
                            raise
                    elif re.match(u'2', content):
                        ret = Subscription.get_user_subscriptions(user)
                        if len(ret):
                            resp = u'您的当前订阅:\n%s' % '\n'.join([
                                '%d: %s' % (idx, r['keyword'])
                                for idx, r in enumerate(ret)
                            ])
                        else:
                            resp = u'您当前没有订阅。'
                    else:
                        # TODO: respond something meaningful
                        resp = USAGE

                except Exception as e:
                    logging.debug(repr(e))
                    resp = USAGE

                logging.debug('replying with (%s)' % resp)
                self.response.write(wechat.response_text(resp))

        except Exception as e:
            logging.warning(repr(e))
            logging.warning(e.message)
            import traceback
            traceback.print_exc()
            self.response.write('')
Exemplo n.º 6
0
    def get(self):
        user = self.request.get('user')
        keyword = self.request.get('keyword')

        Subscription.add_subscription(user, keyword)