"""Discovered RPC operations, not an authorization or live support guarantee.""" from dataclasses import dataclass @dataclass(frozen=True) class OfficialCapability: method: str implemented: bool effect: str evidence: str READ_OPERATIONS = frozenset( {"app.getRobots", "appFrame.getFrame", "appFrame.getFrameCovers"} ) DISCOVERED_METHODS = ( "app.addFriendRobot", "app.addShareRobot", "app.bindRobot", "app.changePassword", "app.cleanMemory", "app.createCustomRole", "app.createPointOrder", "app.deleteFriendRobot", "app.forgetPassword", "app.getChatHistory", "app.getCustomRoleInfo", "app.getDistributors", "app.getFirmwares", "app.getPayOrder", "app.getPayOrderList", "app.getPoints", "app.getRedeem", "app.getRobot", "app.getRobotByUUID", "app.getRobots", "app.getUserInfo", "app.login", "app.redeemRobotPointByCode", "app.register", "app.removeShare", "app.sendChat", "app.sendCtrl", "app.setRobotNetwork", "app.setTimezone", "app.setUpgradeFirmware", "app.testCustomRoleVoice", "app.unlink", "app.updateCustomRole", "app.updateRobot", "app.wxlogin", "appFrame.addFrameArtist", "appFrame.addFrameGalleryImage", "appFrame.addTag", "appFrame.changeFrameImageName", "appFrame.changeName", "appFrame.chat", "appFrame.deleteAllImage", "appFrame.deleteImage", "appFrame.displayImage", "appFrame.enablePair", "appFrame.enableShareCode", "appFrame.getFrame", "appFrame.getFrameArtists", "appFrame.getFrameCovers", "appFrame.getFrameGalleryImages", "appFrame.getFrameGallerys", "appFrame.getFrameSplashs", "appFrame.getImages", "appFrame.getShareImages", "appFrame.importImagesByTransferToken", "appFrame.likeImage", "appFrame.recognizeVoice", "appFrame.refreshImage", "appFrame.refreshShareUUID", "appFrame.removeTag", "appFrame.reportFrameImage", "appFrame.reset", "appFrame.setFrameCover", "appFrame.setFrameImageChangeInterval", "appFrame.setFrameImageChangeMinute", "appFrame.setFrameImageChangeTags", "appFrame.setFrameImageChangeType", "appFrame.setImageTags", "appFrame.setRotate", "appFrame.setSplash", "appFrame.shareImage", "appFrame.text2speech", "appFrame.uploadImage", ) def capabilities() -> tuple[OfficialCapability, ...]: return tuple( OfficialCapability( method=method, implemented=method in READ_OPERATIONS or method in {"app.login", "appFrame.setFrameCover"}, effect="read" if method in READ_OPERATIONS else "authentication" if method == "app.login" else "write" if method == "appFrame.setFrameCover" else "unverified", evidence="live_verified" if method in READ_OPERATIONS or method == "app.login" else "mock_verified" if method == "appFrame.setFrameCover" else "apk_discovered", ) for method in DISCOVERED_METHODS )