Задать вопрос
  • Как выключить subprocess по pid?

    @nemolayn
    Создатель бота Nemo
    Обычный kill при shell не подойдет, попробуйте так:
    os.killpg(process_pid, signal.SIGTERM)
    Или можно еще попробовать так:
    from subprocess import check_call
    
    check_call("TASKKILL /F /PID {pid} /T".format(pid=process_pid))
    Ответ написан
    Комментировать
  • Как реализовать бота с функцией люди рядом?

    @maksam07
    Artem Mikhniuk, с Telethon я не работал, но есть другая библиотека:
    https://docs.pyrogram.org/start/auth#user-authorization
    И кажется даже реализован необходимый метод:
    https://docs.pyrogram.org/api/methods/get_nearby_chats
    Ответ написан
    Комментировать
  • Почему не работает форма регистрации Django?

    @Yorito
    if 'registration_submit' in request.POST
    Зачем проверять нажата ли кнопка, если только таким способом форма и может засабмититься? Попробуйте убрать эту проверку, мне кажется она лишняя.
    Ответ написан
    1 комментарий
  • Возможно ли засунуть django в сайт написанный на bitrix 1c?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли засунуть django в сайт написанный на bitrix 1c?

    Возможно. Нужно ли? - нет.
    Ответ написан
    Комментировать
  • Как сделать цикл в PyQt5?

    Azamat_Lee
    @Azamat_Lee
    Работаю с Wordpress
    Для решения вашей проблемы с бесконечным циклом в PyQt5, вы можете использовать механизм многопоточности, чтобы цикл выполнялся в фоновом потоке, и это не блокировало главный интерфейс пользователя. Также вам понадобится добавить кнопку для остановки цикла. Вот пример кода, который демонстрирует, как это можно сделать:

    from PyQt5 import QtCore, QtGui, QtWidgets
    import pyautogui
    import threading
    
    class Ui_MainWindow(object):
        # ... ваш предыдущий код ...
    
        def add_functions(self):
            self.pushButton.clicked.connect(self.start_autoswap)
            self.stopButton.clicked.connect(self.stop_autoswap)  # Добавьте кнопку остановки в ваш интерфейс
    
        def start_autoswap(self):
            self.autoswap_thread = threading.Thread(target=self.autoswap, daemon=True)
            self.autoswap_thread.start()
    
        def stop_autoswap(self):
            self.running = False
    
        def autoswap(self):
            self.running = True
            while self.running:
                x = 459
                y = 1402
                Color = pyautogui.screenshot().getpixel((x, y))
                print(Color)
                if Color == (185, 185, 185):
                    pyautogui.press("2", presses=4, interval=0.01)
    
    # ... остальная часть вашего кода ...


    В этом примере:

    Метод start_autoswap запускает метод autoswapв отдельном потоке.
    Переменная self.running используется для контроля выполнения цикла.
    Метод stop_autoswap изменяет значение self.running на False, что приводит к остановке цикла.
    Не забудьте добавить кнопку остановки в ваш пользовательский интерфейс и соединить её с методом stop_autoswap. Также убедитесь, что вы используете daemon=True при создании потока, чтобы он завершался вместе с основной программой.
    Ответ написан
    Комментировать
  • Как комментировать посты в телеграмме?

    MinTnt
    @MinTnt
    Хоть и не пользовался telethon. Но могу сказать, что для того, чтоб писать в "комментарии", просто отправляйте ответ как reply на основной пост.
    Ответ написан
    4 комментария
  • Как удалить элемент нажатием на кнопку?

    NeiroNx
    @NeiroNx
    Программист
    Ответ написан
    Комментировать
  • Как загрузить фотку из папки в БД?

    @Everything_is_bad
    Кучу раз было рассказано, не принято фотки хранить в базе, в базе хранят пути к фоткам, в очень редких исключения используют тип blob для бинарных данных. Освой уже гугл, там давно всё рассказано.
    PS про async еще почитай, ты не понимаешь как он работает.
    Ответ написан
    Комментировать
  • Как парсить телеграмм канал в онлайне?

    Lapita12
    @Lapita12
    Тесты, тесты?
    https://github.com/mmat16/telegram_channel_parser

    import logging  # стандартная библиотека для логирования
    import parser_functions  # библиотека этого парсера
    from telethon import TelegramClient, events, sync, connection  # pip3 install telethon
    from telethon.tl.functions.channels import JoinChannelRequest
    from config import api_id, api_hash  # получение айди и хэша нашего приложения из файла config.py
    from loguru import logger
    import asyncio
    from telethon.errors.rpcerrorlist import FloodWaitError
    
    
    # настройка логгера
    logging.basicConfig(
        level=logging.INFO,
        filename='parser_log.log',
        filemode='w',
        format="%(asctime)s %(levelname)s %(message)s"
    )
    
    
    url = ["XXXX"]
    flag = True
    
    
    
    async def main():
        async with TelegramClient('new', api_id, api_hash) as client:
            for channel in url:
                try:
                    logger.info(f"Аккаунт был подключен!")
                    await client(JoinChannelRequest(channel))
                    client.on_message(parser_functions.on_message)  # регистрация обработчика сообщений
                    await client.run_until_disconnected()
                except FloodWaitError as fwe:
                    print(f'Waiting for {fwe}')
                    await asyncio.sleep(delay=fwe.seconds)
    
    
    
    
    if __name__ == "__main__":
        asyncio.run(main())
    
    
    
    
    def on_message(event):
        try:
            channel_id = event.message.chat.id
            directory_name = str(event.message.id)
            os.makedirs(f"{channel_id}/{directory_name}", exist_ok=True)
            await parser_functions.get_message_content(client, event.message, url, channel_id, directory_name)
        except Exception as passing:
            logger.error(passing)
    Ответ написан
    1 комментарий
  • Как сделать цикл разархированния файлов zip?

    Daemon23RUS
    @Daemon23RUS
    import os
    dir = os.fsencode("F:\pythonProject\test_canverter_tdata\tdatas")
    for file in os.listdir(dir):
         filename = os.fsdecode(file)
         if filename.endswith(".zip": 
             # Ваш код. Имя файла в filename
             continue
         else:
             continue

    А с переименовыванием файла при извлечении из ZIP не подскажу, не сталкивался
    Ответ написан
    Комментировать
  • Как конвертировать tdata в session + json?

    @maximq
    QA Engineer
    Вероятно вы установили библиотеку, а TDesktop client нет.
    Путь существует? Клиент TDesktop установлен?
    F:\pythonProject\test_canverter_tdata\tdatas
    Ответ написан
    3 комментария
  • Как конвертировать tdata в session + json?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    TFileNotFound: Could not open key_data [ Called by ReadFile() ]

    Не верный путь, либо отсутствует разрешение на чтение.
    Ответ написан
    Комментировать
  • Как записать текст из базы данных в txt файл делая отступы?

    includedlibrary
    @includedlibrary
    myfile = open('test.txt', 'w')
    Когда открываете файл в режиме 'w', вы открываете его на перезапись. Можно вместо 'w' передать 'a', тогда всё будет записываться в конец файла. Но, во-первых, в вашем коде один файл на всех пользователей (не знаю, была ли цель сделать именно так, поэтому пишу), во-вторых, могут быть дубликаты, т.е. желательно добавить проверку на уникальность. Можно взять СУБД (если нужно хранить всё в файле, то можно использовать sqlite), тогда и работать с несколькими пользователями будет проще и проверку на укникальность самому писать не придётся. Также использование СУБД позволит в будущем без проблем хранить какие-либо ещё данные, кроме URL прокси серверов
    Ответ написан
    Комментировать
  • Как записать текст из базы данных в txt файл делая отступы?

    @aveBHS
    Используйте режим дополнения файла: myfile = open('test.txt', 'a'). Флаг a (append) открывает файл в режиме добавления нового содержимого, он не затирает старые данные, а добавляет новые в конец (либо создает файл если такового не существует)
    Ответ написан
    Комментировать