معرفی شرکت ها


advego-antiplagiat-api-1.1.0


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

Неофициальный клиент для работы с сервисом антиплагиата от advego.com.
ویژگی مقدار
سیستم عامل -
نام فایل advego-antiplagiat-api-1.1.0
نام advego-antiplagiat-api
نسخه کتابخانه 1.1.0
نگهدارنده []
ایمیل نگهدارنده []
نویسنده V-ampire
ایمیل نویسنده webjob010@gmail.com
آدرس صفحه اصلی https://github.com/V-ampire/advego-antiplagiat-api
آدرس اینترنتی https://pypi.org/project/advego-antiplagiat-api/
مجوز MIT
# advego-antiplagiat-api ## Описание Библиотека для работы с сервисом [антиплагиата](https://advego.com/v2/support/api/api-antiplagiat/1383) от [advego.ru](https://advego.com/). Библиотека не является официальной, при обновлении сервисов advego возможно возникновение ошибок. ## Документация [Документация по API](https://advego.com/v2/support/api/api-antiplagiat/1383) [Как считается уникальность текста](https://advego.com/blog/read/faq_plagiatus/1298909/all1/) ## Требования Python 3.8+ ## Установка ``` $ pip install advego-antiplagiat-api $ pipenv install advego-antiplagiat-api ``` ## Пример использования ``` from antiplagiat import Antiplagiat import time TOKEN = os.getenv('ADVEGO_TOKEN') api = Antiplagiat(TOKEN) with open('example.txt', 'r') as fp: text = fp.read() result = api.unique_text_add(text) key = result['key'] while True: # дадим некоторое время на проверку time.sleep(200) result = api.unique_check(key) if result['status'] == 'done': print('Done!') # сделать чтото с отчетом return elif result['status'] == 'error': print(f'Error: {result}') return elif result['status'] == 'not found': print('Not found!') return else: print('In progress...') ``` ## Реализованные методы **unique_text_add(text, title=None, ignore_rules=None)** Добавляет текст на проверку уникальности. Параметры: **text** - текст для проверки. Для корректной работы текст должен быть в кодировке **UTF-8**. **title** - (необязательно) название проверки. **ignore_rules** — (необязательно) перечень правил, по которым будут игнорироваться сайты при проверки. Доступные правила: - `"u:<url>"` - проверка уникальности будет игнорировать данный url; - `"b:<domain>"` - проверка уникальности будет игнорировать все url, начинающиеся с domain; - `"r:<regex>"` - проверка уникальности будет игнорировать все url, подходящие по заданное регулярное выражение. Если в регулярном выражении используется обратный слэш `\` или двойные кавычки `""`, их нужно экранировать. Для задания правил также можно использовать вспомогательные функции из модуля [helpers.py](https://github.com/V-ampire/advego-antiplagiat-api/blob/master/antiplagiat/helpers.py). ``` from antiplagiat import Antiplagiat from antiplagiat.helpers import url_rule, domain_rule, regex_url TOKEN = 'token' # ваш токен api = Antiplagiat(TOKEN) text = """ Python — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций. """ ignore_rules = [ domain_rule('ru.wikipedia.org'), url_rule('https://ru.wikipedia.org/wiki/Python'), regex_rule('.*wikipedia\\.org') ] result = api.unique_text_add(text, ignore_rules=ignore_rules) key = result['key'] ``` В случае если текст успешно добавлен на проверку метод возвращает словарь `{'key': NNN}`, где NNN - номер созданной проверки. В случае ошибки будет выброшено исключение, см. [стандартные исключения](#exceptions). **unique_check(key, agent=None, report_json=1, get_text=False)** Возвращает состояние проверки и [отчет](#report), если проверка выполнена. Параметры: **key** — идентификатор проверки, полученный при добавлении. **get_text** - если указан, то вместе с отчетом будет возвращен проверенный текст. **agent** - тип проверки, указывается чтобы получить результат проверки работы или статьи. Для проверки текста указывать agent не нужно. **report_json** - формат отчета, рекомендуется значение 1. Возможны следующие ответы: - `{"msg": "", "status": "in progress"}` - проверка выполняется. - `{"report": {...}, "status": "done", "text": "..."}` - проверка выполнена. - `{"msg": "Error message", "status": "error_code"}` - проверка завершилась с ошибкой, где `"error_code"` код [ошибки](#exceptions). - `{"msg": "", "status": "not found"}` - проверка с данным ключом не найдена. **unique_recheck(key)** Запускает новую проверку ранее добавленного текста. При этом удаляет предыдущие проверки из очереди. Параметры: **key** — идентификатор проверки, полученный при добавлении. в случает успеха возвращает `1`. В случае ошибки будет выброшено исключение, см. [стандартные исключения](#exceptions). **unique_get_text(key)** Возвращает текст на проверке. Параметры: **key** — идентификатор проверки, полученный при добавлении. При успешном запросе возвращает словарь, содержащий проверяемый текст `{"text": "..."}` В случае ошибки будет выброшено исключение, см. [стандартные исключения](#exceptions). <a name="report"></a> ## Отчет Формат возвращаемого отчета: ``` { "status": "done", "report": { "layers_by_domain": [ { "rewrite": 33, "equality": 19, "layers": [ { "equality": 19, "rewrite": 33, "uri": "https://site/", "words": [ 7, 30, 31, 32 ], "shingles": [ 31, 32, 33, 34, 35, 36, 37, 38 ] }, ], } ] "len": 1050, "bad_words": [], "equal_words": [ 0, 1, 3, 5, 7, 15, 19, 20, 22, 24, 25, 27, 28, 30 ], "word_count": 154, "lang": "russian", "error_pages": 0, "rewrite": 82, "progress": 100, "text_fragments": [ "", "Слово1", " ", "Слово2", " ", "Слово3", " ", "Слово4", " ", "Слово5", ". " ], "captchas": 0, "found_pages": 11, "checked_pages": 48, "equal_shingles": [ 31, 32, 36, 37, 38, 40 ], "checked_phrases": 8, }, } ``` Расшифровка: **layers_by_domain** - найденные страницы с совпадениями, сгруппированные по доменам (если найдено несколько страниц на одном сайте), **layers** - найденные страницы линейным списком, **equality** - количество найденных совпадений по фразам в указанном источнике (uri), процентов, **rewrite** - количество найденных совпадений по словам в указанном источнике (uri), процентов, **uri** - адрес страницы с найденными совпадениями, **words** - слова, входящие в найденные совпадения по словам (см. text_fragments), **shingles** - слова, входящие в найденные совпадения по фразам (см. text_fragments), **len** - длина текста в символах с пробелами, **bad_words** - слова с подменой символов, **equal_words** - аналогично words, но для всего текста, **equal_shingles** - аналогично shingles, но для всего текста, **word_count** - количество слов в проверяемом тексте, **text_fragments** - фрагменты текста для восстановления совпадений по словам и фразам. Порядковый номер фрагмента вычисляется по формуле 2n + 1, где n = номеру, указанному в соответствущей секции words, shingles, equal_words и equal_shingles. Для удобной работы с отчетом можно использовать вспомогательный класс `AdvanceReport`. Атрибуты этого класса соответствуют ключам словаря `report`, но в отличие от отчета получаемого от сервиса антиплагиата, такие значения как `words`, `shingles`, `equal_words` и т.п. содержат не номера слов в тексте, а уже сами слова. Исключение: ключу `len` соответствует атрибут `length`. Также `AdvanceReport` предоставляет атрибуты `uniqueness` и `originality`, соответствующие значениям уникальности и оригинальности текста, подробнее см. [как считается уникальность текста](https://advego.com/blog/read/faq_plagiatus/1298909/all1/). ### Методы AdvanceReport **words_by_numbers(numbers)** Возвращает слова по номерам в тексте. Параметры: **numbers** - список номеров слов. **save_as_json(file_path, indent=4)** Сохранить отчет в json. Будет сохранен словарь, переданный при инициализации. Параметры: **file_path** - путь до файла. **indent** - размер отступов. Пример: ``` from antiplagiat import Antiplagiat, AdvanceReport TOKEN = os.getenv('ADVEGO_TOKEN') api = Antiplagiat(TOKEN) text = """some text""" # ... отправляем текст на проверку и получаем ключ key result = api.unique_check(key) adv_report = AdvanceReport(result.get('report'), text) print(f'Уникальность текста {adv_report.uniqueness}/{adv_report.originality}') print('Найденные источники:') for domain in adv_report.layers_by_domain: for layer in domain.layers: print(layer.uri) ``` <a name="exceptions"></a> ## Стандартные исключения **APIException** - общее исключение для ошибок при запросе сервиса антиплагиата. От него наследуются все остальные исключения. **CharAccountError** - не хватает символов на счету. Код ошибки `-1`. **AccountError** - не хватает денежных средств на счету. Код ошибки `-2`. **DatabaseError** - ошибка подключения к БД. Код ошибки `-5`. **TextKeyError** - получен неверный ключ. Код ошибки `-10`. **TokenError** - ошибка авторизации по токену. Код ошибки `-11`. **TextError** - ошибка при проверке поля text. Код ошибки `-13`. **TitleError** - ошибка при проверке поля title. Код ошибки `-14`. **AddCheckError** - ошибка добавления работы. Код ошибки `-17`. **TextNotFoundError** - текст не найден. Код ошибки `-21`. **NotEnoughSymbolsError** - недостаточно символов на счету, минимальное количество – 100 000. Код ошибки `-67`.


نیازمندی

مقدار نام
- requests


زبان مورد نیاز

مقدار نام
>=3.8.0 Python


نحوه نصب


نصب پکیج whl advego-antiplagiat-api-1.1.0:

    pip install advego-antiplagiat-api-1.1.0.whl


نصب پکیج tar.gz advego-antiplagiat-api-1.1.0:

    pip install advego-antiplagiat-api-1.1.0.tar.gz