- 182
- 83
Доброго времени бытия.
Решил сбацать полу-бесполезный стиллер на питоне, который не знаю где может пригодиться.
Суть работы:
1) При запуске программы она добавляет .bat файл в папку C:\Users\NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup, что позволяет ей совершать автозапуск после рестарта ПК.Решил сбацать полу-бесполезный стиллер на питоне, который не знаю где может пригодиться.
Суть работы:
2) Далее создаётся папка в C:\Users\NAME\AppData\Roaming под именем Opera, в которую в дальнейшем будут помещаться .zip архивы с файлами.
3) Начинается два бесконечных цикла while, которые проверяют наличие флешки (второй цикл нужен потому что при краше программы первый сразу же восстановит её, и я знаю что это можно было сделать через один цикл, но мне как-то так приятнее.)
*** Алгоритм определения USB до жопы прост, и это можно считать самым большим костылём во всей программе ***
Если размер диска < 64 GB -> это флешка.
*** Возможные ошибки***
Проводя тесты, заметил, что ошибка бывает только одна, а именно: если при копировании файлов в .zip вытащить флешку, программа упадёт.
4) Каждые 0.5 секунды идёт проверка на наличие флешки через алгоритм, описанный выше.
5) Если USB найден/найдены, создаётся .zip архив в папке Opera, в него помещаются все файлы с флешки/флешок и отправляются на ваше облачное хранилище. После этого архив/архивы удаляются.
Если вам интересно, то без интернета всё будет работать, просто архивы не удаляются, а при каждой перезагрузке системы происходит проверка папки Opera, и попытка загрузить все .zip архивы на диск. Если загрузится - опять же, архивы самоуничтожатся. Если нет - продолжит собирать файлы в папке Opera.
6) Если удалось загрузить файлы на сервер - вы получите ссылку загруженный архив в чате с вашим Telegram-ботом.
7) После успешного копирования данных в папку Opera программа отправляется сладко спать на 1,5 часа. Сделано это с надеждой на то, что человек за это время извлечёт флешку, и архивы с одинаковыми файлами не создадутся повторно. Вы, конечно, можете менять это значение под свои нужды.
Все ошибки по типу FileNotFoundError, FileExistsError и.т.п отлавливаются, и запуск программы должен проходить гладко.
Что вам необходимо?
1) Установить все зависимости:
pip install mega.py
pip install pyTelegramBotAPI
pip install pyinstaller
2) Создать диск на MEGA, записать логин и пароль в файл load.py
3) Создать Telegram-бота (@botfather), создать с ним диалог (отправить любое сообщение), записать его token и ваш id в файл notifier.py
4) Скомпилировать программу с помощью pyinstaller. (Компилировать исключительно python 3.10 + версии, ибо я проводил тесты по декомпиляции, и все известные декомпиляторы отказались работать с этими версиями.)
Всё!
Не гарантирую работу на Win 8 и ниже.
Можете отправить это кому угодно, и смотреть, что человек хранит на флешке.
Пишите по поводу ошибок в комментарии. По поводу ошибок с компиляцией - не пишите.
PS.
Я активно пытаюсь переписать эту программу на C++, у меня не получается. Если вы спец в плюсах - добро пожаловать в мою личку телеграм @fearlessillness
Что вам необходимо?
1) Установить все зависимости:
pip install mega.py
pip install pyTelegramBotAPI
pip install pyinstaller
2) Создать диск на MEGA, записать логин и пароль в файл load.py
3) Создать Telegram-бота (@botfather), создать с ним диалог (отправить любое сообщение), записать его token и ваш id в файл notifier.py
4) Скомпилировать программу с помощью pyinstaller. (Компилировать исключительно python 3.10 + версии, ибо я проводил тесты по декомпиляции, и все известные декомпиляторы отказались работать с этими версиями.)
Всё!
Не гарантирую работу на Win 8 и ниже.
Можете отправить это кому угодно, и смотреть, что человек хранит на флешке.
Пишите по поводу ошибок в комментарии. По поводу ошибок с компиляцией - не пишите.
PS.
Я активно пытаюсь переписать эту программу на C++, у меня не получается. Если вы спец в плюсах - добро пожаловать в мою личку телеграм @fearlessillness
Вложения
Последнее редактирование: