#!/usr/bin/python # -*- coding: utf-8 -*- import urllib2 import json class TrademarkSearchAPI(): login = "Zuykov" password = "Uodof8awdooLee9f" def __init__(self, *args, **options): pass def send_request(self, request): request['login'] = self.login request['password'] = self.password request_json = json.dumps(request, separators=(',', ':')) api_url = "https://api.poiskznakov.ru/" api_request = urllib2.Request(api_url , request_json, {'Content-Type': 'application/json'}) response = urllib2.urlopen(api_request) data = json.load(response) return data def search_trademark(self, keyword, similarity=100): request = { 'module': 'search', 'procedure': 'make_search', 'search_type': 'wdesc', 'search_string': keyword, 'databases': [21, 23], 'use_translit': 'true', 'skip_expired': 'true', } if similarity < 100: request['search_method'] = 'similarity' request['minimum_similarity'] = similarity request['limit'] = 30 if similarity == 100: request['search_method'] = 'containment' request['limit'] = 30 if similarity == 146: request['search_method'] = 'identity' return self.send_request(request) def get_status(self, search_id): request = { 'module': 'search', 'procedure': 'check_status', 'search_id': search_id } return self.send_request(request) def get_results(self, search_id): # Если не готов результат, то ничего не делаем status = self.get_status(search_id) if status['search_status'] != 'finished': return {}, status request = { 'module': 'search', 'procedure': 'get_result', 'search_id': search_id, 'databases': [21] } data = self.send_request(request) if int(data['total_records_found']) > 0: return data['records_list']['21']['records'], status else: return None, status def get_details(self, ids, keys): request = { 'module': 'detail', 'procedure': 'get_detail_info', 'marks': list(ids), 'access_keys': list(keys) } data = self.send_request(request) return data['records_list']['21']['records']