-1

Я знаю, что это возможно, и, вероятно, легко для тех, кто знает, что они делают, но я заранее прошу прощения за то, как мало я знаю.

Я по сути ищу какой-то код (скрипт? опять же, я не знаю), который будет записывать либо имена страниц и / или полные URL-адреса для каждого посещенного веб-сайта (даже с включенным приватным просмотром) в "резервный" файл истории, который не будет удален или изменен с помощью стандартной панели инструментов Safari , Предпочтительно, это будет включать метки времени, хотя это не обязательно.

С другой стороны, если можно / проще оставить кнопку "Частный просмотр" включенной, но сделать так, чтобы она на самом деле ничего не делала, то записывайте / сохраняйте изменения в списке истории Safari каждые 60 секунд или около того в "безопасное" и недоступное для редактирования место. , это будет работать, а также.

Пара вещей, которые я не хочу:

  • Инструкции о том, как включить родительский контроль или удалить опцию приватного просмотра

  • Указания к веб-мониторингу или шпионской программе, которую необходимо загрузить и установить на компьютер

  • Инструкции о том, как войти на уровне маршрутизатора (в настоящее время невозможно) или использовать Open DNS (который показывает только домены, но не все веб-страницы на детальном уровне)

  • Этическая или моральная дискуссия (я знаю, что я спрашиваю и почему я прошу об этом; пожалуйста, поверьте мне на этот счет)

Я знаю, что есть программы мониторинга, которые делают то, что я хочу (и многое другое, большинство из которых не нужны), поэтому я предполагаю, что возможно где-то написать код, который выполнит ту же задачу. Мне также понадобятся (честно говоря) некоторые довольно подробные инструкции о том, как / где ввести этот код и заставить его работать. Я готов заплатить (если необходимо), чтобы нанять кого-то, чтобы сделать это, но даже не зная точно, о чем я спрашиваю, у меня возникают проблемы при составлении вакансии на любом из сайтов по найму фрилансера. ,

Любая помощь / руководство / помощь / разъяснение / и т.д. будет оценено.

1 ответ1

1

Сохраните такой скрипт где-нибудь в стандартном формате .scpt в редакторе AppleScript:

repeat
    try
        tell application "System Events"
            if name of (process 1 where frontmost is true) is not "Safari" then error
        end tell
        tell document 1 of application "Safari"
            set u to URL
            set n to name
        end tell
        do shell script "f=/path/to/log_file
u=" & quoted form of u & "
n=" & quoted form of n & "
[[ $(tail -n1 $f | cut -d' ' -f2) = $u ]] && exit
printf '%s\\n' \"$(date +%FT%H:%M) $u $n\" >> $f"
    end try
    delay 10
end repeat

Скрипт запускается только каждые 10 секунд, поэтому он может пропустить некоторые страницы. Вы можете уменьшить задержку, если хотите.

Вы можете запустить скрипт при входе в систему и перезапустить его, если он выйдет, сохранив список свойств, такой как ~/Library/LaunchAgents/some_label.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>EnableGlobbing</key>
  <true/>
  <key>Label</key>
  <string>some_label</string>
  <key>ProgramArguments</key>
  <array>
    <string>osascript</string>
    <string>/path/to/script.scpt</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
</dict>
</plist>

Затем загрузите plist, запустив launchctl load ~/Library/LaunchAgents/some_label.plist или выйдя из системы и вернувшись обратно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .