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
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)
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)
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), ])
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)
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)])
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)
def _formatter(id): return persian.convert_en_numbers(str(id))
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)
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), ])
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" )
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)
def test_convert_english_numbers(self): self.assertEqual("۱۲۳۴۵۶۷۸۹۰", persian.convert_en_numbers("1234567890"))
def _formatter(id): return persian.convert_en_numbers("1" + str(id).zfill(6))