Esempio n. 1
0
File: members.py Progetto: zagy/karl
def member_search_json_view(context, request):
    try:
        # Query parameter shall be 'term'.
        prefix = request.params['term']
    except UnicodeDecodeError:
        # not utf8, just return empty list since tags can't have these chars
        result = JSONEncoder().encode([])
        return Response(result, content_type="application/x-json")
    # case insensitive
    prefix = prefix.lower()
    community = find_interface(context, ICommunity)
    member_names = community.member_names
    moderator_names = community.moderator_names
    community_member_names = member_names.union(moderator_names)
    query = dict(
        member_name='%s*' % prefix,
        sort_index='title',
        limit=20,
    )
    searcher = ICatalogSearch(context)
    try:
        total, docids, resolver = searcher(**query)
        profiles = filter(None, map(resolver, docids))
        records = [
            dict(
                value=profile.__name__,
                label=profile.title,
            ) for profile in profiles
            if profile.__name__ not in community_member_names
            and profile.security_state != 'inactive'
        ]
    except ParseError:
        records = []
    result = JSONEncoder().encode(records)
    return Response(result, content_type="application/x-json")
Esempio n. 2
0
File: tags.py Progetto: zagy/karl
def jquery_tag_search_view(context, request):
    tag_query_tool = getMultiAdapter((context, request), ITagQuery)
    try:
        prefix = request.params['val']
    except UnicodeDecodeError:
        # not utf8, just return empty list since tags can't have these chars
        result = JSONEncoder().encode([])
        return Response(result, content_type="application/x-json")
    # case insensitive
    prefix = prefix.lower()
    values = tag_query_tool.tags_with_prefix(prefix)
    records = [dict(text=value) for value in values]
    result = JSONEncoder().encode(records)
    return Response(result, content_type="application/x-json")
Esempio n. 3
0
def redis_cluster_fosc_add(fid,
                           isp,
                           peer_id,
                           version,
                           nat_type,
                           public_ip,
                           public_port,
                           private_ip,
                           private_port,
                           stun_ip,
                           cppc=1,
                           ppc=304):
    """
    在FOSC中set value,若非必要,尽量使用cache_report或control_report请求汇报,由ts-go服务器写入FOSC
    目前服务器维护seed list不只单单使用FOSC,还涉及到LFC,LFCacheManageZset
    """
    key = "{FOSC_" + str(fid) + "_" + str(isp) + "}"
    value = {
        "peer_id": str(peer_id),
        "version": str(version),
        "natType": int(nat_type),
        "publicIP": str(public_ip),
        "publicPort": int(public_port),
        "privateIP": str(private_ip),
        "privatePort": int(private_port),
        "stunIP": str(stun_ip),
        "cppc": int(cppc),
        "ppc": int(ppc)
    }
    # 将dict转成json格式
    value = JSONEncoder().encode(value)
    rc.sadd(key, value)
Esempio n. 4
0
File: members.py Progetto: zagy/karl
def jquery_member_search_view(context, request):
    prefix = request.params['val'].lower()
    community = find_interface(context, ICommunity)
    member_names = community.member_names
    moderator_names = community.moderator_names
    community_member_names = member_names.union(moderator_names)
    query = dict(
        member_name='%s*' % prefix,
        sort_index='title',
        limit=20,
    )
    searcher = ICatalogSearch(context)
    try:
        total, docids, resolver = searcher(**query)
        profiles = filter(None, map(resolver, docids))
        records = [
            dict(
                id=profile.__name__,
                text=profile.title,
            ) for profile in profiles
            if profile.__name__ not in community_member_names
            and profile.security_state != 'inactive'
        ]
    except ParseError:
        records = []
    result = JSONEncoder().encode(records)
    return Response(result, content_type="application/x-json")
Esempio n. 5
0
File: tags.py Progetto: zagy/karl
def jquery_tag_del_view(context, request):
    value = request.params['val'].strip()
    value = value.decode('utf')
    del_tags(context, request, [value])
    status = {}
    result = JSONEncoder().encode(status)
    return Response(result, content_type="application/x-json")
