Skip to content
This repository was archived by the owner on Jul 4, 2024. It is now read-only.

Commit 830912b

Browse files
Joscha GötzerJoscha Götzer
authored andcommitted
Updated to Pyrogram 1.0.2, but removed the dependency
1 parent 55b9780 commit 830912b

File tree

75 files changed

+613
-703
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+613
-703
lines changed

botkit/botkit_modules/module_manager/__init__.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
from haps import Inject
2-
from pyrogram import Filters, Message
2+
from pyrogram.filters import command
33

44
from botkit.core.moduleloader import ModuleLoader
55
from botkit.core.modules import Module
6-
from .paged_module_view import PagedModuleView
7-
from .view_models import ModuleInfo, ModuleInfosCollectionModel
86
from botkit.routing.route_builder.builder import RouteBuilder
97
from botkit.services.companionbotservice import CompanionBotService
10-
from botkit.views.renderer_client_mixin import PyroRendererClientMixin
8+
from .paged_module_view import PagedModuleView
9+
from .view_models import ModuleInfo, ModuleInfosCollectionModel
1110
from ...types.client import IClient
12-
from ...views.botkit_context import BotkitContext
1311

1412

1513
class ModuleManagerModule(Module):
@@ -23,7 +21,7 @@ def __init__(self, user_client: IClient, bot_client: IClient):
2321
def register(self, routes: RouteBuilder):
2422
with routes.using(self.user_client):
2523
(
26-
routes.on(Filters.command("modules", prefixes=["#", "/"]))
24+
routes.on(command("modules", prefixes=["#", "/"]))
2725
.gather(self.get_modules)
2826
.then_send(PagedModuleView, via=self.bot_client)
2927
)

botkit/botkit_modules/system/status_pings.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
from datetime import datetime, timedelta
66
from pydantic import BaseModel
77
from pyrogram import Client
8-
from pyrogram import Message
98
from typing import Literal
109
from typing import Optional, Union, List
1110
from typing import cast
11+
12+
from pyrogram.types import Message
1213
from typing_extensions import AsyncGenerator
1314

1415
from botkit.botkit_modules.system.sytem_management_module import ToggleSystemStateCommand

botkit/botkit_modules/system/system_tests.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
1-
from typing import Any, List, Optional
1+
from typing import List
22
from unittest.mock import Mock
33

44
from haps import Inject
5-
from pyrogram import Chat, Message, User
5+
from pyrogram.types import Chat, Message, User
66

77
from botkit.core.moduleloader import ModuleLoader
8-
from botkit.core.modules import Module, module
9-
from botkit.routing.pipelines.callbacks import HandlerSignature
8+
from botkit.core.modules import Module
109
from botkit.routing.route import RouteDefinition, RouteHandler
1110
from botkit.routing.route_builder.builder import RouteBuilder
12-
from botkit.routing.route_builder.route_collection import RouteCollection
1311
from botkit.routing.update_types.updatetype import UpdateType
1412
from botkit.types.client import IClient
1513

@@ -44,6 +42,7 @@ async def test_module_routes(self, routes: List[RouteDefinition]):
4442

4543
async def fire_request(self, update_type: UpdateType, route: RouteHandler):
4644
try:
45+
# noinspection PyUnresolvedReferences
4746
should_not_test = route.callback.notests
4847
return
4948
except AttributeError:

botkit/botkit_modules/system/sytem_management_module.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
import asyncio
44
from buslane.commands import Command, CommandHandler
55
from haps import Inject, Container
6-
from pyrogram import Filters, Message, User, Client
6+
from pyrogram import filters
7+
from pyrogram.types import Message, User
78
from typing import Optional, List, Any, Literal
89

