示例#1
0
def jalali_convertor(time):
    jmonths = [
        'فروردين', 'ارديبهشت', 'خرداد', 'تير', 'مرداد', 'شهريور', 'مهر',
        'آبان', 'آذر', 'دى', 'بهمن', 'اسفند'
    ]

    time = timezone.localtime(time)

    time_to_str = "{},{},{}".format(time.year, time.month, time.day)
    time_to_tuple = jalali.Gregorian(time_to_str).persian_tuple()
    time_to_list = list(time_to_tuple)

    # for index,month in enumerate(jmonths):
    #     if time_to_list[1] == index+1:
    #         time_to_list[1] = month
    #         break

    date_output = "{}/{}/{}".format(
        persian.convert_en_numbers(time_to_list[0]),
        persian.convert_en_numbers(time_to_list[1]),
        persian.convert_en_numbers(time_to_list[2]),
    )

    time_output = "{}:{}".format(
        persian.convert_en_numbers(time.hour),
        persian.convert_en_numbers(time.minute),
    )

    output = [date_output, time_output]

    return output
示例#2
0
def remove_from_book_mark(bot, update, page_number):
    user = _get_peer(update)
    is_removed = remove_book_mark(peer_id=user.peer_id,
                                  page_number=page_number)
    if is_removed == 1:
        text_message = TextMessage(
            BotMessage.removed_from_book_mark.format(
                persian.convert_en_numbers(page_number)))
        btn = [
            TemplateMessageButton(
                ButtonMessage.back_to_read.format(
                    persian.convert_en_numbers(page_number)),
                ButtonMessage.back_to_read.format(
                    persian.convert_en_numbers(page_number)), 0),
            TemplateMessageButton(ButtonMessage.return_to_main_menu,
                                  ButtonMessage.return_to_main_menu, 0)
        ]
        message = TemplateMessage(text_message, btn)
        send_message(message=message, peer=user)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(
                    TemplateResponseFilter(
                        keywords=ButtonMessage.back_to_read.format(
                            persian.convert_en_numbers(page_number))),
                    functools.partial(read_step_2, change_page=page_number)),
                MessageHandler(DefaultFilter(), start_bot)
            ])
    else:
        check_message("asdasdasd", update)
示例#3
0
def get_status_message(status):
    user = status['user']
    screen_name = user['screen_name']
    name = user['name']
    tweet_link = BotConfig.tweet_link.format(screen_name=screen_name,
                                             ID=status['id_str'])
    full_text = status['full_text']
    re_tweeted_status = status.get('retweeted_status')
    if re_tweeted_status:
        favorite_count = re_tweeted_status['favorite_count']
        re_tweet_user = re_tweeted_status['user']
        retweet_name = ReadyText.retweet_from.format(re_tweet_user['name'])
    else:
        favorite_count = status['favorite_count']
        retweet_name = ""
    favorite_count = persian.convert_en_numbers(favorite_count)
    re_tweet_count = status['retweet_count']
    re_tweet_count = persian.convert_en_numbers(re_tweet_count)
    created_at = status['created_at']
    datetime_utc = datetime.datetime.strptime(created_at,
                                              "%a %b %d %H:%M:%S %z %Y")
    created_at = JalaliDatetime().from_datetime(datetime_utc).strftime('%C')
    created_at = persian.convert_en_numbers(created_at)
    return ReadyText.status_text.format(name=name,
                                        retweet_name=retweet_name,
                                        full_text=full_text,
                                        tweet_link=tweet_link,
                                        favorite_count=favorite_count,
                                        re_tweet_count=re_tweet_count,
                                        created_at=created_at)
示例#4
0
def read_step_1(bot, update, wrong_input=False):
    user = _get_peer(update)
    text = ""
    if wrong_input:
        text = BotMessage.wrong_input_page + "\n" + BotMessage.choose_page_number

    all_marked = get_all_marked(user.peer_id)
    btn = []
    keywords = []
    my_logger.info(
        "\n\n\n\n\n\n\n all Marked : {}\n\n\n\n\n\n".format(all_marked))
    if len(all_marked) > 0:
        text = BotMessage.choose_page_book_mark + " " + BotMessage.choose_page_number
        for mark in all_marked:
            btn.append(
                TemplateMessageButton(text=ButtonMessage.read_page.format(
                    persian.convert_en_numbers(mark[0])),
                                      value=mark[0],
                                      action=0))
            keywords.append(str(mark[0]))
    else:
        text = BotMessage.choose_page_number

    btn.append(
        TemplateMessageButton(ButtonMessage.return_to_main_menu,
                              ButtonMessage.return_to_main_menu, 0))
    txt_msg = TextMessage(text)
    message = TemplateMessage(txt_msg, btn)
    send_message(message, _get_peer(update))
    dispatcher.register_conversation_next_step_handler(update, [
        MessageHandler(TemplateResponseFilter(keywords=keywords), read_step_2),
        MessageHandler(TextFilter(), read_step_2),
        MessageHandler(DefaultFilter(), start_bot),
    ])
示例#5
0
    def persian_num(self):
        # i = 0
        # result = ''
        # for num in reversed(persian.convert_en_numbers(self.price)):
        #     print(num)
        #     if i == 2:
        #         result = num + ',' +result
        #     else:
        #         result = num + result
        #     i += 1

        return persian.convert_en_numbers(self.price)
示例#6
0
def tafsir_step_2(bot, update):
    msg = _get_msg(update)
    if isinstance(msg, TemplateResponseMessage):
        soore = msg.get_json_object()['textMessage']
        if soore == ButtonMessage.return_to_main_menu:
            start_bot(bot, update)
            return
        dispatcher.set_conversation_data(update, "soore", soore)
        num = soore_number(soore)
        dispatcher.set_conversation_data(update, "soore_number", num)
        number_of_ayes = count_of_aye(num)
        txt_msg = TextMessage(
            BotMessage.choose_aye_number.format(
                soore, persian.convert_en_numbers(number_of_ayes)))
        dispatcher.set_conversation_data(update, "number_of_ayes",
                                         number_of_ayes)
        send_message(txt_msg, _get_peer(update), Step.conversation_starter)
        dispatcher.register_conversation_next_step_handler(
            update, [MessageHandler(TextFilter(), tafsir_step_3)])
示例#7
0
def product_detail(request, slug):
    cart_obj, new_obj = Order.objects.new_or_get(request)
    qs = Product.objects.filter(slug=slug)
    if qs.exists():
        product = qs.first()
        pictures = Picture.objects.filter(product=product)
        product_price = persian.convert_en_numbers(product.price)
        category = product.category
        sub_category = product.sub_category
    else:
        return HttpResponse('not found')
    context = {
        'product': product,
        'product_price': product_price,
        'cart': cart_obj,
        'pictures': pictures,
        'category': category,
        'sub_category': sub_category,
    }
    return render(request, 'products/product_detail.html', context)
示例#8
0
def _formatter(id):
    return persian.convert_en_numbers(str(id))
示例#9
0
def read_step_2(bot, update, change_page=None):

    user = _get_peer(update)
    msg = _get_msg(update)

    if change_page:
        page_number = change_page
    else:
        if isinstance(msg, TemplateResponseMessage):
            page_number = msg.text_message
        else:
            page_number = _get_msg(update).text

    if 0 < int(page_number) < 605:
        page_number = int(page_number)
        page = get_page(page_number)
        msg = PhotoMessage(
            file_id=page.file_id,
            access_hash=page.file_access_hash,
            name="Page.jpg",
            file_size=500000,
            mime_type="image/jpeg",
            thumb=UserData.thumb,
            ext_width=1260,
            ext_height=2038,
            height=80,
            width=80,
            file_storage_version=1,
            caption_text=TextMessage(
                "صفحه: *{}*\n - سوره مبارکه: *{}*\n - جزء: *{}*".format(
                    persian.convert_en_numbers(page_number), page.soore_name,
                    page.joz)))

        def send_done(_, __):
            btn = [
                TemplateMessageButton(ButtonMessage.next_page,
                                      ButtonMessage.next_page, 0),
                TemplateMessageButton(ButtonMessage.before_page,
                                      ButtonMessage.before_page, 0),
            ]
            is_marked = is_marked_for_user(user.peer_id, page_number)
            my_logger.info("is marked : {}".format(is_marked))
            if is_marked:
                btn.append(
                    TemplateMessageButton(ButtonMessage.remove_from_book_mark,
                                          ButtonMessage.remove_from_book_mark,
                                          0))
            else:
                btn.append(
                    TemplateMessageButton(ButtonMessage.add_to_book_mark,
                                          ButtonMessage.add_to_book_mark, 0))

            btn.append(
                TemplateMessageButton(ButtonMessage.return_to_main_menu,
                                      ButtonMessage.return_to_main_menu, 0))
            continue_msg = TextMessage(BotMessage.continue_msg)
            _msg = TemplateMessage(continue_msg, btn)
            send_message(_msg, _get_peer(update))
            dispatcher.register_conversation_next_step_handler(
                update, [
                    MessageHandler(
                        TemplateResponseFilter(
                            keywords=ButtonMessage.next_page),
                        functools.partial(read_step_2,
                                          change_page=page_number + 1)),
                    MessageHandler(
                        TemplateResponseFilter(
                            keywords=ButtonMessage.before_page),
                        functools.partial(read_step_2,
                                          change_page=page_number - 1)),
                    MessageHandler(
                        TemplateResponseFilter(keywords=ButtonMessage.read),
                        read_step_1),
                    MessageHandler(
                        TemplateResponseFilter(
                            keywords=ButtonMessage.add_to_book_mark),
                        functools.partial(add_to_book_mark,
                                          page_number=page_number)),
                    MessageHandler(
                        TemplateResponseFilter(
                            keywords=ButtonMessage.remove_from_book_mark),
                        functools.partial(remove_from_book_mark,
                                          page_number=page_number)),
                    MessageHandler(DefaultFilter(), start_bot)
                ])

        def send_fail(_, __):
            pass

        bot.send_message(msg,
                         _get_peer(update),
                         success_callback=send_done,
                         failure_callback=send_fail)

    else:
        read_step_1(bot, update, wrong_input=True)
