amino.dorks
v2.25.29
Published
AminoDorksTS is a TypeScript library that interacts with the AminoApps API.
Readme
README on English
README на Русском
Оглавление
Особенности
AminoDorks предоставляет множество возможностей как библиотека для AminoApps, например:
- Большое количество методов для взаимодействия с API
- Генерация специальной подписи с Android с обходом KeyStore
- Отсутствие ограничений скорости для генерации подписей
- Высокий приоритет для создания пользовательских ботов для нагрузочного тестирования
- Поддержка множества типов взаимодействия с API
- Обширная система кэширования аккаунтов
- Полностью открытый исходный код серверной части
Начало работы
Чтобы начать работу с AminoDorks, выполните следующие шаги:
- Инициализируйте npm-пакет:
npm init - Установите TypeScript:
npm i -g typescript - Инициализируйте и настройте конфигурацию TypeScript:
tsc --init - Установите пакет через npm:
npm i amino.dorks - Получите свой индивидуальный API_KEY у нашего Telegram-бота
Использование
Базовая авторизация
import { AminoDorks } from 'amino.dorks';
(async () => {
const aminoDorks = new AminoDorks({
apiKey: 'API_KEY',
context: {
enviroment: 'global'
}
});
const response = await aminoDorks.security.login('[email protected]', 'password');
console.log(`Logged in ${response.userProfile.nickname}`);
})();Действия в других сообществах
import { AminoDorks } from 'amino.dorks';
(async () => {
const aminoDorks = new AminoDorks({
apiKey: 'API_KEY',
context: {
enviroment: 'global'
}
});
await aminoDorks.security.login('[email protected]', 'password');
const ndc = aminoDorks.as('NDC_ID') // теперь можно использовать этот экземпляр для взаимодействия с сообществом
await ndc.wallet.playLottery() // например, сыграть в лотерею и получить монеты
})();Настройка с использованием WebSocket
import { AminoDorks } from 'amino.dorks';
import { MessageEvent } from 'amino.dorks/dist/schemas';
(async () => {
const aminoDorks = new AminoDorks({
apiKey: 'API_KEY',
context: {
enviroment: 'global'
}
});
await aminoDorks.security.login('[email protected]', 'password');
// обработка при старте сокета
aminoDorks.socket.open(async () => {
// do something
});
// обработка сообщений
aminoDorks.socket.on('message', async (ndc: AminoDorks, message: MessageEvent ) => {
// do something
});
})();Документация
1. AminoDorks(config: AminoDorksConfig)
Главный класс для взаимодействия с API в глобальном пространстве приложения.
config – конфигурация библиотеки, доступна в типе AminoDorksConfig...
AminoDorksConfig =>
- apiKey – API_KEY, полученный у Telegram-бота,
- context – контекст для библиотеки, можно найти в типе
EnviromentContext, - ndcId – ID сообщества по умолчанию, при необходимости можно использовать метод
asдля смены, - enableLogging – включает логирование библиотеки (по умолчанию
false), - deviceId – ID устройства по умолчанию,
- proxies – массив прокси (socks4 или socks5), по умолчанию
[],
Свойства AminoDorks
AminoDorks.account: Account– информация о профиле пользователя после авторизацииAminoDorks.security: SecurityManager– менеджер авторизации и данных аккаунтаAminoDorks.community: CommunityManager– менеджер методов для сообществAminoDorks.wallet: WalletManager– менеджер методов кошелькаAminoDorks.user: UserManager– менеджер методов пользователейAminoDorks.post: PostManager– менеджер методов постовAminoDorks.thread: ThreadManager– менеджер методов чатовAminoDorks.admin: AdminManager– менеджер методов администрированияAminoDorks.acm: ACMManager– менеджер методов ACMAminoDorks.socket: SocketWorkflow– менеджер работы с сокетами
Методы AminoDorks
uploadMedia(file: Safe<Buffer>, type: Safe<MediaType>): Promise<UploadMediaResponse>– загрузка медиафайловgetLinkResolution(link: string): Promise<LinkInfo>– получение информации по ссылкеgetCommunityResolution(link: Safe<string>): Promise<Community>– получение информации о сообществе по ссылкеgetElapsedRealtime(): Promise<string>– получение времени работы (нужно для сокетов)as(ndcId: number): AminoDorks– использование другого сообщества
2. SecurityManager
Менеджер безопасности для методов авторизации и информации об аккаунте
Методы SecurityManager
getAccount(): Promise<MayUndefined<User>>– получение информации об аккаунтеlogin(email: Safe<string>, password: Safe<string>, loginType: Safe<number> = 100): Promise<LoginResponse>– вход по email и паролюloginPhone(phone: Safe<string>, password: Safe<string>, loginType: Safe<number> = 100): Promise<LoginResponse>– вход по номеру телефонаloginWithSession(sessionId: Safe<string>, deviceId: Safe<string>): Promise<MayUndefined<BasicResponse>>– вход с использованием sessionIdregister(token: Safe<string>, password: Safe<string>, nickname: Safe<string>, deviceId?: Safe<string>): Promise<BasicResponse>– регистрация аккаунтаcheckAccountExist(token: Safe<string>, deviceId?: Safe<string>): Promise<BasicResponse>– проверка существования аккаунтаrequestSecurityValidation(email: Safe<string>): Promise<BasicResponse>– запрос кода подтверждения безопасностиcheckSecurityValidation(email: Safe<string>, code: Safe<string>): Promise<BasicResponse>– проверка кода подтвержденияupdateEmail(builder: UpdateEmailBuilder): Promise<BasicResponse>– обновление emaildeleteAccount(email: Safe<string>, password: Safe<string>): Promise<BasicResponse>– удаление аккаунтаdisconnectGoogle(password: Safe<string>): Promise<BasicResponse>– отвязка Google-аккаунта
3. CommunityManager
Менеджер для работы с сообществами
Методы CommunityManager
get(ndcId: Safe<number>): Promise<Community>– получение информации о сообществеgetMany(startSize: StartSize = { start: 0, size: 25 }): Promise<Community[]>– получение списка сообществsearch(title: Safe<string>): Promise<SearchCommunityResponse>– поиск сообществjoin(ndcId: Safe<number>): Promise<BasicResponse>– вступление в сообществоleave(ndcId: Safe<number>): Promise<BasicResponse>– выход из сообществаsendMembershipRequest(ndcId: Safe<number>, message?: Safe<string>): Promise<BasicResponse>– отправка запроса на вступлениеidentifyInvitation(inviteCode: Safe<string>): Promise<IdentifyInvitationResponse>– проверка пригласительного кодаgetInviteCodes(startSize: StartSize): Promise<InviteCode[]>– получение списка активных инвайтовcreateInviteCode(duration: Safe<number> = INVITE_CODE_DEFAULT_DURATION): Promise<InviteCode>– создание нового инвайта (только для лидеров и кураторов)deleteInviteCode(invitationId: Safe<string>): Promise<BasicResponse>– удаление инвайта по ID (нужны админские права)status(online: Safe<boolean>, duration: Safe<number> = ONLINE_DEFAULT_DURATION): Promise<BasicResponse>– обновление статуса «онлайн/оффлайн»sendTimeChunks(timers: Timers): Promise<BasicResponse>– отправка данных об активности пользователя
4. WalletManager
Менеджер для работы с кошельком
Методы WalletManager
get(): Promise<Wallet>– получение информации о кошельке пользователя (баланс монет, лимиты и пр.)history(startSize: StartSize = { start: 0, size: 25 }): Promise<Transaction[]>– история транзакцийtipCoinsBlog(coins: Safe<number>, blogId: Safe<number>): Promise<BasicResponse>– отправка монет блогуtipCoinsChatThread(coins: Safe<number>, threadId: Safe<number>): Promise<BasicResponse>– отправка монет в чатplayLottery(): Promise<BasicResponse>– участие в ежедневной лотерееpurchaseFrame(frameId: Safe<string>): Promise<BasicResponse>– покупка рамки для профиля за монеты
5. UserManager
Менеджер для работы с пользователями
Методы UserManager
get(userId: Safe<string>): Promise<User>– получение информации о пользователеgetMany(startSize: StartSize = { start: 0, size: 50 }, usersType: UsersType = 'recent'): Promise<User[]>– список пользователей в сообществеgetInOnline(startSize: StartSize = { start: 0, size: 50 }): Promise<User[]>– список пользователей онлайнgetThreadUsers(threadId: Safe<string>, startSize: StartSize = { start: 0, size: 100 }): Promise<User[]>– пользователи в чатеedit(builder: EditProfileBuilder): Promise<BasicResponse>– редактирование профиляapplyFrame(frameId: Safe<string>, applyToAll: Safe<boolean> = false): Promise<BasicResponse>– применение рамки аватараkick(userId: Safe<string>, threadId: Safe<string>, allowRejoin: Safe<boolean> = false): Promise<BasicResponse>– удаление пользователя из чатаgetFollowing(userId: Safe<string>, startSize: StartSize = { start: 0, size: 25 }): Promise<User[]>– список тех, на кого подписан пользовательgetFollowers(userId: Safe<string>, startSize: StartSize = { start: 0, size: 25 }): Promise<User[]>– список подписчиков пользователяgetWallComments(userId: Safe<string>, sorting: CommentsSorting = 'newest', startSize: StartSize = { start: 0, size: 25 }): Promise<Comment[]>– комментарии на стене пользователяfollow(userId: Safe<string>): Promise<BasicResponse>– подписка на пользователяfollowMany(userIds: Safe<string[]>): Promise<BasicResponse>– массовая подписка на нескольких пользователейunfollow(userId: Safe<string>): Promise<BasicResponse>– отписка от пользователяsendComment(userId: Safe<string>, content: Safe<string>, respondTo?: Safe<string>): Promise<BasicResponse>– отправка комментария на стену пользователя
6. PostManager
Менеджер для работы с постами и вики
Методы PostManager
getBlog(blogId: Safe<string>): Promise<Blog>– получение информации о блоге по IDgetWiki(itemId: Safe<string>): Promise<Item>– получение информации о вики-статьеblog(builder: BlogBuilder): Promise<Blog>– создание нового блогаwiki(builder: WikiBuilder): Promise<Item>– создание новой вики-статьиdeleteBlog(blogId: Safe<string>): Promise<BasicResponse>– удаление блога (только автор или админ)deleteWiki(itemId: Safe<string>): Promise<BasicResponse>– удаление вики (только автор или лидер)userBlogs(userId: Safe<string>, startSize: StartSize = { start: 0, size: 25 }): Promise<Blog[]>– блоги пользователяuserWikis(userId: Safe<string>, startSize: StartSize = { start: 0, size: 25 }): Promise<Item[]>– вики пользователяmanyBlogs(startSize: StartSize = { start: 0, size: 25 }): Promise<PublicBlogsResponse>– список последних блогов сообществаpagedBlogs(pageToken: Safe<string>, size: Safe<number> = 25): Promise<PublicBlogsResponse>– постраничная загрузка блоговsendComment(objectId: Safe<string>, postType: Safe<PostType>, content: Safe<string>, respondTo?: Safe<string>): Promise<BasicResponse>– комментарий к блогу или викиlikeManyBlogs(blogIds: Safe<string[]>): Promise<BasicResponse>– массовые лайки блоговlikeBlog(blogId: Safe<string>): Promise<BasicResponse>- метод для лайка блогаlikeWiki(itemId: Safe<string>): Promise<BasicResponse>- метод для лайка вики
7. ThreadManager
Менеджер для работы с чатами
Методы ThreadManager
get(threadId: Safe<string>): Promise<Thread>– информация о чатеgetMany(startSize: StartSize = { start: 0, size: 25 }): Promise<Thread[]>– список чатов, где состоит пользовательgetManyPublic(startSize: StartSize = { start: 0, size: 25 }, threadType: ThreadType = 'recommended'): Promise<Thread[]>– публичные чаты (рекомендованные, трендовые и др.)join(threadId: Safe<string>): Promise<BasicResponse>– вступление в чатleave(threadId: Safe<string>): Promise<BasicResponse>– выход из чатаcreate(builder: CreateThreadBuilder): Promise<Thread>– создание нового чатаedit(threadId: Safe<string>, builder: EditThreadBuilder): Promise<Thread>– редактирование чатаsetBackground(threadId: Safe<string>, url: Safe<string>): Promise<BasicResponse>– установка фона чатаaddCoHosts(threadId: Safe<string>, coHosts: Safe<string[]>): Promise<BasicResponse>– назначение соведущихsetViewOnly(threadId: Safe<string>, status: Status): Promise<BasicResponse>– включение режима «только просмотр»setCanInvite(threadId: Safe<string>, status: Status): Promise<BasicResponse>– разрешить/запретить приглашенияsetCanTip(threadId: Safe<string>, status: Status): Promise<BasicResponse>– включить/выключить отправку монетinvite(threadId: Safe<string>, userIds: Safe<string[]>): Promise<BasicResponse>– приглашение пользователей в чатmessages(threadId: Safe<string>, size: Safe<number> = 25): Promise<MessagesResponse>– последние сообщенияpagedMessages(threadId: Safe<string>, pageToken: Safe<string>, size: Safe<number> = 25): Promise<MessagesResponse>– постраничная загрузка сообщенийsendMessage(threadId: Safe<string>, content: Safe<string>, settings: MessageSettings = { messageType: 0 }): Promise<BasicResponse>– отправка текстового сообщенияsendEmbed(threadId: Safe<string>, content: Safe<string>, embed: Embed, settings: MessageSettings = { messageType: 0 }): Promise<BasicResponse>– сообщение с embedsendLinkSnippet(threadId: Safe<string>, content: Safe<string>, linkSnippet: LinkSnippet, settings: MessageSettings = { messageType: 0 }): Promise<BasicResponse>– сообщение с предпросмотром ссылкиsendImage(threadId: Safe<string>, file: Safe<Buffer>): Promise<BasicResponse>– отправка изображенияsendAudio(threadId: Safe<string>, file: Safe<Buffer>): Promise<BasicResponse>– отправка аудио/голосового сообщенияdeleteMessage(threadId: Safe<string>, messageId: Safe<string>): Promise<BasicResponse>– удаление сообщенияtransferHost(threadId: Safe<string>, userIds: Safe<string[]>): Promise<BasicResponse>– передача хостаacceptHost(threadId: Safe<string>, requestId: Safe<string>): Promise<BasicResponse>– принятие хостаinviteToVoice(threadId: Safe<string>, userId: Safe<string>): Promise<BasicResponse>– приглашение в голосовой чат
8. AdminManager
Менеджер для администрирования сообществ
Методы AdminManager
ban(userId: Safe<string>, reason?: Safe<string>): Promise<BasicResponse>– бан пользователяunban(userId: Safe<string>, reason?: Safe<string>): Promise<BasicResponse>– снятие банаhideUser(userId: Safe<string>, reason?: Safe<string>): Promise<BasicResponse>– скрыть профиль (теневой бан)unhideUser(userId: Safe<string>, reason?: Safe<string>): Promise<BasicResponse>– восстановить профильhideThread(threadId: Safe<string>, reason?: Safe<string>): Promise<BasicResponse>– скрыть чатunhideThread(threadId: Safe<string>, reason?: Safe<string>): Promise<BasicResponse>– восстановить чатhidePost(objectId: Safe<string>, postType: PostType, reason?: Safe<string>): Promise<BasicResponse>– скрыть блог/викиunhidePost(objectId: Safe<string>, postType: PostType, reason?: Safe<string>): Promise<BasicResponse>– восстановить блог/викиaddFeature(userId: Safe<string>, days: FeatureDuration = 1): Promise<BasicResponse>– выделить пользователя в списке лидеровdeleteFeature(userId: Safe<string>): Promise<BasicResponse>– убрать из списка лидеровmanageTitles(userId: Safe<string>, titles: Safe<CustomTitle[]>): Promise<BasicResponse>– задать кастомные тайтлы и цветаwarn(userId: Safe<string>, title: Safe<string>, content: Safe<string>): Promise<BasicResponse>– отправить предупреждениеstrike(userId: Safe<string>, title: Safe<string>, content: Safe<string>, duration: Safe<number> = 86400): Promise<BasicResponse>– выдать страйк с ограничением на время
9. ACMManager
Менеджер для управления сообществом (ACM)
Методы ACMManager
setEndpoint(enpoint: Safe<string>): Promise<BasicResponse>– смена адреса сообществаicon(icon: Safe<string>, width: Safe<number>, height: Safe<number>): Promise<BasicResponse>– смена иконки сообществаmedia(media: Safe<string>): Promise<BasicResponse>– смена баннераname(name: Safe<string>): Promise<BasicResponse>– смена названияtagline(tagline: Safe<string>): Promise<BasicResponse>– смена короткого описанияcontent(content: Safe<string>): Promise<BasicResponse>– смена полного описанияgiveCuratorship(userId: Safe<string>): Promise<BasicResponse>– назначение куратораgiveLeadership(userId: Safe<string>): Promise<BasicResponse>– назначение лидера
10. SocketsWorkflow
Класс для работы с сокетами и обработки событий
Методы SocketsWorkflow
open(callback: () => void): void– обработчик при успешном подключенииerror(callback: (error: Error) => void): void– обработчик ошибокclose(callback: (code: number) => void): void– обработчик закрытия соединенияon<T extends EventName>(eventName: T, callback: (ndc: AminoDorks, data: EventMap[T]) => Promise<void>): void– подписка на событиеcommand(commandName: Safe<string>, callback: CommandCallback): void– слушатель команды по префиксуcommandArgs(commandName: Safe<string>, callback: CommandArgsCallback): void– слушатель команды с аргументамиsend(data: WebSocket.Data): void– отправка данных через сокетjoinVoiceThread(ndcId: number, threadId: string): Promise<void>– присоединение к голосовому чатуjoinVideoThread(ndcId: number, threadId: string): Promise<void>– присоединение к видеочатуjoinVideoThreadAsViewer(ndcId: number, threadId: string): Promise<void>– присоединение как зрительstartVoiceChat(ndcId: number, threadId: string): Promise<void>– запуск голосового чатаendVoiceChat(ndcId: number, threadId: string): Promise<void>– завершение голосового чатаsendTyping(ndcId: number, threadId: string): Promise<void>– отправка индикатора «печатает»sendRecording(ndcId: Safe<number>, threadId: Safe<string>): void– отправка индикатора «записывает аудио»sendEndRecording(ndcId: Safe<number>, threadId: Safe<string>, duration: Safe<number>): void– завершение записи аудиоsendNdcBrowsing(ndcId: Safe<number>, topicIds: Safe<number[]> = []): void- отправка индикатора активности в сообществе (отображение в списке участников онлайн)sendNdcEnter(ndcId: Safe<number>): void- индикатор входа в сообществоsendChatting(ndcId: Safe<number>, threadId: Safe<string>, topicIds: Safe<number[]> = []): void- отправка индикатора активности в определённом чате (отображение в списке участников которые сидят в чате)
Участие в разработке
Приветствуются любые улучшения! Пожалуйста, отправляйте pull request со своими изменениями.
Лицензия
AminoDorksTS распространяется по лицензии MIT. См. LICENSE для подробностей. Если вы используете мои генераторы – напишите мне в личку.