Esempio n. 6
0
def set_allow_weight(isp, pro, lp_ip_list):
    rc = redis.StrictRedis(host=REDIS_SINGLE_HOST, port=REDIS_PORT, db=0)
    key = "ALLOW_WEIGHT-" + str(isp) + "_" + str(pro)
    value = lp_ip_list
    # 将dict转成json格式
    value = JSONEncoder().encode(value)
    rc.set(key, value)
def convert_MediaElchNFO_to_JSON(filename):
    tree = etree.parse(filename)
    root = tree.getroot()
    #dumpLeaf(root)
    movie = {}
    encodeLeaf(root, movie)
    return JSONEncoder().encode(movie)
Esempio n. 8
0
    def readjsonstructure(self,
                          project_id,
                          visibility_filter=StaticFiltersFactory.FULL_VIEW,
                          first_level=None,
                          second_level=None,
                          filter_value=None):
        """
        AJAX exposed method. 
        Will return the complete JSON for Project's structure, or filtered tree
        (filter only Relevant entities or Burst only Data).
        """
        if first_level is None or second_level is None:
            first_level, second_level = self.get_project_structure_grouping()
        else:
            self.set_project_structure_grouping(first_level, second_level)

        selected_filter = StaticFiltersFactory.build_datatype_filters(
            single_filter=visibility_filter)
        if project_id == 'undefined':
            project_id = common.get_current_project().id
        project = self.project_service.find_project(project_id)
        json_structure = self.project_service.get_project_structure(
            project, selected_filter, first_level, second_level, filter_value)
        # This JSON encoding is necessary, otherwise we will get an error
        # from JSTree library while trying to load with AJAX
        # the content of the tree.
        encoder = JSONEncoder()
        return encoder.iterencode(json_structure)
Esempio n. 9
0
File: tags.py Progetto: zagy/karl
def tag_search_json_view(context, request):
    tag_query_tool = getMultiAdapter((context, request), ITagQuery)
    try:
        # Query parameter shall be 'term'.
        prefix = request.params['term']
    except UnicodeDecodeError:
        # not utf8, just return empty list since tags can't have these chars
        result = JSONEncoder().encode([])
        return Response(result, content_type="application/x-json")
    # case insensitive
    prefix = prefix.lower()
    values = tag_query_tool.tags_with_prefix(prefix)
    # uniterize
    values = list(values)
    # The return payload simply expects the list of labels.
    result = JSONEncoder().encode(values)
    return Response(result, content_type="application/x-json")
Esempio n. 10
0
 def serialize(object, human=False):
     if human:
         indent = 2
         sort_keys = True
     else:
         indent = None
         sort_keys = False
     return JSONEncoder(indent=indent,
                        sort_keys=sort_keys).encode(object)
Esempio n. 11
0
  def save_node_set(self, name, nodes):
	name = unquote(name)
	nodes = unquote(nodes)
	file_name = "nodes-sets.json"
	data = JSONDecoder().decode(file(file_name).read())
	data[name] = nodes
	open(file_name, "w").write(
		JSONEncoder(indent=4,sort_keys=1).encode(data))
	return {"name": name}
Esempio n. 12
0
    def __init__(self, source, options={}, attrs={}):
        """source can be a list containing the autocomplete values or a
		string containing the url used for the XHR request. """

        self.options = {'source': source, 'minLength': '2', 'max': '64'}
        self.attrs = {'autocomplete': 'off'}
        if len(options) > 0:
            self.options = JSONEncoder().encode(options)

        self.attrs.update(attrs)
Esempio n. 13
0
 def getFinal(self, receiver):
     encrypted = self.__getCipherText()
     # encrypted = JSONEncoder().encode(encrypted)
     encryptedRSA = PgpHandler.RSAencrypt(self.publicKey,
                                          encrypted["AESkey"])
     obj = {
         "to": receiver,
         "cipher": encrypted["cipher"],
         "AESEncryptedKey": encryptedRSA
     }
     return JSONEncoder(separators=(',', ':')).encode(obj)
