Задать вопрос
  • Может ли РКН блокировать конкретный URL?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    На Хабре - может. РКН пришлёт запрос и на статью повесят 451
    Ответ написан
    3 комментария
  • Как работает в aiogram ответ ChatMemberUpdated в @my_chat_member при member_status_changed=LEAVE_TRANSITION?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Channel_Bot — это внутренний бот Telegram, который используется для управления каналами. Когда Telegram не может или не хочет передавать данные реального пользователя, он использует Channel_Bot в качестве замены. Это позволяет сохранить анонимность пользователя и обеспечить безопасность.
    Ответ написан
    1 комментарий
  • Как получить данные о банковском счёте пользователя?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Никак. Я не слышал, чтобы банки предлагали подобные API. Наоборот, они стараются скрыть их. Иначе любой мошенник может всё украсть
    Ответ написан
    Комментировать
  • Pynput как обрабатывать сочетания клавиш?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    В вашем коде вы обрабатываете нажатия и отпускания клавиш по отдельности, но какие клавиши нажаты одновременно не проверяете.
    Как-то так должно быть
    from pynput.mouse import Listener as MouseListener
    from pynput import keyboard
    import logging
    import time
    import pydirectinput
    
    mode = input("1 - Record TAS\n2 - Replay TAS\nChoice: ")
    
    if mode == "1":
        filename = f"{input('Name for record: ')}.tas"
        file = open(filename, 'w')
        file.close()
        file = open(filename, 'r+')
        print("Record will start in 3 seconds...")
        time.sleep(3)
    
        presstime = 0
        releasetime = 0
        movetime = time.time()
        keytime = {}
        pressed_keys = set()
    
        def on_move(x, y):
            global movetime
            file.write(f"sleep {time.time() - movetime}\n")
            file.write(f"move {x} {y}\n")
            movetime = time.time()
            file.flush()
    
        def on_click(x, y, button, pressed):
            global presstime
            global releasetime
            if pressed:
                file.write(f'press {x} {y} {button}\n')
                presstime = time.time()
                file.flush()
            else:
                releasetime = time.time()
                file.write(f"sleep {releasetime - presstime}\n")
                file.write("release\n")
                file.flush()
    
        def on_scroll(x, y, dx, dy):
            file.write(f'scroll ({x}, {y})({dx}, {dy})\n')
            file.flush()
    
        def on_press(key):
            global pressed_keys
            pressed_keys.add(key)
            file.write(f"pkey {key}\n")
            file.flush()
    
        def on_release(key):
            global pressed_keys
            pressed_keys.remove(key)
            file.write(f"prelease {key}\n")
            file.flush()
    
        with keyboard.Listener(on_press=on_press, on_release=on_release) as klistener:
            with MouseListener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:
                klistener.join()
                listener.join()
    
    elif mode == "2":
        filename = input("Enter TAS name: ")+".tas"
        file = open(filename, 'r')
        script = file.readlines()
        print("Replay will start in 3 seconds...")
        time.sleep(3)
        for task in script:
            if "sleep" in task:
                task = task.replace("sleep ", "").replace("\n", "")
                time.sleep(float(task))
            elif "move" in task:
                task = task.replace("move ", "").replace("\n", "")
                task = task.split(" ")
                x = int(task[0])
                y = int(task[1])
                pydirectinput.moveTo(x, y, duration=0.0, _pause=False)
            elif "press" in task and "left" in task:
                task = task.replace("press ", "").replace("\n", "")
                task = task.split(" ")
                x = int(task[0])
                y = int(task[1])
                pydirectinput.moveTo(x, y, duration=0.0, _pause=False)
                pydirectinput.mouseDown(_pause=False)
            elif "press" in task and "right" in task:
                task = task.replace("press ", "").replace("\n", "")
                task = task.split(" ")
                x = int(task[0])
                y = int(task[1])
                pydirectinput.moveTo(x, y, duration=0.0, _pause=False)
                pydirectinput.mouseDown(button='right', _pause=False)
            elif "release" in task and "prelease" not in task:
                pydirectinput.mouseUp(_pause=False)
                pydirectinput.mouseUp(button='right', _pause=False)
            elif "pkey" in task:
                task = task.replace("pkey ", "").replace("\n", "").replace("Key.", "").replace("_l", "").replace("_r", "").replace("'", "")
                pydirectinput.keyDown(task, _pause=False)
            elif "prelease" in task:
                task = task.replace("prelease ", "").replace("\n", "").replace("Key.", "").replace("_l", "").replace("_r", "").replace("'", "")
                pydirectinput.keyUp(task, _pause=False)
        print("Replay ended...")
    Ответ написан
    Комментировать
  • Как думаете почему не работает код на инлайн кнопку тг бота?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    У вас опечатка в reply_murkup=builder.as_markup(). Надо reply_markup=builder.as_markup()
    Ответ написан
    Комментировать
  • Как устанавливать пакеты с pipenv?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    1. IDE не настроено на окружение
    2. Запускаете не из окружения
    Ответ написан
  • Как получить токен для другого ip-адреса?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Как получить access token vk без привязки к ip?
    Нужно делать авторизацию с правами offline, тогда access_token не будет привязан к ip и будет бессрочным.

    Разумеется такой access_token не вечный. Он перестанет работать, если пользователь сменит пароль или же запретит приложению доступ в настройках.
    Ответ написан
  • Как выгрузить больше 100 постов через VK API?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Может это сработает
    from vk_api import VkApi
    from vk_api.exceptions import ApiError
    import re
    import pandas as pd
    
    token = 1111
    
    vk_session = VkApi(token=token)
    vk = vk_session.get_api()
    
    df1 = pd.read_excel(r'C:\Users\Bot\Downloads\1.xlsx')
    
    def extract_post_id(url):
        match = re.search(r'wall(-?\d+_\d+)', url)
        if match:
            return match.group(1)
        return None
    
    post_urls = df1['Ссылка на пост']
    
    post_ids = [extract_post_id(url) for url in post_urls if extract_post_id(url)]
    
    # Разбиваем список идентификаторов на части по 100 элементов
    chunks = [post_ids[i:i + 100] for i in range(0, len(post_ids), 100)]
    
    all_posts = []
    
    # Получаем текст постов по частям
    for chunk in chunks:
        try:
            posts = vk.wall.getById(posts=','.join(chunk))
            all_posts.extend(posts)
        except ApiError as e:
            print(f"Ошибка: {e}")
    
    df = pd.DataFrame(all_posts)
    
    df.to_excel(r'C:\Users\Bot\Desktop\БД\данные.xlsx', index=False)
    Ответ написан
    1 комментарий
  • Как выводить комментарии под постом от имени авторизованного пользователя в django?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    В models.py username поменяйте на ForeignKey
    from django.contrib.auth.models import User
    
    class Comments(models.Model):
        user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='Пользователь')
        text_comments = models.TextField('Текст комментария', max_length=200)
        post = models.ForeignKey(Post, verbose_name='Публикация', on_delete=models.CASCADE)
    
        def __str__(self):
            return f'{self.user.username} / {self.post}'

    В form.py исключите name
    class CommentsForm(forms.ModelForm):
        class Meta:
            model = Comments
            fields = ('text_comments',)

    В views.py добавьте поле user
    class AddComments(View):
        def post(self, request, post_id):
            form = CommentsForm(request.POST)
            if form.is_valid():
                comment = form.save(commit=False)
                comment.post_id = post_id
                comment.user = request.user 
                comment.save()
            return redirect('post_detail', post_id=post_id)

    В post_detail.html добавьте user.username
    <div>
        <h3>Комментарии:</h3>
        <form action="{% url 'add_comments' post.id %}" method="post">
            <h3></h3>
            {% csrf_token %}
            <div>
                <textarea name="text_comments" placeholder="Ваш комментарий..."></textarea>
            </div>
            <div><input type="submit"></div>
        </form>
    </div>
    <div>
        {% for comment in post.comments_set.all reversed %}
        <div class="view-comment">
            <h4>{{ comment.user.username }}</h4>
            <p><i>{{ comment.text_comments }}</i></p>
        </div>
        {% endfor %}
    </div>

    Должно работать
    Ответ написан
    9 комментариев
  • Как в Windows из командной строки вывести список найденных файлов по маске?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Может так dir /s /b | findstr /R /C:"маска"?
    Ответ написан
    2 комментария
  • Как выгрузить текст из постов ВК?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Вроде бы так, но точно не проверял
    from vk_api import VkApi
    from vk_api.exceptions import ApiError
    import re
    
    token = '1111'
    
    vk_session = VkApi(token=token)
    vk = vk_session.get_api()
    
    # Функция для извлечения идентификатора поста из ссылки
    def extract_post_id(url):
        match = re.search(r'wall(-?\d+_\d+)', url)
        if match:
            return match.group(1)
        return None
    
    # Список ссылок на посты
    post_urls = [
        'https://vk.com/wall-22522055_2191390',
    ]
    
    # Извлекаем идентификаторы постов
    post_ids = [extract_post_id(url) for url in post_urls if extract_post_id(url)]
    
    # Получаем текст постов
    try:
        posts = vk.wall.getById(posts=','.join(post_ids))
        for post in posts:
            print(f"ID: {post['id']}, Текст: {post['text']}")
    except ApiError as e:
        print(f"Ошибка: {e}")
    Ответ написан
    1 комментарий
  • Клавиатура не работает через юсб хаб как сделать так чтобы заработало?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Питания не хватает. Либо другой взять, либо купить с доп. питанием (обычно через розетку)
    Ответ написан
    Комментировать
  • Как автоматизировать покупку товаров?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Во-первых, определитесь, что вам нужно- python или php. Если python, то тут подойдёт только библиотека selenium. На Хабре есть хорошая статья про него. Ну и google в помощь
    Ответ написан
  • Долгая обработка SQL запроса?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Можно использовать подзапрос вместо двух запросов и цикла, если я не ошибаюсь
    cur.execute('''DELETE FROM parsing
                   WHERE parsing_user_id IN (SELECT user_full_data_user_id FROM user_full_data)''')
    Ну и, конечно, sqlite - это не для таких БД

    P. S. Можно ещё индексы сделать к столбцам
    CREATE INDEX idx_user_full_data_user_id ON user_full_data(user_full_data_user_id);
    CREATE INDEX idx_parsing_user_id ON parsing(parsing_user_id);
    Ответ написан
    1 комментарий
  • Как сделать всплывающее на несколько секунд окно после нажатия на кнопку в тг боте на Python?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Когда уже научитесь доки читать?
    bot.answer_callback_query(call.id, text="Ваше сообщение")

    show_alert вам не нужен
    Ответ написан
  • Как оплачивать vpn в 2024?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Можно ли в 2024 году как-то оплатить данные сервисы?
    Нет
    Будут ли они работать в россии?
    Нет
    Ответ написан
    Комментировать
  • Как проверить текст на осмысленность?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    1. Проверять, соответствует ли частота символов в тексте типичной частоте символов в обычном тексте.
    2. Использовать NLP
    Ответ написан
    Комментировать
  • Как получить разницу во времени?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    DateTime localTime = DateTime.Now;
    DateTime Values = dateTimePicker2.Value;
    TimeSpan difference = localTime.Subtract(Values);
    
    // Форматируем разницу во времени
    textBox7.Text = string.Format("{0:hh\\:mm\\:ss}", difference);
    
    // Проверяем, превышает ли разница 1 час
    if (difference > TimeSpan.FromHours(1))
    {
    }
    Ответ написан
  • Как выводить JS код?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Строка, передаваемая в метод .html(), содержит одинарные кавычки, которые конфликтуют с одинарными кавычками, используемыми для обозначения строки. Используйте экранирование и всё будет ок
    $('#display').html('<a href="#" onclick="$.ajaxCall(\'app.screenChange\', \'appID={app:id}&amp;page=1\', \'GET\'); return false;">Go</a>');

    или можно так
    $('#display').html("<a href='#' onclick=\"$.ajaxCall('app.screenChange', 'appID={app:id}&amp;page=1', 'GET'); return false;\">Go</a>");
    Ответ написан
    2 комментария
  • Honor 10 lite не работает фронтальная камера?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Я шар для гадания дома забыл, поэтому могу только посоветовать в сервис снести.
    Ответ написан
    Комментировать