def send_welcome(message): """ /start and /help commands messages. """ welcome_message = "Salam! matn be finglish vared konid." welcome_message += '\n{}'.format(f2p(welcome_message)) bot.send_message(chat_id=message.chat.id, text=welcome_message)
def root_post(): finglish = request.form['finglish'] print('request:', finglish) persian = f2p(finglish) params = { 'persian': persian, } return render_template('root.html', **params)
def __str__(self): jdatetime.set_locale("fa_IR") date = jdatetime.datetime.fromgregorian(second=self.date_time.second, minute=self.date_time.minute, hour=self.date_time.hour, day=self.date_time.day, month=self.date_time.month, year=self.date_time.year) output = self.user.get_full_name() + " - " + f2p( date.strftime("%d %B %y")) return output
def f2f(text): std_text = '' for char in text: if (not char.isalpha()): std_text += ' %c ' % char else: std_text += char farsi_text = '' for word in std_text.split(): farsi_text += ' ' + f2p(word) return farsi_text
def main(): print('Loading test cases...') with open('test.txt', encoding="utf-8") as f: pairs = [l.strip().split(' ', 1) for l in f if l.strip()] print('{} test cases loaded.'.format(len(pairs))) failures = 0 for finglish, expected_persian in pairs: persian = f2p(finglish) if len(persian) == 0 or persian != expected_persian: print('Test case for "{}" failed: Expected "{}" but got "{}".'. format(finglish, expected_persian, persian)) failures += 1 print('{} test case(s) passed successfully. {} failures.'.format( len(pairs) - failures, failures))
def translate(message): """ Function to translate finglish to persian. NOTE: #1 These messages are not processed by BOT: 1. Messages that are not english characters. 2. Messages that start with emojies. TODO: remove emojis from the beginning of a message and then process the rest of it. Args: message object Returns: translated message (str) ------------------------------ name (@username): <translated_message> ------------------------------ NOTE: - name is formatted BOLD - if user has no username, output will only include name and <translated message> """ # removing emojies msg_text = message.text raw_text = emoji.demojize(msg_text) output_message = None # 1 if isEnglish(raw_text) and not emoji.demojize(raw_text).startswith(':'): # Result # processing multiple line message translated_msg = [] splitted_msg = msg_text.split('\n') for msg in splitted_msg: translated_msg.append(f2p(msg)) output_message = '\n'.join(translated_msg) return output_message
def addUser(request): if request.method == "POST": first_name = request.POST.get('first_name') last_name = request.POST.get('last_name') email = request.POST.get('email') user_type = request.POST.get('type') phone_number = request.POST.get('phone_number') if User.objects.filter(email=email).exists(): return JsonResponse({"error": "Duplicate user"}) alphabet = string.ascii_letters + string.digits password = ''.join(secrets.choice(alphabet) for i in range(20)) username = f2p("reza") return JsonResponse({"success": username}) user = User.objects.create_user(username, email, password) user.first_name = first_name user.last_name = last_name user.save() if user_type == "دانش آموز": student = Student(user=user) student.save() return JsonResponse({"success": "stu"}) return JsonResponse({"success": user_type}) else: return JsonResponse({"error": "Invalid Request!"})
def fin2per(bot, update): """convert user message from fingilish to persian.""" recived = update.message.text update.message.reply_text(f2p(recived))
def __str__(self): jdatetime.set_locale(locale='fa_IR') date = jdatetime.date.fromgregorian(day=self.initial_date.day, month=self.initial_date.month, year=self.initial_date.year) return f2p(date.strftime('%d %B %y'))