File: /volume1/@appstore/SynologyPhotos/migration/python/dump_photo_user_in_log.py
#!/usr/bin/env python3
import json
import sys
import pg8000
def init_cursor():
user = "postgres"
unix_sock = "/var/run/postgresql/.s.PGSQL.5432"
database = "photo"
conn = pg8000.connect(user, unix_sock=unix_sock, database=database)
cursor = conn.cursor()
cursor.execute("SET CLIENT_ENCODING TO 'UTF8'")
return cursor
def get_users(cursor):
cursor.execute(
"""
SELECT DISTINCT(photo_log.user)
FROM photo_log
"""
)
users = set()
for [name] in cursor:
users.add(name)
# convert back to list to be JSON serializable
return list(users)
def main():
cursor = init_cursor()
result = {}
result["usernames"] = get_users(cursor)
return result
if __name__ == "__main__":
result = main()
if len(sys.argv) >= 2:
path = sys.argv[1]
json.dump(result, open(path, "w"))
else:
print(json.dumps(result))