These instructions work for OSX Catalina only and are a bit different than the Linux version shown at urlwatch.
python3 -m pip install pyyaml minidb requests keyring appdirs lxml cssselect html2text python3 -m pip install urlwatch EDITOR=nano urlwatch --edit # CTRL+X leave the editor without saving
Then edit ~/Library/Application Support/urlwatch/urls.yaml
kind: url
max_tries: 3
name: Camptoi
url: https://www.camptoi.de
filter:
- element-by-id: product-desc-18713727425
- html2text:
body_width: 0
ignore_images: false
ignore_links: false
inline_links: false
method: pyhtml2text
pad_tables: false
single_line_break: true
unicode_snob: true
After that we create the Telegram bot by sending
/newbot
to user BotFather and record the <API> from the response.
We also need to send a dummy message to the new bot so we can look up the sender <ID>
https://api.telegram.org/bot<API>/getUpdates
<API> and <ID> are both entered into ~/Library/Application Support/urlwatch/urlwatch.yaml
...
telegram:
bot_token: '<API>'
chat_id: '<ID>'
enabled: true
---
As we have no cron under MacOS we need a parameter file to run launchd. Should be placed at ~/Library/LaunchAgents/com.urlwatch.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>Label</key>
<string>com.urlwatch</string>
<key>Program</key>
<string>/Users/wjst/opt/anaconda3/bin/urlwatch</string>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>9000</integer>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Ultimately, the agent is started (or stopped) using
launchctl load -w ~/Library/LaunchAgents/com.urlwatch.plist launchctl unload ~/Library/LaunchAgents/com.urlwatch.plist