当前位置: 首页>>代码示例>>Python>>正文


Python telethon.TelegramClient方法代码示例

本文整理汇总了Python中telethon.TelegramClient方法的典型用法代码示例。如果您正苦于以下问题:Python telethon.TelegramClient方法的具体用法?Python telethon.TelegramClient怎么用?Python telethon.TelegramClient使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在telethon的用法示例。


在下文中一共展示了telethon.TelegramClient方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: main

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def main(loop, interval=0.05):
    client = TelegramClient(SESSION, API_ID, API_HASH, loop=loop)
    try:
        await client.connect()
    except Exception as e:
        print('Failed to connect', e, file=sys.stderr)
        return

    app = App(client)
    try:
        while True:
            # We want to update the application but get back
            # to asyncio's event loop. For this we sleep a
            # short time so the event loop can run.
            #
            # https://www.reddit.com/r/Python/comments/33ecpl
            app.update()
            await asyncio.sleep(interval)
    except KeyboardInterrupt:
        pass
    except tkinter.TclError as e:
        if 'application has been destroyed' not in e.args[0]:
            raise
    finally:
        await app.cl.disconnect() 
开发者ID:LonamiWebs,项目名称:Telethon,代码行数:27,代码来源:gui.py

示例2: list_event_handlers

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def list_event_handlers(self: 'TelegramClient')\
            -> 'typing.Sequence[typing.Tuple[callable, EventBuilder]]':
        """
        Lists all registered event handlers.

        Returns
            A list of pairs consisting of ``(callback, event)``.

        Example
            .. code-block:: python

                @client.on(events.NewMessage(pattern='hello'))
                async def on_greeting(event):
                    '''Greets someone'''
                    await event.reply('Hi')

                for callback, event in client.list_event_handlers():
                    print(id(callback), type(event))
        """
        return [(callback, event) for event, callback in self._event_builders] 
开发者ID:LonamiWebs,项目名称:Telethon,代码行数:22,代码来源:updates.py

示例3: _process_update

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def _process_update(self: 'TelegramClient', update, others, entities=None):
        update._entities = entities or {}

        # This part is somewhat hot so we don't bother patching
        # update with channel ID/its state. Instead we just pass
        # arguments which is faster.
        channel_id = self._state_cache.get_channel_id(update)
        args = (update, others, channel_id, self._state_cache[channel_id])
        if self._dispatching_updates_queue is None:
            task = self._loop.create_task(self._dispatch_update(*args))
            self._updates_queue.add(task)
            task.add_done_callback(lambda _: self._updates_queue.discard(task))
        else:
            self._updates_queue.put_nowait(args)
            if not self._dispatching_updates_queue.is_set():
                self._dispatching_updates_queue.set()
                self._loop.create_task(self._dispatch_queue_updates())

        self._state_cache.update(update) 
开发者ID:LonamiWebs,项目名称:Telethon,代码行数:21,代码来源:updates.py

示例4: setUpClass

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def setUpClass(cls):
        cls.dumper_config = {'DBFileName': 'test_db', 'OutputDirectory': 'test_work_dir',
                             'MaxSize': 0}
        # TODO test with different configurations

        assert not Path(cls.dumper_config['OutputDirectory']).exists()

        Path(cls.dumper_config['OutputDirectory']).mkdir()

        config = configparser.ConfigParser()
        config.read('config.ini')
        config = config['TelegramAPI']

        cls.client = TelegramClient(None, config['ApiId'], config['ApiHash'])
        login_client(cls.client, gen_username(10))

        dumper = Dumper(cls.dumper_config)
        dumper.check_self_user(cls.client.get_me().id) 
开发者ID:expectocode,项目名称:telegram-export,代码行数:20,代码来源:tests.py

示例5: download_file

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def download_file(
    self: TelegramClient, location: TypeLocation,
    out: BinaryIO, progress_callback: callable = None
) -> BinaryIO:
    size = location.size
    dc_id, location = utils.get_input_location(location)
    # We lock the transfers because telegram has connection count limits
    downloader = ParallelTransferrer(self, dc_id)
    downloaded = downloader.download(location, size)
    async for x in downloaded:
        out.write(x)
        if progress_callback:
            r = progress_callback(out.tell(), size)
            if inspect.isawaitable(r):
                await r

    return out 
开发者ID:TG-UserBot,项目名称:TG-UserBot,代码行数:19,代码来源:FastTelethon.py

示例6: init_client

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def init_client(self: "Bot") -> None:
        # Get Telegram parameters from config and check types
        session_name = self.tg_config["session_name"]
        if not isinstance(session_name, str):
            raise TypeError("Session name must be a string")

        api_id = self.tg_config["api_id"]
        if not isinstance(api_id, int):
            raise TypeError("API ID must be an integer")

        api_hash = self.tg_config["api_hash"]
        if not isinstance(api_hash, str):
            raise TypeError("API hash must be a string")

        # Initialize Telegram client with gathered parameters
        self.client = tg.TelegramClient(
            session_name, api_id, api_hash, connection_retries=10, retry_delay=5
        ) 
