@@ -683,6 +683,7 @@ enum lua_query_type {
683
683
lq_load_video_thumb ,
684
684
lq_load_video ,
685
685
lq_chat_info ,
686
+ lq_channel_info ,
686
687
lq_user_info ,
687
688
lq_history ,
688
689
lq_chat_add_user ,
@@ -710,7 +711,8 @@ enum lua_query_type {
710
711
lq_send_location ,
711
712
lq_extf ,
712
713
lq_import_chat_link ,
713
- lq_export_chat_link
714
+ lq_export_chat_link ,
715
+ lq_channel_invite_user
714
716
};
715
717
716
718
struct lua_query_extra {
@@ -1034,6 +1036,38 @@ void lua_secret_chat_cb (struct tgl_state *TLSR, void *cb_extra, int success, st
1034
1036
free (cb );
1035
1037
}
1036
1038
1039
+ void lua_channel_cb (struct tgl_state * TLSR , void * cb_extra , int success , struct tgl_channel * C ) {
1040
+ assert (TLSR == TLS );
1041
+ struct lua_query_extra * cb = cb_extra ;
1042
+ lua_settop (luaState , 0 );
1043
+ //lua_checkstack (luaState, 20);
1044
+ my_lua_checkstack (luaState , 20 );
1045
+
1046
+ lua_rawgeti (luaState , LUA_REGISTRYINDEX , cb -> func );
1047
+ lua_rawgeti (luaState , LUA_REGISTRYINDEX , cb -> param );
1048
+
1049
+ lua_pushnumber (luaState , success );
1050
+
1051
+ if (success ) {
1052
+ push_peer (C -> id , (void * )C );
1053
+ } else {
1054
+ lua_pushboolean (luaState , 0 );
1055
+ }
1056
+
1057
+ assert (lua_gettop (luaState ) == 4 );
1058
+
1059
+ int r = ps_lua_pcall (luaState , 3 , 0 , 0 );
1060
+
1061
+ luaL_unref (luaState , LUA_REGISTRYINDEX , cb -> func );
1062
+ luaL_unref (luaState , LUA_REGISTRYINDEX , cb -> param );
1063
+
1064
+ if (r ) {
1065
+ logprintf ("lua: %s\n" , lua_tostring (luaState , -1 ));
1066
+ }
1067
+
1068
+ free (cb );
1069
+ }
1070
+
1037
1071
void lua_user_cb (struct tgl_state * TLSR , void * cb_extra , int success , struct tgl_user * C ) {
1038
1072
assert (TLSR == TLS );
1039
1073
struct lua_query_extra * cb = cb_extra ;
@@ -1211,6 +1245,10 @@ void lua_do_all (void) {
1211
1245
tgl_do_get_chat_info (TLS , lua_ptr [p + 1 ].peer_id , 0 , lua_chat_cb , lua_ptr [p ].ptr );
1212
1246
p += 2 ;
1213
1247
break ;
1248
+ case lq_channel_info :
1249
+ tgl_do_get_channel_info (TLS , lua_ptr [p + 1 ].peer_id , 0 , lua_channel_cb , lua_ptr [p ].ptr );
1250
+ p += 2 ;
1251
+ break ;
1214
1252
case lq_user_info :
1215
1253
tgl_do_get_user_info (TLS , lua_ptr [p + 1 ].peer_id , 0 , lua_user_cb , lua_ptr [p ].ptr );
1216
1254
p += 2 ;
@@ -1220,11 +1258,11 @@ void lua_do_all (void) {
1220
1258
p += 3 ;
1221
1259
break ;
1222
1260
case lq_chat_add_user :
1223
- tgl_do_add_user_to_chat (TLS , lua_ptr [p + 1 ].peer_id , lua_ptr [p + 1 ].peer_id , 10 , lua_empty_cb , lua_ptr [p ].ptr );
1261
+ tgl_do_add_user_to_chat (TLS , lua_ptr [p + 1 ].peer_id , lua_ptr [p + 2 ].peer_id , 10 , lua_empty_cb , lua_ptr [p ].ptr );
1224
1262
p += 3 ;
1225
1263
break ;
1226
1264
case lq_chat_del_user :
1227
- tgl_do_del_user_from_chat (TLS , lua_ptr [p + 1 ].peer_id , lua_ptr [p + 1 ].peer_id , lua_empty_cb , lua_ptr [p ].ptr );
1265
+ tgl_do_del_user_from_chat (TLS , lua_ptr [p + 1 ].peer_id , lua_ptr [p + 2 ].peer_id , lua_empty_cb , lua_ptr [p ].ptr );
1228
1266
p += 3 ;
1229
1267
break ;
1230
1268
case lq_add_contact :
@@ -1303,6 +1341,10 @@ void lua_do_all (void) {
1303
1341
tgl_do_send_location (TLS , lua_ptr [p + 1 ].peer_id , lua_ptr [p + 2 ].dnum , lua_ptr [p + 3 ].dnum , 0 , lua_msg_cb , lua_ptr [p ].ptr );
1304
1342
p += 4 ;
1305
1343
break ;
1344
+ case lq_channel_invite_user :
1345
+ tgl_do_channel_invite_user (TLS , lua_ptr [p + 1 ].peer_id , lua_ptr [p + 2 ].peer_id , lua_empty_cb , lua_ptr [p ].ptr );
1346
+ p += 3 ;
1347
+ break ;
1306
1348
/*
1307
1349
lq_delete_msg,
1308
1350
lq_restore_msg,
@@ -1379,6 +1421,7 @@ struct lua_function functions[] = {
1379
1421
{"fwd_msg" , lq_fwd , { lfp_peer , lfp_msg , lfp_none }},
1380
1422
{"fwd_media" , lq_fwd_media , { lfp_peer , lfp_msg , lfp_none }},
1381
1423
{"chat_info" , lq_chat_info , { lfp_chat , lfp_none }},
1424
+ {"channel_info" , lq_channel_info , { lfp_channel , lfp_none }},
1382
1425
{"user_info" , lq_user_info , { lfp_user , lfp_none }},
1383
1426
{"get_history" , lq_history , { lfp_peer , lfp_nonnegative_number , lfp_none }},
1384
1427
{"chat_add_user" , lq_chat_add_user , { lfp_chat , lfp_user , lfp_none }},
@@ -1403,6 +1446,7 @@ struct lua_function functions[] = {
1403
1446
{"ext_function" , lq_extf , { lfp_string , lfp_none }},
1404
1447
{"import_chat_link" , lq_import_chat_link , { lfp_string , lfp_none }},
1405
1448
{"export_chat_link" , lq_export_chat_link , { lfp_chat , lfp_none }},
1449
+ {"channel_invite_user" , lq_channel_invite_user , { lfp_channel , lfp_user , lfp_none }},
1406
1450
{ 0 , 0 , { lfp_none }}
1407
1451
};
1408
1452
0 commit comments