start.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. """
  2. CLI движок для Чиори, а также скрипт для запуска проекта.
  3. Author: Milinuri Nirvalen
  4. Ver: 2.4
  5. """
  6. from backends import vk
  7. from chiori import Chio
  8. from chiori import Config
  9. from chiori import Event
  10. from chiori import Ui
  11. from chiori import load_plugins
  12. import sys
  13. import argparse
  14. class Starter():
  15. """CLI движок для Чио."""
  16. def __init__(self, app: Chio) -> None:
  17. super(Starter, self).__init__()
  18. self.name = "Starter"
  19. self.backend_type = ["cli"]
  20. self.ver = "2.4"
  21. self.c = Config(self.name, {"autoclear":True})
  22. self.__dict__.update(self.c.group_data)
  23. self.app = app
  24. async def start(self) -> None:
  25. await self.app.startEvent()
  26. if self.autoclear:
  27. Ui().clear()
  28. while True:
  29. c = input("Chiori: ")
  30. await self.app.messageEvent(await self.convert(f"/{c}"))
  31. def setLevel(self, event: Event, c: Config) -> Event:
  32. event.model["level"] = 10
  33. return event
  34. async def convert(self, text: str) -> Event:
  35. event = Event()
  36. event.model["text"] = text
  37. return event
  38. async def message(self, event: Event, message: str, **params) -> None:
  39. """Send message to target peer_id with parameters."""
  40. pront(message)
  41. def main() -> None:
  42. app = Chio()
  43. parser = argparse.ArgumentParser()
  44. parser.add_argument("backend", help="ID движка для запуска",
  45. default=None, choices=["vk", "vku", "cli"])
  46. parser.add_argument("-c", "--config", help="Отобразить настройки",
  47. action="store_true")
  48. args = parser.parse_args()
  49. if args.config:
  50. app.c.print_config()
  51. if args.backend == "vk":
  52. app.backend = vk.VkGroup(app)
  53. elif args.backend == "vku":
  54. app.backend = vk.VkUser(app)
  55. elif args.backend == "cli":
  56. app.backend = Starter(app)
  57. load_plugins(app)
  58. app.start()
  59. if __name__ == '__main__':
  60. main()