Fix bugs and update docs

This commit is contained in:
Daniil Gentili 2016-06-09 09:40:39 -04:00
parent 958456d64d
commit 034409c491
3 changed files with 27 additions and 17 deletions

View File

@ -87,6 +87,12 @@ You can read incoming data using the following variables:
* ```${USER[FIRST_NAME]}```: User's first name * ```${USER[FIRST_NAME]}```: User's first name
* ```${USER[LAST_NAME]}```: User's last name * ```${USER[LAST_NAME]}```: User's last name
* ```${USER[USERNAME]}```: Username * ```${USER[USERNAME]}```: Username
* ```$CHAT```: This array contains the First name, last name, username, title and user id of the chat of the current message.
* ```${CHAT[ID]}```: Chat id
* ```${CHAT[FIRST_NAME]}```: Chat's first name
* ```${CHAT[LAST_NAME]}```: Chat's last name
* ```${CHAT[USERNAME]}```: Username
* ```${CHAT[TITLE]}```: Title
* ```$URLS```: This array contains documents, audio files, stickers, voice recordings and stickers stored in the form of URLs. * ```$URLS```: This array contains documents, audio files, stickers, voice recordings and stickers stored in the form of URLs.
* ```${URLS[AUDIO]}```: Audio files * ```${URLS[AUDIO]}```: Audio files
* ```${URLS[VIDEO]}```: Videos * ```${URLS[VIDEO]}```: Videos
@ -106,43 +112,43 @@ You can read incoming data using the following variables:
### Usage ### Usage
To send messages use the ```send_message``` function: To send messages use the ```send_message``` function:
``` ```
send_message "${USER[ID]}" "lol" send_message "${CHAT[ID]}" "lol"
``` ```
To send html or markdown put the following strings before the text, depending on the parsing mode you want to enable: To send html or markdown put the following strings before the text, depending on the parsing mode you want to enable:
``` ```
send_message "${USER[ID]}" "markdown_parse_mode lol *bold*" send_message "${CHAT[ID]}" "markdown_parse_mode lol *bold*"
``` ```
``` ```
send_message "${USER[ID]}" "html_parse_mode lol <b>bold</b>" send_message "${CHAT[ID]}" "html_parse_mode lol <b>bold</b>"
``` ```
This function also allows a third parameter that disables additional function parsing (for safety use this when reprinting user input): This function also allows a third parameter that disables additional function parsing (for safety use this when reprinting user input):
``` ```
send_message "${USER[ID]}" "lol" "safe" send_message "${CHAT[ID]}" "lol" "safe"
``` ```
To send images, videos, voice files, photos ecc use the ```send_photo``` function (remember to change the safety Regex @ line 14 of command.sh to allow sending files only from certain directories): To send images, videos, voice files, photos ecc use the ```send_photo``` function (remember to change the safety Regex @ line 14 of command.sh to allow sending files only from certain directories):
``` ```
send_file "${USER[ID]}" "/home/user/doge.jpg" "Lool" send_file "${CHAT[ID]}" "/home/user/doge.jpg" "Lool"
``` ```
To send custom keyboards use the ```send_keyboard``` function: To send custom keyboards use the ```send_keyboard``` function:
``` ```
send_keyboard "${USER[ID]}" "Text that will appear in chat?" "Yep" "No" send_keyboard "${CHAT[ID]}" "Text that will appear in chat?" "Yep" "No"
``` ```
To send locations use the ```send_location``` function: To send locations use the ```send_location``` function:
``` ```
send_location "${USER[ID]}" "Latitude" "Longitude" send_location "${CHAT[ID]}" "Latitude" "Longitude"
``` ```
To send venues use the ```send_venue``` function: To send venues use the ```send_venue``` function:
``` ```
send_venue "${USER[ID]}" "Latitude" "Longitude" "Title" "Address" "optional foursquare id" send_venue "${CHAT[ID]}" "Latitude" "Longitude" "Title" "Address" "optional foursquare id"
``` ```
To forward messages use the ```forward``` function: To forward messages use the ```forward``` function:
``` ```
forward "${USER[ID]}" "from_chat_id" "message_id" forward "${CHAT[ID]}" "from_chat_id" "message_id"
``` ```
To send a chat action use the ```send_action``` function. To send a chat action use the ```send_action``` function.
Allowed values: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_audio or upload_audio for audio files, upload_document for general files, find_location for locations. Allowed values: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_audio or upload_audio for audio files, upload_document for general files, find_location for locations.
``` ```
send_action "${USER[ID]}" "action" send_action "${CHAT[ID]}" "action"
``` ```
To create interactive chats, write (or edit the question script) a normal bash (or C or python) script, chmod +x it and then change the argument of the startproc function to match the command you usually use to start the script. To create interactive chats, write (or edit the question script) a normal bash (or C or python) script, chmod +x it and then change the argument of the startproc function to match the command you usually use to start the script.

View File

