diff options
| author | Simeon Simeonov | 2018-06-30 12:22:35 +0200 |
|---|---|---|
| committer | Simeon Simeonov | 2018-06-30 12:22:35 +0200 |
| commit | 29ea2f46a81c516a08767eafdab9698d5cbd6150 (patch) | |
| tree | 84ce1067a40eda5b5f262b8b1de56e3317a0406d /README.md | |
| parent | 63ddf50344cf1e4f2f9b75ce3b0c4db940a3be47 (diff) | |
Documentation cleanups. INSTALL -> INSTALL.md, README -> README.md
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 124 |
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 @@ | |||
| 1 | Copyright (C) 2014-2018 - Simeon Simeonov | ||
| 2 | See the end of the file for license conditions. | ||
| 3 | |||
| 4 | |||
| 5 | ## What is BEINC? | ||
| 6 | |||
| 7 | Blackmore's Enchanced IRC Notification Collection (BEINC) is a free set of | ||
| 8 | components that aims to provide a complete system for different | ||
| 9 | on-screen-display notification scenarios. | ||
| 10 | |||
| 11 | The current version of BEINC contains the following components: | ||
| 12 | beinc_server.py - server used for queueing or providing on-screen-display (OSD) | ||
| 13 | beinc_poller.py - client used to fetch enqueued messages from beinc_server.py | ||
| 14 | and provide OSD | ||
| 15 | beinc_weechat.py - a complete script / client for the Weechat IRC client >=0.4.0 | ||
| 16 | used to push notification messages to beinc_server.py | ||
| 17 | beinc_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 | |||
| 27 | BEINC is a free-software, licensed under the GPL3. It gives you the freedoms | ||
| 28 | of using it, studying it and modifying it. | ||
| 29 | |||
| 30 | BEINC is designed to assist you two common scenarios. | ||
| 31 | As an example we will consider the case of an IRC cliet, although BEINC can be | ||
| 32 | used by any client that conforms with BEINC's "messaging protocol". | ||
| 33 | |||
| 34 | We have the common situation where a user is accessing an IRC client located on | ||
| 35 | a different computer (typically: weechat, irssi, etc. running on a remote server) | ||
| 36 | The IRC client receives a private message (or any event that requires the user's | ||
| 37 | attention) and the user has to be notified. | ||
| 38 | No 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 | ||
| 43 | N.B. Using encryption is important in these days and age. | ||
| 44 | |||
| 45 | |||
| 46 | ### Scenario one | ||
| 47 | |||
| 48 | The user's computer can be reached by the server running the IRC client. | ||
| 49 | If the server (running the IRC client) is able to connect to | ||
| 50 | a specified TCP port on the user's computer, this is sufficient for BEINC to | ||
| 51 | directly 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 | |||
| 60 | The user's computer can NOT be reached by the server running the IRC client. | ||
| 61 | This scenario is typical for users that are working on computers that can not | ||
| 62 | be reached from outside. | ||
| 63 | |||
| 64 | Solution: | ||
| 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 | |||
| 74 | Read beinc_config_sample.json.readme for details on how to setup | ||
| 75 | beinc_server.py and beinc_weechat.py! | ||
| 76 | Use "-h" command line parameter to display the available options for | ||
| 77 | beinc_poller.py and beinc_generic_client.py | ||
| 78 | Each configured beinc_server.py instance has an unique name. | ||
| 79 | There 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!) | ||
| 85 | Example: | ||
| 86 | If you defined a beinc_server.py instance with SSL-support, | ||
| 87 | your URL will be: https://hostname:port | ||
| 88 | |||
| 89 | |||
| 90 | ## Supported systems & requirements | ||
| 91 | |||
| 92 | Any system running the software required for the selected components. | ||
| 93 | All components tested on: Gentoo GNU/Linux 2014,2015, | ||
| 94 | Ubuntu GNU/Linux 14.4,14.10, | ||
| 95 | FreeBSD 10.x | ||
| 96 | |||
| 97 | |||
| 98 | ### Requirements | ||
| 99 | All components: Python >= 2.7.9 or Python >= 3.4.* | ||
| 100 | |||
| 101 | beinc_server.py: pynotify >= 0.1 (optional) | ||
| 102 | beinc_weechat.py: Weechat >= 0.4.0 | ||
| 103 | beinc_poller.py: pynotify >= 0.1 | ||
| 104 | beinc_generic_client.py: No additional software required | ||
| 105 | |||
| 106 | Read INSTALL in this very same folder for more details about installing the requirements! | ||
| 107 | |||
| 108 | |||
| 109 | ### License | ||
| 110 | |||
| 111 | This file is part of BEINC. | ||
| 112 | |||
| 113 | BEINC is free software: you can redistribute it and/or modify | ||
| 114 | it under the terms of the GNU General Public License as published by | ||
| 115 | the Free Software Foundation, either version 3 of the License, or | ||
| 116 | (at your option) any later version. | ||
| 117 | |||
| 118 | This program is distributed in the hope that it will be useful, | ||
| 119 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 120 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 121 | GNU General Public License for more details. | ||
| 122 | |||
| 123 | You should have received a copy of the GNU General Public License | ||
| 124 | along with this program. If not, see <http://www.gnu.org/licenses/> | ||
