erster commit

This commit is contained in:
4ndr3 2016-01-17 13:48:21 +01:00
commit 669c9ff352
4 changed files with 157 additions and 0 deletions

6
.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
.DS_Store
fastdkeys
fastdkeys/*
ausserhalb/Nachricht.txt
ausserhalb/ausserhalb_hh.txt
!.gitignore

1
README.md Normal file
View file

@ -0,0 +1 @@
# Formularskripte

102
ausserhalb/a.py Executable file
View file

@ -0,0 +1,102 @@
#!/usr/bin/env python3
import os
import time
import smtplib
from email.mime.text import MIMEText
Pfad_Formulardaten = '/home/fastdform/fastdkeys/'
Knotenliste = "./ausserhalb_hh.txt"
Nachrichtdateiname = "./Nachricht.txt"
Betreff = "Wechsel zu ffnord, Pinneberg, Stormarn & Lauenburg"
Absender = 'kontakt@hamburg.freifunk.net'
Hat_schon_eine_Nachricht_bekommen = []
#Inhalt der Nachricht lesen
Nachrichtdatei = open(Nachrichtdateiname)
Nachricht = Nachrichtdatei.read()
Nachrichtdatei.close()
Adresse = ''
Ansprechpartner = ''
Knotenname = ''
Token = ''
Koordinaten = ''
def Knotendaten_lesen(Dateiname):
#Variblen zuruecksetzen
global Adresse
Adresse = ''
global Ansprechpartner
Ansprechpartner = ''
global Knotenname
Knotenname = ''
global Token
Token = ''
Koordinaten = ''
with open(Dateiname) as Datei:
#Datei Zeilweise einlesen
Zeilen = Datei.readlines()
for Zeile in Zeilen:
#Zeile in Wortliste aufspalten
Wortliste = Zeile.split()
if len(Wortliste) > 0:
if Wortliste[1] == 'Kontakt:':
Adresse = Wortliste[2]
elif Wortliste[1] == 'Knotenname:':
Knotenname = Wortliste[2]
elif Wortliste[1] == 'Ansprechpartner:':
Ansprechpartner = Wortliste[2:]
elif Wortliste[1] == 'Token:':
Token = Wortliste[2]
elif Wortliste[1] == 'Koordinaten:':
Koordinaten = Wortliste[2:]
Datei.close()
with open(Knotenliste) as Datei:
#Datei Zeilweise einlesen
Zeilen = Datei.readlines()
for Zeile in Zeilen:
#Den Zeilenumbruch '\n' abschneiden
Zeile=Zeile[0:len(Zeile)-1]
for Datei in os.listdir(Pfad_Formulardaten):
if Datei.startswith(Zeile.lower() + '@'):
Knotendaten_lesen(Pfad_Formulardaten + Datei)
Adresse = Adresse.lower()
#falsche Adressen aussortieren
if Adresse == "<falsche_adresse>":
print("Falsche Adresse für Knoten: "+Knotenname)
#Nur schicken, falls Adressat noch nichts bekommen hat
elif Adresse not in Hat_schon_eine_Nachricht_bekommen:
#In die Liste der bisherigen Adressaten aufnehmen
Hat_schon_eine_Nachricht_bekommen.append(Adresse)
#email zusammenbauen
email = MIMEText(Nachricht, 'plain', 'UTF-8')
email['Subject'] = Betreff
email['From'] = Absender
#email['To'] = Adresse
email['To'] = 'andre@hamburg.freifunk.net'
#mail server Nachricht verschicken lassen
s = smtplib.SMTP('localhost')
s.sendmail(Absender, email['To'], email.as_string())
s.quit()
#Adressat der letzten versendeten Nachricht ausgeben und 1s warten, um nicht auf spam-Listen zu landen
print(Adresse)
time.sleep(1)

View file

@ -0,0 +1,48 @@
#!/usr/bin/env python2
import os
import sys
import json
import shapely.geometry as s
if len(sys.argv) != 3:
print('usage: ' + sys.argv[0] + ' /path/to/config.json /path/to/peers')
sys.exit(1)
configFile = sys.argv[1]
peersDir = sys.argv[2]
config = json.loads(open(configFile).read())
gpsPoly = config['client']['otherCommunityInfo']['localCommunityPolygon']
poly = s.Polygon(map(lambda point: (point['lng'], point['lat']), gpsPoly))
for filename in os.listdir(peersDir):
if len(filename) == 0 or filename[0] == '.':
continue
absFilename = peersDir + '/' + filename
if os.path.isfile(absFilename):
peerFile = open(absFilename, 'r')
try:
peerLines = peerFile.readlines()
peer = {}
mac = None
for line in peerLines:
parts = line.split()
if len(parts) > 0:
if parts[1] == 'Knotenname:':
peer['name'] = parts[2].lower()
elif parts[1] == 'Koordinaten:' and len(parts) == 4:
peer['gps'] = s.Point((float(parts[3]), float(parts[2])))
if 'gps' in peer and not peer['gps'].within(poly):
print peer['name']
except Exception as e:
print('Error in %s, ignoring peer: %s' % (absFilename, e));
finally:
peerFile.close()