Exemple #1
0
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)
Exemple #3
0
Fichier : bot.py Projet : mmdaz/Bot
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()))
Exemple #5
0
 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)
Exemple #6
0
 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()
Exemple #8
0
 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)
Exemple #9
0
 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")