%global _empty_manifest_terminate_build 0
Name:		python-BotAmino
Version:	1.28.1
Release:	1
Summary:	A library to create Amino bots.
License:	MIT
URL:		https://github.com/ThePhoenix78/AminoBot
Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/f1/44/82426ade0c8f6f257dddfc5d9b797176a05027d19317e94a958c5cf4d57d/BotAmino-1.28.1.tar.gz
BuildArch:	noarch

Requires:	python3-requests
Requires:	python3-websocket-client
Requires:	python3-pathlib

%description
## For EDUCATIONAL PURPOSE only

# AminoBot
An API for bot amino based on Slimakoi's work

Discord server https://discord.gg/KZgKktQ6Rt

This API has been made for people who aren't very good at programming or people who want to do easy stuff!

## How does this API works?

It works like the Amino.py's API but with added features like commands or answer
for example:

```python3
from BotAmino import BotAmino, Parameters

print("wait...")
client = BotAmino("email", "password")
client.prefix = "/"  # set the prefix to /
client.wait = 10  # wait 10 sec before doing a new command


def test(data: Parameters):
    return data.authorId in ["your_user_id", "friend_user_id"]


@client.command("ping", test) # "ping" the command and test the function, if test is True the command will be executed, else it will not
def ping(data: Parameters):
    data.subClient.send_message(data.chatId, message="pong!")


@client.command("pong") # "pong" the command, the test function is not necessary
def pong(data: Parameters):
    if data.subClient.is_in_staff(data.authorId): # will execute the command if the user is in the amino's staff (learder/curator)
        data.subClient.send_message(data.chatId, message="ping!")


@client.answer("hey")
def hello(data: Parameters):
    data.subClient.send_message(data.chatId, message="Hey! Hey!")


@client.on_member_join_chat()
def say_hello(data: Parameters):
    data.subClient.send_message(data.chatId, f"welcome here {data.author}!")


@client.on_member_leave_chat(["chatId"]) # the chatId is not necessary, put one if you want a specified chat only
def say_goodbye(data: Parameters):
    data.subClient.send_message(data.chatId, f"See you soon {data.author}!")


client.launch()
print("ready")
```

## There is also built-in functions that might be useful:

- add_title(userId, title, color) : add a title to an user

- remove_title(userId, title) : remove the title given to the user

- follow_user(userId) : follow the user in parameters

- unfollow_user(userId) : unfollow the user in parameters

- leave_all_chats() : leave all the chats for a given community

- join_all_chat() : join all the publics chat of an Amino

- get_chats() : return a list of the publics chatrooms

- join_chatroom(chat_name_or_link) : join the chat for the given link/name

- pay(nb_of_coins, blogId, chatId, objectId, transactionId) : give coins in balance, transactionId not necessary (automatically generated if not put)

- get_wallet_amount() : return the number of coin of the bot

- get_member_title(userId) : return the titles of the member

- get_member_level(userId) : return the level of the member [1-20]

- leave_community() : leave the current community

- get_chat_id(chat) : return the id of the chat (link supported)

- ask_amino_staff(message) : send the message to all the curators/leader of the amino

- get_user_id(name_or_id) : return a tuple with the name and the userId (name, uid)

- get_staff(community) : return the staff of the given community (communityId or aminoId)

- accept_role(noticeId, chatId) : accept a promotion or a chat transfert

- generate_transaction_id() : create a transactionId

- ask_all_members(message) : will send a message in pv to all member by group of 100

- is_it_bot(userId) : check if the user is the bot account

- add_community("aminoId") : add manually a community to the bot (nice for join amino command)


%package -n python3-BotAmino
Summary:	A library to create Amino bots.
Provides:	python-BotAmino
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-BotAmino
## For EDUCATIONAL PURPOSE only

# AminoBot
An API for bot amino based on Slimakoi's work

Discord server https://discord.gg/KZgKktQ6Rt

This API has been made for people who aren't very good at programming or people who want to do easy stuff!

## How does this API works?

It works like the Amino.py's API but with added features like commands or answer
for example:

```python3
from BotAmino import BotAmino, Parameters

print("wait...")
client = BotAmino("email", "password")
client.prefix = "/"  # set the prefix to /
client.wait = 10  # wait 10 sec before doing a new command


def test(data: Parameters):
    return data.authorId in ["your_user_id", "friend_user_id"]


@client.command("ping", test) # "ping" the command and test the function, if test is True the command will be executed, else it will not
def ping(data: Parameters):
    data.subClient.send_message(data.chatId, message="pong!")


@client.command("pong") # "pong" the command, the test function is not necessary
def pong(data: Parameters):
    if data.subClient.is_in_staff(data.authorId): # will execute the command if the user is in the amino's staff (learder/curator)
        data.subClient.send_message(data.chatId, message="ping!")


@client.answer("hey")
def hello(data: Parameters):
    data.subClient.send_message(data.chatId, message="Hey! Hey!")


@client.on_member_join_chat()
def say_hello(data: Parameters):
    data.subClient.send_message(data.chatId, f"welcome here {data.author}!")


@client.on_member_leave_chat(["chatId"]) # the chatId is not necessary, put one if you want a specified chat only
def say_goodbye(data: Parameters):
    data.subClient.send_message(data.chatId, f"See you soon {data.author}!")


client.launch()
print("ready")
```