Esempio n. 14
0
    def test_raises_bad_request_when_rpc_params_are_invalid(self):
        from simplejson import JSONEncoder
        from pyramid.httpexceptions import HTTPBadRequest

        rpc_request = {'method': 'checkWords', 'params': ['en']}
        json = JSONEncoder().encode(rpc_request)

        request = testing.DummyRequest(method='POST',
                                       body=json,
                                       content_type='application/x-json')
        self.assertRaises(HTTPBadRequest, self._callFUT, request)
Esempio n. 15
0
File: tags.py Progetto: zagy/karl
def jquery_tag_add_view(context, request):
    value = request.params['val'].strip()
    value = value.decode('utf')
    add_tags(context, request, [value])
    status = {}
    # check for valid characters
    if not _validate_tag(value):
        # This will signal an error for the client.
        status['error'] = 'Adding tag failed, it contains illegal characters.'
    result = JSONEncoder().encode(status)
    return Response(result, content_type="application/x-json")
Esempio n. 16
0
def redis_single_zadd_pgpfc(user_id,
                            task_count,
                            file_id,
                            fsize,
                            psize,
                            ppc,
                            operation,
                            src,
                            priority,
                            server_host=None,
                            server_port=None):
    """
    推送到某个user id的task列表
    :param user_id:
    :param task_count: 任务份数
    :param file_id:
    :param fsize:
    :param psize:
    :param ppc:
    :param operation:
    :param src:
    :param priority:
    :param server_host:
    :param server_port:
    :return:
    """
    key = "PGPFC_" + str(user_id)
    if operation == "download":
        value = {
            "file_id": str(file_id),
            "fsize": int(fsize),
            "psize": int(psize),
            "ppc": int(ppc),
            "operation": str(operation),
            "src": src,
            "priority": int(priority)
        }
        if server_host is not None and server_port is not None:
            value["server"] = str(server_host)
            value["port"] = int(server_port)
    elif operation == "delete":
        value = {
            "file_id": str(file_id),
            "psize": int(psize),
            "ppc": int(ppc),
            "operation": str(operation),
            "src": src,
            "priority": int(priority)
        }
    else:
        raise
    # 将dict转成json格式
    value = JSONEncoder().encode(value)
    rc.zadd(key, task_count, value)
Esempio n. 17
0
def lpush_rrpc_leave_lf(redis_single_host, redis_single_port, stun_ip, file_id, peer_ids):
    rc = redis.StrictRedis(host=redis_single_host, port=redis_single_port, db=0)
    RRPC_KEY = "RRPC_" + str(stun_ip)
    if type(peer_ids) is not list: peer_ids = [peer_ids]
    value = {
        "cmd": "leave_lf",
        "file_id": str(file_id),
        "peer_ids": peer_ids
    }
    # 将dict转成json格式
    value = JSONEncoder().encode(value)
    rc.lpush(RRPC_KEY, value)
Esempio n. 18
0
File: utils.py Progetto: zagy/karl
def convert_to_script(data, var_name='_karl_client_data'):
    if data:
        ##print data
        result = JSONEncoder().encode(data)
        script = dedent("""\
            <script type="text/javascript">
            window.%s = %s;
            </script>""" % (var_name, result))
    else:
        # no data, no script.
        script = ''
    return script
Esempio n. 19
0
 def test_get_project_structure(self):
     dt_factory = datatypes_factory.DatatypesFactory()
     self._create_datatypes(dt_factory, 3)
     node_json = self.project_service.get_project_structure(
         dt_factory.project, None, 'Data_State', 'Data_Subject', None)
     encoder = JSONEncoder()
     encoder.iterencode(node_json)
     # No exceptions were raised so far.
     project_dts = dao.get_datatypes_for_project(dt_factory.project.id)
     for dt in project_dts:
         self.assertTrue(
             dt.gid in node_json,
             "Should have all datatypes present in resulting json.")
Esempio n. 20
0
    def test_renders_error_response_for_unsupported_language(self):
        from simplejson import JSONEncoder
        rpc_request = {
            'id': None,
            'method': 'checkWords',
            'params': ['za', ['foo', 'bar']]
        }
        json = JSONEncoder().encode(rpc_request)

        request = testing.DummyRequest(method='POST', body=json)
        data = self._callFUT(testing.DummyModel(), request)
        self.assertEquals(data['id'], None)
        self.assertEquals(data['result'], [])
        self.assertEquals(data['error'], 'Language is not supported')