@ -52,7 +52,7 @@ FILE_URL='https://api.telegram.org/file/bot'$TOKEN'/'
UPD_URL=$URL'/getUpdates?offset=' UPD_URL=$URL'/getUpdates?offset='
GET_URL=$URL'/getFile' GET_URL=$URL'/getFile'
OFFSET=0 OFFSET=0
declare -A USER MESSAGE URLS CONTACT LOCATION declare -A USER MESSAGE URLS CONTACT LOCATION CHAT
urlencode() { urlencode() {
echo "$*" | sed 's:%:%25:g;s: :%20:g;s:<:%3C:g;s:>:%3E:g;s:#:%23:g;s:{:%7B:g;s:}:%7D:g;s:|:%7C:g;s:\\:%5C:g;s:\^:%5E:g;s:~:%7E:g;s:\[:%5B:g;s:\]:%5D:g;s:`:%60:g;s:;:%3B:g;s:/:%2F:g;s:?:%3F:g;s^:^%3A^g;s:@:%40:g;s:=:%3D:g;s:&:%26:g;s:\$:%24:g;s:\!:%21:g;s:\*:%2A:g' echo "$*" | sed 's:%:%25:g;s: :%20:g;s:<:%3C:g;s:>:%3E:g;s:#:%23:g;s:{:%7B:g;s:}:%7D:g;s:|:%7C:g;s:\\:%5C:g;s:\^:%5E:g;s:~:%7E:g;s:\[:%5B:g;s:\]:%5D:g;s:`:%60:g;s:;:%3B:g;s:/:%2F:g;s:?:%3F:g;s^:^%3A^g;s:@:%40:g;s:=:%3D:g;s:&:%26:g;s:\$:%24:g;s:\!:%21:g;s:\*:%2A:g'
@ -131,7 +131,7 @@ unban_chat_member() {
} }
leave_chat() { leave_chat() {
res=$(curl -s "$LEAVE_URL" -F "chat_id=$1") res=$(curl -s "$LEAVE_URL" -F "chat_id=$1")
} }
answer_inline_query() { answer_inline_query() {
@ -310,7 +310,7 @@ inproc() {
process_client() { process_client() {
# Message # Message
MESSAGE=$(echo "$res" | egrep '\["result",0,"message","text"\]' | cut -f 2 | cut -d '"' -f 2) MESSAGE=$(echo "$res" | egrep '\["result",0,"message","text"\]' | cut -f 2 | cut -d '"' -f 2)
MESSAGE_ID=$(echo "$res" | egrep '\["result",0,"message","message_id"\]' | cut -f 2 | cut -d '"' -f 2)
# Chat # Chat
CHAT[ID]=$(echo "$res" | egrep '\["result",0,"message","chat","id"\]' | cut -f 2) CHAT[ID]=$(echo "$res" | egrep '\["result",0,"message","chat","id"\]' | cut -f 2)
CHAT[FIRST_NAME]=$(echo "$res" | egrep '\["result",0,"message","chat","first_name"\]' | cut -f 2 | cut -d '"' -f 2) CHAT[FIRST_NAME]=$(echo "$res" | egrep '\["result",0,"message","chat","first_name"\]' | cut -f 2 | cut -d '"' -f 2)
@ -371,7 +371,11 @@ while [ "$1" == "startbot" ]; do {
OFFSET=$((OFFSET+1)) OFFSET=$((OFFSET+1))
if [ $OFFSET != 1 ]; then if [ $OFFSET != 1 ]; then
process_client& if [ "$2" == "test" ]; then
process_client
else
process_client&
fi
fi fi
}; done }; done

View File

@ -72,7 +72,7 @@ Get the code in my [GitHub](http://github.com/topkecleon/telegram-bot-bash)
;; ;;
'/leavechat') '/leavechat')
send_markdown_message "${CHAT[ID]}" "*CHAT LEAVED*" send_markdown_message "${CHAT[ID]}" "*LEAVING CHAT...*"
leave_chat "${CHAT[ID]}" leave_chat "${CHAT[ID]}"
;; ;;
@ -82,10 +82,10 @@ Get the code in my [GitHub](http://github.com/topkecleon/telegram-bot-bash)
;; ;;
'/cancel') '/cancel')
if tmux ls | grep -q $copname; then killproc && send_message "${USER[ID]}" "Command canceled.";else send_message "${USER[ID]}" "No command is currently running.";fi if tmux ls | grep -q $copname; then killproc && send_message "${CHAT[ID]}" "Command canceled.";else send_message "${CHAT[ID]}" "No command is currently running.";fi
;; ;;
*) *)
if tmux ls | grep -v send | grep -q $copname;then inproc; else send_message "${USER[ID]}" "$MESSAGE" "safe";fi if tmux ls | grep -v send | grep -q $copname;then inproc; else send_message "${CHAT[ID]}" "$MESSAGE" "safe";fi
;; ;;
esac esac
fi fi