Techno Kitchen For Dart

A library for interacting with the SDGB API.

ATTENTION: You NEED TO provide endpoint request configuration yourself.

โœจ Features

  1. UserSession: Manage user sessions with automatic expiration handling
    • QR Code validation (10-minute expiration check)
    • Session management (20-minute expiration)
    • Automatic cookie isolation
  2. getUserId: Get User ID by QR Code
  3. GetUserPreviewApi: Fetch user preview data
  4. GetUserDataApi: Fetch User full data
  5. GetUserMusicApi: Fetch User music data
  6. requestEndpoint: Request custom API endpoints
  7. HTTP communication module (can be used to implement other APIs)

๐Ÿš€ Quick Start

Using UserSession

import 'package:dotenv/dotenv.dart';
import 'package:techno_kitchen_dart/techno_kitchen_dart.dart';

void main() async {
  final config = Config.fromEnv(DotEnv()..load());
  
  // Create session from QR code
  final qrCode = 'SGWCMAID260211173345B98267A57924B440...';
  final session = UserSession(qrCode, config);
  
  // Or create from URL
  final url = 'https://wq.waleak.net/qrcode/req/MAID260211...';
  final session2 = UserSession.fromUrl(url, config: config);
  
  // Initialize and login
  await session.init();
  await session.login();
  
  // Fetch user data
  final userData = await session.getUserData();
  print('User: ${userData.userData.userName}');
  
  // Request custom endpoint
  final response = await session.requestEndpoint('GetSomethingApi', {
    'userId': session.userId,
    'a': 0,
  });
  
  // Logout
  await session.logout();
}

Requesting Custom Endpoints

// Simple endpoint request with default userId
final response = await session.requestEndpoint('GetUserItemApi');

// With custom parameters
final response = await session.requestEndpoint('GetUserCharacterApi', {
  'userId': session.userId,
  'nextIndex': 0,
  'maxCount': 100,
});

๐Ÿงช Testing

  1. Create a file .env from template
cp .env.example .env
  1. Paste a valid QR code string into QR_CODE
  2. Run test scripts to verify login and API behavior

โš ๏ธ Disclaimer

This project communicates with AIME and title servers operated by someone. The communication protocol and obfuscation techniques are based on open-source repositories on GitHub.

No reverse engineering or direct analysis of game binaries was performed during development.

This project may carry unknown risks, including but not limited to:

  • Data loss
  • Score corruption or overwrites
  • Incompatibility with server updates
  • Unexpected behavior due to logic bugs

Use at your own risk.

๐Ÿ“„ License

MIT License

๐Ÿค Acknowledgements

Special thanks LEAKERS

Libraries

techno_kitchen_dart
SDGB API Dart implementation.