示例#10
0
def tafsir_step_3(_, update):
    # check_message("s + {}".format(_get_msg(update).text), update)
    msg = _get_msg(update).text
    number_of_ayes = dispatcher.get_conversation_data(update, "number_of_ayes")
    if msg.isnumeric() and 1 <= int(msg) <= number_of_ayes:
        soore_number = dispatcher.get_conversation_data(update, "soore_number")
        soore = dispatcher.get_conversation_data(update, "soore")
        aye = get_aye(soore_number, int(msg))
        aye_text = aye.aye_text
        tafsir_text = aye.tafsir_text
        btn = [
            TemplateMessageButton(ButtonMessage.tarjome, ButtonMessage.tarjome,
                                  0),
            TemplateMessageButton(ButtonMessage.tafsir, ButtonMessage.tafsir,
                                  0),
            TemplateMessageButton(ButtonMessage.read, ButtonMessage.read,
                                  ButtonAction.default)
        ]

        def send_done(_, __):
            continue_msg = TextMessage(BotMessage.continue_msg)
            _msg = TemplateMessage(continue_msg, btn)
            send_message(_msg, _get_peer(update))
            dispatcher.register_conversation_next_step_handler(
                update, [
                    MessageHandler(
                        TemplateResponseFilter(keywords=ButtonMessage.tafsir),
                        tafsir_step_1),
                    MessageHandler(
                        TemplateResponseFilter(keywords=ButtonMessage.tarjome),
                        tarjome_step_1),
                    MessageHandler(
                        TemplateResponseFilter(keywords=ButtonMessage.read),
                        read_step_1),
                    MessageHandler(DefaultFilter(), start_bot)
                ])

        def send_fail(_, __):
            pass

        text_aye = BotMessage.aye_text.format(
            soore, persian.convert_en_numbers(int(msg)), aye_text)
        text_tafsir = BotMessage.tafsir_text.format(tafsir_text)
        all_msg = TextMessage(text_aye + "\n" + text_tafsir)
        bot.send_message(all_msg,
                         _get_peer(update),
                         success_callback=send_done,
                         failure_callback=send_fail)
    else:
        soore = dispatcher.get_conversation_data(update, "soore")
        txt_msg = TextMessage(
            BotMessage.wrong_input + "\n" +
            BotMessage.choose_aye_number.format(
                soore, persian.convert_en_numbers(number_of_ayes)))
        send_message(txt_msg, _get_peer(update), Step.conversation_starter)
        dispatcher.register_conversation_next_step_handler(
            update, [
                MessageHandler(TextFilter(), tafsir_step_3),
                MessageHandler(DefaultFilter(), start_bot),
                CommandHandler(Command.start, start_bot),
            ])
示例#11
0
 for tag in node.findall('tag'):
     k = tag.attrib['k']
     if k == 'name':
         name = tag.attrib['v']
         if any(char in name for char in ignore_list):
             log("    id:" + node.attrib['id'] + "  name:'" + name +
                 "' matched in ignore_list , it didn't get touched")
             continue
         if any(char in name for char in accepted_chars):
             temp = tag.attrib['v']
             v_fixed = persian.convert_ar_numbers(name)
             if temp != v_fixed:
                 ar_numbers = ar_numbers + 1
                 issuecounter = issuecounter + 1
                 temp = v_fixed
             v_fixed = persian.convert_en_numbers(v_fixed)
             if temp != v_fixed:
                 en_numbers = en_numbers + 1
                 issuecounter = issuecounter + 1
                 temp = v_fixed
             if v_fixed != name:
                 counter = counter + 1
                 tag.attrib['v'] = v_fixed
                 node.set('action', 'modify')
                 logchanges(counter, "node/" + node.attrib['id'], name,
                            v_fixed)
         else:
             log("    Warning: id:" + node.attrib['id'] + "  name:'" +
                 name +
                 "' did not matched in accepted_chars , it didn't get touched"
                 )
示例#12
0
 def get_cart_total(self):
     orderitems = self.orderitem_set.all()
     total = sum([item.get_total for item in orderitems])
     return persian.convert_en_numbers(total)
示例#13
0
 def test_convert_english_numbers(self):
     self.assertEqual("۱۲۳۴۵۶۷۸۹۰",
                      persian.convert_en_numbers("1234567890"))
示例#14
0
def _formatter(id):
    return persian.convert_en_numbers("1" + str(id).zfill(6))