fetchphones.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import os
  2. import yaml
  3. from django.conf import settings
  4. from django.core.management.base import BaseCommand, CommandError
  5. from suitablephones.models import Bluetooth, Camera, Device
  6. class Command(BaseCommand):
  7. help = 'Closes the specified poll for voting'
  8. def add_arguments(self, parser):
  9. parser.add_argument('poll_ids', nargs='+', type=int)
  10. def handle(self, *args, **options):
  11. Device.objects.all().delete()
  12. Bluetooth.objects.all().delete()
  13. Camera.objects.all().delete()
  14. for filename in os.listdir(settings.LINEAGEWIKI + "/_data/devices/"):
  15. with open(filename, "r") as stream:
  16. try:
  17. data = yaml.safe_load(stream)
  18. dev = Device()
  19. for key, value in data.items():
  20. if key == "cameras":
  21. cam = Camera.objects.filter(*value.items())
  22. if not cam.exists():
  23. cam = Camera()
  24. for subkey, subvalue in value.items():
  25. cam
  26. for subkey in value.items():
  27. setattr(cam, subkey, subvalue)
  28. else:
  29. setattr(dev, key, value)
  30. dev.save()
  31. except yaml.YAMLError as exc:
  32. print(exc)