Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ffbs/ffbs-website
  • darkbit/ffbs-website
2 results
Show changes
Commits on Source (216)
Showing
with 125 additions and 624 deletions
*_bak
*DS_Store
# ignoring from *.template generated files
anleitung-backbone.html
anleitung-business.html
anleitung-starter.html
brunswifi.html
eintragen.html
event.html
faq.html
impressum.html
index.html
irc.html
karte.html
kontakt.html
plot.html
willkommen.html
*_bak
*DS_Store
build:
stage: build
image: python:3.9
tags:
- docker
script:
- cd flamingo
- echo $CI_COMMIT_REF_SLUG > REF_SLUG
- make html
artifacts:
paths:
- flamingo/output
- contact
expire_in: 1 week
deployment:
stage: deploy
tags:
- ffbs-deploy-frido
only:
refs:
- master
- /^testbed/i
variables:
- $CI_PROJECT_PATH == "ffbs/ffbs-website"
script:
- rm -r /var/www/website/$CI_COMMIT_REF_SLUG/*
- cp -r flamingo/output /var/www/website/$CI_COMMIT_REF_SLUG/htdocs
- cp -r contact /var/www/website/$CI_COMMIT_REF_SLUG/contact
- chmod go+r -R /var/www/website/$CI_COMMIT_REF_SLUG/*
This website is licensed unter CC0:
https://creativecommons.org/publicdomain/zero/1.0/deed.de
By contributing to this repository you agree to license your
work the same license.
<!DOCTYPE html>
<html lang="de">
{{head}}
<body>
{{nav}}
<div class="container">
hier anleitung schreiben
</div>
{{footer}}
</body>
<!DOCTYPE html>
<html lang="de">
{{head}}
<body>
{{nav}}
<div class="container">
<div class="page-header">
<h1>TP-Link WDR4300</h1>
</div>
<div class="row">
<div class="col-lg-12 col-sm-12">
<p>
Du möchtest viele Clients bedienen, betreibst ein Cafe, eine Bar oder ähnliches? Es gibt in deiner Umgebung sehr viele WLAN Netze?<br>
Dann kommst du mit dem Einsteiger Modell für Freifunk Braunschweig schnell an technische Grenzen. Hier bietet es sich an einen größeren Router für Freifunk zu nutzten. Dieser kann zum einen mehr Clients bedienen aber auch auf 2 verschiedenen Frequenzen funken. Zum einen im viel genutzten 2,4GHz Band aber auch im noch wenig genutzten und größeren 5GHz Band. <br>
Hier eignen sich die Modelle TP-Link WDR3500, WDR3600 oder WDR4300 am besten.<br>
Diese Anleitung ist für das Modell TP-Link WDR4300. Die Einrichtung der anderen Geräte unterscheidet sich jedoch nicht hiervon. <br>
Um diesen Router für Freifunk zu verwenden musst ihn erst mit der Freifunk <a href="https://firmware.freifunk-bs.de">Firmware</a> versehen. Wähle dazu &quot;Stabile Version&quot; und suche links nach &quot;tp-link-tl-wdr4300-nd&quot; bzw. deinm Router Modell</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/firmware.jpg" alt="firmware.freifunk-bs.de">
</div>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/fw4300.png" alt="tp-link-tl-wdr4300">
</div>
<p>Hier musst du nun die zu deinem Router passende Version auswählen und herunter laden. Die Version deines Routers findest du auf der Unterseite deines Routers.</p>
<div class="col-md-12 panel licensed-image">
<img class="img-responsive center-block" src="assets/images/version4300.jpg" height="271" alt="Version">
<div class="license">
<p class="license-inner">CC-BY-SA 3.0 fototeddy</p>
</div>
</div>
<p>Starte nun deinen Router und verbinde ihn mit deinem PC. Unter <a href="http://192.168.0.1">192.168.0.1</a> kannst du dich auf deinem Router einloggen (Benutzername: admin Passwort: admin). Hier wählst du links unter &quot;System Tools&quot; und dann &quot;Firmware Upgrade&quot; aus.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/sysupgrade.png" width="182" height="292" alt="TP-Link System Upgrade">
</div>
<p>Jetzt nur noch die Firmwaredatei auswählen und das Upgrade starten.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/upgrade4300.png" width="634" height="203" alt="Upgrade Button">
</div>
<p>Dein Router installiert nun die Freifunk Firmware und startet danach automatisch neu.<br>
Beim ersten Start mit der Freifunk Firmware lädt dein Router einen Konfigurationsmodus. Dein Router ist nun wieder unter <a href="http://192.168.1.1">192.168.1.1</a> zu erreichen.<br>
In der Weboberfläche kannst du deinem Freifunk Router einen Namen geben.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffname.png" width="873" height="386" alt="LuCi Knotenname">
</div>
<p>Wenn du deine Internetverbindung per Freifunk teilen möchtest, muss du hier einen Haken setzen. Du kannst auch festlegen wieviel Bandbreit für Freifunk zur Verfügung steht.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffshare.png" width="873" height="448" alt="LuCi Share">
</div>
<p>Wenn dein Freifunk Router auf der Karte erscheinen soll. Musst du hier deine <a href="http://gpso.de/maps/">Koordinaten</a> eintragen.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffkoord.png" width="873" height="368" alt="LuCi Map">
</div>
<p>Abschließen trägts du noch eine Kontakt E-Mail Adresse ein und klickst auf &quot;Speichern &amp; Neustarten&quot;.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffmail.png" width="873" height="322" alt="LuCi Mail">
</div>
<p>Verbinde nun den blauen WAN Port des Routers mit deinem Internetrouter und genieße braunschweig.freifunk.net<br>
Nun siehst du zum einen das &quot;braunschweig.freifunk.net&quot; Netz aber auch das &quot;braunschweig.freifunk.net (5GHz)&quot; Netz.</p>
<div class="col-md-5 panel licensed-image">
<img class="img-responsive center-block" src="assets/images/wan4300.jpg" alt="WAN">
<div class="license">
<p class="license-inner">CC-BY-SA 3.0 fototeddy</p>
</div>
</div>
<div class="col-md-5 panel">
<img class="img-responsive center-block" src="assets/images/ssid5ghz.png" alt="FF ssid">
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-sm-12">
<p>
Am besten stellst du deinen Freifunk Router nun noch so auf, dass er möglichst gut von anderen erreicht werden kann. </p>
<div class="col-md-12 panel licensed-image">
<img class="img-responsive center-block" src="assets/images/fenster.jpg" alt="FFfenster">
<div class="license">
<p class="license-inner">CC-BY-SA 3.0 fototeddy</p>
</div>
</div>
</div>
</div>
</div>
{{footer}}
</body>
<!DOCTYPE html>
<html lang="de">
{{head}}
<body>
{{nav}}
<div class="container">
<div class="page-header">
<h1>TP-Link WR841N(D)</h1>
</div>
<div class="row">
<div class="col-lg-12 col-sm-12">
<p>Eine einfache Variante bei dem Freifunk Projekt mitzumachen ist die Anschaffung eines TP-Link-Routers mit der Bezeichnung TL-WR841N oder TL-WR841ND. Diese Geräte können kostengünstig bei Online-Versandhändlern, wie beispielsweise Amazon.com, bestellt werden. Die beiden Modelle unterscheiden sich in der Möglichkeit die Antennen zu ändern. Das Modell TL-WR841N hat 2 feste Antennen, beim Modell TL-WR841ND sind die Antennen abschraubbar was eine Montage von z.B. Outdoor-Antennen ermöglicht.<br><br>
Für einen Betrieb im Freifunk-Netz muss in einem ersten Schritt die <a href="https://firmware.freifunk-bs.de">Freifunk-Firmware</a> auf dem Router installiert werden. Wähle dazu &quot;Stabile Version&quot; und suche in der linken Spalte nach &quot;tp-link-tl-wr841n-nd&quot;</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/firmware.jpg" alt="firmware.freifunk-bs.de">
</div>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/fw841.jpg" alt="tp-link-tl-wr841n-nd">
</div>
<p>Hier musst du nun die zu deinem Router passende Version auswählen und herunterladen. Die Version deines Routers findest du auf der Unterseite des Geräts.</p>
<div class="col-md-12 panel licensed-image">
<img class="img-responsive center-block" src="assets/images/version.jpg" height="271" alt="Version">
<div class="license">
<p class="license-inner">CC-BY-SA 3.0 fototeddy</p>
</div>
</div>
<p>Starte nun deinen Router und verbinde ihn mit deinem PC. Unter <a href="http://192.168.0.1">192.168.0.1</a> kannst du dich auf deinem Router einloggen (Benutzername: admin Passwort: admin). Hier wählst du links unter &quot;System Tools&quot; und dann &quot;Firmware Upgrade&quot; aus.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/sysupgrade.png" width="182" height="292" alt="TP-Link System Upgrade">
</div>
<p>Jetzt nur noch die Firmwaredatei auswählen und das Upgrade starten.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/upgrade.png" width="634" height="203" alt="Upgrade Button">
</div>
<p>Dein Router installiert nun die Freifunk-Firmware und startet danach automatisch neu.<br>
Beim ersten Start mit der Freifunk-Firmware lädt dein Router einen Konfigurationsmodus, der nun unter <a href="http://192.168.1.1">192.168.1.1</a> zu erreichen ist.<br>
In der Weboberfläche kannst du deinem Freifunk-Router einen Namen geben.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffname.png" width="873" height="386" alt="LuCi Knotenname">
</div>
<p>Wenn du deine Internetverbindung per Freifunk teilen möchtest, muss du hier einen Haken setzen. Du kannst auch festlegen wieviel Bandbreit für Freifunk zur Verfügung steht.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffshare.png" width="873" height="448" alt="LuCi Share">
</div>
<p>Wenn dein Freifunk-Router auf der Karte erscheinen soll musst du hier deine <a href="http://gpso.de/maps/">Koordinaten</a> eintragen.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffkoord.png" width="873" height="368" alt="LuCi Map">
</div>
<p>Abschließen trägts du noch eine Kontakt E-Mail-Adresse ein und klickst auf &quot;Speichern &amp; Neustarten&quot;.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffmail.png" width="873" height="322" alt="LuCi Mail">
</div>
<p>Verbinde nun den blauen WAN Port des Routers mit deinem Internetrouter und genieße braunschweig.freifunk.net</p>
<div class="col-md-5 panel licensed-image">
<img class="img-responsive center-block" src="assets/images/wan.jpg" alt="WAN">
<div class="license">
<p class="license-inner">CC-BY-SA 3.0 fototeddy</p>
</div>
</div>
<div class="col-md-5 panel">
<img class="img-responsive center-block" src="assets/images/ssid.jpg" alt="FF ssid">
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-sm-12">
<p>Am besten stellst du deinen Freifunk-Router nun noch so auf, dass er möglichst gut von anderen erreicht werden kann. </p>
<div class="col-md-12 panel licensed-image">
<img class="img-responsive center-block" src="assets/images/fenster.jpg" alt="FFfenster">
<div class="license">
<p class="license-inner">CC-BY-SA 3.0 fototeddy</p>
</div>
</div>
</div>
</div>
</div>
{{footer}}
</body>
File deleted
assets/images/ffbs_anschliessen.png

619 KiB

assets/images/ffbs_router.png

651 KiB

<!DOCTYPE html>
<html lang="de">
{{head}}
<body>
{{nav}}
<!-- Navigation -->
<div class="container">
<div class="page-header">
<h1>Freifunk gefördert von der Stadt Braunschweig
<small>nach VO 18-08278</small>
</h1>
</div>
<div class="container">
<div class="row">
<div class="col-lg-12 col-sm-12">
<div class="panel panel-default">
<div class="panel-heading">Worum geht es?</div>
<div class="panel-body">
Freifunk Braunschweig betreibt seit vielen Jahren eine nichtkommerzielle Infrastruktur,
die einen niedrigschwelligen Zugang zum Internet an hunderten von Orten in und um Braunschweig herum ermöglicht.
Nachdem die Stadt Braunschweig Freifunk bereits im Jahr 2017 unterstützt hat, wurde im Rat beschlossen, diese Unterstützung fortzusetzen und im Rahmen des allgemeinen Ausbaus von freiem WLAN in der Stadt auszubauen.
Konkret hat sich aus der Planung entwickelt, die Förderung von Freifunk durch ein stufenweises Konzept umzusetzen.<br>
Stadtbezirksräte und ihre Mitglieder - Ortsansässige Vereine und Institutionen - Händler und Gewerbetreibende - Öffentliche Gebäude - Bürgerinnen und Bürger in den Stadtteilen
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row pricing-table">
<div class="col-xs-12 col-md-4">
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">
Stadt
</h3>
</div>
<div class="panel-body">
<div class="the-price">
<h1>
Bezirksräte
</h1>
<small><em>Sie sind Teil eines Bezirksrats?</em></small>
</div>
<table class="table">
<tr class="active">
<td>
Ermittelung von geeigneten orten durch den Bezirksrat
</td>
</tr>
<tr>
<td>
Prüfung der Rahmenbedingungen durch die Verwaltung der Stadt
</td>
</tr>
<tr>
<td>
Bereitstellung der Router durch Freifunk Braunschweig
</td>
</tr>
</table>
</div>
<div class="panel-footer">
Ausbau an attraktiven Plätzen in den jeweiligen Stadtbezirken
</div>
</div>
</div>
<div class="col-xs-12 col-md-4">
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">
Engagement
</h3>
</div>
<div class="panel-body">
<div class="the-price">
<h1>
Vereine
</h1>
<small><em>Dein Verein macht tolle Dinge</em></small>
</div>
<table class="table">
<tr class="active">
<td>
Wir stellen dir den Router und unterstützen dich in der Einrichung
</td>
</tr>
<tr>
<td>
blub
</td>
</tr>
</table>
</div>
<div class="panel-footer">
Vereine prägen das Leben in der Stadt Braunschweig
</div>
</div>
</div>
<div class="col-xs-12 col-md-4">
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">
Unternehmen
</h3>
</div>
<div class="panel-body">
<div class="the-price">
<h1>
Handel und Gewerbetreibende
</h1>
<small><em>Sie sind Händler/Unternehmer:</em></small>
</div>
<table class="table">
<tr class="active">
<td>
Unterstützung durch Freifunk Braunschweig
</td>
</tr>
<tr>
<td>
Eigene Beschaffung der benötigten Hardware
</td>
</tr>
</table>
</div>
<div class="panel-footer">
Flashen der Router bla
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="well text-center">
<b>Falls du Freifunk auf deiner Veranstaltung nutzen möchtest, kannst
du uns über <a href="/kontakt.html">Kontakt</a> kontaktieren. Wir
setzen uns dann mit dir in Verbindungen und klären alles Weitere.</b>
</div>
</div>
<!-- /.col-lg-12 -->
</div>
<hr>
</div>
<div class="col-xs-12 col-md-4">
</div>
</div>
</div>
</div>
{{footer}}
</body>
<!--
- bedingungen: ausgerichtet auf kulturell,
in der Region Braunschweig,
Veranstaltungen bis zu 1 Woche,
- fotos:
-->
#!/usr/bin/env python2
# coding=utf-8
import cgi
import cgitb
import re
import subprocess
cgitb.enable()
NAME_PATTERN = '^[a-zA-Z0-9-_\. äÄöÖüÜß]+$'
CODE_PATTERN = '^[a-zA-Z0-9]{64}$'
KEY_DIR='/home/kasalehlia/keys/'
KEY_SCRIPT = '/home/kasalehlia/bin/ffbs_keys'
GIT_DIR = '/home/kasalehlia/peers'
print "Content-Type: text/html;charset=utf-8"
print ""
form = cgi.FieldStorage()
try:
name = form['name'].value
code = form['code'].value
if re.match(NAME_PATTERN, name) and re.match(CODE_PATTERN, code) and name not in ['.','..']:
with open(KEY_DIR+'codes/'+code, 'r') as f:
validate = f.read()
if validate == name:
try:
print subprocess.check_output([KEY_SCRIPT, 'approve', name])
_ = subprocess.check_output(['/usr/bin/git', 'pull'], cwd=GIT_DIR)
_ = subprocess.check_output(['/usr/bin/git', 'add', 'peers/'+name], cwd=GIT_DIR)
_ = subprocess.check_output(['/usr/bin/git', 'commit', '-m', 'automated commit'], cwd=GIT_DIR)
_ = subprocess.check_output(['/usr/bin/git', 'push'], cwd=GIT_DIR)
except subprocess.CalledProcessError as e:
print e.output
else:
print "invalid request"
else:
print "invalid request"
except Exception as e:
print "Die Anfrage ist ungültig"
#!/usr/bin/env python2
# coding=utf-8
import cgi
import cgitb
import re
import smtplib
import uuid
import datetime
from email.mime.text import MIMEText
from subprocess import Popen, PIPE
cgitb.enable()
CONTACT_EMAIL_TO = 'kontakt@freifunk-bs.de'
EMAIL_REGEX = r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)"
print "Content-Type: text/html"
print ""
template = """<meta charset="utf-8">\n%s<br>\n<a href="/kontakt.html">zurück</a>"""
form = cgi.FieldStorage()
try:
email = form['email'].value
if not re.match(EMAIL_REGEX, email):
raise ValueError()
message = form['message'].value
captcha = form['captcha'].value
captcha = captcha.replace("'", "")
captcha = captcha.replace('"', "")
captcha = captcha.strip()
today = str(datetime.datetime.now().day)
if today == captcha:
msg = MIMEText(message, 'plain', 'utf-8')
msg['From'] = "kontakt@freifunk-bs.de"
msg['To'] = CONTACT_EMAIL_TO
msg['Subject'] = 'Kontaktanfrage von %s' % email
msg['Reply-To'] = ','.join([email,CONTACT_EMAIL_TO])
uuid = str(uuid.uuid4()) #get a random uuid
msg['Message-ID'] = '<'+uuid+'@freifunk-bs.de>'
p = Popen(["/usr/sbin/sendmail", "-t", "-oi", "-FKontaktformular"], stdin=PIPE)
p.communicate(msg.as_string())
print template % "Ihre Nachricht wurde entgegengenommen"
else:
msg = MIMEText(message, 'plain', 'utf-8')
msg['From'] = "kontakt@freifunk-bs.de"
msg['To'] = CONTACT_EMAIL_TO
msg['Subject'] = '[CAPTCHA]Kontaktanfrage von %s' % email
msg['Reply-To'] = ','.join([email,CONTACT_EMAIL_TO])
uuid = str(uuid.uuid4()) #get a random uuid
msg['Message-ID'] = '<'+uuid+'@freifunk-bs.de>'
msg['X-FFBS-CAPTCHA'] = "Failed: User tried: {}; I expected: {}".format(captcha, today)
p = Popen(["/usr/sbin/sendmail", "-t", "-oi", "-FKontaktformular"], stdin=PIPE)
p.communicate(msg.as_string())
print template % "Der Spamschutz wurde nicht erfolgreich ausgefüllt. Bitte versuchen Sie es erneut."
except Exception as e:
print template % "Die Anfrage ist ungültig"
#!/usr/bin/env python2
# coding=utf-8
import cgi
import cgitb
import re
import subprocess
cgitb.enable()
NAME_PATTERN = '^[a-zA-Z0-9-_\. äÄöÖüÜß]+$'
CODE_PATTERN = '^[a-zA-Z0-9]{64}$'
KEY_DIR='/home/kasalehlia/keys/'
KEY_SCRIPT = '/home/kasalehlia/bin/ffbs_keys'
print "Content-Type: text/html"
print ""
form = cgi.FieldStorage()
try:
name = form['name'].value
code = form['code'].value
if re.match(NAME_PATTERN, name) and re.match(CODE_PATTERN, code) and name not in ['.','..']:
with open(KEY_DIR+'codes/'+code, 'r') as f:
validate = f.read()
if validate == name:
try:
print subprocess.check_output([KEY_SCRIPT, 'deny', name])
except subprocess.CalledProcessError as e:
print e.output
else:
print "invalid request"
else:
print "invalid request"
except Exception as e:
print template % "Die Anfrage ist ungültig"
#!/usr/bin/env python2
# coding=utf-8
import cgi
import cgitb
import datetime
import json
SECRET = "ahqu2Choshi7sahDme8aePh4iegh8Wee"
print "Content-Type: text/html"
print ""
params = cgi.FieldStorage()
if 'secret' in params and params['secret'].value == SECRET:
info = dict()
info['updated'] = datetime.datetime.now().isoformat()
for i in xrange(100): # be prepared for many gateways
key = "gw"+str(i).zfill(2)
if key in params:
try:
info[key] = int(params[key].value)
except ValueError: # value is not a number
pass
print "accepted status for "+str(len(info))+" gateways"
with open('/home/kasalehlia/ffbs-website/gatewaystatus.json','w') as f:
json.dump(info, f)
else:
print "nothing to see here"
#!/usr/bin/env python2
# coding=utf-8
import cgi
import cgitb
import os
import random
import re
import smtplib
import string
import time
from email.mime.text import MIMEText
from subprocess import Popen, PIPE, check_output, CalledProcessError
cgitb.enable()
KEY_DIR='/home/kasalehlia/keys/'
CONTACT_FILE='/home/kasalehlia/contacts.txt'
KEY_PATTERN = r'# ([a-zA-Z0-9-_\. äÄöÖüÜß]+) ?#? ?([\S ]+)?\r?\n([0-9a-f]{64})$';
#KEY_PATTERN = r'# ([\w.- ]+) ?#? ?([\S ]+)?\r?\n([0-9a-f]{64})$';
EMAIL_FROM = 'keys@freifunk-bs.de'
EMAIL_TO = 'ffbs-admin@stratum0.org'
#EMAIL_TO = 'kasa@shakik.de'
EMAIL_TEXT = """Key approval request: {name} with key {key}.\n
To approve: http://www.freifunk-bs.de/approve_key?name={name}&code={code}\n
To deny: http://www.freifunk-bs.de/deny_key?name={name}&code={code}\n
\n`{quote}`"""
QUOTES = list(open('/home/kasalehlia/portal.quotes'))
print "Content-Type: application/json; charset=utf-8"
print ""
form = cgi.FieldStorage()
try:
inp = form['key'].value.strip()
contact = form.getfirst('contact','').strip()
match = re.match(KEY_PATTERN, inp)
if match:
name,_contact,key = match.groups()
name = name.strip()
if not contact:
contact = _contact
code = ''.join(random.choice(string.letters + string.digits) for _ in xrange(64))
if os.path.isfile(KEY_DIR+name):
print '{"success":false, "message":"Dieser Name oder dieser Schlüssel ist bereits eingetragen"}'
else:
try:
res = check_output(['/bin/grep','-r','--exclude-dir=codes',key,KEY_DIR])
except CalledProcessError as e:
res = e.output
if len(res):
print '{"success":false, "message":"Dieser Name oder dieser Schlüssel ist bereits eingetragen"}'
else:
with open(KEY_DIR+name,'w') as f:
f.write('key "%s";\n' % key)
with open(KEY_DIR+'/codes/'+code,'w') as f:
f.write(name)
with open(CONTACT_FILE, 'a') as f:
f.write('{},{},{},{}\n'.format(time.time(),key,name,contact))
#s = smtplib.SMTP('localhost')
if 'NOMAIL' not in name:
msg = MIMEText(EMAIL_TEXT.format(name=name.replace(' ', '%20'), key=key, code=code, quote=random.choice(QUOTES)[:-1]),'plain','utf-8')
msg['From'] = EMAIL_FROM
msg['To'] = EMAIL_TO
msg['Subject'] = 'Key approval request for %s' % name
#s.sendmail(EMAIL_FROM, [EMAIL_TO], msg.as_string())
#s.quit()
p = Popen(["/usr/sbin/sendmail", "-t", "-oi"], stdin=PIPE)
p.communicate(msg.as_string())
print '{"success":true, "message":"Dein Schlüssel wurde eingetragen, muss aber noch von einem Administrator bestätigt werden"}'
else:
print '{"success":true, "message":"debug input accepted"}'
else:
print '{"success":false, "message":"Die Eingabe ist fehlerhaft"}'
except Exception as e:
print '{"success":false, "message":"Die Eingabe ist fehlerhaft", "err":"'+repr(e)+'"}'
#raise e
aiohttp
#!/usr/bin/env python3
# coding=utf-8
from aiohttp import web
import asyncio
import re
import smtplib
import uuid
import datetime
from email.mime.text import MIMEText
from subprocess import Popen, PIPE
import logging
logging.basicConfig(level=logging.INFO)
CONTACT_EMAIL_TO = 'kontakt@freifunk-bs.de'
EMAIL_REGEX = r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)"
template = """
<html>
<head>
<meta charset="utf-8">
</head>
<body>
%s<br>
<a href="/kontakt.html">zurück</a>
</body>
</html>
"""
async def handle(req):
logging.debug('Got a new request:')
form = await req.post()
logging.debug(f'Form data: {form}')
try:
email = form['email']
if not re.match(EMAIL_REGEX, email):
raise ValueError()
message = form['message']
captcha = form['captcha']
captcha = captcha.replace("'", "")
captcha = captcha.replace('"', "")
captcha = captcha.strip()
today = str(datetime.datetime.now().day)
if today == captcha:
logging.info('CAPTCHA successfull')
msg = MIMEText(message, 'plain', 'utf-8')
msg['From'] = "kontakt@freifunk-bs.de"
msg['To'] = CONTACT_EMAIL_TO
msg['Subject'] = 'Kontaktanfrage von %s' % email
msg['Reply-To'] = ','.join([email,CONTACT_EMAIL_TO])
ruuid = str(uuid.uuid4()) #get a random uuid
msg['Message-ID'] = '<'+ruuid+'@freifunk-bs.de>'
p = Popen(["/usr/sbin/sendmail", "-t", "-oi", "-FKontaktformular"], stdin=PIPE)
p.communicate(msg.as_string().encode())
logging.info('Mail sent')
return web.Response(body = template % "Ihre Nachricht wurde entgegengenommen", content_type='text/html')
else:
logging.info('CAPTCHA NOT successfull')
return web.Response(body = template % "Der Spamschutz wurde nicht erfolgreich ausgefüllt. Bitte versuchen Sie es erneut.", content_type='text/html')
except Exception as e:
logging.exception('Request failed! Exception:')
return web.Response(body = template % "Die Anfrage ist ungültig", content_type='text/html')
app = web.Application()
app.add_routes([web.post('/contact', handle)])
if __name__ == '__main__':
web.run_app(app, host='0.0.0.0', port=7392)
# vim: expandtab:shiftwidth=4:softtabstop=4
[Unit]
Description=Provide our contact form backend
[Service]
Type=simple
Environment="PYTHONUNBUFFERED=1"
ExecStart=/var/www/website/venv/bin/python3 /var/www/website/master/contact/contact.py
Restart=always
RestartSec=60
StartLimitInterval=0
User=gitlab-runner
[Install]
WantedBy=multi-user.target
~
This diff is collapsed.