Esempio n. 1
0
def move_ansi_enabled(migrator):
    migrate.migrate(migrator.add_column("certificate", "ansi_enabled", BooleanField(default=False)))

    for user in User.select():
        for cert in user.certificates:
            cert.ansi_enabled = user.ansi_enabled
            cert.save()
Esempio n. 2
0
def migrate_certificates(migrator):
    users = list(User.select())

    active_users = {}
    for user in users:
        active_users.setdefault(user.username, user)
        watered_at = active_users[user.username].plant.watered_at
        if user.plant.watered_at > watered_at:
            active_users[user.username] = user

    for user in users:
        active_user = active_users[user.username]
        Certificate.create(
            user=active_user,
            authorised=not user.user_id.endswith("="),
            fingerprint=user.user_id,
            cn=user.username,
        )
        if user == active_user:
            user.user_id = gen_user_id()
            user.save()
        else:
            user.delete_instance()
Esempio n. 3
0
def add_item_paperclip(migrator):
    for user in User.select():
        ItemSlot.get_or_create(user=user, item_id=items.paperclip.item_id, defaults={"quantity": 1})
Esempio n. 4
0
def add_item_fertilizer(migrator):
    for user in User.select():
        ItemSlot.get_or_create(
            user=user, item_id=items.fertilizer.item_id, defaults={"quantity": 5}
        )
Esempio n. 5
0
import argparse
import typing

from astrobotany import items, settings
from astrobotany.models import Inbox, User, init_db

parser = argparse.ArgumentParser()
parser.add_argument("filename")
parser.add_argument("user_from")
parser.add_argument("--item")
parser.add_argument("--db", default=settings.db)
args = parser.parse_args()

init_db(args.db)

user_from = User.select().where(User.username == args.user_from)
users = User.select()

subject, body = Inbox.load_mail_file(args.filename)

item_id: typing.Optional[int]

if args.item:
    item = items.search(args.item)
    if not item:
        raise ValueError(f"Item not found: {args.item}")
    item_id = item.item_id
else:
    item_id = None

for user in users: