diff --git a/scripts/csv2users.py b/scripts/csv2users.py new file mode 100755 index 0000000..44df2cc --- /dev/null +++ b/scripts/csv2users.py @@ -0,0 +1,47 @@ +#!/usr/bin/python3 + +import os +import sys +sys.path.insert(0, os.path.abspath(os.path.dirname(__file__) + '/' + '..')) + +from ffmap.mysqltools import FreifunkMySQL + +import pymongo +from bson.json_util import dumps as bson2json +from bson.objectid import ObjectId +import base64 +import datetime + +import csv + +targetfile = "/data/fff/users.txt" + +mysql = FreifunkMySQL() +data = [] +with open(targetfile, newline='') as csvfile: + spamreader = csv.reader(csvfile, delimiter=';') + for row in spamreader: + if row[5]=="None": + row[5]=None + if row[1]=="None": + row[1]=None + if row[1]=="None": + row[1]=None + if row[2]=="None": + row[2]=None + if row[3]=="None": + row[3]=None + if row[4]=="True": + row[4]=1 + else: + row[4]=0 + row[3] = datetime.datetime.strptime(''.join(row[3].rsplit(':', 1)),"%Y-%m-%d %H:%M:%S.%f%z").strftime('%Y-%m-%d %H:%M:%S') + + data.append((row[0],row[5],row[1],row[2],row[3],row[4],)) + +mysql.executemany(""" + INSERT INTO users (nickname, password, token, email, created, admin) + VALUES (%s, %s, %s, %s, %s, %s) +""",data) +mysql.commit() +mysql.close() diff --git a/scripts/users2csv.py b/scripts/users2csv.py new file mode 100755 index 0000000..0702127 --- /dev/null +++ b/scripts/users2csv.py @@ -0,0 +1,23 @@ +#!/usr/bin/python3 + +import os +import sys +sys.path.insert(0, os.path.abspath(os.path.dirname(__file__) + '/' + '..')) + +from pymongo import MongoClient +from bson.json_util import dumps as bson2json +from bson.objectid import ObjectId +import base64 +import datetime + +targetfile = "/data/fff/users.txt" + +client = MongoClient(tz_aware=True, connect=False) +db = client.freifunk + +users = db.users.find({}, {"nickname": 1, "password":1, "email": 1, "token": 1, "created": 1, "admin": 1}) + +with open(targetfile, "wb") as csv: + for u in users: + str = "%s;%s;%s;%s;%s;%s\n" % (u.get("nickname"),u.get("token"),u.get("email",""),u.get("created"),u.get("admin",0),u.get("password")) + csv.write(str.encode("UTF-8"))