コード例 #1
0
ファイル: anorak.py プロジェクト: echel0n/Anorak
 def POST_editor(self, id):
     anime = model.get_anime(id)
     episodes = model.get_episodes(id)
     editorForm = self.editorForm(anime)
     if not editorForm.validates():
         return render.anime(anime,episodes,self.episodeForm,editorForm)
     model.update_anime(id, web.input().alternativeTitle, web.input().releaseGroup, web.input().location, int(web.input().quality))
     return render.anime(anime,episodes,self.episodeForm,editorForm)
コード例 #2
0
ファイル: anorak.py プロジェクト: seertenedos/Anorak
 def POST_skip(self, id):
     anime = model.get_anime(id)
     ep = model.get_episode(id, web.input().episode)
     if ep.wanted == 1:
         model.skipped_episode(id, web.input().episode)
         return "Skipped episode %s successfully" % web.input().episode
     else:
         model.wanted_episode(id, web.input().episode)
         return "Added episode %s successfully" % web.input().episode
コード例 #3
0
ファイル: anorak.py プロジェクト: bitwhacker/Anorak
 def POST_skip(self, id):
     anime = model.get_anime(id)
     ep = model.get_episode(id, web.input().episode)
     if ep.wanted == 1:
        model.skipped_episode(id, web.input().episode)
        return "Skipped episode %s successfully" % web.input().episode
     else:
        model.wanted_episode(id, web.input().episode)
        return "Added episode %s successfully" % web.input().episode
コード例 #4
0
    def uploadImage(self):
        if (len(self.request('qqfile')) > 100):
            log.info("*** == %s" % type(web.input()['qqfile']))
            data = web.input()['qqfile']
        else:
            data = web.data()

        imageId = ImageServer.add(self.db, data, 'giveaminute', [100, 100])

        return imageId
コード例 #5
0
ファイル: anorak.py プロジェクト: bitwhacker/Anorak
 def POST_snatch(self, id):
     anime = model.get_anime(id)
     downloader = Downloader()
     downloader.anime = anime
     downloader.episode = web.input().episode
     if (downloader.download()):
         model.snatched_episode(id, web.input().episode)
         return "Snatched episode %s successfully" % web.input().episode
     else:
         return "Couldn't snatch episode %s" % web.input().episode
コード例 #6
0
ファイル: anorak.py プロジェクト: seertenedos/Anorak
 def POST_snatch(self, id):
     anime = model.get_anime(id)
     downloader = Downloader()
     downloader.anime = anime
     downloader.episode = web.input().episode
     if (downloader.download()):
         model.snatched_episode(id, web.input().episode)
         return "Snatched episode %s successfully" % web.input().episode
     else:
         return "Couldn't snatch episode %s" % web.input().episode
