Changeset - 391800e711ca
.hgignore
Show inline comments
 
syntax: glob
 

	
 
*.pyc
 
__pycache__/*
 
*~
 
*.s[a-w][a-z]
 
*.un~
 
Session.vim
 
.netrwhist
 
log/*
 
vnstats/*
 

	
 
docs/build/*
 
test/*
 

	
 
run.py
 
*.csv
 
*.json
 
*.orig
 

	
 
Ennstatus.egg-info/*
 
doc/*
 
build/*
ennstatus/__init__.py
Show inline comments
 
# Ënnstatus
 
# Copyright (C) 2015  Dennis Fink
 
#
 
# This program is free software: you can redistribute it and/or modify
 
# it under the terms of the GNU 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 General Public License for more details.
 
#
 
# You should have received a copy of the GNU General Public License
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
import os.path
 
import json
 

	
 
from flask import Flask, render_template
 
from flask.ext.bootstrap import Bootstrap
 
from flask.ext.wtf import CsrfProtect
 
from flask.ext.moment import Moment
 
from flask_bootstrap import Bootstrap
 
from flask_wtf import CSRFProtect
 
from flask_moment import Moment
 

	
 
from werkzeug.contrib.fixers import ProxyFix
 

	
 
import gnupg
 

	
 
bootstrap = Bootstrap()
 
csrf = CsrfProtect()
 
csrf = CSRFProtect()
 
moment = Moment()
 

	
 
config_file = os.path.abspath('config.json')
 

	
 

	
 
def create_app():
 

	
 
    app = Flask(__name__)
 

	
 
    import ennstatus.config as config
 
    config.init_app(app)
 

	
 
    if not hasattr(app.config, 'from_json'):
 
        def from_json(file, silent=True):
 
            try:
 
                with open(file, encoding='utf-8') as json_file:
 
                    obj = json.load(json_file)
 
            except IOError:
 
                if silent:
 
                    return False
 
                raise
 

	
 
            for key in obj:
 
                if key.isupper():
ennstatus/api/auth.py
Show inline comments
 
# Ënnstatus
 
# Copyright (C) 2015  Dennis Fink
 
#
 
# This program is free software: you can redistribute it and/or modify
 
# it under the terms of the GNU 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 General Public License for more details.
 
#
 
# You should have received a copy of the GNU General Public License
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
from flask import current_app
 
from flask.ext.httpauth import HTTPDigestAuth
 
from flask_httpauth import HTTPDigestAuth
 

	
 
httpauth = HTTPDigestAuth()
 

	
 

	
 
@httpauth.get_password
 
def get_pw(username):
 

	
 
    if username in current_app.config['ENNSTATUS_SERVERS']:
 
        return current_app.config['ENNSTATUS_SERVERS'][username]['PASSWORD']
 

	
 
    return None
ennstatus/static/images/partners/Logo-Piratepartei2014.png
Show inline comments
 
binary diff not shown
Show images
ennstatus/static/images/partners/flokinet.png
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
ennstatus/static/images/partners/logo-c3l.png
Show inline comments
 
binary diff not shown
Show images
ennstatus/templates/donate/index.html
Show inline comments
 
{# Ënnstatus
 
   Copyright (C) 2015  Dennis Fink
 

	
 
   This program is free software: you can redistribute it and/or modify
 
   it under the terms of the GNU 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 General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Donate" %}
 

	
 
{% block content %}
 
  <div class="col-md-4">
 
  <div class="col-md-4 visible-md visible-lg">
 
    <img src="{{ url_for('static', filename='images/Support.png') }}" class="img-responsive img-rounded center-block" alt="WhoIs" width="160"></img>
 
    <div class="text-center">
 
      <h2>Support us!</h2>
 
    </div>
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-sm-12 col-md-8">
 
    <div class="jumbotron">
 
      <h2>Take action for a <strong>#FreeInternet</strong>! Support us today!</h2>
 
      <p>As a non-profit organization we are 100% community funded. Donations from our members and supporters will be used to <strong>power Tor nodes</strong>, <strong>print flyers and posters</strong> or cover administrative charges.</p>
 
      <span class='highlighted-label'><a href="{{ url_for('donate.received') }}"><span class="label label-info">Donation history</span></a></span>
 
      <span class='highlighted-label'><a href="{{ url_for('root.bridgeprogram') }}"><span class="label label-primary">Adopt a Tor Bridge</span></a></span>
 
    </div>
 
  </div>
 
  <div class="col-md-12">
 
    <div class="col-md-4">
 
    <div class="col-xs-12 col-sm-6 col-md-4">
 
      <div class="thumbnail">
 
        <center>
 
          <h3>Wire Transfer </h3>
 
        </center>
 
        <div class="well well-sm">
 
          <p>
 
            <strong>Account holder:</strong> Frënn vun der Ënn A.S.B.L.<br>
 
            <strong>BIC/SWIFT:</strong> BCEELULLXXX<br>
 
            <strong>IBAN:</strong> LU65 0019 4055 6782 7000<br>
 
          </p>
 
       </div>
 
       <div class="well well-sm">
 
       <p>
 
         <strong>Account holder:</strong> Chaos Computer Club Lëtzebuerg A.S.B.L.<br>
 
         <strong>BIC/SWIFT:</strong> BCEELULLXXX<br>
 
         <strong>IBAN:</strong> LU29 0019 2855 3890 4000<br>
 
         <strong>Subject:</strong> Donation FVDE<br>
 
       </p>
 
       </div>
 
      </div>
 
    </div>
 
    <div class="col-md-4 clearfix">
 
    <div class="col-xs-12 col-sm-6 col-md-4 clearfix">
 
      <div class="thumbnail">
 
        <center>
 
          <h3>SnailMail</h3>
 
        </center>
 
        <div class="well well-sm">
 
           <address>
 
             <strong>Frënn vun der Ënn, ASBL</strong><br>
 
                    {{ config['ENNSTATUS_ADDRESS_CO'] }}<br>
 
                    {{ config['ENNSTATUS_HOUSE_NAME'] }}<br>
 
                    {{ config['ENNSTATUS_STREET'] }}<br>
 
                    {{ config['ENNSTATUS_POSTAL_CODE'] }}, {{ config['ENNSTATUS_CITY'] }}<br>
 
                    {{ config['ENNSTATUS_COUNTRY'] }}, {{ config['ENNSTATUS_CONTINENT'] }}<br>
 
          </address>
 
        </div>
 
      </div>
 
    </div>
 
    <div class="col-md-4">
 
    <div class="col-xs-12 col-sm-6 col-md-4">
 
      <div class="thumbnail">
 
        <center>
 
          <h3>Bitcoin</h3>
 
        </center>
 
        <div class="well well-sm">
 
         <center>
 
          <p>
 
            <b>Bitcoin Address:</b> 1EYZCq2ZL6chWXYYkJoDo7fz39UC7do5cC
 
            <a href="bitcoin:1EYZCq2ZL6chWXYYkJoDo7fz39UC7do5cC?label=FVDE"><img src="{{ url_for('static', filename='images/btc.png') }}" width="200"></a>
 
          </p>
 
         </center>
 
        </div>
 
      </div>
 
    </div>
 
  </div>
 
  <div class="col-md-12">
 
    <div class="col-md-4">
 
    <div class="col-xs-12 col-sm-6 col-md-4">
 
      <div class="thumbnail">
 
        <center>
 
          <h3>PayPal <small><span class="label label-danger">high fees</span></small></h3>
 
          <div class="well well-sm">
 
            <p>Use your existing PayPal account or check-out as guest. (Credit cards accepted)</p>
 
            <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
 
      		    <input type="hidden" name="cmd" value="_s-xclick">
 
    	  	    <input type="hidden" name="hosted_button_id" value="JKNKAGHS65QN4">
 
    		      <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
 
    		      <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
 
            </form>
 
          </div>
 
        </center>
 
      </div>
 
    </div>
 
    <div class="col-md-4">
 
    <div class="col-xs-12 col-sm-6 col-md-4">
 
      <div class="thumbnail">
 
        <center>
 
          <h3>Flattr</h3>
 
          <div class="well well-sm">
 
            <p>Flattr us!</p>
 
            <a href="https://flattr.com/submit/auto?user_id=FVDE&url=https%3A%2F%2Fenn.lu/donate/flattr" target="_blank">
 
              <img src="https://button.flattr.com/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0"></img>
 
            </a>
 
          </div>
 
        </center>
 
      </div>
 
    </div>
 
    <div class="col-md-4">
 
    <div class="col-xs-12 col-sm-6 col-md-4">
 
      <div class="thumbnail">
 
        <center>
 
          <h3>Patreon</h3>
 
          <div class="well well-sm">
 
            <p>Support us!</p>
 
            <a href="https://www.patreon.com/FVDE?utm_medium=social&ty=h&utm_campaign=creatorshare" target="_blank">
 
              <img src="https://s3.amazonaws.com/patreon_public_assets/toolbox/patreon.png" alt="Patreon" title="Patreon" border="0"></img>
 
            </a>
 
          </div>
 
        </center>
 
      </div>
 
    </div>
 
  </div>
 
{% endblock %}
ennstatus/templates/root/about.html
Show inline comments
 
{# Ënnstatus
 
   Copyright (C) 2015  Dennis Fink
 

	
 
   This program is free software: you can redistribute it and/or modify
 
   it under the terms of the GNU 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 General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Who we are" %}
 

	
 
{% block content %}
 
  <div class="col-md-offset-1 col-md-11">
 
  <div class="col-sm-12 col-md-offset-1 col-md-11">
 
    <h2>Who we are</h2>
 
    <h3>Organization</h3>
 
    <p class="lead">
 
      <i>Frënn vun der Ënn a.s.b.l.</i> is a non-profit organization based in Luxembourg (EU).
 
      It has been founded by members of <i>Chaos Computer Club Lëtzebuerg a.s.b.l.</i> in 2013.
 
    </p>
 
    <p>
 
      As defined in the statutes (see below), the goals of our organization are:
 
      <ul>
 
        <li>defending civil rights, especially on the internet</li>
 
        <li>defending the right to anonymity on the internet by supporting Tor Project Inc.</li>
 
        <li>fighting against censorship and ensuring free access to information</li>
 
        <li>defending the freedom of expression</li>
 
        <li>protecting privacy</li>
 
        <li>promoting free software</li>
 
      </ul>
 
    </p>
 
    <p>
 
      The name <i>Frënn vun der Ënn</i> is Luxembourgish and stands for <i>Friends of the Onion</i>.
 
      The onion is used as a logo by the Tor Project Inc. and many other related organizations.
 
    </p>
 
    <h3>Administrative Council &amp; Staff</h3>
 
    <p>
 
      <dl class="dl-horizontal" >
 
        <dt>President</dt><dd>Sam Grüneisen</dd>
 
        <dt>Secretary</dt><dd>Max Wahl</dd>
 
        <dt>Treasurer</dt><dd>Patrick Kahr</dd>
 
        <dt>International Ambassador</dt><dd>Christophe Kemp</dd>
 
        <dt>Developers</dt><dd>Dennis Fink (Ënnstatus Lead Developer), Sam Grüneisen</dd>
 
        <dt>President</dt><dd>{{ config['ENNSTATUS_PRESIDENT'] }}</dd>
 
        <dt>Secretary</dt><dd>{{ config['ENNSTATUS_SECRETARY'] }}</dd>
 
        <dt>Treasurer</dt><dd>{{ config['ENNSTATUS_TREASURER'] }}</dd>
 
        <dt>International Ambassador</dt><dd>{{ config['ENNSTATUS_INTERNATIONAL_AMBASSADOR'] }}</dd>
 
        <dt>Developers</dt><dd>{{ config['ENNSTATUS_DEVELOPERS'] }}</dd>
 
      </dl>
 
    </p>
 
    <h3>Statutes</h3>
 
    <p>Our statutes can be looked up <a href="//statutes.enn.lu">here</a>!</p>
 
  </div>
 
{% endblock %}
ennstatus/templates/root/abuse.html
Show inline comments
 
{# Ënnstatus
 
   Copyright (C) 2015  Dennis Fink
 

	
 
   This program is free software: you can redistribute it and/or modify
 
   it under the terms of the GNU 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 General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Abuse" %}
 

	
 
{% block content %}
 
  <div class="col-md-offset-1 col-md-11">
 
  <div class="col-sm-12 col-md-offset-1 col-md-11">
 
    <h2>Abuse handling</h2>
 
    <p class="lead">We take our mission very seriously and carefully examine abuse cases.</p>
 
    <p>If you have any question regarding abusive traffic emanating from one of our Tor Exit nodes, don't hesitate to contact our abuse departement. Please make sure to include the following details in your enquiry:</p>
 
    <ul>
 
      <li>the offending IP address'</li>
 
      <li>the type &amp; address' of the abused service(s)</li>
 
      <li>your contact information</li>
 
    </ul><br>
 
    <p>
 
    For transparency reasons we publish monthly <a href="//{{ wiki_url }}/doku.php?id=abuse_statistics" target="blank"><strong>abuse mail statistics</strong></a>.
 
    </p>
 
    <h3>Abuse contact</h3>
 
    <address>
 
      <abbr title="E-Mail"><span class="glyphicon glyphicon-envelope"></span></abbr> : <a href="mailto:abuse@enn.lu">abuse@enn.lu</a> <span class="glyphicon glyphicon-lock"></span> GPG: <a href="http://keyserver.cypherpunk.lu:11371/pks/lookup?search=info@enn.lu&op=vindex" target="_blank">0x02225522</a>
 
    </address>
 
    <h3>RIPE Contact</h3>
 
    <p>We also have ar <a href="https://apps.db.ripe.net/search/lookup.html?source=ripe&key=FE1862-RIPE&type=PERSON">RIPE entry</a></p>
 
    <h3>Spam &amp; Trolling</h3>
 
    <p>
 
      We are receiving a lot of automatically generated messages from self-proclaimed DMCA-Ninjas. Many of those 'inquiries' don't even include basic contact information or meaningful server logs.
 
      It is not our job to process 'junk mail' or communicate with robots. Our sysadmins will take the appropriate measures to ban such 'abuse spam' from our network.
 
    </p>
 
  </div>
 
{% endblock %}
ennstatus/templates/root/bridgeprogram.html
Show inline comments
 
{# Ënnstatus
 
   Copyright (C) 2015  Dennis Fink
 

	
 
   This program is free software: you can redistribute it and/or modify
 
   it under the terms of the GNU 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 General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% import 'bootstrap/wtf.html' as wtf %}
 

	
 
{% set title = "Bridge Program" %}
 

	
 
{% block content %}
 
  <div class="col-md-offset-1 col-md-10">
 
  <div class="col-sm-12 col-md-offset-1 col-md-11">
 
    <h2>Bridge Program</h2>
 
    <p class="lead">Fight censorship! Our bridge program allows you to support the Tor network by adopting a Tor bridge.</p>
 
    <p> Rather than making a single donation, you can now fund a Tor bridge on your own. Bridges are an important element in the Tor network because they allow people to use the network even if the direct acces to its entry-nodes is blocked in their country. This is mainly the case for people living under oppressive regimes. <a href="https://www.torproject.org/docs/bridges" target="blank"><strong>Read more about Tor bridges</strong></a></p>
 
    <p>With a recurring contribution of 3 EUR/month (duration min. 12 months) you can help us keep such a bridge up and running. The servers for this project are located in Luxembourg.</p>
 
    <p>As a partner in our project you can choose the nickname of your bridge and follow it on <a href="{{ url_for('status.index') }}">Ënnstatus</a>, our self-made information-panel.</p>
 
  </div>
 
  <div class="col-md-1">
 
  </div>
 
  <div class="col-md-offset-1 col-md-6">
 
  <div class="col-sm-12 col-md-offset-1 col-md-6">
 
    <h2>Apply for the bridge program</h2>
 
    <form method="post" class="form form-horizontal" role="form">
 
      {{ form.hidden_tag() }}
 
      {{ wtf.form_field(form.fullname, form_type='horizontal') }}
 
      {{ wtf.form_field(form.email, form_type='horizontal') }}
 
      {{ wtf.form_field(form.bridgename, form_type='horizontal') }}
 
      <div class="form-group {% if form.duration.errors %} has-error {% endif %} required">
 
        {{ form.duration.label(class_='control-label col-lg-2') }}
 
        <div class="col-lg-10">
 
        {% for field in form.duration %}
 
          <div class="radio">
 
            {{ field() }}
 
            <div class="btn-group">
 
              <label class="btn btn-success" for="{{ field.id }}">
 
                <span class="glyphicon glyphicon-plus"></span>
 
                <span class="glyphicon glyphicon-minus"></span>
 
              </label>
 
              <label class="btn btn-default" for="{{ field.id }}">
 
                {{ field.label.text }}
 
              </label>
 
            </div>
 
          </div>
 
        {% endfor %}
 
        </div>
 
@@ -76,31 +74,31 @@
 
                <span class="glyphicon glyphicon-minus"></span>
 
              </label>
 
              <label class="btn btn-default" for="{{ field.id }}">
 
                {{ field.label.text }}
 
              </label>
 
            </div>
 
          </div>
 
        {% endfor %}
 
        </div>
 
        {% if form.payment.errors %}
 
          <div class="col-lg-offset-2 col-lg-10">
 
            {% for error in form.payment.errors %}
 
              <p class="help-block">{{ error }}</p>
 
            {% endfor %}
 
          </div>
 
        {% endif %}
 
      </div>
 
      <div class="form-group">
 
        <div class="col-lg-offset-2 col-lg-10">
 
          {{ form.submit(class_='btn btn-enn') }}
 
        </div>
 
      </div>
 
    </form>
 
  </div>
 
  <div class="col-md-4">
 
  <div class="col-sm-12 col-md-5">
 
    <h3>More information</h3>
 
    <p>You want to know more about our work?</p>
 
    <p>Our <a href="//wiki.enn.lu/doku.php?id=user:kahpa">bridge operator</a> will give you further information about the project.</p>
 
    <p><strong>Get in touch:</strong> <abbr title="E-Mail"><span class="glyphicon glyphicon-envelope"></span></abbr> : <a href="mailto:bridges@enn.lu">bridges@enn.lu</a> <span class="glyphicon glyphicon-lock"></span> GPG: <a href="http://keyserver.cypherpunk.lu:11371/pks/lookup?op=get&search=0x3F917F479C5D0F3B">0x9C5D0F3B</a></p>
 
  </div>
 
{% endblock %}
ennstatus/templates/root/contact.html
Show inline comments
 
{# Ënnstatus
 
   Copyright (C) 2015  Dennis Fink
 

	
 
   This program is free software: you can redistribute it and/or modify
 
   it under the terms of the GNU 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 General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Contact" %}
 

	
 
{% block content %}
 
  <div class="col-md-4">
 
  <div class="col-sm-12 col-md-4">
 
    <img src="{{ url_for('static', filename='images/Contact.png') }}" class="img-responsive img-rounded center-block" alt="WhoIs" width="160"></img>
 
    <div class="text-center">
 
      <h2>Contact</h2>
 
    </div>
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-sm-12 col-md-8">
 
    <h2>General</h2>
 
    <p>Please mail all general inquiries to:</p>
 
    <address>
 
      <strong>Frënn vun der Ënn, ASBL</strong><br>
 
        {{ config['ENNSTATUS_ADDRESS_CO'] }}<br>
 
        {{ config['ENNSTATUS_HOUSE_NAME'] }}<br>
 
        {{ config['ENNSTATUS_STREET'] }}<br>
 
        {{ config['ENNSTATUS_POSTAL_CODE'] }}, {{ config['ENNSTATUS_CITY'] }}<br>
 
        {{ config['ENNSTATUS_COUNTRY'] }}, {{ config['ENNSTATUS_CONTINENT'] }}
 
        <br>
 
      <abbr title="E-Mail"><span class="glyphicon glyphicon-envelope"></span></abbr> : <a href="mailto:info@enn.lu">info@enn.lu</a> <span class="glyphicon glyphicon-lock"></span> GPG: <a href="http://keyserver.cypherpunk.lu:11371/pks/lookup?search=info@enn.lu&op=vindex" target="_blank">0x02225522</a><br>
 
      <abbr title="Website"><span class="glyphicon glyphicon-cloud"></span></abbr> : <a href="//enn.lu/">enn.lu/</a> <strong>or</strong> <a href="//{{ config['ENNSTATUS_ONION_ADDRESS'] }}/" target="_blank">{{ config['ENNSTATUS_ONION_ADDRESS'] }}</a><br>
 
      <abbr title="Phone"><span class="glyphicon glyphicon-earphone"></span></abbr> : {{ config['ENNSTATUS_PHONE_NUMBER'] }}<br>
 
    </address>
 

	
 
    <h2>Abuse</h2>
 
    <p>For further details about abuse handling, have a look over <a href="{{ url_for('root.abuse') }}">here</a>.</p>
 
    <address>
 
      <abbr title="E-Mail"><span class="glyphicon glyphicon-envelope"></span></abbr> : <a href="mailto:abuse@enn.lu">abuse@enn.lu</a> <span class="glyphicon glyphicon-lock"></span> GPG: <a href="http://keyserver.cypherpunk.lu:11371/pks/lookup?search=info@enn.lu&op=vindex" target="_blank">0x02225522</a><br>
 
      <abbr title="Phone"><span class="glyphicon glyphicon-earphone"></span></abbr> : </strong>{{ config['ENNSTATUS_PHONE_NUMBER'] }}<br>
 
    </address>
 

	
 
    <h2>Press</h2>
 
    <p>Press related inqueries should go to:</p>
 
    <address>
 
      <abbr title="E-Mail"><span class="glyphicon glyphicon-envelope"></span></abbr> : <a href="mailto:press@enn.lu">press@enn.lu</a> <span class="glyphicon glyphicon-lock"></span> GPG: <a href="http://keyserver.cypherpunk.lu:11371/pks/lookup?search=info@enn.lu&op=vindex" target="_blank">0x02225522</a><br>
 
      <abbr title="Phone"><span class="glyphicon glyphicon-earphone"></span></abbr> : </strong>{{ config['ENNSTATUS_PHONE_NUMBER'] }}<br>
 
    </address>
 

	
 
  </div>
 
{% endblock %}
ennstatus/templates/root/ennstatus.html
Show inline comments
 
{# Ënnstatus
 
   Copyright (C) 2015  Dennis Fink
 

	
 
   This program is free software: you can redistribute it and/or modify
 
   it under the terms of the GNU 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 General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "About Ënnstatus" %}
 

	
 
{% block content %}
 
  <div class="col-md-offset-1 col-md-11">
 
  <div class="col-sm-12 col-md-offset-1 col-md-11">
 
    <h2>About Ënnstatus</h2>
 
    <div class="col-md-6">
 
    <div class="col-sm-12 col-md-6">
 
      <h3>API</h3>
 
      <p>We provide a <a href="http://json.org/">JSON</a> API for exporting the current status of our servers</p>
 
      <h4>Exporting all servers</h4>
 
      <p>Under the endpoint <a href="{{ url_for('api.export') }}">/api/export</a>, you can find an export of all our servers</p>
 
    </div>
 
    <div class="col-md-6">
 
    <div class="col-sm-12 col-md-6">
 
      <h3>Used libraries:</h3>
 
      <ul>
 
        <li><a href="http://flask.pocoo.org/">Flask</a></li>
 
        <li><a href="https://github.com/mbr/flask-bootstrap">Flask-Bootstrap</a></li>
 
        <li><a href="http://flask-httpauth.readthedocs.org/en/latest/">Flask-HTTPAuth</a></li>
 
        <li><a href="http://packages.python.org/Flask-Mail/">Flask-Mail</a></li>
 
        <li><a href="http://https://github.com/miguelgrinberg/flask-moment/">Flask-Moment</a></li>
 
        <li><a href="https://flask-wtf.readthedocs.org/en/latest/">Flask-WTF</a></li>
 
        <li><a href="https://pypi.python.org/pypi/pygeoip/">pygeoip</a></li>
 
        <li><a href="https://pypi.python.org/pypi/jsonschema/">jsonschema</a></li>
 
        <li><a href="https://pypi.python.org/pypi/strict-rfc3339">strict-rfc3339</a></li>
 
        <li><a href="http://docs.python-requests.org/en/latest/">requests</a></li>
 
        <li><a href="https://github.com/isislovecruft/python-gnupg">python-gnupg</a></li>
 
        <li><a href="http://click.pocoo.org/">click</a></li>
 
        <li><a href="http://babel.pocoo.org/">Babel</a></li>
 
        <li><a href="http://videojs.com/">video.js</a></li>
 
      </ul>
 
      <p>Flag icons provided by: <a href="http://www.famfamfam.com/lab/icons/flags/">famfamfam</a></p>
 
      <p>Other icons provided by: <a href="http://glyphicons.com/">Glyphicons</a></p>
 
      <p>Fork us on <a href="https://bitbucket.org/fvde/ennstatus-relaunched">Bitbucket</a></p>
 
    </div>
 
  </div>
 
{% endblock %}
ennstatus/templates/root/index.html
Show inline comments
 
@@ -4,103 +4,101 @@
 
   This program is free software: you can redistribute it and/or modify
 
   it under the terms of the GNU 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 General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Index" %}
 

	
 
{% block styles %}
 
  {{ super() }}
 
  <link rel="stylesheet" href="{{ url_for('static', filename='js/video.js/dist/video-js.min.css') }}">
 
{% endblock %}
 

	
 
{% block content %}
 
  <div class="col-md-4">
 
    <img class="img-rounded center-block" alt="FVDE_Logo" src="{{ url_for('static', filename='images/logo/FVDE_logo_resize.png') }}"></img>
 
  <div class="col-xs-12 col-sm-6 col-md-4">
 
    <img class="img-responsive img-rounded center-block" alt="FVDE_Logo" src="{{ url_for('static', filename='images/logo/FVDE_logo_resize.png') }}"></img>
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-xs-12 col-sm-6 col-md-8">
 
    <div class="jumbotron">
 
      <h2>Frënn vun der Ënn A.S.B.L.</h2>
 
	    <p><em>Luxembourg based non-profit organization defending civil rights on the internet.</em></p>
 
      <p>We provide high-bandwidth Tor nodes all over the world to protect <strong>online privacy</strong>, <strong>anonymity</strong>, <strong>freedom of speech</strong> and fight <strong>censorship</strong>!
 
      </p>
 
      <span class="highlighted-label"><a href="{{ url_for('root.member') }}"><span class="label label-success">Become a Member</span></a></span>
 
      <span class="highlighted-label"><a href="{{ url_for('donate.index') }}"><span class="label label-primary">Donate</span></a></span>
 
      <span class="highlighted-label pull-right"><a href="https://twitter.com/FrennVunDerEnn" target="blank"><span class="label label-info">@FrennVunDerEnn</span></a></span>
 
    </div>
 
  </div>
 
  <div class="col-md-1">
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-sm-12 col-md-offset-1 col-md-8">
 
    <blockquote>
 
      <p>
 
        <em>I support <abbr title="Frënn vun der Ënn a.s.b.l.">FVDE</abbr> because even small organizations can contribute to protect fundamental civil rights. This noble goal can be pursued by making use of technology and putting knowledge to the service of users who want to maintain their privacy.</em>
 
        <footer>Georges, Teacher</footer>
 
      </p>
 
    </blockquote>
 
  </div>
 
  <div class="col-md-3">
 
  <div class="col-sm-12 col-md-3">
 
    <blockquote>
 
      <a href="https://vimeo.com/160952562" target="blank"><h2 class="text-center">Privacy is the right to a free mind!</h2></a>
 
      <footer>Edward J. Snowden</footer>
 
    </blockquote>
 
  </div>
 
  <div class="col-md-6">
 
  <div class="col-sm-12 col-md-6">
 
    <div class="embed-responsive embed-responsive-16by9">
 
      <video id="tor-animation" width="560" height="315" controls preload="none" class="video-js vjs-default-skin vjs-big-play-centered embed-responsive-item" data-setup="">
 
        <source src="{{ url_for('static', filename='videos/Tor_Animation.webm') }}" type='video/webm' />
 
        <source src="{{ url_for('static', filename='videos/Tor_Animation.mp4') }}" type='video/mp4' />
 

	
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.de.vtt') }}" srclang="de" label="Deutsch">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.en.vtt') }}" srclang="en" label="English">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.fr.vtt') }}" srclang="fr" label="Français">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.ar.vtt') }}" srclang="ar" label="العربية">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.ca.vtt') }}" srclang="ca" label="Català">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.es.vtt') }}" srclang="es" label="Español">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.eu.vtt') }}" srclang="eu" label="Euskal">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.fa.vtt') }}" srclang="fa" label="فارسی">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.fi.vtt') }}" srclang="fi" label="Suomi">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.id.vtt') }}" srclang="id" label="Indonesian">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.it.vtt') }}" srclang="it" label="Italinao">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.lb.vtt') }}" srclang="lb" label="Lëtzebuergesch">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.lv.vtt') }}" srclang="lv" label="Latvijā">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.pl.vtt') }}" srclang="pl" label="Polskie">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.pt.vtt') }}" srclang="pt" label="Português">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.ru.vtt') }}" srclang="ru" label="русский">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.sq.vtt') }}" srclang="sq" label="Shqiptar">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.sv.vtt') }}" srclang="sv" label="Svenska">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.tl-PH.vtt') }}" srclang="tl-PH" label="Fillipino">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.zh-CN.vtt') }}" srclang="zh-CN" label="Chinese (China)">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.zh-HK.vtt') }}" srclang="zh-HK" label="Chinese (Hongkong)">
 
      </video>
 
    </div>
 
  </div>
 
  <div class="col-md-6">
 
  <div class="col-sm-12 col-md-6">
 
      <p class=lead>
 
        <br>
 
        Tor is free software and an open network that helps you defend against network surveillance and preserve your personal freedom and privacy on the Internet.
 
      </p>
 
      <p>
 
        By bouncing your communications around a distributed network of relays run by volunteers all around the world, it prevents somebody watching your Internet connection from learning what sites you visit, and it prevents the sites you visit from learning your physical location.
 
      </p>
 
      <span class="highlighted-label-big"><a href="http://torproject.lu" target="blank"><span class="label label-info">Learn more about Tor</span></a></span>
 
  </div>
 
{% endblock %}
 

	
 
{% block scripts %}
 
  {{ super() }}
 
  <script src="{{ url_for('static', filename='js/video.js/dist/video.min.js') }}"></script>
 
  <script>
 
    videojs.options.flash.swf = "{{ url_for('static', filename='js/video.js/dist/video-js.swf') }}"
 
  </script>
 
{% endblock %}
ennstatus/templates/root/member.html
Show inline comments
 
{# Ënnstatus
 
   Copyright (C) 2015  Dennis Fink
 

	
 
   This program is free software: you can redistribute it and/or modify
 
   it under the terms of the GNU 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 General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Member" %}
 

	
 
{% block content %}
 
  <div class="col-md-4">
 
  <div class="col-sm-12 col-md-4">
 
    <img src="{{ url_for('static', filename='images/Partners.png') }}" class="img-responsive img-rounded center-block" alt="Partners" width="160"></img>
 
    <div class="text-center">
 
      <h2>Join</h2>
 
    </div>
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-sm-12 col-md-8">
 
    <h2>Membership</h2>
 
    <p class="lead">Joining our organization has several advantages.</p>
 
    <p>As an active member you get to know the people behind <abbr title="Frënn vun der Enn a.s.b.l.">FVDE</abbr> and you can join us on our weekly meetings (online or AFK).
 
       You'll have the possibility to actively contribute to our projects,
 
       bring in new ideas, and eventually become a part of our core team.</p>
 

	
 
    <p>We are a dynamic group of people with different backgrounds and skills
 
       who constantly learn from each other. Most of us have a broader
 
       knowledge in Tor, network security and FOSS in general,
 
       but our activities aren't limited to technical questions alone.
 
       Regularly we meet to discuss political or philosophical questions or
 
       just have a convivial evening.</p>
 

	
 
    <p>Protecting civil liberties and human rights (such as privacy, freedom of
 
       speech, free access to information,...) is our common conviction!</p>
 

	
 
    <p>If you share our goals and are eager to socialize with like-minded
 
       people, then: Stand up for a free internet! Join us today!</p>
 

	
 
    <h3>How to become a member</h3>
 
    <p>Becoming a member is very simple. Just follow these steps:</p>
 
    <table class="table table-bordered">
 
      <thead>
 
        <tr class="info">
ennstatus/templates/root/mirrors.html
Show inline comments
 
@@ -7,45 +7,45 @@
 
   (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 General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Partners" %}
 

	
 
{% if '.onion' in request.url_root %}
 
  {% set globe_url = config['ENNSTATUS_GLOBE_ONION_ADDRESS'] %}
 
{% elif '.bit' in request.url_root %}
 
  {% set globe_url = config['ENNSTATUS_GLOBE_BIT_ADDRESS'] %}
 
{% else %}
 
  {% set globe_url = "globe.enn.lu" %}
 
{% endif %}
 

	
 
{% block content %}
 
  <div class="col-md-4">
 
  <div class="col-md-4 visible-md visible-lg">
 
    <img src="{{ url_for('static', filename='images/Services.png') }}" class="img-responsive img-rounded center-block" alt="Partners" width="160"></img>
 
    <div class="text-center">
 
      <h2>Mirrors</h2>
 
    </div>
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-sm-12 col-md-8">
 
    <h2>Mirrors</h2>
 
    <p class="lead">In addition to our Tor relays we are providing mirrors for some popular services.</p>
 
    <dl>
 
      <dt><a href="http://torproject.lu" target="_blank">torproject.lu</a></dt>
 
      <dd>This is a mirror of the the Tor Project's main website torproject.org</dd>
 
      <br>
 
      <dt><a href="http://tails.c3l.lu/" target="_blank">tails.enn.lu</a></dt>
 
      <dd>A Tails Download mirror. Tails is a live operating system, that you can start on almost any computer from a DVD, USB stick, or SD card. It aims at preserving your privacy and anonymity. <a href="https://tails.boum.org/" target="blank">Learn more about Tails</a></dd>
 
      <br>
 
      <dt><a href="//{{ globe_url }}" target="_blank">globe.enn.lu</a></dt>
 
      <dd>Globe is a Tor relay and bridge explorer.</dd>
 
    </dl>
 
  </div>
 
{% endblock %}
ennstatus/templates/root/partners.html
Show inline comments
 
{# Ënnstatus
 
   Copyright (C) 2015  Dennis Fink
 

	
 
   This program is free software: you can redistribute it and/or modify
 
   it under the terms of the GNU 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 General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Partners" %}
 

	
 
{% block content %}
 
  <div class="col-md-4">
 
  <div class="col-md-4 visible-md visible-lg">
 
    <img src="{{ url_for('static', filename='images/Partners.png') }}" class="img-responsive img-rounded center-block" alt="Partners" width="160"></img>
 
    <div class="text-center">
 
      <h2>Partners</h2>
 
    </div>
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-sm-12 col-md-8">
 
    <h2>Partners</h2>
 
    <p class="lead">We are constantly looking for new partners who want join us in our endevaour for a free Internet. At the moment we are beeing supported by the following organizations:</p>
 
    <dl>
 
      <dt><a href="https://edri.org" target="_blank"><img src="/static/images/partners/edri_logo_web.png" /></a>  &nbsp; <a href="http://c3l.lu/" target="_blank"><img src="/static/images/partners/logo-c3l.png" height="150" /></a> </td>
 
      <dt><a href="https://torservers.net/" target="_blank"><img src="/static/images/partners/torservers.png" /></a>  &nbsp; <a href="http://piratepartei.lu/" target="_blank"><img src="/static/images/partners/Logo-Piratepartei2014.png" height="150" /></a></dt>
 
    </dl>
 
    <div class="row">
 
      <div class="col-xs-12 col-sm-6 col-md-4">
 
        <a href="https://edri.org" target="_blank"><img src="{{ url_for('static', filename='images/partners/edri_logo_web.png') }}" alt="European Digital Rights" class="img-responsive center-block"></img></a>
 
      </div>
 
      <div class="col-xs-12 col-sm-6 col-md-4">
 
        <a href="http://c3l.lu" target="_blank"><img src="{{ url_for('static', filename='images/partners/logo-c3l.png') }}" alt="Chaos Computer Club Lëtzebuerg" class="img-responsive center-block"></img></a>
 
      </div>
 
       <div class="col-xs-12 col-sm-6 col-md-4">
 
        <a href="https://torservers.net" target="_blank"><img src="{{ url_for('static', filename='images/partners/torservers.png') }}" alt="Zwiebelfreunde eV" class="img-responsive center-block"></img></a>
 
      </div>
 
     <div class="col-xs-12 col-sm-6 col-md-4">
 
        <a href="https://piratepartei.lu" target="_blank"><img src="{{ url_for('static', filename='images/partners/Logo-Piratepartei2014.png') }}" alt="Pirate Partei" class="img-responsive center-block"></img></a>
 
     </div>
 
     <div class="col-xs-12 col-sm-6 col-md-4">
 
       <a href="https://flokinet.is/" target="_blank"><img src="{{ url_for('static', filename='images/partners/flokinet.png') }}" alt="FlokiNET" class="img-responsive center-block"></img></a>
 
     </div>
 
    </div>
 
    <h3>Becoming a Partner?</h3>
 
    <p>We'd be glad to see you or your organization/company as our partner. If you are interested in supporting us by one of the following means, don't hesitate to <a href="{{ url_for('root.contact') }}">contact</a> us.
 
       <ul>
 
         <li>Traditional donations to run Tor exit nodes</li>
 
         <li>Sponsoring Servers, Bandwidth or equipment</li>
 
         <li>Helping us to spread the word about Tor and Internet privacy</li>
 
       </ul>
 
    </p>
 
  </div>
 
{% endblock %}
requirements.txt
Show inline comments
 
#
 
# This file is autogenerated by pip-compile
 
# Make changes in requirements.in, then run this to update:
 
#
 
#    pip-compile requirements.in
 
#
 
Babel==2.2.0
 
blinker==1.4              # via flask-mail
 
click==6.3
 
dominate==2.1.17          # via flask-bootstrap
 
Flask-Bootstrap==3.3.5.7
 
Flask-HTTPAuth==2.7.2
 
click==6.7
 
dominate==2.3.1           # via flask-bootstrap
 
Flask-Bootstrap==3.3.7.1
 
Flask-HTTPAuth==3.2.3
 
Flask-Mail==0.9.1
 
Flask-Moment==0.5.1
 
Flask-WTF==0.12
 
Flask==0.10.1             # via flask-bootstrap, flask-httpauth, flask-mail, flask-moment, flask-wtf
 
Flask-Moment==0.5.2
 
Flask-WTF==0.14.2
 
Flask==0.12.2             # via flask-bootstrap, flask-httpauth, flask-mail, flask-moment, flask-wtf
 
itsdangerous==0.24        # via flask
 
Jinja2==2.8               # via flask
 
Jinja2==2.9.6             # via flask
 
jsonschema==2.5.1
 
MarkupSafe==0.23          # via jinja2
 
MarkupSafe==1.0           # via jinja2
 
onionpy==0.3.2
 
pygeoip==0.3.2
 
python-gnupg==0.3.8
 
pytz==2015.7              # via babel
 
requests==2.9.1           # via onionpy
 
strict-rfc3339==0.6
 
visitor==0.1.2            # via flask-bootstrap
 
Werkzeug==0.11.4          # via flask, flask-wtf
 
strict-rfc3339==0.7
 
visitor==0.1.3            # via flask-bootstrap
 
Werkzeug==0.12.2          # via flask, flask-wtf
 
WTForms==2.1              # via flask-wtf
setup.py
Show inline comments
 
from setuptools import setup, find_packages
 

	
 

	
 
def _get_requirements():
 

	
 
    with open('requirements.in', encoding='utf-8') as f:
 
    with open('requirements.txt', encoding='utf-8') as f:
 
        lines = f.readlines()
 

	
 
    lines = [line[:-1] for line in lines if not line.startswith('#')]
 
    return lines
 

	
 

	
 
setup(name='Ennstatus',
 
      version='5.6.5',
 
      version='5.7.1-dev',
 
      description=('Ennstatus provides the user with vital information about '
 
                   'the status of the organizations Tor servers.'),
 
      author='Frënn vun der Ënn',
 
      author_email='info@enn.lu',
 
      url='https://bitbucket.org/fvde/ennstatus',
 
      license='GPLv3+',
 
      packages=find_packages(),
 
      install_requires=_get_requirements(),
 
      include_package_data=True,
 
      entry_points={
 
          'console_scripts': [
 
              'ennstatuscli = ennstatus.cli:cli',
 
          ]
 
      },
 
      classifiers=['Development Status :: 5 - Production/Stable',
 
                   'Environment :: Web Environment',
 
                   'Operating System :: POSIX',
 
                   'Programming Language :: Python',
 
                   'Programming Language :: Python :: 3',
 
                   'Programming Language :: Python :: 3.3',
 
                   'Topic :: Internet',
 
                   'Topic :: Internet :: WWW/HTTP',
 
                   'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
 
                   'Topic :: Internet :: WWW/HTTP :: WSGI',
0 comments (0 inline, 0 general)