Skip to content

Commit 122ac01

Browse files
authored
Merge pull request #5 from markelovstyle/master
Some changes
2 parents 4048bd0 + 7e6af74 commit 122ac01

File tree

8 files changed

+44
-61
lines changed

8 files changed

+44
-61
lines changed

nicevk/api.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import asyncio
2+
import dotenv
3+
import json
4+
25
from functools import wraps
36
from pathlib import Path
4-
57
from loguru import logger
68
from python_rucaptcha.ImageCaptcha import ImageCaptcha, aioImageCaptcha
79
from vkbottle import User, Message, VKError
8-
import dotenv
910
from vkbottle.framework import Middleware
10-
import json
11-
1211
from nicevk.errors import CaptchaError
1312

1413

nicevk/plugins/help_plugin.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,7 @@
66

77
@user.on.message_handler(text=".help")
88
async def help_(ans: Message):
9-
await edit(ans, "Available commands:\n\n" + "\n".join(commands))
9+
await edit(
10+
ans.peer_id, ans.id,
11+
"Available commands:\n\n" + "\n".join(commands)
12+
)

nicevk/plugins/ignore_plugin.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ async def help_(ans: Message, username: str):
2323
).object_id,
2424
]
2525
save_state()
26-
await edit(ans, "User ignored")
26+
await edit(ans.peer_id, ans.id, "User ignored")
2727

2828

2929
@user.on.message_handler(text=".rm-ignore <username>")
@@ -42,14 +42,14 @@ async def help_(ans: Message, username: str):
4242
)
4343
]
4444
except ValueError:
45-
await edit(ans, "That user is not muted")
45+
await edit(ans.peer_id, ans.id, "That user is not muted")
4646
else:
47-
await edit(ans, "User removed from ignore")
47+
await edit(ans.peer_id, ans.id, "User removed from ignore")
4848
finally:
4949
save_state()
5050

5151

5252
@user.on.message_handler()
53-
async def middleware(message: Message):
54-
if message.from_id in state.get("ignore", []):
55-
await message.api.messages.delete([message.id])
53+
async def middleware(ans: Message):
54+
if ans.from_id in state.get("ignore", []):
55+
await ans.api.messages.delete(message_ids=ans.id)

nicevk/plugins/load_plugin.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
from datetime import datetime
1+
import wget
2+
import runpy
23

4+
from datetime import datetime
35
from vkbottle import Message
4-
56
from nicevk.api import user, commands, nicevk_folder
67

7-
import wget
8-
9-
import runpy
10-
118
commands.append(".dl_mod <url> - download and execute plugin")
129

1310

@@ -19,7 +16,6 @@ async def help_(ans: Message, url: str):
1916
nicevk_folder / f"module_{datetime.now().isoformat().replace('.', ' ')}.py"
2017
)
2118
wget.download(url.strip(), out=out_path)
22-
2319
runpy.run_path(out_path)
2420

2521
await ans.api.messages.edit(

nicevk/plugins/notes_plugin.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,9 @@
1414

1515
@user.on.message_handler(text=".notes")
1616
async def list_notes(ans: Message):
17-
await ans.api.messages.edit(
18-
ans.peer_id,
19-
ans.id,
20-
f"Available notes:\n\n" + "\n".join(state.get("notes", {}).keys()),
17+
await edit(
18+
ans.peer_id, ans.id,
19+
f"Available notes:\n\n" + "\n".join(state.get("notes", {}).keys())
2120
)
2221

2322

@@ -28,7 +27,8 @@ async def get_notes(ans: Message, name: str):
2827
save_state()
2928
if name in state["notes"].keys():
3029
await edit(
31-
ans, f"Note '{name}'\n\n{state['notes'][name]}"
30+
ans.peer_id, ans.id,
31+
f"Note '{name}'\n\n{state['notes'][name]}"
3232
)
3333
else:
3434
await ans.api.messages.edit(ans.peer_id, ans.id, f"Note '{name}' is not found")
@@ -39,5 +39,8 @@ async def save_notes(ans: Message, name: str, text: str):
3939
if "notes" not in state.keys():
4040
state["notes"] = {}
4141
state["notes"][name] = text
42-
await ans.api.messages.edit(ans.peer_id, ans.id, f"Note '{name}' saved!")
42+
await edit(
43+
ans.peer_id, ans.id,
44+
f"Note '{name}' saved!"
45+
)
4346
save_state()

nicevk/plugins/restart_plugin.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import asyncio
22
import subprocess
3-
from functools import wraps
43

4+
from functools import wraps
55
from vkbottle import Message, VKError
6-
76
from nicevk.api import user, commands, state, save_state, coro
87

98
commands.append(".restart - restart nicevk")

nicevk/plugins/spam_plugin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
@user.on.message_handler(text=".spam <amount> <text>")
99
async def help_(ans: Message, amount: str, text: str):
1010
amount = int(amount)
11-
await user.api.messages.delete([ans.id], delete_for_all=True)
11+
await user.api.messages.delete(ans.id, delete_for_all=True)
1212
for i in range(amount):
1313
await ans(text)

nicevk/utils.py

Lines changed: 17 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,20 @@
1-
from vkbottle import Message
1+
from vkbottle.api import UserApi
22

3+
api = UserApi.get_current()
34

4-
async def edit(ans: Message, text: str):
5-
data = ans.__dict__
6-
keys_to_pop = [
7-
"message",
8-
"flags",
9-
"timestamp",
10-
"text",
11-
"random_id",
12-
"id",
13-
"conversation_message_id",
14-
"from_id",
15-
"date",
16-
"out",
17-
"read_state",
18-
"ref",
19-
"ref_source",
20-
"important",
21-
"reply_message",
22-
"fwd_messages",
23-
"action",
24-
]
25-
for key in keys_to_pop:
26-
data.pop(key, None)
27-
if ans.geo is not None:
28-
lat, long = ans.geo.coordinates.latitude, ans.geo.coordinates.longitude
29-
data["lat"] = lat
30-
data["long"] = long
31-
data.pop("geo", None)
32-
await ans.api.messages.edit(
33-
message=text,
34-
attachment=",".join(data.pop("attachments")),
35-
**data,
36-
keep_forward_messages=True
5+
6+
def get_params(obj: dict) -> dict:
7+
return {
8+
k: v for k, v in obj.items()
9+
if v is not None and k != "params"
10+
}
11+
12+
13+
async def edit(
14+
peer_id: int, msg_id: int,
15+
text: str, **params
16+
):
17+
locals().update(params)
18+
return await api.messages.edit(
19+
**get_params(locals())
3720
)

0 commit comments

Comments
 (0)