.png)
Я знаю, что это, вероятно, возможно и, вероятно, легко для того, кто знает, что делает, но заранее извиняюсь за то, как мало я знаю.
По сути, я ищу какой-то код (скрипт? опять же, я не знаю), который будет записывать либо названия страниц, либо полные URL-адреса для каждого посещенного веб-сайта (даже при включенном режиме приватного просмотра) в "резервный" файл истории, который не будет стерт или изменен через стандартную панель инструментов Safari. Предпочтительно, чтобы это включало временные метки, хотя это не обязательно.
В качестве альтернативы, если возможно/легче оставить кнопку «Частный просмотр» включенной, но сделать так, чтобы она фактически ничего не ДЕЛАЛА, а затем записывать/создавать резервную копию изменений в файле plist истории Safari примерно каждые 60 секунд в «безопасное» и нередактируемое место, это тоже сработает.
Вот несколько вещей, которые мне не нужны:
Инструкции по включению родительского контроля или отключению функции приватного просмотра
Инструкции по использованию программы веб-мониторинга или шпионского программного обеспечения, которую необходимо загрузить и установить на компьютер
Инструкции по входу на уровне маршрутизатора (в настоящее время это невозможно) или использованию Open DNS (который показывает только домены, а не все веб-страницы на детальном уровне)
Этическое или моральное обсуждение (я знаю, о чем спрашиваю и почему спрашиваю; пожалуйста, поверьте мне в этом)
Я знаю, что есть программы мониторинга, которые делают то, что я хочу (и многое другое, большая часть из которых не нужна), поэтому я предполагаю, что можно закодировать что-то где-то, что будет выполнять ту же задачу. Мне также понадобятся (буду честен) некоторые довольно подробные инструкции о том, как/где вводить этот код и запускать его. Я готов заплатить (если необходимо), чтобы нанять кого-то, кто это сделает, но даже не зная точно, о чем я прошу, мне трудно сформулировать вакансию на любом из сайтов по найму внештатных кодеров.
Любая помощь/руководство/содействие/разъяснения и т. д. будет оценена по достоинству.
решение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
или выйдя из системы и войдя снова.