def send_to_all(args): all_user = args[0] msg = args[1] if len(all_user) > 0: user = all_user.pop() peer = Peer("User", user.peer_id, user.access_hash) def send_done(response, user_data): kwargs = user_data['kwargs'] _all_user = kwargs["all_user"] my_logger.info("Send To All - remain : {}".format(len(_all_user))) loop.call_later(0.5, send_to_all, (_all_user, msg)) def send_fail(response, user_data): kwargs = user_data['kwargs'] fail_user = kwargs["user"] _all_user = kwargs["all_user"] my_logger.info( "Fail To send STA message to user : {}".format(fail_user)) loop.call_later(0.5, send_to_all, (_all_user, msg)) kwargs = {'all_user': all_user, 'user': user} updater.dispatcher.bot.send_message(msg, peer, success_callback=send_done, failure_callback=send_fail, kwargs=kwargs) else: my_logger.info("Finish to send STA message at time : {}".format( datetime.datetime.now())) return
def successRequest(response, user_data): print("user_data=>") print(user_data) user_data = user_data['kwargs'] user_peer = user_data["user_peer"] bot = user_data["bot"] peer = Peer(peer_type="Group", peer_id=1969579684, access_hash="6843459081900717134") msg = """ درخواست جدید: قوتو : {0} پسته : {1} زیره : {2} کلمپه : {3} ----------------- توسط : {4} به شماره تلفن : {5} به ادرس : {6} مبلغ : {7}هزار تومان پرداخت شده است. """.format(cart.get("govato"), cart.get("peste"), cart.get("zire"), cart.get("kolompe"), user.get("name"), user.get("phone"), user.get("address"), int(user_data["cash"]) / 10000) message = TextMessage(msg) print(message) bot.send_message(message, peer)
async def send_alarm(bot=dispatcher.bot): while (True): current_time = jdatetime.datetime.now() if current_time.hour == 21: for debt in search_debt_for_send(current_time): user_peer = Peer.load_from_json(debt.user_id) target_photo = get_photo_by_id(debt.photo_id) photo_message = PhotoMessage( target_photo.file_id, target_photo.access_hash, target_photo.name, target_photo.file_size, target_photo.mime_type, target_photo.thumb, target_photo.width, target_photo.height, target_photo.ext_width, target_photo.ext_height, target_photo.file_storage_version, TextMessage(target_photo.caption_text), target_photo.checksum, target_photo.algorithm) photo_message.caption_text = TextMessage(debt.creditor_name) purchase_message = PurchaseMessage(photo_message, debt.card_number, debt.amount, MoneyRequestType.normal) bot.send_message(purchase_message, user_peer, success_callback=success, failure_callback=failure) bot.send_message(TemplateMessage( TextMessage("بازگشت به منوی اصلی "), btn_list=button_list), user_peer, success_callback=success, failure_callback=failure) for alarm in search_alarm_for_send(current_time): user_peer = Peer.load_from_json(alarm.user_id) update_alarm_time(alarm) photo = PhotoMessage.load_from_json(alarm.photo_json) photo.caption_text = TextMessage(alarm.message) bot.send_message(photo, user_peer, success_callback=success, failure_callback=failure) bot.send_message(TemplateMessage( TextMessage("بازگشت به منوی اصلی "), btn_list=button_list), user_peer, success_callback=success, failure_callback=failure) await asyncio.sleep(30)
def check_notification(self, notification_sender): notification_sender.logger.debug( "network connected: {}".format(notification_sender.updater.network_connected())) try: a_notification = notification_sender.notification_queue.get(False) # doesn't block except queue.Empty: # raised when queue is empty a_notification = None if a_notification: try: if isinstance(a_notification, TextMessageNotification): notification_sender.logger.debug( "get notification {} from queue at : {}".format(a_notification.get_json_obj(), datetime.now())) group_peer = Peer(peer_type=PeerType.group, peer_id=a_notification.receiver_id, access_hash=a_notification.receiver_access_hash) kwargs = {"notification": a_notification, "logger": notification_sender.logger, "ack_queue": notification_sender.ack_queue} notification_sender.bot.send_message(a_notification.get_text_message(), group_peer, success_callback=success_callback_on_send_message, failure_callback=failure_callback_on_send_message, kwargs=kwargs) elif isinstance(a_notification, FileMessageNotification): notification_sender.logger.debug("get new file notification from queue: {}".format(datetime.now())) group_peer = Peer(peer_type=PeerType.group, peer_id=a_notification.receiver_id, access_hash=a_notification.receiver_access_hash) kwargs = {"notification": a_notification, "bot": notification_sender.bot, "logger": notification_sender.logger, "peer": group_peer, "ack_queue": notification_sender.ack_queue} notification_sender.bot.upload_file(file=a_notification.file, file_type="file", success_callback=file_upload_success, failure_callback=file_upload_failure, kwargs=kwargs) notification_sender.logger.debug( "send upload request for file notification {} for channel {} in" " success_callback_on_find_channel\tchannel peer: {}\tat : {}".format( a_notification.get_json_obj(), a_notification.receiver, group_peer.get_json_object(), datetime.now())) notification_sender.logger.debug("notofication handled : {}".format(datetime.now())) except Exception as ex: notification_sender.logger.error(ex) traceback.print_exc() else: notification_sender.logger.debug(" no notification in queue at time: {}".format(datetime.now()))
def setUpClass(cls): peer = Peer(peer_type="User", peer_id=1422775695, access_hash="asdqweqwdasd") message = TextMessage("ASD") cls.update_request = EditMessage(updated_message=message, peer=peer, random_id=123465)
def test_update_message_content(self): message = TextMessage("ASD") peer = Peer(peer_type="User", peer_id=1422775695, access_hash="asdqweqwdasd") self.assertIsInstance( Bot.edit_message(self.bot, message=message, user_peer=peer, random_id=13246), Request)
async def start_bot(websocket, path): peer = Peer(PeerType.user, 201707397, "-2675024364153751067") server_text_message = ServerTextMessage("/start", peer) await websocket.send(server_text_message.get_json_str()) name = await websocket.recv() request_id = get_request_id(name) read_update = ServerReadUpdate(request_id) await websocket.send(read_update.get_json_str()) server_text_message = ServerPhotoMessage(peer) await websocket.send(server_text_message.get_json_str()) client_request = await websocket.recv() request_id = get_request_id(client_request) read_update = ServerReadUpdate(request_id) await websocket.send(read_update.get_json_str()) print("*********************SuccessFull*********************") await websocket.recv()
def send_message(id_index, loop): if id_index >= len(rows): self.check_next = True return 0 row = rows[id_index] content_to_category_obj = row.content_to_category[0] category = get_category_by_id( content_to_category_obj.category_id) logo = get_logo_by_id(row.logo_id) content_type = get_type_by_id(category.type_id) text_message = TextMessage( ReadyMessage.content_template.format( row.name, row.description, category.name.replace(" ", "_"), content_type.name.replace(" ", "_"), row.nick_name, row.nick_name)) photo_message = PhotoMessage(logo.file_id, logo.access_hash, "channel", logo.file_size, "image/jpeg", None, 250, 250, file_storage_version=1, caption_text=text_message) user_peer = Peer( PeerType.group, peer_id=BotConfig.channel_id, access_hash=BotConfig.channel_access_hash) kwargs = { "message": text_message, "content_id": row.id, "user_peer": user_peer, "try_times": 1 } self.bot.send_message( message=photo_message, peer=user_peer, success_callback=self.success_sent_message, failure_callback=self.failure_sent_message, kwargs=kwargs) id_index += 1 loop.call_later(BotConfig.send_delay, send_message, id_index, loop)
def user_api_keys_validated(self, user): result = get_home_time_line(user.oauth_token, user.oauth_token_secret, user.user_id) if isinstance(result, list): return True if result.error_code == 401: general_message = TextMessage( BotMessage.invalid_or_expired_token_happened) buttons = [TMB.update_auth] message = TemplateMessage(general_message, buttons) user_peer = Peer(PeerType.user, user.peer_id, user.access_hash) self.bot.send_message( message=message, peer=user_peer, state_name=self.user_api_keys_validated.__name__) return False if result.error_code == 403: return False
def successRegister(response, user_data): print("user=>") print(user) user_data = user_data['kwargs'] user_peer = user_data["user_peer"] bot = user_data["bot"] nme = str(user.get("name")) phne = str(user.get("phone")) addr = str(user.get("address")) peer = Peer(peer_type="Group", peer_id=1969579684, access_hash="6843459081900717134") msg = """ کاربر جدید با نام و نام خانوادگی : {0}\n شماره تلفن: {1}\n و ادرس : {2}\n\nثبت شد. """.format(nme, phne, addr) message = TextMessage(msg) bot.send_message(message, peer)
def setUpClass(self): self.bot = MagicMock() my_bot.dispatcher = MagicMock() self.update = MagicMock() self.update.get_effective_user.return_value = Peer(peer_type="User", peer_id=745695, access_hash="1654")