## There is also built-in functions that might be useful:

- add_title(userId, title, color) : add a title to an user

- remove_title(userId, title) : remove the title given to the user

- follow_user(userId) : follow the user in parameters

- unfollow_user(userId) : unfollow the user in parameters

- leave_all_chats() : leave all the chats for a given community

- join_all_chat() : join all the publics chat of an Amino

- get_chats() : return a list of the publics chatrooms

- join_chatroom(chat_name_or_link) : join the chat for the given link/name

- pay(nb_of_coins, blogId, chatId, objectId, transactionId) : give coins in balance, transactionId not necessary (automatically generated if not put)

- get_wallet_amount() : return the number of coin of the bot

- get_member_title(userId) : return the titles of the member

- get_member_level(userId) : return the level of the member [1-20]

- leave_community() : leave the current community

- get_chat_id(chat) : return the id of the chat (link supported)

- ask_amino_staff(message) : send the message to all the curators/leader of the amino

- get_user_id(name_or_id) : return a tuple with the name and the userId (name, uid)

- get_staff(community) : return the staff of the given community (communityId or aminoId)

- accept_role(noticeId, chatId) : accept a promotion or a chat transfert

- generate_transaction_id() : create a transactionId

- ask_all_members(message) : will send a message in pv to all member by group of 100

- is_it_bot(userId) : check if the user is the bot account

- add_community("aminoId") : add manually a community to the bot (nice for join amino command)


%package help
Summary:	Development documents and examples for BotAmino
Provides:	python3-BotAmino-doc
%description help
## For EDUCATIONAL PURPOSE only

# AminoBot
An API for bot amino based on Slimakoi's work

Discord server https://discord.gg/KZgKktQ6Rt

This API has been made for people who aren't very good at programming or people who want to do easy stuff!

## How does this API works?

It works like the Amino.py's API but with added features like commands or answer
for example:

```python3
from BotAmino import BotAmino, Parameters

print("wait...")
client = BotAmino("email", "password")
client.prefix = "/"  # set the prefix to /
client.wait = 10  # wait 10 sec before doing a new command


def test(data: Parameters):
    return data.authorId in ["your_user_id", "friend_user_id"]


@client.command("ping", test) # "ping" the command and test the function, if test is True the command will be executed, else it will not
def ping(data: Parameters):
    data.subClient.send_message(data.chatId, message="pong!")


@client.command("pong") # "pong" the command, the test function is not necessary
def pong(data: Parameters):
    if data.subClient.is_in_staff(data.authorId): # will execute the command if the user is in the amino's staff (learder/curator)
        data.subClient.send_message(data.chatId, message="ping!")


@client.answer("hey")
def hello(data: Parameters):
    data.subClient.send_message(data.chatId, message="Hey! Hey!")


@client.on_member_join_chat()
def say_hello(data: Parameters):
    data.subClient.send_message(data.chatId, f"welcome here {data.author}!")


@client.on_member_leave_chat(["chatId"]) # the chatId is not necessary, put one if you want a specified chat only
def say_goodbye(data: Parameters):
    data.subClient.send_message(data.chatId, f"See you soon {data.author}!")


client.launch()
print("ready")
```

## There is also built-in functions that might be useful:

- add_title(userId, title, color) : add a title to an user

- remove_title(userId, title) : remove the title given to the user

- follow_user(userId) : follow the user in parameters

- unfollow_user(userId) : unfollow the user in parameters

- leave_all_chats() : leave all the chats for a given community

- join_all_chat() : join all the publics chat of an Amino

- get_chats() : return a list of the publics chatrooms

- join_chatroom(chat_name_or_link) : join the chat for the given link/name

- pay(nb_of_coins, blogId, chatId, objectId, transactionId) : give coins in balance, transactionId not necessary (automatically generated if not put)

- get_wallet_amount() : return the number of coin of the bot

- get_member_title(userId) : return the titles of the member

- get_member_level(userId) : return the level of the member [1-20]

- leave_community() : leave the current community

- get_chat_id(chat) : return the id of the chat (link supported)

- ask_amino_staff(message) : send the message to all the curators/leader of the amino

- get_user_id(name_or_id) : return a tuple with the name and the userId (name, uid)

- get_staff(community) : return the staff of the given community (communityId or aminoId)

- accept_role(noticeId, chatId) : accept a promotion or a chat transfert

- generate_transaction_id() : create a transactionId

- ask_all_members(message) : will send a message in pv to all member by group of 100

- is_it_bot(userId) : check if the user is the bot account

- add_community("aminoId") : add manually a community to the bot (nice for join amino command)


%prep
%autosetup -n BotAmino-1.28.1

%build
%py3_build

%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
	find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
	find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
	find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
	find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
	find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .

%files -n python3-BotAmino -f filelist.lst
%dir %{python3_sitelib}/*

%files help -f doclist.lst
%{_docdir}/*

%changelog
* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.28.1-1
- Package Spec generated