910
from botkit.botkit_modules.system.system_tests import notests
11+
from botkit.libraries.annotations import IClient
1012
from botkit.persistence.callback_manager import (
1113
RedisCallbackManager,
1214
ICallbackManager,
@@ -19,7 +21,7 @@
1921

2022
@dataclass
2123
class _LoadCtx:
22-
user_client_me: User
24+
user_client_id: int
2325

2426

2527
@dataclass
@@ -32,25 +34,25 @@ class ToggleSystemStateCommand(Command):
3234
class SystemManagementModule(Module):
3335
module_loader: ModuleLoader = Inject()
3436

35-
def __init__(self, user_client: Client) -> None:
37+
def __init__(self, user_client: IClient) -> None:
3638
self.user_client = user_client
3739

3840
self.system_paused: bool = False
3941
self.paused_modules: Optional[List[Module]] = None
4042

4143
async def load(self) -> _LoadCtx:
42-
return _LoadCtx(user_client_me=await self.user_client.get_me())
44+
return _LoadCtx(user_client_id=(await self.user_client.get_me()).id)
4345

4446
def register(self, routes: RouteBuilder):
4547
routes.use(self.user_client)
4648

47-
restart_command = Filters.command("r", prefixes=[".", "#"]) | Filters.command("restart")
48-
only_owner = Filters.user(routes.context.load_result.user_client_me.id)
49+
restart_command = filters.command("r", prefixes=[".", "#"]) | filters.command("restart")
50+
only_owner = filters.user(routes.context.load_result.user_client_id)
4951

5052
routes.on(restart_command & only_owner).call(self.restart_system)
5153

52-
routes.on(Filters.command(["off", "pause"]) & only_owner).call(self.handle_pause_command)
53-
routes.on(Filters.command(["on", "unpause"]) & only_owner).call(
54+
routes.on(filters.command(["off", "pause"]) & only_owner).call(self.handle_pause_command)
55+
routes.on(filters.command(["on", "unpause"]) & only_owner).call(
5456
self.handle_unpause_command
5557
)
5658

botkit/botkit_services/lookupservice.py

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@
55
from haps import *
66
from telethon.tl.custom import Message, Dialog
77

8-
from commons.core.routing import Event
98
from commons.core.clients.userclient import IUserClient
109
from commons.core.descriptors.base import EntityDescriptor
1110
from commons.core.util import string_similarity
1211
from telethon.tl import TLObject
1312
from telethon.utils import get_display_name as telethon_get_display_name
1413

15-
T = TypeVar('P')
14+
T = TypeVar("P")
1615

1716

1817
class EntityNotFoundError(Exception):
@@ -22,26 +21,32 @@ class EntityNotFoundError(Exception):
2221
def get_display_name(entity: Any):
2322
if isinstance(entity, Dialog):
2423
return entity.name
25-
if hasattr(entity, 'title'):
24+
if hasattr(entity, "title"):
2625
return entity.title
2726
return telethon_get_display_name(entity)
2827

28+
2929
@base
3030
class ILookupService(ABC):
3131
@abstractmethod
32-
async def resolve_peer(self, descriptor: EntityDescriptor, raise_=True): pass
32+
async def resolve_peer(self, descriptor: EntityDescriptor, raise_=True):
33+
pass
3334

3435
@abstractmethod
35-
async def resolve_full_peer(self, descriptor: EntityDescriptor): pass
36+
async def resolve_full_peer(self, descriptor: EntityDescriptor):
37+
pass
3638

3739
@abstractmethod
38-
async def get_message_by_id(self, chat: Any, message_id: int) -> Message: pass
40+
async def get_message_by_id(self, chat: Any, message_id: int) -> Message:
41+
pass
3942

4043
@abstractmethod
41-
async def get_previous_messages(self, event: Event, n: int = 1) -> List[Message]: pass
44+
async def get_previous_messages(self, event: Event, n: int = 1) -> List[Message]:
45+
pass
4246

4347
@abstractmethod
44-
async def get_last_message_in_chat(self, input_chat: Any) -> Message: pass
48+
async def get_last_message_in_chat(self, input_chat: Any) -> Message:
49+
pass
4550

4651

4752
@egg
@@ -63,11 +68,7 @@ async def resolve_full_peer(self, descriptor: EntityDescriptor):
6368
return self.client.session.get_input_entity(descriptor)
6469

6570
async def _resolve_chat_by_title(
66-
self,
67-
title: str,
68-
confidence=0.9,
69-
aggressive=False,
70-
raise_=True
71+
self, title: str, confidence=0.9, aggressive=False, raise_=True
7172
) -> TLObject:
7273
results = await self.client.get_dialogs(limit=200)
7374

@@ -87,11 +88,7 @@ def matches_query(found_name):
8788
return None
8889

8990
async def _resolve_user_by_title(
90-
self,
91-
title: str,
92-
confidence=0.9,
93-
aggressive=False,
94-
raise_=True
91+
self, title: str, confidence=0.9, aggressive=False, raise_=True
9592
) -> TLObject:
9693
results = await self.client.get_dialogs(limit=40)
9794

@@ -104,7 +101,9 @@ def matches_query(found_name):
104101
# Search failed.
105102
for d in results:
106103
try:
107-
participants = self.client.iter_participants(d.input_entity, 200, search='', aggressive=aggressive)
104+
participants = self.client.iter_participants(
105+
d.input_entity, 200, search="", aggressive=aggressive
106+
)
108107
async for p in participants:
109108
if matches_query(get_display_name(p)):
110109
return p.entity

botkit/builders/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from .htmlbuilder import HtmlBuilder
44
from .inlinemenubuilder import InlineMenuBuilder
55
from .metabuilder import MetaBuilder
6-
from ..views.base import RenderedMessage, RenderedTextMessage
6+
from ..views.rendered_messages import RenderedMessage, RenderedTextMessage
77

88

99
class ViewBuilder:

botkit/builders/inlinemenubuilder.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from cached_property import cached_property
44
from haps import Container
55
from haps.exceptions import NotConfigured
6-
from pyrogram import InlineKeyboardButton
6+
from pyrogram.types import InlineKeyboardButton
77

88
from botkit import buttons
99
from botkit.persistence.callback_manager import (
@@ -16,6 +16,7 @@
1616
from botkit.utils.sentinel import NotSet, Sentinel
1717

1818

19+
# noinspection PyIncorrectDocstring
1920
class InlineMenuRowBuilder:
2021
def __init__(self, state: Optional[Any], override_buttons: List[Any] = None):
2122
if override_buttons:

botkit/buttons.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from pyrogram import InlineKeyboardButton
1+
from pyrogram.types import InlineKeyboardButton
22

33
from botkit.inlinequeries.contexts import IInlineModeContext, DefaultInlineModeContext
44

@@ -14,5 +14,5 @@ def switch_inline_button(
1414
"switch_inline_query" + "_current_chat"
1515
if current_chat
1616
else "": in_context.format_query()
17-
}
17+
},
1818
)

botkit/clients/configured_client.py

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
from abc import abstractmethod
22

33
from decouple import config
4-
from pyrogram import Client, User
5-
from tgintegration import InteractionClient
4+
from pyrogram import Client
5+
from pyrogram.types import User
66

77
from botkit.clients.client_config import ClientConfig
88

@@ -42,28 +42,3 @@ async def get_me(self) -> User:
4242
return self._me
4343
self._me = await super().get_me()
4444
return self._me
45-
46-
47-
class ConfiguredInteractionClient(InteractionClient):
48-
def __init__(self, **kwargs) -> None:
49-
merged_args = dict(
50-
session_name=self.config.session_name,
51-
api_id=config("API_ID"),
52-
api_hash=config("API_HASH"),
53-
bot_token=self.config.bot_token,
54-
phone_number=self.config.phone_number,
55-
)
56-
merged_args.update(kwargs)
57-
super().__init__(**merged_args)
58-
self._me = None
59-
60-
@property
61-
@abstractmethod
62-
def config(self) -> ClientConfig:
63-
...
64-
65-
async def get_me(self) -> User:
66-
if self._me is not None:
67-
return self._me
68-
self._me = await super().get_me()
69-
return self._me

botkit/commands/TODO.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ Commands from all modules get registered in a central place.
1111
A singleton (compound, all types) internal handler goes through all registered commands and builds a list
1212
`quick_action_matches: List[CommandDefinition]`.
1313
Then it replies with reply keyboard buttons. `botkit.use_quick_actions()` ??
14-
14+
1515
modulemanager
16-
16+
1717
```
1818
routes.register_command()
1919
```
@@ -30,23 +30,23 @@ routes.register_command()
3030

3131
## Quick Action Registry (Ideas)
3232

33-
### Filters.text
33+
### filters.text
3434
(Most common. Needs a good hierarchical menu)
3535
- **Use in inline query** -> "Which bot @?" - @letmebot -> Share button
3636
- **Remind me**
37-
-> `ChoiceView("Who to remind?", ["Just me", "Someone else", "Me and others"])`
37+
-> `ChoiceView("Who to remind?", ["Just me", "Someone else", "Me and others"])`
3838
-> `DateTimePickerView("When?")`
3939
- **Edit** -> `send_as_user(...)` (so that user can edit)
4040
- **Share** -> `ShareView(...)`
4141

42-
### Filters.text (multiple)
42+
### filters.text (multiple)
4343
"Does this message belong to the others?" yes/no
44-
- **Merge** ->
45-
- **Delete** (if forwarded and user admin)
44+
- **Merge** ->
45+
- **Delete** (if forwarded and user admin)
4646
-> "This will delete messages 1-3, 7, and 8 from {origin_chat_title}" (yes/no)
4747
- **Open in VSCode**
4848

49-
### Filters.link
49+
### filters.link
5050
- **Open in browser** -> `ChoiceView(links) if len(links) > 1 else links[0]`
5151
- **Add to Pocket** -> `ChoiceView(links, multiple=True) if len(links) > 1 else links[0]`
5252

@@ -57,17 +57,17 @@ routes.register_command()
5757
- Notion
5858
- Add to project -> `ChoiceView(...)`
5959

60-
### Filters.sticker
60+
### filters.sticker
6161
- Add to pack
6262
- Optimize
6363

64-
### Filters.sticker (multiple)
64+
### filters.sticker (multiple)
6565
- Merge
6666

67-
### Filters.command
67+
### filters.command
6868
- Choose bot
6969

70-
### Filters.contains_emoji
70+
### filters.contains_emoji
7171
- Explain emojis
7272

7373
# Editor
@@ -89,4 +89,4 @@ The `EditorView` consists of a message with quick actions above and the content
8989

9090
## Prototype of hierarchical settings module
9191

92-
Click on setting -> opens group of related settings (and back button)
92+
Click on setting -> opens group of related settings (and back button)

0 commit comments

Comments
 (0)