summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md124
1 files changed, 124 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c6722aa
--- /dev/null
+++ b/README.md
@@ -0,0 +1,124 @@
1Copyright (C) 2014-2018 - Simeon Simeonov
2See the end of the file for license conditions.
3
4
5## What is BEINC?
6
7Blackmore's Enchanced IRC Notification Collection (BEINC) is a free set of
8components that aims to provide a complete system for different
9on-screen-display notification scenarios.
10
11The current version of BEINC contains the following components:
12beinc_server.py - server used for queueing or providing on-screen-display (OSD)
13beinc_poller.py - client used to fetch enqueued messages from beinc_server.py
14 and provide OSD
15beinc_weechat.py - a complete script / client for the Weechat IRC client >=0.4.0
16 used to push notification messages to beinc_server.py
17beinc_generic_client.py - a simple client used to push notification messages
18 to beinc_server.py
19 Its main purpose is to provide a convenient way to
20 test beinc_server.py (and beinc_poller.py) as well as
21 to serve as an example for how to develop BEINC-clients
22+ documentation and a sample configuration file (beinc_config_sample.json)
23
24
25## Why should I use BEINC and what has it done for me lately?
26
27BEINC is a free-software, licensed under the GPL3. It gives you the freedoms
28of using it, studying it and modifying it.
29
30BEINC is designed to assist you two common scenarios.
31As an example we will consider the case of an IRC cliet, although BEINC can be
32used by any client that conforms with BEINC's "messaging protocol".
33
34We have the common situation where a user is accessing an IRC client located on
35a different computer (typically: weechat, irssi, etc. running on a remote server)
36The IRC client receives a private message (or any event that requires the user's
37attention) and the user has to be notified.
38No matter which of the two scenarios applies to your needs, you should start by
39 - setting up a BEINC client similar to beinc_generic_client.py on the server
40 If you are running weechat >=0.4.0, this version of BEINC comes with
41 a complete weechat BEINC-client: beinc_weechat.py
42 Configure the client to send notifications to the beinc_server.py
43N.B. Using encryption is important in these days and age.
44
45
46### Scenario one
47
48The user's computer can be reached by the server running the IRC client.
49If the server (running the IRC client) is able to connect to
50a specified TCP port on the user's computer, this is sufficient for BEINC to
51directly notify the user. Solution:
52 - set up the beinc_server.py on the desktop workstation (the computer where the
53 notification-message should be displayed). Define an unprivileged port for
54 beinc_server.py to listen on and enable its OSD capabilities
55 (through pynotify)
56
57
58### Scenario two
59
60The user's computer can NOT be reached by the server running the IRC client.
61This scenario is typical for users that are working on computers that can not
62be reached from outside.
63
64Solution:
65 - find a server that can be reached by the server running the IRC client.
66 - set up the beinc_server.py on it. No OSD capabilities are needed (no X11).
67 Define instance(s) for queueing. Define a queue size
68 (how many notifications to store) for each of them.
69 - set up beinc_poller.py on the desktop workstation (the computer where the
70 notification-message should be displayed).
71 beinc_poller.py should be able to access the server running beinc_server.py
72 Polling interval of 5 seconds should be enough for most users.
73
74Read beinc_config_sample.json.readme for details on how to setup
75beinc_server.py and beinc_weechat.py!
76Use "-h" command line parameter to display the available options for
77beinc_poller.py and beinc_generic_client.py
78Each configured beinc_server.py instance has an unique name.
79There are 2 operations that can be done on an instance:
80 - push - a client is sending a notification to the BEINC server.
81 A push is available for all instances.
82 - pull - a poller (f.i. beinc_poller.py) is fetching data from the instance-queue.
83 A pull is available only for instances defined for queueing.
84 (read beinc_config_sample.json.readme for details!)
85Example:
86If you defined a beinc_server.py instance with SSL-support,
87your URL will be: https://hostname:port
88
89
90## Supported systems & requirements
91
92Any system running the software required for the selected components.
93All components tested on: Gentoo GNU/Linux 2014,2015,
94 Ubuntu GNU/Linux 14.4,14.10,
95 FreeBSD 10.x
96
97
98### Requirements
99All components: Python >= 2.7.9 or Python >= 3.4.*
100
101beinc_server.py: pynotify >= 0.1 (optional)
102beinc_weechat.py: Weechat >= 0.4.0
103beinc_poller.py: pynotify >= 0.1
104beinc_generic_client.py: No additional software required
105
106Read INSTALL in this very same folder for more details about installing the requirements!
107
108
109### License
110
111This file is part of BEINC.
112
113BEINC is free software: you can redistribute it and/or modify
114it under the terms of the GNU General Public License as published by
115the Free Software Foundation, either version 3 of the License, or
116(at your option) any later version.
117
118This program is distributed in the hope that it will be useful,
119but WITHOUT ANY WARRANTY; without even the implied warranty of
120MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
121GNU General Public License for more details.
122
123You should have received a copy of the GNU General Public License
124along with this program. If not, see <http://www.gnu.org/licenses/>