Skip to content

listeomin/musceler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐭 Musceler

Фоновый инструмент для macOS: следит за появлением новых скриншотов в заданной папке и обрабатывает их (логика в watcher.py). Скрипт запускается автоматически при входе пользователя в систему через launchd (LaunchAgent).

Что уже работает

  • Скрипты запускаются выполняя свою задачу
  • Настроен LaunchAgent для автозапуска
  • Watcher.py реализован и функционален
  • Ведутся логи
  • Настроены нативные macos уведомления

Архитектура

musceler/
├─ scrn/            # локальная папка, куда macOS кладёт скриншоты
├─ scripts/         # все .py-скрипты
│  ├─ musceler.py
│  ├─ send_last_screenshot.py
│  ├─ notification.py
│  └─ watcher.py
├─ logs/            # все логи
│  ├─ musceler.log
│  ├─ musceler.err.log
├─ assets/          # ресурсы (звуки, шаблоны и т.д.)
│  └─ notify.aiff   # (когда добавим звук)
└─ ...              # потом сюда же добавим .git, README.md и прочее

Scripts

watcher.plist

Aккуратно всё поднимает и пишет логи. ~/Library/LaunchAgents/watcher.plist

watcher.py:

Cледит за новыми скриншотами.

  • работает как демон/долгоживущий процесс
  • отслеживает новые скриншоты в целевой директории (например, scrn/)
  • пишет информацию о своей работе в логи (stdout и stderr).

send_last_screenshot.py:

Забирает последний скриншот, шлёт его через musceler.py и кладёт ссылку в буфер.

  • находит самый свежий PNG‑файл в папке scrn/ внутри проекта
  • запускает musceler.py как отдельный процесс, передавая ему путь к этому файлу
  • парсит вывод musceler.py, вытаскивая строку с готовым URL ( Готово. URL: ...)
  • копирует полученный URL в буфер обмена через pbcopy (macOS)
  • печатает в консоль:
    • какой скриншот был выбран какой URL получился
    • сообщение о том, что ссылка скопирована в буфер обмена.

musceler.py:

Нумерует и заливает файл на сервер, возвращая готовый URL

  • по SSH получает список файлов в удалённой директории /var/www/hhrrr.ru/musceler
  • находит максимальный номер в именах формата scrn-00001.png, scrn-12345.jpg и т.п.
  • вычисляет следующее имя scrn-XXXXX.png
  • копирует локальный файл на сервер через scp под этим именем
  • выводит готовый публичный URL вида http://hhrrr.ru/musceler/scrn-XXXXX.png.

notification.py:

Показывает системное уведомление о загруженном скриншоте.

  • извлекает номер скрина из URL (scrn-00025.png → 00025)
  • формирует текст HHRRRru!!1 Скриншот %НОМЕР% на сервере!
  • показывает нативное macOS‑уведомление через terminal-notifier
  • по клику по уведомлению открывает скриншот в браузере по умолчанию.

Логи

musceler.log — стандартный вывод (stdout) watcher.py musceler.err.log — стандартный поток ошибок (stderr) watcher.py.

Asstets

Звуки

– Успешное завершение операции notify.mp3 – Ошибка сервера …

#project

About

Musceler screenshot watcher

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages