HEX
Server: Apache/2.4.63 (Unix)
System: Linux Synopilou92 4.4.302+ #72806 SMP Mon Jul 21 23:16:00 CST 2025 x86_64
User: pilou92 (1026)
PHP: 8.0.30
Disabled: NONE
Upload Files
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))