Skip to content
This repository has been archived by the owner on Apr 8, 2020. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
h4child committed Apr 5, 2018
1 parent 765bcc3 commit 847ffe1
Show file tree
Hide file tree
Showing 6 changed files with 114 additions and 22 deletions.
5 changes: 3 additions & 2 deletions include/framebot/framebot.h
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,7 @@
#define CAN_PIN_MESSAGES(p) (p > 0 ? "true" : "0")
#define CAN_PROMOTE_MEMBERS(p) (p > 0 ? "true" : "0")

#define STREAMING(p) (p > 0 ? api_ltoa(p) : NULL)
#define DURATION(p) (p > 0 ? api_ltoa(p) : NULL)
#define REPLY_TO_MESSAGE_ID(p) (p > 0 ? api_ltoa(p) : NULL)
#define WIDTH(p) (p > 0 ? api_ltoa(p) : NULL)
Expand Down Expand Up @@ -322,10 +323,10 @@ Message * send_document_chat(Bot * bot, long int chat_id, char * filename, char

/* sendvideo */
Message * send_video(Bot * bot, char * chat_id, char * video, long int duration, long int width,
long int height, char * caption, bool disable_notification, long int reply_to_message_id,
long int height, char * caption, char *parse_mode, bool supports_streaming, bool disable_notification, long int reply_to_message_id,
char * reply_markup);
Message * send_video_chat(Bot * bot, long int chat_id, char * video, long int duration, long int width,
long int height, char * caption, bool disable_notification, long int reply_to_message_id,
long int height, char * caption, char *parse_mode, bool supports_streaming, bool disable_notification, long int reply_to_message_id,
char * reply_markup);

/* sendvoice */
Expand Down
2 changes: 2 additions & 0 deletions include/framebot/network.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ typedef struct _svideo{
char * width;
char * height;
char * caption;
char * parse_mode;
char * supports_streaming;
char * disable_notification;
char * reply_to_message_id;
char * reply_markup;
Expand Down
1 change: 1 addition & 0 deletions include/framebot/objects.h
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ typedef struct _message{
Location *location;
Venue *venue;
User *new_chat_members;
User *left_chat_member;
char *new_chat_title;
PhotoSize *new_chat_photo;//Array
bool delete_chat_photo:1;
Expand Down
18 changes: 12 additions & 6 deletions src/framebot.c
Original file line number Diff line number Diff line change
Expand Up @@ -1096,8 +1096,8 @@ Message * send_document_chat(Bot * bot, long int chat_id, char * filename, char
*
*/
Message * send_video(Bot * bot, char * chat_id, char * filename, long int duration,
long int width, long int height, char * caption, bool disable_notification,
long int reply_to_message_id, char * reply_markup){
long int width, long int height, char * caption, char *parse_mode, bool supports_streaming,
bool disable_notification, long int reply_to_message_id, char * reply_markup){
Message * message;

IFile ifile;
Expand All @@ -1122,6 +1122,12 @@ Message * send_video(Bot * bot, char * chat_id, char * filename, long int durati
/* Audio caption, 0-200 characters */
ifile.video.caption = caption;

/* parse mode MODE_HTML or MODE_MARKDOWN */
ifile.video.parse_mode = PARSE_MODE(parse_mode);


ifile.video.supports_streaming = STREAMING(supports_streaming);

/* Sends the message silently */
ifile.video.disable_notification = DISABLE_NOTIFICATION(disable_notification);

Expand Down Expand Up @@ -1158,16 +1164,16 @@ Message * send_video(Bot * bot, char * chat_id, char * filename, long int durati


Message * send_video_chat(Bot * bot, long int chat_id, char * filename, long int duration,
long int width, long int height, char * caption, bool disable_notification,
long int reply_to_message_id, char * reply_markup){
long int width, long int height, char * caption, char *parse_mode, bool supports_streaming,
bool disable_notification, long int reply_to_message_id, char * reply_markup){

Message * message;
char * cchat_id;

cchat_id = api_ltoa(chat_id);

message = send_video(bot, cchat_id, filename, duration, width, height, caption,
disable_notification, reply_to_message_id, REPLY_MARKUP(reply_markup));
message = send_video(bot, cchat_id, filename, duration, width, height, caption, parse_mode,
supports_streaming, disable_notification, reply_to_message_id, REPLY_MARKUP(reply_markup));

free(cchat_id);

Expand Down
14 changes: 14 additions & 0 deletions src/network.c
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,20 @@ MemStore * call_method_upload(const char * token, IFile ifile){
curl_mime_data(field, ifile.video.caption, CURL_ZERO_TERMINATED);
}

/* Document parse_mode */
if(ifile.video.parse_mode != NULL){
field = curl_mime_addpart(form);
curl_mime_name(field, "parse_mode");
curl_mime_data(field, ifile.video.parse_mode, CURL_ZERO_TERMINATED);
}

/* Document supports_streaming */
if(ifile.video.supports_streaming != NULL){
field = curl_mime_addpart(form);
curl_mime_name(field, "supports_streaming");
curl_mime_data(field, ifile.video.supports_streaming, CURL_ZERO_TERMINATED);
}

/* Sends the message silently */
if(ifile.video.disable_notification != NULL){
field = curl_mime_addpart(form);
Expand Down
96 changes: 82 additions & 14 deletions test/test_sendvideo.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,73 +37,141 @@ int _video(){

printf(WHITE "Send chat_id ........." COLOR_RESET);
fflush(stdout);
result = send_video_chat(_bot, chat_id, filename, 0, 0, 0, NULL, 0, 0, NULL);
result = send_video_chat(_bot, chat_id, filename, 0, 0, 0, NULL, NULL, 0, 0, 0, NULL);
if(result){
printf(BLUE "OK\n" COLOR_RESET);
message_free(result);
}
else{
Error *error = get_error();
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
if(error)
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
exit(-1);
}

printf(WHITE "Send username ........." COLOR_RESET);
fflush(stdout);
result = send_video_note_chat(_bot, chat_id, filename, 0, 0, 0 , 0, NULL);
result = send_video_chat(_bot, chat_id, filename, 0, 0, 0, NULL, NULL, 0, 0, 0, NULL);
if(result){
printf(BLUE "OK\n" COLOR_RESET);
message_free(result);
}
else{
Error *error = get_error();
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
if(error)
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
exit(-1);
}

printf(WHITE "Send duration ........." COLOR_RESET);
fflush(stdout);
result = send_video_note_chat(_bot, chat_id, filename, 10, 0, 0 , 0, NULL);
result = send_video_chat(_bot, chat_id, filename, 10, 0, 0, NULL, NULL, 0, 0, 0, NULL);
if(result){
printf(BLUE "OK\n" COLOR_RESET);
message_free(result);
}
else{
Error *error = get_error();
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
if(error)
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
exit(-1);
}

printf(WHITE "Send length ........." COLOR_RESET);
printf(WHITE "Send width ........." COLOR_RESET);
fflush(stdout);
result = send_video_note_chat(_bot, chat_id, filename, 10, 10, 0 , 0, NULL);
result = send_video_chat(_bot, chat_id, filename, 10, 10, 0, NULL, NULL, 0, 0, 0, NULL);
if(result){
printf(BLUE "OK\n" COLOR_RESET);
message_free(result);
}
else{
Error *error = get_error();
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
if(error)
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
exit(-1);
}

printf(WHITE "Send height ........." COLOR_RESET);
fflush(stdout);
result = send_video_chat(_bot, chat_id, filename, 10, 10, 10, NULL, NULL, 0, 0, 0, NULL);
if(result){
printf(BLUE "OK\n" COLOR_RESET);
message_free(result);
}
else{
Error *error = get_error();
if(error)
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
exit(-1);
}

printf(WHITE "Send caption ........." COLOR_RESET);
fflush(stdout);
result = send_video_chat(_bot, chat_id, filename, 10, 10, 1, "caption", NULL, 0, 0, 0, NULL);
if(result){
printf(BLUE "OK\n" COLOR_RESET);
message_free(result);
}
else{
Error *error = get_error();
if(error)
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
exit(-1);
}

printf(WHITE "Send parse_mode ........." COLOR_RESET);
fflush(stdout);
result = send_video_chat(_bot, chat_id, filename, 10, 10, 1, "<b>caption</b>", MODE_HTML, 0, 0, 0, NULL);
if(result){
printf(BLUE "OK\n" COLOR_RESET);
message_free(result);
}
else{
Error *error = get_error();
if(error)
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
exit(-1);
}

printf(WHITE "Send supports_streaming ........." COLOR_RESET);
fflush(stdout);
result = send_video_chat(_bot, chat_id, filename, 10, 10, 1, "caption", NULL, 1, 0, 0, NULL);
if(result){
printf(BLUE "OK\n" COLOR_RESET);
message_free(result);
}
else{
Error *error = get_error();
if(error)
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
exit(-1);
}

printf(WHITE "Send disable_notification ........." COLOR_RESET);
fflush(stdout);
result = send_video_note_chat(_bot, chat_id, filename, 10, 10, 1, 0, NULL);
result = send_video_chat(_bot, chat_id, filename, 10, 10, 1, "caption", NULL, 1, 1, 0, NULL);
if(result){
printf(BLUE "OK\n" COLOR_RESET);
}
else{
Error *error = get_error();
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
if(error)
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
exit(-1);
}

printf(WHITE "Send reply_to_message_id ........." COLOR_RESET);
fflush(stdout);
Message *forward = send_video_note_chat(_bot, chat_id, filename, 10, 10, 1, result->message_id, NULL);
if(result){
Message *forward = send_video_chat(_bot, chat_id, filename, 10, 10, 1, "caption", NULL, 1, 1, result->message_id, NULL);
if(forward){
printf(BLUE "OK\n" COLOR_RESET);
message_free(forward);
message_free(result);
}
else{
Error *error = get_error();
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
if(error)
printf(RED"false\ncode:%ld | description:%s\n"COLOR_RESET, error->error_code, error->description);
exit(-1);
}

Expand Down

0 comments on commit 847ffe1

Please sign in to comment.