Esempio n. 21
0
    def test_renders_suggestions_for_getSuggestions_request(self):
        from simplejson import JSONEncoder
        rpc_request = {
            'id': None,
            'method': 'getSuggestions',
            'params': ['en', 'foo']
        }
        json = JSONEncoder().encode(rpc_request)

        request = testing.DummyRequest(method='POST', body=json)
        data = self._callFUT(testing.DummyModel(), request)
        self.assertEquals(data['id'], None)
        self.assertEquals(data['result'], ['foo', 'foo', 'foo'])
        self.assertEquals(data['error'], None)
Esempio n. 22
0
    def test_parses_valid_getSuggestions_request(self):
        from simplejson import JSONEncoder

        rpc_request = {'method': 'getSuggestions', 'params': ['en', 'hello']}
        json = JSONEncoder().encode(rpc_request)

        request = testing.DummyRequest(method='POST',
                                       body=json,
                                       content_type='application/x-json')

        methodcall, lang, words = self._callFUT(request)
        self.assertEqual(methodcall, 'getSuggestions')
        self.assertEqual(lang, 'en')
        self.assertEqual(words, ['hello'])
Esempio n. 23
0
    def test_renders_misspelled_words_for_checkWords_request(self):
        from simplejson import JSONEncoder
        rpc_request = {
            'id': None,
            'method': 'checkWords',
            'params': ['en', ['foo', 'bar']]
        }
        json = JSONEncoder().encode(rpc_request)

        request = testing.DummyRequest(method='POST', body=json)
        data = self._callFUT(testing.DummyModel(), request)
        self.assertEquals(data['id'], None)
        self.assertEquals(data['result'], ['foo', 'bar'])
        self.assertEquals(data['error'], None)
Esempio n. 24
0
def jquery_grid_view(context, request):
    sort_on = request.params.get('sortColumn', None)
    reverse = request.params.get('sortDirection') == 'desc'
    payload = get_grid_data(
        context,
        request,
        start=int(request.params.get('start', '0')),
        limit=int(request.params.get('limit', '12')),
        sort_on=sort_on,
        reverse=reverse,
    )
    del payload['batch']
    del payload['slickgrid_info']
    result = JSONEncoder().encode(payload)
    return Response(result, content_type="application/x-json")
Esempio n. 25
0
    def __init__(self,
                 charset: str = "utf-8",
                 headers: Union[Headers, HeadersList] = None,
                 status_code: int = HTTP_OK,
                 **kwargs):
        if not JSON_GENERATOR:
            # pyl-int: disable=super-init-not-called
            raise NotImplementedError(
                "JSONGeneratorResponse need simplejson module")

        mime_type = "application/json"
        if charset:
            mime_type += "; charset=" + charset
        generator = JSONEncoder(  # type: ignore
            iterable_as_array=True).iterencode(kwargs)  # type: ignore
        super().__init__(generator, mime_type, headers, status_code)
Esempio n. 26
0
class Handler(Reqs, SimpleHTTPRequestHandler):

  def do_GET(self):
	path, args = self.parse_req()
	if not hasattr(self, path):
		SimpleHTTPRequestHandler.do_GET(self)
		return
	try:
		res = eval("self." + path, {"self":self}, {})(**args)
	except Exception, e:
		self.error(e.message)
		return
	self.send_response(200)
	self.send_header("Content-type", "text/plain")
	self.end_headers()
	self.wfile.write(JSONEncoder().encode(res))
Esempio n. 27
0
 def add_json(self, uuid, host, token, smolt_protocol):
     pub_uuid = None
     if not at_final_server():
         final_token = self.new_token(uuid)
         host_dict = simplejson.loads(host)
         host_dict_excerpt = self._impl.data_for_next_hop(host_dict)
         json_host_excerpt = JSONEncoder(
             indent=2, sort_keys=True).encode(host_dict_excerpt)
         response_dict = self.forward('add_json',
                                      uuid=uuid,
                                      host=json_host_excerpt,
                                      token=final_token,
                                      smolt_protocol=smolt_protocol)
         pub_uuid = response_dict['pub_uuid']
         # TODO handle passwords?
     response_dict = self._impl.add_json_plus_pub_uuid(
         uuid, pub_uuid, host, token, smolt_protocol)
     return response_dict
