blob: 6fd1408cb4c7dc8b1888b80262d0101ed0a898de (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
sniffa
======
#### This is the bgstack15 fork of sniffa!
[sniffa](https://github.com/danielmitterdorfer/sniffa) is a small utility that allows you to watch Discuss forums for keywords.
Every time it is invoked, it checks for new posts matching the keywords and creates a notification in the Mac OS X notification bar.
# Requirements
* Python 3
* certifi: Install with `yum install python3-certifi` or `pip3 install --user certifi`
# Installation
Ensure that all prerequisites are installed, then copy `sniffa.py` to any directory, e.g. `~/bin` and run `chmod u+x sniffa.py`.
# Usage
sniffa can be used to query multiple Discuss forums. The keywords and the ids of all already seen posts are maintained in a file `~/.sniffa/watch-$(FORUM_NAME).ini`, where `$(FORUM_NAME)` is a name that you can choose to identify this forum.
## Example
Consider you want to watch for the keywords "Rally" and "JMeter" in the Elastic Discuss forum at https://discuss.elastic.co.
1. Create `~/.sniffa/watch-elastic.ini`
2. Add the following lines:
```
[sniffa.domain]
url = https://discuss.elastic.co
[Rally]
[JMeter]
```
Now invoke sniffa: ``python3 sniffa.py elastic``. It will load the watches file for the forum named "elastic", check for new posts (which will be a lot at the first time) and show a notice for each of them in the Mac OS X notification bar.
## Automatic regular invocation
Quite likely you don't want to invoke sniffa manually every time you want to check for new posts. Therefore, you can install sniffa as a launch agent.
Create a new file in `~/Library/LaunchAgents/org.github.sniffa.plist` with the following contents:
```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>org.github.sniffa</string>
<key>ProgramArguments</key>
<array>
<string>~/bin/sniffa.py</string>
<string>elastic</string>
</array>
<key>Nice</key>
<integer>1</integer>
<key>StartInterval</key>
<integer>7200</integer>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>~/.sniffa/sniffa-elastic.err.log</string>
<key>StandardOutPath</key>
<string>~/.sniffa/sniffa-elastic.out.log</string>
</dict>
</plist>
```
Change the paths depending on the install location of sniffa and also your domain parameter.
With this plist file, sniffa will check the Elastic Discuss forum every two hours (7200 seconds) for new posts.
Finally register the launch agent with Mac OS X:
```
launchctl load ~/Library/LaunchAgents/org.github.sniffa.plist
```
After a restart, Mac OS X will pick up the plist file automatically.
If you are interested in more details about launch agents, check [Alvin Alexander's blog post about plist files](http://alvinalexander.com/mac-os-x/mac-osx-startup-crontab-launchd-jobs) (on which this description is based).
# License
'sniffa' is distributed under the terms of the [Apache Software Foundation license, version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html).
|