def admin_message_handler(admin_message): print(f'admin_message {admin_message}') admin_application = Navigator.get( DirectoryIdDictionary.get( int(admin_message['object']['message']['from_id']))) admin_application.run(admin_message) return
async def cd(cls, user_id: int, cd_path: str) -> bool: if cd_path == '/': await cls._directory_set(user_id, '/') return True if cd_path.endswith('/'): cd_path = cd_path[:-1] if cd_path == '..': user_path = await cls.pwd() if (user_path != '/'): cd_path = user_path[:user_path.rfind('/')] if cd_path == '': cd_path = '/' await cls._directory_set(user_id, cd_path) return True else: return False if not cd_path.startswith('/'): user_path = await cls.pwd() if not user_path.endswith('/'): user_path += '/' user_path += cd_path cd_path = user_path package_split_point = cd_path.rfind('/') if cd_path[package_split_point + 1:] in Navigator.dir( cd_path[:package_split_point]): await cls._directory_set(user_id, cd_path) return True else: return False
async def registration_handler(registration): print(f'registration {registration}') if registration['type'] not in { EventType.MESSAGE_NEW, EventType.MESSAGE_EDIT }: return registration_application = Navigator.get( DirectoryIdDictionary.get(registration['message']['user_id'])) await registration_application.run(registration) return
# -*- coding: utf8 -*- from main.core.db.synchronized.redis.discord.admins_id_set import AdminsIdSet from main.core.db.synchronized.redis.discord.users_id_set import UsersIdSet from main.core.db.synchronized.redis.discord.directory_id_dictionary import DirectoryIdDictionary from main.core.navigator import Navigator Navigator.set_global_package_path('discord') from main.core.db.synchronized.local.base.event_type_enum import EventType import threading def users_id_set_sync(): UsersIdSet.sync() threading.Timer(5, users_id_set_sync).start() return def admins_id_set_sync(): AdminsIdSet.sync() threading.Timer(15, admins_id_set_sync).start() return def directory_id_set_sync(): DirectoryIdDictionary.sync() threading.Timer(5, directory_id_set_sync).start() return async def registration_handler(registration):
async def dir(cls) -> list: return Navigator.dir(await cls.pwd())
def _directory_set(cls, user_id: int, cd_path: str): DirectoryIdDictionary.set(user_id, cd_path) Navigator.get(cd_path).startup(user_id)
def dir(cls) -> list: return Navigator.dir(cls.pwd())
# -*- coding: utf8 -*- from main.core.db.synchronized.local.vk.client import VkClient from main.core.event_handler.vk.celery_app import app from main.core.db.synchronized.redis.vk.admins_id_set import AdminsIdSet from main.core.db.synchronized.redis.vk.users_id_set import UsersIdSet from main.core.db.synchronized.redis.vk.directory_id_dictionary import DirectoryIdDictionary from main.core.navigator import Navigator Navigator.set_global_package_path('vk') import requests from random import getrandbits @app.task(ignore_result=True) def users_id_set_sync(): UsersIdSet.sync() return @app.task(ignore_result=True) def admins_id_set_sync(): AdminsIdSet.sync() return @app.task(ignore_result=True) def directory_id_set_sync(): DirectoryIdDictionary.sync() return
# -*- coding: utf8 -*- from main.core.navigator import Navigator print(Navigator.dir('/')) print(Navigator.get_class('/registration'))