-
Notifications
You must be signed in to change notification settings - Fork 0
/
autocorrectTL.py
92 lines (82 loc) · 2.83 KB
/
autocorrectTL.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# █░█ █▀█ ▀█▀ █▀▄ █▀█ █ █▀▀ █▄█
# █▀█ █▄█ ░█░ █▄▀ █▀▄ █ █▀░ ░█░
# 🔒 Licensed under the GNU AGPLv3.
# @HotDrify
# Rewrited to telethon version by itzlayz
from telethon import types
from .. import (
loader, utils, validators)
from ..types import Config, ConfigValue
import requests
@loader.module(name="auto-correct-tl", author="itzlayz", version=1.2)
@loader.warning
class AutoCorrectMod(loader.Module):
"""❤️ Автоматическое исправление текста."""
def __init__(self):
self.config = Config(
ConfigValue(
'api_base',
'https://speller.yandex.net/services/spellservice.json/checkText',
'https://speller.yandex.net/services/spellservice.json/checkText',
validators.String(),
),
ConfigValue(
'is_slash',
True,
True,
validators.Boolean(),
),
ConfigValue(
'is_link',
True,
True,
validators.Boolean(),
),
ConfigValue(
'is_slash',
True,
True,
validators.Boolean(),
),
ConfigValue(
'status',
True,
True,
validators.Boolean(),
),
ConfigValue(
'lang',
'ru',
'ru',
validators.String()
)
)
async def watcher(self, message: types.Message):
if not message.out:
return
if not self.config["status"]:
return
if self.config["is_ping"]:
if "@" in message.text:
return
if self.config["is_slash"]:
if "/" in message.text:
return
if self.config["is_link"]:
if "https" in message.text or "http" in message.text:
return
response = await utils.run_sync(
requests.get,
self.config["api_base"],
params = {
'text': message.text,
'lang': self.config["lang"],
'options': 512
}
)
data = response.json()
ctext = message.text
for mistake in data:
ctext = ctext[:mistake['pos']] + mistake['s'][0] + ctext[mistake['pos']+mistake['len']:]
if message.text != ctext:
await utils.answer(message, ctext)