Анатолий
не про жсон
Примерно 294кб то, что я написал. Но это без сжатия, если минифицировать названия классов и т.д., то меньше получится
Анатолий
(это чистая вёрстка, не считая картинок, видео и т.д.)
Анатолий
Примерно так выглядит) но чтобы это завелось, пришлось вырубить недописанные фильтры, поиск и прочее. Чисто рендер всего из жсон в html
Georgy KOTYAR Karmanov
Subscriber's submission
Анатолий
ARTi
нотпад++ по айди юзера ищет быстро а по имени полчаса
ARTi
а можно какой-то плагин для нотпада написать для жсон телеги?
Анатолий
телега кстати вроде умеет сама разбивать, не?
Анатолий
Анатолий
а она у меня прям на громадных объёмах искала достаточно оперативно
ARTi
ARTi
памяти на ноуте с гулькин нос, надо ссд с 256 на 1тб уже менять
ARTi
у меня 8мб, это похоже ток файлы
Анатолий
искать по множеству файлов будет быстрее: смотришь результаты первых файлов, пока ищет следующие
ARTi
ну там по дефолту всегда стояло 8 метров, я не трогал, жсон на 72 метра
Анатолий
ну вот, значит 9 жсонов. можно уменьшить лимит до 1мб, будет 72 жсона)
vscode всё равно, искать в 9 файлах или в 72, а тебе быстрее результаты видеть
Анатолий
О, может к нему и поиск прикрутить?)
ARTi
добавь в код возможность поиска по маске
ARTi
Конечно, добавим возможность поиска по маске. Для этого мы можем модифицировать функцию parse_telegram_export, добавив параметр для передачи маски поиска. Вот обновленный пример:
import json
def parse_telegram_export(file_path, search_mask=None):
with open(file_path, 'r', encoding='utf-8') as file:
data = json.load(file)
messages = data['messages']
for message in messages:
message_id = message['id']
sender_id = message['from_id']
text = message.get('text', '')
date = message['date']
# Поиск по маске
if search_mask:
if search_mask in text:
print(f"ID сообщения: {message_id}, ID отправителя: {sender_id}, Текст: {text}, Дата: {date}")
else:
print(f"ID сообщения: {message_id}, ID отправителя: {sender_id}, Текст: {text}, Дата: {date}")
# Пример использования для поиска по маске
file_path = 'path_to_telegram_export.json'
search_mask = 'важно'
parse_telegram_export(file_path, search_mask)
Теперь при вызове функции parse_telegram_export можно передать маску для поиска определенных сообщений. Если search_mask не передается, то будут выведены все сообщения, как и раньше.
ARTi
добавь GUI для удобного использования
ARTi
Для добавления графического интерфейса (GUI) мы можем использовать библиотеку Tkinter в Python. Вот пример, как можно модифицировать код для добавления простого GUI:
import json
import tkinter as tk
from tkinter import filedialog
def parse_telegram_export(file_path, search_mask=None):
with open(file_path, 'r', encoding='utf-8') as file:
data = json.load(file)
messages = data['messages']
results = []
for message in messages:
message_id = message['id']
sender_id = message['from_id']
text = message.get('text', '')
date = message['date']
if not search_mask or (search_mask and search_mask in text):
results.append(f"ID сообщения: {message_id}, ID отправителя: {sender_id}, Текст: {text}, Дата: {date}")
return results
def browse_file():
file_path = filedialog.askopenfilename(filetypes=[("JSON files", "*.json")])
file_path_entry.delete(0, tk.END)
file_path_entry.insert(0, file_path)
def search_messages():
file_path = file_path_entry.get()
search_mask = search_mask_entry.get()
results = parse_telegram_export(file_path, search_mask)
result_text.config(state='normal')
result_text.delete('1.0', tk.END)
for result in results:
result_text.insert(tk.END, result + "\n")
result_text.config(state='disabled')
# Создание GUI
root = tk.Tk()
root.title("Telegram Export Parser")
file_label = tk.Label(root, text="Выберите файл экспорта:")
file_label.pack()
file_path_entry = tk.Entry(root, width=50)
file_path_entry.pack()
browse_button = tk.Button(root, text="Обзор", command=browse_file)
browse_button.pack()
search_label = tk.Label(root, text="Маска поиска:")
search_label.pack()
search_mask_entry = tk.Entry(root, width=30)
search_mask_entry.pack()
search_button = tk.Button(root, text="Поиск", command=search_messages)
search_button.pack()
result_text = tk.Text(root, height=20, width=100)
result_text.config(state='disabled')
result_text.pack()
root.mainloop()
Этот код создает простое приложение с GUI, которое позволяет выбрать JSON файл экспорта, ввести маску поиска и выполнить поиск сообщений. Результаты поиска отображаются в виджете текста внутри приложения.
ARTi
осталось придумать что еще попросить))
Анатолий
Не, ну если так устроит, то конечно жпт сделает)
Я думал, что нужен гуй прям настоящий, телеграмовский, как я выше скрин показывал
ARTi
сделай так, чтобы GUI был похож на официальный клиент телеграма
ARTi
Разумеется, можно создать GUI, похожий на официальный клиент Telegram, используя библиотеку tkinter в Python. Однако, для полной имитации интерфейса Telegram потребуется значительное количество CSS и нестандартных элементов интерфейса. Мы можем придерживаться общего стиля Telegram, используя цвета, шрифты и макет, чтобы создать похожий интерфейс в рамках tkinter.
В качестве примера, вот как можно модифицировать предыдущий код, чтобы сделать интерфейс похожим на официальный клиент Telegram:
import json
import tkinter as tk
from tkinter import filedialog
def parse_telegram_export(file_path, search_mask=None):
with open(file_path, 'r', encoding='utf-8') as file:
data = json.load(file)
messages = data['messages']
results = []
for message in messages:
message_id = message['id']
sender_id = message['from_id']
text = message.get('text', '')
date = message['date']
if not search_mask or (search_mask and search_mask in text):
results.append(f"ID сообщения: {message_id}, ID отправителя: {sender_id}, Текст: {text}, Дата: {date}")
return results
def browse_file():
file_path = filedialog.askopenfilename(filetypes=[("JSON files", "*.json")])
file_path_entry.delete(0, tk.END)
file_path_entry.insert(0, file_path)
def search_messages():
file_path = file_path_entry.get()
search_mask = search_mask_entry.get()
results = parse_telegram_export(file_path, search_mask)
result_text.config(state='normal')
result_text.delete('1.0', tk.END)
for result in results:
result_text.insert(tk.END, result + "\n")
result_text.config(state='disabled')
# Создание GUI с похожим стилем на Telegram
root = tk.Tk()
root.title("Telegram Export Parser")
root.geometry("800x600")
# Имитация верхнего меню Telegram
menu_label = tk.Label(root, text="Telegram", font=("Arial", 20))
menu_label.pack(pady=10)
# Окно выбора файла и кнопка обзора
file_path_entry = tk.Entry(root, width=60, font=("Arial", 12))
file_path_entry.pack(side="left", padx=10)
browse_button = tk.Button(root, text="Обзор", font=("Arial", 12), command=browse_file)
browse_button.pack(side="left")
# Поле для ввода маски поиска и кнопка поиска
search_mask_entry = tk.Entry(root, width=30, font=("Arial", 12))
search_mask_entry.pack(pady=10)
search_button = tk.Button(root, text="Поиск", font=("Arial", 12), command=search_messages)
search_button.pack()
# Окно для вывода результатов
result_text = tk.Text(root, height=20, width=100, font=("Arial", 12))
result_text.config(state='disabled')
result_text.pack(pady=10)
root.mainloop()
В этом примере я попытался имитировать верхнее меню Telegram, добавил некоторые стилизованные виджеты и изменения в расположении элементов, чтобы сделать GUI более похожим на официальный клиент Telegram. Однако, это всего лишь базовая имитация и не включает все особенности дизайна Telegram.
ARTi
не вижу ток как это онлайн тестить, гуи библиотеку сайты не находят
ARTi
Купил лампочку, поработала секунду и умерла. На упаковке написано 1000 часов. Это если я свет не буду выключать она 40 дней протянет?
☕️ Паша ☭👨🏻🔧
есть системы плавного пуска ламп накаливания. с ними лампы не в пример дольше живут. обычно в выключатель встраивают.
ARTi
Электрики посоветовали диод добавить. Тут электричество без счетчика, можно тратить сколько надо, никто не выключает.
✙ Та якого біса? ✙
Dmitry [Shep]
ARTi
Брак ?
Похоже да. Сегодня пойду менять на 40 рублей.
Georgy KOTYAR Karmanov
Georgy KOTYAR Karmanov
Анна Agrafena
у вас https://t.me/BotFather работает?
Анна Agrafena
а во прочухался
ARTi
Dmitry [Shep]
4
ARTi
r/ #nextfuckinglevel
Всё детство на одном автоприцепе
ARTi
ARTi
https://youtu.be/ZoC17_nyJfQ?si=81lRCeSuHjfw7pts
ARTi
ARTi
Не знал что можно через денди плойку подключить
ARTi
Анатолий
Кот
ARTi
ARTi
Норм для сверления полок?
ARTi
Настенный сканер
https://alii.pub/6uhlxk?erid=2SDnjeMYFHr
1 424 ₽
Ручной детектор скрытой проводки, металлов и дерева. Он оснащён ЖК-дисплеем с трехцветной подсветкой, имеет 5 режимов сканирования и глубину обнаружения до 6 см. Работает от батарейки 6LR61.
Georgy KOTYAR Karmanov
ARTi
Fun Fact : Dicks of ducks are cock-screw shaped.
ARTi
https://www.reddit.com/r/memes/comments/nwhxhj/bonk_bonk/
ARTi
я знал, но когда увидел пикчу не подумал про эту резьбу совсем
Dmitry
Там ещё и к glory hole отсылка, если ты понимаешь о чем я ))
ARTi
ну вот после реддита понял))
Dmitry [Shep]
4TB NVME SSD
Решение для тех, кому нужно большое дискового пространство, но не хочется связываться с HDD. Ну либо если тупо нет такой возможности, например из-за ограниченного пространства.
В разы более дорогое удовольствие, чем соразмерные HDD, зато в десятки раз быстрее, компактнее, лёгче...тише.
Как кстати относитесь к экспансии SSD-шников? Вытеснят они HDD в ближайшее время?
1✅ 16980р. 11✅ 22329р.
2✅ 16986р. 12✅ 22655р.
3✅ 17083р. 13✅ 23890р.
4✅ 17120р. 14✅ 26419р.
5✅ 17331р. 15✅ 27552р.
6✅ 18422р. 16✅ 32273р.
7✅ 18695р. 17✅ 34953р.
8✅ 18781р. 18✅ 38486р.
9✅ 20613р. 19✅ 46961р.
10✅ 22188р. 20✅ 78109р.
➖➖➖➖➖➖
☑️ NVME SSD БЫСТРЫЕ
☑️ NVME 1TB ДЕШМН
☑️ NVME 4ТБ
☑️ NVME 2TB
☑️ NVME PCIe 4.0
☑️ NVME 2ТБ
☑️ 970 EVO+ OEM (PM981A)
☑️ 980 PRO OEM (PM9A1)
☑️ SAMSUNG 980 PRO
☑️ SAMSUNG 990 PRO
🔥 NVME РАДИАТОРЫ (ЖИР)
🔥 NVME RGB РАДИАТОРЫ
💎PCI-E NVME SSD
💎 20GBPS NVME КЕЙСЫ
💎 USB КЕЙСЫ ПОД NVME
Анатолий
Alxius
ARTi
прекрасная история про польский поезд, в котором есть компания производитель, установившая, по сути, некий DRM на ПО для поезда, чтобы предотвратить ремонт третьими сторонами, и польские хакеры, которые взломали этот самый ДРМ после того, как их наняли "починить" ПО. если я правильно понял цепочку, то компания-оператор поездов чинила их силами своих подрядчиков, после чего поезда переставали ездить (брикались). Из последних сил компания наняла хакеров, которые заглянули в софт и нашли закладки, блокирующие работу поездов при стороннем ремонте. Теперь компания-производитель поездов хочет подать в суд на этих хакеров.
https://gizmodo.com/hackers-hit-with-legal-threats-after-they-fixed-a-brick-1851097424
Georgy KOTYAR Karmanov
source
Sergey
прекрасная история про польский поезд, в котором есть компания производитель, установившая, по сути, некий DRM на ПО для поезда, чтобы предотвратить ремонт третьими сторонами, и польские хакеры, которые взломали этот самый ДРМ после того, как их наняли "починить" ПО. если я правильно понял цепочку, то компания-оператор поездов чинила их силами своих подрядчиков, после чего поезда переставали ездить (брикались). Из последних сил компания наняла хакеров, которые заглянули в софт и нашли закладки, блокирующие работу поездов при стороннем ремонте. Теперь компания-производитель поездов хочет подать в суд на этих хакеров.
https://gizmodo.com/hackers-hit-with-legal-threats-after-they-fixed-a-brick-1851097424
Есть на хабре подробная статья на русском, сейчас попробую найти
Sergey
https://habr.com/ru/articles/778716/
ARTi
в доме вайфаев выше крыши, они могут влиять на блютуз? колонка заикаится часто, на улице норм
Dmitry
Могут, легко. У меня блюпуп глючит когда автобус Мосгортранса рядом. Помогает перезагрузка телефона, как ни странно
Georgy KOTYAR Karmanov
https://alternativeto.net/news/2023/12/mozilla-adds-over-450-new-extensions-to-firefox-web-browser-for-android/
Кот
у меня наушники около некоторых перекрестков глушатся ) или около дороги просто бывает
Кот
недавно сквер один сделали , поставили какие-то новые фонари и вот там звук ваще не работает, хз что там за сигналы идут такие, но до ремонта не было
Анна Agrafena
Анатолий
А радионаушники делают ещё?
Помню у меня были такие, никогда ничего не глохло, но могли быть помехи.
Georgy KOTYAR Karmanov
Georgy KOTYAR Karmanov
Анатолий