Vikasitha444 / grammarly_bot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

grammarly_bot

** Remember to replace pip gingerit.py to this**

-- coding: utf-8 --

import requests import cloudscraper

URL = "https://services.gingersoftware.com/Ginger/correct/jsonSecured/GingerTheTextFull" # noqa API_KEY = "6ae0c3a0-afdc-4532-a810-82ded0054236"

class GingerIt(object): def init(self): self.url = URL self.api_key = API_KEY self.api_version = "2.0" self.lang = "US"

def parse(self, text, verify=True):
    session = cloudscraper.create_scraper()
    request = session.get(
        self.url,
        params={
            "lang": self.lang,
            "apiKey": self.api_key,
            "clientVersion": self.api_version,
            "text": text,
        },
        verify=verify,
    )
    data = request.json()
    return self._process_data(text, data)

@staticmethod
def _change_char(original_text, from_position, to_position, change_with):
    return "{}{}{}".format(
        original_text[:from_position], change_with, original_text[to_position + 1 :]
    )

def _process_data(self, text, data):
    result = text
    corrections = []

    for suggestion in reversed(data["Corrections"]):
        start = suggestion["From"]
        end = suggestion["To"]

        if suggestion["Suggestions"]:
            suggest = suggestion["Suggestions"][0]
            result = self._change_char(result, start, end, suggest["Text"])

            corrections.append(
                {
                    "start": start,
                    "text": text[start : end + 1],
                    "correct": suggest.get("Text", None),
                    "definition": suggest.get("Definition", None),
                }
            )

    return {"text": text, "result": result, "corrections": corrections}

About


Languages

Language:Python 98.4%Language:Procfile 1.6%