Skip to content

Instantly share code, notes, and snippets.

@shellscriptx
Created September 15, 2018 03:15
Show Gist options
  • Save shellscriptx/6d5eeac748414cc262b5561229efa763 to your computer and use it in GitHub Desktop.
Save shellscriptx/6d5eeac748414cc262b5561229efa763 to your computer and use it in GitHub Desktop.
#!/bin/bash

# Importando API
source ShellBot.sh

# Token do bot
bot_token='<TOKEN_AQUI>'

# Inicializando o bot
ShellBot.init --token "$bot_token" --monitor --return map --flush

while :
do
	# Obtem as atualizações
	ShellBot.getUpdates --limit 100 --offset $(ShellBot.OffsetNext) --timeout 30

	# Lista o índice das atualizações
	for id in $(ShellBot.ListUpdates)
	do
	# Inicio thread
	(
		# Históricos associados ao ID do usuário.
		reg=/tmp/${message_from_id[$id]}.reg	# registro
		ent=/tmp/${message_from_id[$id]}.num	# pergunta
		cmd=/tmp/${message_from_id[$id]}.cmd	# comando

		case ${message_text[$id]} in
			'/add')
				# Inicializa a entrada de dados para o comando solicitado.
				echo "/add" > $cmd	# Registra o comando.
				echo 1 > $ent		# Define a primeira pergunta.
				> $reg				# Sobrescreve o registro. (se existir)

				ShellBot.sendMessage --chat_id ${message_chat_id[$id]} --text 'Digite um registro:'
				;;
			*)	# Se a resposta não for um comando.
				# Define a opção com base no comando.
				case $(< $cmd) in
					'/add')
						# Verifica a pergunta da vez.
						case $(< $ent) in
							1)
								echo "registro: ${message_text[$id]}" >> $reg
								ShellBot.sendMessage --chat_id ${message_chat_id[$id]} --text "Digite a data:"
								echo 2 > $ent
								;;
							2)
								# Salva o registro.
								echo "data: ${message_text[$id]}" >> $reg
								ShellBot.sendMessage --chat_id ${message_chat_id[$id]} --text 'Registro concluído com sucesso !!'
									# Finaliza as perguntas.
								> $ent
									# Limpa o comando do histório. (concluído)
								> $cmd
								;;
						esac
						;;
				esac
				;;
		esac
	) & # Utilize a thread se deseja que o bot responda a várias requisições simultâneas.
	done
done
#FIM
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment