[geany/www.geany.org] d82a17: Implement IRC userlist page

Enrico Tröger git-noreply at xxxxx
Sun Jan 5 18:29:22 UTC 2014


Branch:      refs/heads/master
Author:      Enrico Tröger <enrico.troeger at uvena.de>
Committer:   Enrico Tröger <enrico.troeger at uvena.de>
Date:        Sun, 05 Jan 2014 18:29:22 UTC
Commit:      d82a171c820ce68b893aeff2b1310fb85b875171
             https://github.com/geany/www.geany.org/commit/d82a171c820ce68b893aeff2b1310fb85b875171

Log Message:
-----------
Implement IRC userlist page

This page dynamically reads currently connected IRC usernames from
/var/tmp/irc_userlist which is filled by the IRC bot.


Modified Paths:
--------------
    geany/settings.py
    geany/templates/pages/richtextpage.html
    geany/templates/pages/support/irc.html
    geany/templatetags/geany_tags.py

Modified: geany/settings.py
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -399,6 +399,8 @@
 
 NIGHTLYBUILDS_BASE_DIR = '/path/to/nightly/builds'
 
+IRC_USER_LIST_FILE = '/var/tmp/irc_userlist'
+
 
 LOGGING = {
     'version': 1,


Modified: geany/templates/pages/richtextpage.html
6 files changed, 6 insertions(+), 0 deletions(-)
===================================================================
@@ -6,6 +6,9 @@
 
 <div class="well">
 
+{% block content_before %}
+{% endblock %}
+
 {% block richtext_content %}
 
 {# render the content as template, e.g. to replace {{ geany_latest_version }} #}
@@ -14,6 +17,9 @@
 {# display #}
 {{ evaluated_content|richtext_filter|safe }}
 
+{% block content_after %}
+{% endblock %}
+
 {% endblock %}
 
 </div>


Modified: geany/templates/pages/support/irc.html
25 files changed, 25 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,25 @@
+{% extends "pages/richtextpage.html" %}
+
+{% load geany_tags %}
+
+{% block content_after %}
+
+{% get_irc_userlist as irc_userlist %}
+
+<h2>Users</h2>
+
+<p>Currently {{ irc_userlist|length }} users are connected:</p>
+
+<div class="row">
+{% for username in irc_userlist %}
+    <div class="span2">{{ username }}</div>
+
+    {% if forloop.counter|divisibleby:4 %}
+        </div>
+        <div class="row">
+    {% endif %}
+{% endfor %}
+</div>
+
+
+{% endblock %}


Modified: geany/templatetags/geany_tags.py
25 files changed, 22 insertions(+), 3 deletions(-)
===================================================================
@@ -3,18 +3,22 @@
 # it under the terms of the GNU Affero General Public License as published by
 # the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU Affero General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 from django import template
+from django.conf import settings
+from mezzanine.template import Library
+import logging
 
-register = template.Library()
+register = Library()
+logger = logging.getLogger(__name__)
 
 
 ########################################################################
@@ -51,3 +55,18 @@ def do_evaluate(parser, token):
         raise template.TemplateSyntaxError(u'%r tag requires a single argument' %
                             token.contents.split()[1])
     return EvaluateNode(variable, target_var_name)
+
+
+#----------------------------------------------------------------------
+ at register.as_tag
+def get_irc_userlist():
+    user_list = list()
+    try:
+        with open(settings.IRC_USER_LIST_FILE) as file_h:
+            user_list = file_h.readlines()
+    except IOError, e:
+        logger.error(u'An error occurred reading IRC user list: %s', unicode(e), exc_info=True)
+
+    # remove newline characters
+    user_list = [username.strip() for username in user_list]
+    return sorted(user_list)



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list