Esempio n. 28
0
def cluster_setex_pnic(ttl, peer_id, sdk_version, nat_type, public_ip, public_port, private_ip, private_port,
                       province_id, isp_id, city_id, stun_ip, country="CN"):
    """
    在redis中写入某节点的PNIC信息,并设定其有效存活时间
    :param ttl: expire time
    :param peer_id:
    :param sdk_version:
    :param nat_type:
    :param public_ip:
    :param public_port:
    :param private_ip:
    :param private_port:
    :param province_id:
    :param isp_id:
    :param city_id:
    :param stun_ip:
    :param country:
    :return:
    """
    # startup_nodes = [{"host": REDIS_CLUSTER_HOST, "port": REDIS_CLUSTER_PORT},
    #                  {"host": REDIS_CLUSTER_HOST_2, "port": REDIS_CLUSTER_PORT},
    #                  {"host": REDIS_CLUSTER_HOST_3, "port": REDIS_CLUSTER_PORT}]
    # rc = StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=True)
    key = "PNIC_" + str(peer_id)

    value = {
        "peer_id": str(peer_id),
        "version": str(sdk_version),
        "natType": int(nat_type),
        "publicIP": str(public_ip),
        "publicPort": int(public_port),
        "privateIP": str(private_ip),
        "privatePort": int(private_port),
        "country": str(country),
        "province_id": str(province_id),
        "isp_id": str(isp_id),
        "city_id": str(city_id),
        "stunIP": str(stun_ip)
    }
    # 将dict转成json格式
    value = JSONEncoder().encode(value)
    rc.setex(key, int(ttl), value)
Esempio n. 29
0
def cluster_fosc_add(file_id, isp, peer_id, sdk_version, nat_type, public_ip, public_port, private_ip, private_port,
                     province_id, stun_ip, cppc=1):
    """
    在FOSC中set value,若非必要,尽量使用cache_report或control_report请求汇报,由ts-go服务器写入FOSC
    目前服务器维护seed list不只单单使用FOSC,还涉及到LFC,LFCacheManageZset
    :param file_id: 该key所对应的file_id
    :param isp: 该key所对应的isp
    :param peer_id:
    :param sdk_version:
    :param nat_type:
    :param public_ip:
    :param public_port:
    :param private_ip:
    :param private_port:
    :param province_id:
    :param stun_ip:
    :param cppc:
    :return:
    """

    # startup_nodes = [{"host": REDIS_CLUSTER_HOST, "port": REDIS_CLUSTER_PORT},
    #                  {"host": REDIS_CLUSTER_HOST_2, "port": REDIS_CLUSTER_PORT},
    #                  {"host": REDIS_CLUSTER_HOST_3, "port": REDIS_CLUSTER_PORT}]
    # rc = StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=True)
    key = "{FOSC_" + str(file_id) + "_" + str(isp) + "}"
    value = {
        "peer_id": str(peer_id),
        "version": str(sdk_version),
        "natType": int(nat_type),
        "publicIP": str(public_ip),
        "publicPort": int(public_port),
        "privateIP": str(private_ip),
        "privatePort": int(private_port),
        "province_id": str(province_id),
        "stunIP": str(stun_ip),
        "cppc": int(cppc)
    }
    # 将dict转成json格式
    value = JSONEncoder().encode(value)
    rc.sadd(key, value)
Esempio n. 30
0
def redis_cluster_sadd_pdfc(peer_id, file_id, psize, ppc, operation, src=0):
    """
    定向推送删除任务到某个peer
    :param peer_id:
    :param file_id:
    :param psize:
    :param ppc:
    :param operation:
    :param src:
    :return:
    """
    key = "PDFC_" + str(peer_id)
    value = {
        "file_id": str(file_id),
        "psize": int(psize),
        "ppc": int(ppc),
        "operation": str(operation),
        "src": src
    }
    # 将dict转成json格式
    value = JSONEncoder().encode(value)
    rc.sadd(key, value)