コード例 #7
0
ファイル: main.py プロジェクト: starim/penny-auction
    def GET(self):
        inputs = web.input(id=None, num_bids=None)
        web.header("Content-Type", "application/json")

        try:
            if not inputs.id:
                raise APIRequestException("No auction ID was supplied in the 'id' parameter.")

            if inputs.num_bids == None:
                raise APIRequestException("No number of bids was supplied in the 'num_bids' parameter.")

                # user validation
            user_name = user_controller.UserController.validate_cookie()
            if user_name is None:
                raise APIRequestException("Not logged in!")

            result = auction_controller.AuctionController.attach_autobidder(
                auction_id=int(inputs.id), user_name=user_name, num_bids=inputs.num_bids
            )

            result = json.dumps({"result": result})
            logging.debug("/auction_add_pending_bids_for_user response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info("/auction_add_pending_bids_for_user response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #8
0
ファイル: main.py プロジェクト: starim/penny-auction
    def GET(self):

        inputs = web.input()
        web.header("Content-Type", "application/json")
        try:
            ## STUB ##
            # TODO: fill in this stub

            result = []
            result.append({username: "******", price: "1.20", bidtime: "05:14:23 PM"})
            result.append({username: "******", price: "1.19", bidtime: "05:14:15 PM"})
            result.append({username: "******", price: "1.18", bidtime: "05:14:10 PM"})
            result.append({username: "******", price: "1.17", bidtime: "05:14:09 PM"})
            result.append({username: "******", price: "1.16", bidtime: "05:14:02 PM"})
            result.append({username: "******", price: "1.15", bidtime: "05:13:58 PM"})
            result.append({username: "******", price: "1.14", bidtime: "05:13:49 PM"})
            result.append({username: "******", price: "1.13", bidtime: "05:13:42 PM"})
            result.append({username: "******", price: "1.12", bidtime: "05:13:36 PM"})

            result = json.dumps({"result": result})
            logging.debug("/auction_recent_bids response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info("/auction_recent_bids response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #9
0
    def GET(self):
        inputs = web.input(count=None)
        web.header('Content-Type', 'application/json')

        try:
            if not inputs.count:
                raise APIRequestException(
                    "The number of auctions to list was not provided in the 'count' parameter."
                )

            auctions = auction_controller.AuctionController.auctions_list_current(
                inputs.count)

            # Build the JSON payload
            result = []

            for elem in auctions:
                result.append(generate_auction_dict(elem))

            result = json.dumps({'result': result})
            logging.debug("/auctions_list_current response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info(
                "/auctions_list_current response to bad request: {}".format(
                    result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #10
0
    def GET(self):
        inputs = web.input(id=None)
        web.header('Content-Type', 'application/json')

        try:
            if not inputs.id:
                raise APIRequestException(
                    "No auction ID in the 'id' parameter.")

            # user validation
            user_name = user_controller.UserController.validate_cookie()
            if user_name is None:
                raise APIRequestException("Not logged in.")

            result = auction_controller.AuctionController.cancel_autobidder(
                auction_id=int(inputs.id), user_name=user_name)

            result = json.dumps({'result': result})
            logging.debug(
                "/auction_cancel_pending_bids_for_user response: {}".format(
                    result))
            return result

        except APIRequestException, exception:
            logging.info(
                "/auction_cancel_pending_bids_for_user response to bad request: {}"
                .format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #11
0
 def POST(self):
     data = web.input()
     message = Message.Put(data.Identity, data.Content, data.RoomId)
     if message:
         channels = memcache.get(data.RoomId) or []
         for channelId in channels:
             channel.send_message(channelId, message.ToJSON())
コード例 #12
0
ファイル: lia_server.py プロジェクト: yiannisy/lia
 def GET(self):
     vars = web.input(name = 'web')
     code = web.websafe(vars.code)
     proxy_url = get_proxy_url(code)
     url,port = proxy_url.split(':')
     port = int(port)
     return json.dumps({"code":code,"proxy_url":url,"proxy_port":port})
コード例 #13
0
ファイル: anorak.py プロジェクト: echel0n/Anorak
    def POST(self, id):
        i = web.input()

        # assuming that the name of the hidden field is "form"
        if i.form == "editor":
            return self.POST_editor(id)
        else:
            return self.POST_snatch(id)
コード例 #14
0
ファイル: anorak.py プロジェクト: seertenedos/Anorak
 def GET(self):
     query = web.input()
     try:
         nzbName = query.nzbName
     except:
         nzbName = None
     if (process.processEpisode(query.dir, nzbName)):
         return "Successfully processed episode."
     return "Episode failed to process."
コード例 #15
0
ファイル: anorak.py プロジェクト: bitwhacker/Anorak
 def GET(self):
     query = web.input()
     try:
         nzbName = query.nzbName
     except:
         nzbName = None
     if (process.processEpisode(query.dir, nzbName)):
         return "Successfully processed episode."
     return "Episode failed to process."
コード例 #16
0
ファイル: anorak.py プロジェクト: seertenedos/Anorak
    def POST(self):
        i = web.input()

        # determine which form to process based on the hidden value "form"
        if i.form == "settings":
            return self.POST_settings()
        if i.form == "sabnzbd":
            return self.POST_sabnzbd()
        if i.form == "plex":
            return self.POST_plex()
コード例 #17
0
ファイル: controller.py プロジェクト: rblom/Change-By-Us
 def parameters(self):
     """Gets a ``dict`` of request parameters"""
     try:
         if not web.input():
             return None
     except TypeError, e:
         import urlparse
         querystring = web.ctx.query[1:]
         params = urlparse.parse_qs(querystring)
         return params
コード例 #18
0
ファイル: anorak.py プロジェクト: bitwhacker/Anorak
    def POST(self):
        i = web.input()

        # determine which form to process based on the hidden value "form"
        if i.form == "settings":
            return self.POST_settings()
        if i.form == "sabnzbd":
            return self.POST_sabnzbd()
        if i.form == "plex":
            return self.POST_plex()
コード例 #19
0
ファイル: controller.py プロジェクト: AltisCorp/Change-By-Us
 def parameters(self):
     """Gets a ``dict`` of request parameters"""
     try:
         if not web.input():
             return None
     except TypeError, e:
         import urlparse
         querystring = web.ctx.query[1:]
         params = urlparse.parse_qs(querystring)
         return params
コード例 #20
0
ファイル: server.py プロジェクト: sksundaram-learning/clade
 def GET(self):
     xml = StringIO()
     rows = web.input(rows='-1').rows
     if rows != '-1':
         taxonomy.write_xml(xml, taxes, _solr, rows)
     else:
         taxonomy.write_xml(xml, taxes)
     try:
         return xml.getvalue()
     finally:
         xml.close()
コード例 #21
0
ファイル: controller.py プロジェクト: typecode/voxpop
	def request(self, var):
		try:
			if not web.input():
				return None
		except TypeError, e:
			logging.info("##### --> [%s] POST %s, trying GET string (%s)" % (var, e, web.ctx.query))
			querystring = web.ctx.query[1:]			
			params = dict([part.split('=') for part in querystring.split('&')])	
			try:
				var = params[var]
			except KeyError:
				return None
コード例 #22
0
ファイル: server.py プロジェクト: sksundaram-learning/clade
 def POST(self):
     global taxes
     with open(settings.taxonomy_path, 'w') as f:
         try:
             x = web.input(myfile={})
             taxes = [taxonomy.parse_xml(x['myfile'].file)]
             raise web.seeother("/static/index.html")
         except Exception as e:
             taxes = []
             raise web.seeother("/static/index.html?%s" % e.message)
         finally:
             cPickle.dump(taxes, f)
             map_terms()
コード例 #23
0
    def uploadFile(self):
        """
        Handler for the /create/file endpoint. Looks for the variable named
        qqfile from the request and saves it to a file on the server.

        Return information about the file in a ``dict`` with keys ``id``,
        ``type``, and ``name``

        """
        file_info = {}

        # Get file from the request
        if (len(self.request('qqfile')) > 100):
            log.info("*** == %s" % type(web.input()['qqfile']))
            file_name = ''
            data = self.request('qqfile')
        else:
            print web.input()
            file_name = self.request('qqfile')
            data = web.data()

        file_info['name'] = self.request('qqfile') or ''

        # Get a file server wrapper
        fs = S3FileServer(self.db)

        # Determine whether it's an image or another type of file
        media_type = file_info['type'] = self.getFileMediaType(data)

        # Upload the file to the server
        media_id = file_info['id'] = fs.add(data, file_name, make_unique=True)

        # If it's an image, upload the thumbnails as well
        if media_type == 'image':
            self.saveThumbnailImage(fs, media_type, media_id, data, 'small', self.SMALL_THUMB_SIZE)
            self.saveThumbnailImage(fs, media_type, media_id, data, 'medium', self.MEDIUM_THUMB_SIZE)
            self.saveThumbnailImage(fs, media_type, media_id, data, 'large', self.LARGE_THUMB_SIZE)

        return file_info
コード例 #24
0
ファイル: main.py プロジェクト: starim/penny-auction
    def GET(self):
        inputs = web.input()
        web.header("Content-Type", "application/json")

        try:
            result = user_controller.UserController.user_authenticate_cookie()
            result = json.dumps({"result": result})
            logging.debug("/user_authenticate_cookie response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info("/user_authenticate_cookie response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #25
0
ファイル: controller.py プロジェクト: AltisCorp/Change-By-Us
    def request(self, var):
        """Gets the value of the request parameter named ``var``"""
        try:
            if not web.input():
                return None
        except TypeError, e:
            querystring = web.ctx.query[1:]

            params = dict([part.split('=') for part in querystring.split('&')])

            try:
                var = params[var]
            except KeyError:
                return None
コード例 #26
0
ファイル: controller.py プロジェクト: rblom/Change-By-Us
    def request(self, var):
        """Gets the value of the request parameter named ``var``"""
        try:
            if not web.input():
                return None
        except TypeError, e:
            querystring = web.ctx.query[1:]

            params = dict([part.split('=') for part in querystring.split('&')])

            try:
                var = params[var]
            except KeyError:
                return None
コード例 #27
0
    def GET(self):
        inputs = web.input()
        web.header('Content-Type', 'application/json')

        try:
            this_user = user_controller.UserController.validate_cookie()
            result = user_controller.UserController.user_logout(this_user)
            result = json.dumps({'result': result})
            logging.debug("/user_logout response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info(
                "/user_logout response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #28
0
ファイル: main.py プロジェクト: starim/penny-auction
    def GET(self):
        inputs = web.input()
        web.header("Content-Type", "application/json")

        try:
            this_user = user_controller.UserController.validate_cookie()
            if not this_user:
                raise APIRequestException("Not logged in!")
            result = user_controller.UserController.user_info(this_user)
            result = json.dumps({"result": result})
            logging.debug("/user_info response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info("/user_info response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #29
0
ファイル: api.py プロジェクト: zorelu/Bluevitality
    def POST(self):
        if web.ctx.get('ip') not in allow:
            return 'deny'

        data = web.input()
        (host, port, time, met, keys, stop) = '', 80, 50, 'ntp', '', '0'

        if data.get('method'):
            met = data.get('method')
        if data.get('host'):
            host = data.get('host')
        if data.get('port'):
            port = data.get('port')
        if data.get('time'):
            time = data.get('time')
        if data.get('key'):
            keys = data.get('key')
        if data.get('stop'):
            stop = data.get('stop')
        if host == '':
            return 'Host is empyt.'
        if keys not in key or keys == '':
            return 'Key Error.'
        if stop != '0' and stop != '1':
            return 'Stop Parameter error.'

        ddos = DDoSAttack(host, port, time)

        if stop == '1':
            if ddos.stop():
                return '停止任务成功'
            else:
                return '停止任务失败'

        if met in method:
            if met == 'ntp':
                if ddos.ntp(thread=100):
                    return 'NTP 模式,攻击目标IP [{0}] 成功'.format(host)
                else:
                    return 'NTP 模式,攻击目标IP [{0}] 失败'.format(host)
            elif met == 'ssdp':
                if ddos.ssdp(thread=100):
                    return 'SSDP 模式,攻击目标IP [{0}] 成功'.format(host)
                else:
                    return 'SSDP 模式,攻击目标IP [{0}] 失败'.format(host)
        return 'F**k.'
コード例 #30
0
ファイル: main.py プロジェクト: starim/penny-auction
    def GET(self):
        inputs = web.input(id=None)
        web.header("Content-Type", "application/json")

        try:
            if not inputs.id:
                raise APIRequestException("No auction ID was supplied in the 'id' parameter.")

            auction = auction_controller.AuctionController.auctions_status_by_ids(int(inputs.id))

            result = generate_auction_dict(auction)
            result = json.dumps({"result": result})
            logging.debug("/auction_detail response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info("/auction_detail response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #31
0
ファイル: main.py プロジェクト: starim/penny-auction
    def GET(self):
        inputs = web.input(email=None)
        web.header("Content-Type", "application/json")

        try:
            if not inputs.email:
                raise APIRequestException(
                    'required string parameter "email" was not passed to the server, or was an empty string'
                )

            result = user_controller.UserController.user_email_exists(inputs.email)
            result = json.dumps({"result": result})
            logging.debug("/user_email_exists response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info("/user_email_exists response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #32
0
ファイル: main.py プロジェクト: starim/penny-auction
    def GET(self):
        inputs = web.input(assertion=None)
        web.header("Content-Type", "application/json")

        try:
            this_user = user_controller.UserController.persona_login(inputs.assertion)
            if this_user:
                result = {"result": True, "username": this_user.username}
            else:
                result = {"result": False, "error": "invalid credentials"}

            result = json.dumps(result)
            logging.debug("/persona_login response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info("/persona_login response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #33
0
ファイル: main.py プロジェクト: starim/penny-auction
    def GET(self):
        inputs = web.input(username=None)
        web.header("Content-Type", "application/json")

        try:
            if inputs.username == None:
                raise APIRequestException("no user name in the 'username' parameter")
            if inputs.username == "":
                raise APIRequestException("username cannot be an empty string")

            result = user_controller.UserController.user_username_exists(inputs.username)
            result = json.dumps({"result": result})
            logging.debug("/user_username_exists response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info("/user_username_exists response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #34
0
    def POST(self):
        name = web.input().name
        ip = web.ctx.ip
        cookieName_identity = 'identity'
        cookieName_name = 'name'
        identity = web.cookies().get(cookieName_identity)
        browserId = ''
        user = None

        if identity:
            user = Identity.Update(identity, name, ip, browserId)
        if not user:
            user = Identity.Put(name, ip, browserId)

        web.setcookie(cookieName_identity, user.Id, _cookie_expire_time)
        web.setcookie(cookieName_name, user.DisplayName, _cookie_expire_time)

        return user.Id
コード例 #35
0
    def GET(self):
        inputs = web.input(assertion=None)
        web.header('Content-Type', 'application/json')

        try:
            this_user = user_controller.UserController.persona_login(
                inputs.assertion)
            if this_user:
                result = {'result': True, 'username': this_user.username}
            else:
                result = {'result': False, 'error': 'invalid credentials'}

            result = json.dumps(result)
            logging.debug("/persona_login response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info(
                "/persona_login response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #36
0
    def GET(self):
        inputs = web.input(id=None)
        web.header('Content-Type', 'application/json')

        try:
            if not inputs.id:
                raise APIRequestException(
                    "No auction ID was supplied in the 'id' parameter.")

            auction = auction_controller.AuctionController.auctions_status_by_ids(
                int(inputs.id))

            result = generate_auction_dict(auction)
            result = json.dumps({'result': result})
            logging.debug("/auction_detail response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info(
                "/auction_detail response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #37
0
ファイル: main.py プロジェクト: starim/penny-auction
    def GET(self):
        inputs = web.input(id=None)
        web.header("Content-Type", "application/json")

        try:
            if not inputs.id:
                raise APIRequestException("No auction ID was supplied in the 'id' parameter.")

                # user validation
            user = user_controller.UserController.validate_cookie()
            if user is None:
                raise APIRequestException("Not logged in!")

            result = auction_controller.AuctionController.auction_bid(inputs.id, user.username)
            result = json.dumps({"result": result})
            logging.debug("/auction_bid response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info("/auction_bid response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #38
0
    def GET(self):
        inputs = web.input(email=None)
        web.header('Content-Type', 'application/json')

        try:
            if not inputs.email:
                raise APIRequestException(
                    'required string parameter "email" was not passed to the server, or was an empty string'
                )

            result = user_controller.UserController.user_email_exists(
                inputs.email)
            result = json.dumps({'result': result})
            logging.debug("/user_email_exists response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info(
                "/user_email_exists response to bad request: {}".format(
                    result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #39
0
    def GET(self):
        inputs = web.input(ids=None)
        web.header('Content-Type', 'application/json')
        auction_ids = inputs.ids

        try:
            if not auction_ids:
                raise APIRequestException(
                    "No auction IDs were supplied in the 'ids' parameter.")

            # parse the string of IDs into a tuple of ints
            sids = auction_ids.split(',')
            if len(sids) > 40:
                raise APIRequestException(
                    "Maximum of 40 auction statuses, reduce number of requested auction statuses."
                )

            ids = []
            for sid in sids:
                ids.append(int(sid))
            ids = tuple(ids)  # freeze the ID list

            auctions = auction_controller.AuctionController.auctions_status_by_ids(
                ids)

            # Build the JSON payload
            result = []

            for elem in auctions:
                result.append(generate_auction_dict(elem))

            result = json.dumps({"result": result})
            logging.debug("/auctions_status_by_id response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info(
                "/auctions_status_by_id response to bad request: {}".format(
                    result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #40
0
ファイル: main.py プロジェクト: starim/penny-auction
    def GET(self):
        inputs = web.input()
        web.header("Content-Type", "application/json")

        try:
            # TODO: check that an administrative user issued this request

            auctions = auction_controller.AuctionController.auctions_list_all()

            # Build the JSON payload
            result = []

            for elem in auctions:
                result.append(generate_auction_dict(elem))

            result = json.dumps({"result": result})
            logging.debug("/auctions_list_all response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info("/auctions_list_all response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #41
0
    def GET(self):
        inputs = web.input(username=None)
        web.header('Content-Type', 'application/json')

        try:
            if inputs.username == None:
                raise APIRequestException(
                    "no user name in the 'username' parameter")
            if inputs.username == "":
                raise APIRequestException('username cannot be an empty string')

            result = user_controller.UserController.user_username_exists(
                inputs.username)
            result = json.dumps({'result': result})
            logging.debug("/user_username_exists response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info(
                "/user_username_exists response to bad request: {}".format(
                    result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #42
0
ファイル: main.py プロジェクト: starim/penny-auction
    def GET(self):
        inputs = web.input(count=None)
        web.header("Content-Type", "application/json")

        try:
            if not inputs.count:
                raise APIRequestException("The number of auctions to list was not provided in the 'count' parameter.")

            auctions = auction_controller.AuctionController.auctions_list_current(inputs.count)

            # Build the JSON payload
            result = []

            for elem in auctions:
                result.append(generate_auction_dict(elem))

            result = json.dumps({"result": result})
            logging.debug("/auctions_list_current response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info("/auctions_list_current response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #43
0
ファイル: main.py プロジェクト: starim/penny-auction
    def GET(self):
        inputs = web.input(ids=None)
        web.header("Content-Type", "application/json")
        auction_ids = inputs.ids

        try:
            if not auction_ids:
                raise APIRequestException("No auction IDs were supplied in the 'ids' parameter.")

                # parse the string of IDs into a tuple of ints
            sids = auction_ids.split(",")
            if len(sids) > 40:
                raise APIRequestException(
                    "Maximum of 40 auction statuses, reduce number of requested auction statuses."
                )

            ids = []
            for sid in sids:
                ids.append(int(sid))
            ids = tuple(ids)  # freeze the ID list

            auctions = auction_controller.AuctionController.auctions_status_by_ids(ids)

            # Build the JSON payload
            result = []

            for elem in auctions:
                result.append(generate_auction_dict(elem))

            result = json.dumps({"result": result})
            logging.debug("/auctions_status_by_id response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info("/auctions_status_by_id response to bad request: {}".format(result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #44
0
    def GET(self):
        inputs = web.input()
        web.header('Content-Type', 'application/json')

        try:
            # TODO: check that an administrative user issued this request

            auctions = auction_controller.AuctionController.auctions_list_all()

            # Build the JSON payload
            result = []

            for elem in auctions:
                result.append(generate_auction_dict(elem))

            result = json.dumps({'result': result})
            logging.debug("/auctions_list_all response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info(
                "/auctions_list_all response to bad request: {}".format(
                    result))
            return json.dumps({"result": False, "error": unicode(exception)})
コード例 #45
0
ファイル: controller.py プロジェクト: rblom/Change-By-Us
            return False
        return True

    def parameters(self):
        """Gets a ``dict`` of request parameters"""
        try:
            if not web.input():
                return None
        except TypeError, e:
            import urlparse
            querystring = web.ctx.query[1:]
            params = urlparse.parse_qs(querystring)
            return params
        else:
            return dict(web.input().items())

    def request(self, var):
        """Gets the value of the request parameter named ``var``"""
        try:
            if not web.input():
                return None
        except TypeError, e:
            querystring = web.ctx.query[1:]

            params = dict([part.split('=') for part in querystring.split('&')])

            try:
                var = params[var]
            except KeyError:
                return None
コード例 #46
0
ファイル: server.py プロジェクト: anhnguyendepocen/flaxcode
def params(name):
    aname = "%s[]" % name
    p = {aname: []}
    for x in getattr(web.input(**p), aname):
        yield x
コード例 #47
0
ファイル: controller.py プロジェクト: AltisCorp/Change-By-Us
            return False
        return True

    def parameters(self):
        """Gets a ``dict`` of request parameters"""
        try:
            if not web.input():
                return None
        except TypeError, e:
            import urlparse
            querystring = web.ctx.query[1:]
            params = urlparse.parse_qs(querystring)
            return params
        else:
            return dict(web.input().items())

    def request(self, var):
        """Gets the value of the request parameter named ``var``"""
        try:
            if not web.input():
                return None
        except TypeError, e:
            querystring = web.ctx.query[1:]

            params = dict([part.split('=') for part in querystring.split('&')])

            try:
                var = params[var]
            except KeyError:
                return None
コード例 #48
0
ファイル: server.py プロジェクト: anhnguyendepocen/flaxcode
    def GET(self, fn):

        if fn == "taxonomies":
            # return taxonomy list
            return json.dumps([{
                'value': x[0],
                'label': str(x[1])
            } for x in enumerate(taxes)])

        if fn == "taxonomy":
            # return taxonomy data, and possibly create/rename/delete a taxonomy
            tax_idx = web.input(value=None).value
            name = web.input(name=None).name
            remove = web.input(remove=False).remove
            if tax_idx is None:
                if name is None or remove is not False:
                    return json.dumps({"error": "no taxonomy index specified"})
                # create a new taxonomy with specified name
                for t in taxes:
                    if t.name == name:
                        return json.dumps({
                            "error":
                            "a taxonomy with that name already exists"
                        })
                term = taxonomy.Term(name)
                taxes.append(term)
                term_map["term%s" % term.uid] = term
                commit()
                return json.dumps({"value": len(taxes) - 1})
            try:
                tax_idx = int(tax_idx)
            except ValueError:
                return json.dumps({
                    "error":
                    "invalid taxonomy index specified - not an integer"
                })
            if tax_idx < 0 or tax_idx >= len(taxes):
                return json.dumps(
                    {"error": "invalid taxonomy index specified"})
            if remove is not False:
                if name is not None:
                    return json.dumps(
                        {"error": "name specified for taxonomy removal"})
                # delete taxonomy
                del taxes[tax_idx]
                map_terms()
                commit()
                return json.dumps({})
            if name is not None:
                # rename taxonomy
                for t in taxes:
                    if t.name == name:
                        return json.dumps({
                            "error":
                            "a taxonomy with that name already exists"
                        })
                taxes[tax_idx].name = name
                commit()
                return json.dumps({"value": tax_idx})
            # default - fetch taxonomy data
            return json.dumps([taxes[tax_idx].for_jtree(_solr)])

        if fn == "keywords":
            # return keywords for a taxonomy term
            term_id = web.input(id=None).id
            if term_id is None:
                return json.dumps({"error": "no term id specified"})
            term = term_map[term_id]
            return json.dumps([{
                "data": [k],
                "metadata": p
            } for k, p in term.iter_clues()])

        if fn == "documents":
            # return documents matching a node (category) (and add/remove a keyword?)
            term_id = web.input(id=None).id
            if term_id is None:
                return json.dumps({"error": "no term id specified"})
            term = term_map[term_id]
            change = False
            for add in params("add"):
                term.set_clue(add)
                change = True
            for remove in params("remove"):
                term.delete_clue(remove)
                change = True
            for toggle in params("toggle"):
                term.toggle_clue(toggle)
                change = True
            if change:
                commit()
            numFound, docs = taxonomy.get_docs_for_category(_solr, term)
            return json.dumps({
                "docs": [{
                    "data": doc
                } for doc in docs],
                "count": numFound
            })

        if fn == "suggestions":
            # return suggested keywords based on matching documents
            term_id = web.input(id=None).id
            if term_id is None:
                return json.dumps({"error": "no term id specified"})
            term = term_map[term_id]
            clues = []
            for x, _ in term.iter_clues():
                clues.append(x)
                clues.extend(x.split(' '))
            clues = [clue.lower() for clue in clues]
            doc_ids = [
                x for x in taxonomy.get_doc_ids_for_category(_solr, term)
            ]
            keywords = taxonomy.suggest_keywords(_solr, doc_ids, clues, 7)
            return json.dumps([{
                "data": [k],
                "metadata": True
            } for k in keywords])

        if fn == "document":
            doc_id = web.input(id=None).id
            doc = _solr.query(doc_id=doc_id).execute()[0]
            ranked = [{
                "data": [x[0].uid, str(x[0]),
                         str(int(x[1] * 10000))]
            } for x in taxonomy.classify_doc(doc["text"], taxes)[:18]]
            return json.dumps({
                "title": doc["title"],
                "ranked": ranked,
                "text": doc["text"]
            })

        if fn == "category":
            # rename/create/remove a category
            category_id = web.input(id=None).id
            parent_id = web.input(parent_id=None).parent_id
            name = web.input(name=None).name
            if category_id is not None:
                if category_id not in term_map:
                    return json.dumps(
                        {"error": "no such category: %s" % category_id})
                category = term_map[category_id]
            else:
                category = None
            if category is not None:
                if name is not None:
                    # rename category
                    category.name = name
                else:
                    # remove category
                    category.parent.children.remove(category)
                    del term_map[category_id]
            else:
                if name is None:
                    return json.dumps(
                        {"error": "no name or category id specified"})
                elif parent_id is None:
                    return json.dumps({"error": "no parent id specified"})
                elif parent_id not in term_map:
                    return json.dumps(
                        {"error": "no such category: %s" % parent_id})
                else:
                    # create category
                    parent = term_map[parent_id]
                    child = parent.create_child(name)
                    term_map["term%s" % child.uid] = child
                    commit()
                    return json.dumps({"id": "term%s" % child.uid})
            commit()
            return json.dumps({})

        raise Exception("No such AJAX function: %s" % fn)
コード例 #49
0
ファイル: controller.py プロジェクト: typecode/voxpop
		return web.SeeOther(url)
		
	def json(self, obj):
		web.header("Content-Type", "application/json")
		out = json.dumps(obj)
		return out.encode('utf-8')
		
	def stream_json(self,obj):
		logging.info("yielding some json")
		yield json.dumps(obj)
		
	def request(self, var):
		try:
			if not web.input():
				return None
		except TypeError, e:
			logging.info("##### --> [%s] POST %s, trying GET string (%s)" % (var, e, web.ctx.query))
			querystring = web.ctx.query[1:]			
			params = dict([part.split('=') for part in querystring.split('&')])	
			try:
				var = params[var]
			except KeyError:
				return None
		else:
			var = web.input()[var] if hasattr(web.input(), var) else None
		if type(var) is str or type(var) is unicode:
			var = util.strip_html(var)
			var = var.strip()
			if len(var) == 0: return None
			var = util.make_unicode(var)
		return var
コード例 #50
0
    def GET(self):

        inputs = web.input()
        web.header('Content-Type', 'application/json')
        try:
            ## STUB ##
            # TODO: fill in this stub

            result = []
            result.append({
                username: '******',
                price: '1.20',
                bidtime: '05:14:23 PM'
            })
            result.append({
                username: '******',
                price: '1.19',
                bidtime: '05:14:15 PM'
            })
            result.append({
                username: '******',
                price: '1.18',
                bidtime: '05:14:10 PM'
            })
            result.append({
                username: '******',
                price: '1.17',
                bidtime: '05:14:09 PM'
            })
            result.append({
                username: '******',
                price: '1.16',
                bidtime: '05:14:02 PM'
            })
            result.append({
                username: '******',
                price: '1.15',
                bidtime: '05:13:58 PM'
            })
            result.append({
                username: '******',
                price: '1.14',
                bidtime: '05:13:49 PM'
            })
            result.append({
                username: '******',
                price: '1.13',
                bidtime: '05:13:42 PM'
            })
            result.append({
                username: '******',
                price: '1.12',
                bidtime: '05:13:36 PM'
            })

            result = json.dumps({'result': result})
            logging.debug("/auction_recent_bids response: {}".format(result))
            return result

        except APIRequestException, exception:
            logging.info(
                "/auction_recent_bids response to bad request: {}".format(
                    result))
            return json.dumps({"result": False, "error": unicode(exception)})