开发者ID:kdrag0n,项目名称:pyrobud,代码行数:20,代码来源:telegram_bot.py

示例7: upload_file

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def upload_file(
    self: TelegramClient, file: BinaryIO, progress_callback: callable = None
) -> TypeInputFile:
    res = (
        await _internal_transfer_to_telegram(self, file, progress_callback)
    )[0]
    return res 
开发者ID:TG-UserBot,项目名称:TG-UserBot,代码行数:9,代码来源:FastTelethon.py

示例8: download_file

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def download_file(self: TelegramClient,
                        location: TypeLocation,
                        out: BinaryIO,
                        progress_callback: callable = None) -> BinaryIO:
    size = location.size
    dc_id, location = utils.get_input_location(location)
    # We lock the transfers because telegram has connection count limits
    downloader = ParallelTransferrer(self, dc_id)
    downloaded = downloader.download(location, size)
    async for x in downloaded:
        out.write(x)
        if progress_callback:
            r = progress_callback(out.tell(), size)
            if inspect.isawaitable(r):
                await r

    return out 
开发者ID:mkaraniya,项目名称:BotHub,代码行数:19,代码来源:FastTelethon.py

示例9: send_tg_code

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def send_tg_code(self, request):
        if self.client_data and await self.check_user(request) is None:
            return web.Response(status=302, headers={"Location": "/"})  # They gotta sign in.
        text = await request.text()
        phone = telethon.utils.parse_phone(text)
        if not phone:
            return web.Response(status=400)
        client = telethon.TelegramClient(telethon.sessions.MemorySession(), self.api_token.ID,
                                         self.api_token.HASH, connection_retries=None)
        await client.connect()
        await client.send_code_request(phone)
        self.sign_in_clients[phone] = client
        return web.Response() 
开发者ID:friendly-telegram,项目名称:friendly-telegram,代码行数:15,代码来源:initial_setup.py

示例10: _dispatch_queue_updates

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def _dispatch_queue_updates(self: 'TelegramClient'):
        while not self._updates_queue.empty():
            await self._dispatch_update(*self._updates_queue.get_nowait())

        self._dispatching_updates_queue.clear() 
开发者ID:LonamiWebs,项目名称:Telethon,代码行数:7,代码来源:updates.py

示例11: __init__

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def __init__(self, client: 'TelegramClient', update, others):
        self.client = client
        self.update = update
        self.others = others 
开发者ID:LonamiWebs,项目名称:Telethon,代码行数:6,代码来源:updates.py

示例12: test_all_methods_present

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def test_all_methods_present(docs_dir):
    with (docs_dir / 'quick-references/client-reference.rst').open(encoding='utf-8') as fd:
        present_methods = set(map(str.lstrip, re.findall(r'^ {4}\w+$', fd.read(), re.MULTILINE)))

    assert len(present_methods) > 0
    for name in dir(TelegramClient):
        attr = getattr(TelegramClient, name)
        if callable(attr) and not name.startswith('_'):
            assert name in present_methods 
开发者ID:LonamiWebs,项目名称:Telethon,代码行数:11,代码来源:test_client_reference.py

示例13: get_client

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def get_client():
    return TelegramClient(None, 1, '1') 
开发者ID:LonamiWebs,项目名称:Telethon,代码行数:4,代码来源:test_chataction.py

示例14: main

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def main():
    load_config()
    proxy = config.get('proxy', {})
    if proxy:
        import socks
        proxy = (socks.SOCKS5, proxy.get('address'), proxy.get('port'))
        bot = TelegramClient('bot', config['api_id'], config['api_hash'], proxy=proxy, connection_retries=0)
    else:
        bot = TelegramClient('bot', config['api_id'], config['api_hash'], connection_retries=0)
    bot.add_event_handler(challenge_user)
    bot.add_event_handler(handle_challenge_response)

    wait_time = 1
    while True:
        start_time = time.time()
        try:
            await bot.start(bot_token=config['token'])
            await bot.run_until_disconnected()
        except ConnectionError:
            if time.time()-start_time < 2:
                wait_time = min(wait_time*2, 256)
            else:
                wait_time = 1
            logging.info(f'Reconnect after {wait_time} seconds...')
            time.sleep(wait_time)
            continue 
开发者ID:lziad,项目名称:Telegram-CAPTCHA-bot,代码行数:28,代码来源:main.py

示例15: run_telethon

# 需要导入模块: import telethon [as 别名]
# 或者: from telethon import TelegramClient [as 别名]
def run_telethon(self):
        if self.proc:
            self.proc.disconnect()
        self.proc = TelegramClient(options.tg_session, options.tg_api_id, options.tg_api_hash)
        try:
            self.proc.connect()
        except:
            error('Failed to connect to Telegram server')
            sys.exit(2)
        self.authorized = self.proc.is_user_authorized()
        if not self.authorized and not options.tg_phone:
            error('Not authorized. Please set --tg-phone')
            sys.exit(2)
        self.proc.add_event_handler(server.on_telegram_update) 
开发者ID:MaskRay,项目名称:telegramircd,代码行数:16,代码来源:telegramircd.py


注:本文中的telethon.TelegramClient方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。