Задать вопрос
  • Не работают эмодзи флагов в гугл таблице, можно ли их как то починить?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Unicode -символы флагов (не всех) распадаются на два символа в Google Sheets.
    Можно подгружать картинками. (Найдите надёжный источник, лучше куда-то себе скопируйте).
    =IMAGE("https://flagsapi.com/"&A1&"/flat/64.png")
    или непосредственно:
    =IMAGE("https://flagsapi.com/RU/flat/64.png"))

    67e77ee9d21ed878358586.png
    Ответ написан
    5 комментариев
  • PyInstaller как открыть GUI?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    GUI для PyInstaller?
    Типа этого auto-py-to-exe?
    Ответ написан
    Комментировать
  • Как сделать рабочий Progress Bar в tkinter?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Парсер отдельно от GUI. Выносите парсер в отдельный поток / процесс или используйте асинхрон. Таким образом парсер не будет блокировать обновление интерфейса.
    Ответ написан
    4 комментария
  • Как создать элементы в цикле python?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    command=lambda v=val: radio(v['stream'])
    Ответ написан
    5 комментариев
  • Почему не отображается время работы функции при использовании datetime.now()?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    natalya1000, Сделайте чуть более нагруженную функцию. То что у вас сейчас считается за столь незначительное время, что у вас всегда будет по нулям.

    Ну и, если вам непременно нужно подсчитывать столь незначительные промежутки, используйте
    perf_counter() из модуля time.
    Ответ написан
  • Проблема с округлением переменных через round, как исправить?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Ф-строки смотрите:
    print(f'lol kek, {cnt}')
    Ответ написан
    2 комментария
  • Как добавить в приложение видео из html-фреймов (youtube, vk, vimeo)?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Почему не на stackoverflow, например?
    За две минуты - две ссылки с воспроизводимым кодом. На pyside6, и на PyQt5, которые можно взять посмотреть.

    https://stackoverflow.com/questions/77977192/pysid...

    https://stackoverflow.com/questions/67521837/how-t...
    Ответ написан
  • Как вывести определенное расширение TLS из .pcapng файла с помощью pyshark?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Так не пойдёт?
    import pyshark
    
    display_filter = 'tls.record.content_type == 22'
    pcap = pyshark.FileCapture(file_path, display_filter=display_filter)
    d = {}
    
    for packet_number, packet in enumerate(pcap):
        for layer in packet:
            if 'Supported Version:' in str(layer):
                for line in str(layer).splitlines():
                    if 'Supported Version:' in line:
                        tls_version = line.split(' ')[3]
                        if packet_number in d:
                            d[packet_number].append(tls_version)
                        else:
                            d[packet_number] = [tls_version]
    
    print(d)
    
    >>> {0: ['1.3', '1.2'], 1: ['1.3'], 2: ['1.3', '1.2'], 3: ['1.3'], 4: ['1.3', '1.2'], 5: ['1.3']}
    Ответ написан
  • Как получить видимый текст, а не временной штамп?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Возможно, как один из вариантов, заменить getValues() на getDisplayValues().

    Метод getDisplayValues() отдает данные в том виде, в каком он отображается в ячейках таблицы. Например, если ячейка содержит дату, то указанный метод вернет не какое-то внутреннее представление записанной в ячейку даты, а ее представление, которое видит пользователь в ячейке. (https://habr.com/ru/articles/529332/)

    getdisplayvalues()
    Ответ написан
    1 комментарий
  • Почему не подключается Tor Browser на Whonix?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    В корне неверный подход. Вы не понимаете архитектурно как работает Whonix.

    Трогать Workstation не нужно вообще. Вся работа с Tor происходит на уровне Gateway. Workstation не имеет прямого доступа к Tor и не управляет его настройками. Файл /etc/tor/torrc на Workstation не используется для маршрутизации трафика, так как Workstation вообще не знает о существовании Tor. Она просто отправляет весь трафик на Gateway, который уже занимается его обработкой.

    Если вам всенепременно нужно редактировать файл, то делайте это на Gateway.

    tor снова отвалился

    Перезапустите или сам сервис (или всю ВМ):
    sudo systemctl restart tor
    Через Nyx: переподключитесь к тору, обновите Identity.
    Периодически обновляйте мосты (!!!) (их блокируют; операторы мостов могут перестать их поддерживать по различным причинам).

    после первого обновления исчез Anon Connection Wizard

    Никуда он не исчезает, ни после первого, ни после тридцать первого (только что специально обновил).
    Если у вас куда-то как-то пропал ярлык, то запускайте в консоли: anon-connection-wizard
    Ответ написан
    1 комментарий
  • Почему Python не импортирует и не видит библиотеки Flask?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    getargspec() удалена из 3.11

    Используйте более старую версию питона (<3.11). Или убедитесь что зависимые модули используют getfullargspec().
    Первое проще.
    Ответ написан
    Комментировать
  • Поддержка Blockquote в pyrogram?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
  • Discord bot не делает что я хочу, как исправить?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Не создали бота (IDE вам подчёркивает).
    intents = disnake.Intents.default()
    intents.message_content = True
    
    bot = disnake.Client(intents=intents)
    
    # или так (про разницу сами прочтите):
    # from discord.ext import commands
    # bot = commands.Bot(command_prefix='!', intents=discord.Intents.all())

    Посмотрите как создаётся минимальный бот:
    https://docs.disnake.dev/en/stable/quickstart.html
    или по-русски: https://ru.guide.disnake.dev/getting-started/initi...

    З.Ы. Ну и сомнительно, что нужно смешивать discord.py и disnake.py.

    И правила: https://qna.habr.com/help/rules#3.8
    Ответ написан
  • Как запустить счëтчик по открытию приложения?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    import asyncio
    import psutil
    
    
    def counter():
        pass
    
    
    async def f():
        while True:
            if any(process.name() == 'notepad++.exe' for process in psutil.process_iter()):
                counter()
                break
            await asyncio.sleep(1)
    
    
    asyncio.run(f())
    Ответ написан
    Комментировать
  • Как в Python удалить текст до определённых символов?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    import re
    
    s = "57-09-71 МегаФонe-mail: ? vy:juf , h 5555y676hr965 silava.a@ttgr :  https://loads.ru"
    
    url_pattern = r'https?://\S+'
    url_match = re.search(url_pattern, s)
    
    if url_match:
        url = url_match.group(0)
        print(url)
    else:
        print("Ссылка не найдена")
    
    >>> https://loads.ru


    Но, если формат строки не меняется, то и обычный сплит сработает:
    print(s.split(' ')[-1])
    Ответ написан
    4 комментария
  • Почему не пингуется Whonix Gateway и Whonix Workstation?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    ICMP can’t go over Tor.
    https://forums.whonix.org/t/ping-operation-permitt...

    Ping commands should not work for external addresses from the Whonix-Workstation. The reason is ICMP traffic is not proxied and it is filtered by Whonix Firewall (/usr/bin/whonix_firewall) because Tor does not support UDP. For example, ping google.com will not work. To make ping functional, see the Allow UDP chapter.
    Ответ написан
    Комментировать
  • Можно ли автоматически подсчитывать количество выбранных значений в выпадающем списке Google Таблиц?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    =IF(A1=""; 0; LEN(A1) - LEN(SUBSTITUTE(A1; ","; "")) + 1)

    67a138ae580a7954455402.png
    Ответ написан
    1 комментарий
  • Как разместить в tkinter окне matplotlib-фигуру, выходящую за границы экрана?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Код
    import tkinter as tk
    
    from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
    from matplotlib.figure import Figure
    from PIL import Image, ImageTk
    
    
    class ScrollableLabel(tk.Frame):
        def __init__(self, master, **kwargs):
            super().__init__(master, **kwargs)
    
            # Переменная для хранения LaTeX-текста
            self.latex_text = r'$\\sum_{i=0}^5(x_i); $' * 100
    
            # Создаем Canvas и Scrollbar (вертикальный и горизонтальный)
            self.canvas = tk.Canvas(self, bg="white")
            self.v_scrollbar = tk.Scrollbar(self, orient="vertical", command=self.canvas.yview)
            self.h_scrollbar = tk.Scrollbar(self, orient="horizontal", command=self.canvas.xview)
    
            # Настраиваем Canvas для поддержки прокрутки
            self.scrollable_frame = tk.Frame(self.canvas, bg="white")
            self.scrollable_frame.bind(
                "<Configure>",
                lambda e: self.canvas.configure(
                    scrollregion=self.canvas.bbox("all")
                )
            )
            self.canvas.create_window((20, 20), window=self.scrollable_frame, anchor="nw")
            self.canvas.configure(yscrollcommand=self.v_scrollbar.set, xscrollcommand=self.h_scrollbar.set)
    
            # Размещаем Canvas и Scrollbar
            self.v_scrollbar.pack(side="right", fill="y")
            self.h_scrollbar.pack(side="bottom", fill="x")
            self.canvas.pack(side="left", fill="both", expand=True)
    
            # Привязываем прокрутку колесом мыши
            self.bind_mouse_wheel()
    
            # Создаем LaTeX-изображение
            self.create_latex_label()
    
        def bind_mouse_wheel(self):
            """
            Привязывает прокрутку колесом мыши к Canvas.
            """
            # Для вертикальной прокрутки (Windows/Linux)
            self.canvas.bind_all("<MouseWheel>", self._on_mouse_wheel)
            # Для горизонтальной прокрутки (Shift + колесо мыши)
            self.canvas.bind_all("<Shift-MouseWheel>", self._on_shift_mouse_wheel)
    
        def _on_mouse_wheel(self, event):
            """
            Обрабатывает событие вертикальной прокрутки колесом мыши.
            """
            if event.num == 4 or event.delta > 0:  # Прокрутка вверх
                self.canvas.yview_scroll(-1, "units")
            elif event.num == 5 or event.delta < 0:  # Прокрутка вниз
                self.canvas.yview_scroll(1, "units")
    
        def _on_shift_mouse_wheel(self, event):
            """
            Обрабатывает событие горизонтальной прокрутки колесом мыши (Shift + колесо).
            """
            if event.delta > 0:  # Прокрутка влево
                self.canvas.xview_scroll(-1, "units")
            elif event.delta < 0:  # Прокрутка вправо
                self.canvas.xview_scroll(1, "units")
    
        def create_latex_label(self):
            """
            Создает Label с LaTeX-изображением и добавляет его в scrollable_frame.
            """
            # Создаем фигуру matplotlib для рендеринга LaTeX
            fig = Figure(figsize=(20, 20))  # Размер фигуры
            fig.patch.set_alpha(1)  # Прозрачный фон
            ax = fig.add_subplot(111)
            ax.axis("off")  # Отключаем оси
    
            # Рендерим LaTeX-текст
            ax.text(0.0, 1.0, self.latex_text, fontsize=20, ha="left", va="top", usetex=True)
            # Отчекрыживаем поля
            fig.subplots_adjust(left=0, right=1, bottom=0, top=1)
            # Преобразуем фигуру в изображение
            canvas = FigureCanvasTkAgg(fig, master=self.scrollable_frame)
            canvas.draw()
    
            # Получаем изображение из canvas
            width, height = fig.get_size_inches() * fig.get_dpi()  # Размеры в пикселях
            image = Image.frombytes('RGBA', (int(width), int(height)), bytes(canvas.buffer_rgba()))
    
            # Для версий matplotlib <= 3.8:
            # image = Image.frombytes('RGB', (int(width), int(height)), canvas.tostring_rgb())
            # image.save('lol.png')
            # Преобразуем изображение в формат, поддерживаемый Tkinter
            self.image = ImageTk.PhotoImage(image)
    
            # Создаем Label с изображением и добавляем его в scrollable_frame
            self.label = tk.Label(self.scrollable_frame, image=self.image, bg="white")
            self.label.pack(pady=10)
    
            # Сохраняем ссылку на изображение, чтобы оно не удалялось сборщиком мусора
            self.label.image = self.image
    
        def update_latex_text(self, new_text):
            """
            Обновляет LaTeX-текст и перерисовывает Label.
            """
            self.latex_text = new_text
            # Очищаем scrollable_frame и создаем новый Label
            for widget in self.scrollable_frame.winfo_children():
                widget.destroy()
            self.create_latex_label()
    
    
    if __name__ == "__main__":
        root = tk.Tk()
        root.title("LaTeX в Tk.Label с прокруткой")
    
        # Создаем ScrollableLabel
        scrollable_label = ScrollableLabel(root)
        scrollable_label.pack(fill="both", expand=True, padx=10, pady=10)
    
        # Создаем Entry для ввода текста
        entry = tk.Entry(root, font=("Arial", 14))
        entry.pack(fill="x", padx=10, pady=5)
    
    
        # Создаем Button для обновления текста
        def on_button_click():
            new_text = entry.get() 
            scrollable_label.update_latex_text(new_text) 
    
    
        button = tk.Button(root, text="Обновить", command=on_button_click, font=("Arial", 14))
        button.pack(pady=5)
    
        root.mainloop()

    6797dc8ec49ac263327616.png

    З.Ы. Это решение отображает формулы LaTex и латиницу. Если нужна кириллица, то нужно установить XeLaTeX или LuaLaTeX через MiKTeX (если его используете) или, если вы используете стандартный LaTeX (pdfLaTeX), можно добавить пакет babel. И настроить matplotlib на их использование. Ну, и не забыть, чтобы используемый шрифт поддерживал кириллицу.
    Ответ написан
    3 комментария
  • Как решить проблему с таймзонами при нахождении дельты?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    "иногда" - это, видимо, в момент смены даты.
    Так как start_timeзаведомо "меньше", чем server_time, а вы вычитаете из меньшего большее, то и возникает разница в -1 день.
    Используйте absпри подсчёте дельты:

    from datetime import datetime, timezone
    
    start_time  = datetime(2025, 1, 27, 23, 59, 59, tzinfo=timezone.utc)
    server_time = datetime(2025, 1, 28, 0, 0, 0, tzinfo=timezone.utc)
    delta = start_time - server_time
    print("Дельта:", delta)
    >>> Дельта: -1 day, 23:59:59
    
    abs_delta = abs(start_time - server_time)
    print("Дельта:", abs_delta)
    >>> Дельта: 0:00:01
    Ответ написан
    Комментировать